diff --git a/assets/AIChatPage-DDSYPYxd.js b/assets/AIChatPage-CstOeMuY.js similarity index 94% rename from assets/AIChatPage-DDSYPYxd.js rename to assets/AIChatPage-CstOeMuY.js index ea9e4478c3f82302252d16cac31a6f286abd3200..5204e0cceafc7ce351dab9228ccaf641cf6d07f9 100644 --- a/assets/AIChatPage-DDSYPYxd.js +++ b/assets/AIChatPage-CstOeMuY.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/apiService-BuaHZ1Ho.js","assets/index-DGWrSMOK.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/index-CR2i2gnI.css"])))=>i.map(i=>d[i]); -import{z as B,_ as F,e as N,m as k}from"./index-DGWrSMOK.js";import{r,j as e}from"./vendor-react-Dexh7fmo.js";import{B as $}from"./button-DWdPuxDU.js";import{I as S}from"./input-DBkKXOmF.js";import z from"./ChatMarkdown-BI4vbcO7.js";import{P as O}from"./plus-DVCmopn-.js";import{S as H}from"./search-O5gEqRZi.js";import{T as Y}from"./trash-2-CBQVcuBL.js";import{S as D}from"./send-nCgvy9cZ.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-markdown-C5ikSDMA.js";const ie=()=>{const{sessions:C,activeSessionId:a,isLoading:l,loadingSessionId:I,setActiveSessionId:i,createNewSession:u,sendMessage:A,deleteSession:L,getActiveSession:T}=B(),[d,_]=r.useState(""),[o,f]=r.useState(""),[b,y]=r.useState(!1),c=r.useRef(null),x=r.useRef(!0),m=r.useRef(!1),n=T(),h=n?.messages||[],M=h.some(t=>t.sender==="ai"&&t.id.startsWith("stream-")),g=l&&a===I&&!M,j=(t="auto")=>{const s=c.current;s&&s.scrollTo({top:s.scrollHeight,behavior:t})},P=()=>{const t=c.current;return t?t.scrollHeight-t.scrollTop-t.clientHeight<=120:!0},E=()=>{x.current=P()};r.useEffect(()=>{F(async()=>{const{warmupBackend:t}=await import("./apiService-BuaHZ1Ho.js");return{warmupBackend:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(({warmupBackend:t})=>{t()}).catch(t=>{console.warn("AI chat warmup skipped:",t)})},[]),r.useEffect(()=>{if(!x.current)return;const t=window.requestAnimationFrame(()=>j("auto"));return()=>window.cancelAnimationFrame(t)},[h,g]),r.useEffect(()=>{x.current=!0,j("auto")},[a]);const v=async()=>{if(!(!o.trim()||l||b||m.current)){m.current=!0,y(!0);try{let t=a;t||(t=u(),i(t));const s=o.trim();f(""),await A(t,s)}finally{m.current=!1,y(!1)}}},w=()=>{const t=u();i(t)},R=(t,s)=>{s.stopPropagation(),L(t)},p=C.filter(t=>t.title.toLowerCase().includes(d.toLowerCase())||t.preview.toLowerCase().includes(d.toLowerCase()));return e.jsxs("div",{className:"h-full min-h-0 overflow-hidden flex gap-4 px-4 sm:px-6 xl:px-10 py-6",children:[e.jsxs("div",{className:"w-80 min-h-0 flex flex-col bg-[#f7f9fc] rounded-3xl border border-[#dde3eb] overflow-hidden",children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-12 h-12 bg-gradient-to-r from-sky-600 to-sky-500 rounded-2xl flex items-center justify-center",children:e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-10 h-10 object-contain drop-shadow-md"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-base font-bold font-display text-[#0a1628]",children:"L.O.L.I."}),e.jsx("p",{className:"text-[10px] text-[#5a6578]",children:"Your AI Math Tutor"})]})]}),e.jsxs("button",{onClick:w,className:"w-full bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white px-4 py-3 rounded-xl text-sm font-bold transition-all shadow-md hover:shadow-lg flex items-center justify-center gap-2",children:[e.jsx(O,{size:18}),"New Chat"]}),e.jsxs("div",{className:"relative mt-3",children:[e.jsx(H,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:14}),e.jsx(S,{type:"text",placeholder:"Search conversations...",value:d,onChange:t=>_(t.target.value),className:"w-full pl-9 pr-3 py-2 text-xs rounded-xl border-[#dde3eb] focus:border-sky-600 focus:ring-2 focus:ring-sky-100"})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3 space-y-2",children:[e.jsx("div",{className:"flex items-center justify-between mb-2 px-2",children:e.jsxs("span",{className:"text-xs font-bold text-[#5a6578]",children:[p.length," Conversations"]})}),e.jsx(N,{children:p.map(t=>e.jsxs(k.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},onClick:()=>i(t.id),className:`group p-3 rounded-2xl cursor-pointer transition-all duration-200 border relative ${a===t.id?"bg-sky-50 border-sky-200 shadow-sm":"bg-[#edf1f7] border-transparent hover:bg-[#dde3eb] hover:border-[#dde3eb]"}`,children:[e.jsxs("div",{className:"flex items-start justify-between mb-1",children:[e.jsx("h3",{className:`text-xs font-bold mb-0.5 pr-6 line-clamp-1 ${a===t.id?"text-sky-700":"text-[#0a1628]"}`,children:t.title}),e.jsx("button",{onClick:s=>R(t.id,s),className:"absolute top-2 right-2 p-1.5 rounded-lg opacity-0 group-hover:opacity-100 hover:bg-red-100 text-slate-500 hover:text-red-600 transition-all",children:e.jsx(Y,{size:12})})]}),e.jsx("p",{className:"text-[10px] text-[#5a6578] mb-2 line-clamp-2",children:t.preview}),e.jsxs("div",{className:"flex items-center justify-between text-[10px]",children:[e.jsx("span",{className:"text-slate-500",children:t.date}),e.jsxs("span",{className:`px-2 py-0.5 rounded-full ${a===t.id?"bg-sky-100 text-sky-600":"bg-[#dde3eb] text-[#5a6578]"}`,children:[t.messageCount," msgs"]})]})]},t.id))}),p.length===0&&e.jsxs("div",{className:"text-center py-8",children:[e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-16 h-16 object-contain mx-auto mb-2 opacity-60 drop-shadow-sm grayscale contrast-50"}),e.jsx("p",{className:"text-sm text-slate-500",children:"No conversations found"}),e.jsx("p",{className:"text-xs text-slate-500/60 mt-1",children:"Start a new chat!"})]})]})]}),e.jsx("div",{className:"flex-1 min-h-0 flex flex-col bg-[#f7f9fc] rounded-3xl border border-[#dde3eb] overflow-hidden",children:a?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex items-center justify-between flex-shrink-0",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"font-bold font-display text-[#0a1628]",children:n?.title}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n?.date})]}),e.jsx("div",{className:"flex items-center gap-2",children:n?.topics.map((t,s)=>e.jsx("span",{className:"px-3 py-1 bg-sky-50 text-sky-600 text-xs font-bold rounded-lg",children:t},s))})]}),e.jsxs("div",{ref:c,onScroll:E,className:"flex-1 overflow-y-auto overscroll-contain p-6 space-y-4 bg-[#edf1f7] min-h-0",children:[e.jsx(N,{children:h.map(t=>e.jsx(k.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:`flex ${t.sender==="user"?"justify-end":"justify-start"}`,children:e.jsxs("div",{className:`max-w-[70%] rounded-2xl px-5 py-3 ${t.sender==="user"?"bg-gradient-to-r from-sky-600 to-sky-500 text-white":"bg-white text-[#0a1628] shadow-md border border-[#dde3eb]"}`,children:[t.sender==="user"?e.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:t.text}):e.jsx(z,{children:t.text}),e.jsx("p",{className:`text-[10px] mt-1.5 ${t.sender==="user"?"text-sky-200":"text-slate-500"}`,children:t.timestamp})]})},t.id))}),g&&e.jsx("div",{className:"flex justify-start",children:e.jsx("div",{className:"bg-white text-[#0a1628] shadow-md border border-[#dde3eb] rounded-2xl px-5 py-3 max-w-[70%]",children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:150ms]"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:300ms]"})]})})})]}),e.jsx("div",{className:"p-4 border-t border-[#dde3eb] bg-white flex-shrink-0",children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx(S,{type:"text",value:o,onChange:t=>f(t.target.value),onKeyPress:t=>t.key==="Enter"&&v(),placeholder:"Ask me anything about math...",className:"flex-1 px-5 py-3 rounded-xl border-[#dde3eb] focus:border-sky-600 focus:ring-2 focus:ring-sky-100 text-sm"}),e.jsx($,{onClick:v,disabled:!o.trim()||l||b,className:"px-6 bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed shadow-md hover:shadow-lg",children:e.jsx(D,{size:18})})]})})]}):e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center p-8 text-center",children:[e.jsx("div",{className:"w-24 h-24 bg-gradient-to-r from-sky-100 to-cyan-100 rounded-3xl flex items-center justify-center mb-6",children:e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-20 h-20 object-contain drop-shadow-lg"})}),e.jsx("h2",{className:"text-2xl font-bold font-display text-[#0a1628] mb-1",children:"Welcome to L.O.L.I."}),e.jsx("p",{className:"text-sky-600 text-sm font-bold tracking-wide uppercase mb-4",children:"Logical Operations & Learning Intelligence"}),e.jsx("p",{className:"text-[#5a6578] mb-6 max-w-md",children:"Your personal AI math tutor is here to help! Start a new conversation or select one from the sidebar."}),e.jsx("button",{onClick:w,className:"px-6 py-3 bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white rounded-xl font-bold shadow-lg hover:shadow-xl transition-all",children:"Start Your First Chat"}),e.jsx("div",{className:"mt-8 grid grid-cols-3 gap-4 max-w-2xl",children:["Algebra","Geometry","Calculus"].map(t=>e.jsxs("div",{className:"p-4 bg-[#edf1f7] rounded-xl border border-[#dde3eb]",children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628]",children:t}),e.jsxs("p",{className:"text-xs text-[#5a6578] mt-1",children:["Get help with ",t.toLowerCase()]})]},t))})]})})]})};export{ie as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/apiService-ZZIWaV70.js","assets/index-CmBdDSkw.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/index-CR2i2gnI.css"])))=>i.map(i=>d[i]); +import{z as B,_ as F,e as N,m as k}from"./index-CmBdDSkw.js";import{r,j as e}from"./vendor-react-Dexh7fmo.js";import{B as $}from"./button-BP5cklmU.js";import{I as S}from"./input-DBkKXOmF.js";import z from"./ChatMarkdown-XT9mMuBR.js";import{P as O}from"./plus-Dip_RqNl.js";import{S as H}from"./search-zqCwfHe1.js";import{T as Y}from"./trash-2-BGLuKCox.js";import{S as D}from"./send-OMGWblBc.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-markdown-C5ikSDMA.js";const ie=()=>{const{sessions:C,activeSessionId:a,isLoading:l,loadingSessionId:I,setActiveSessionId:i,createNewSession:u,sendMessage:A,deleteSession:L,getActiveSession:T}=B(),[d,_]=r.useState(""),[o,f]=r.useState(""),[b,y]=r.useState(!1),c=r.useRef(null),x=r.useRef(!0),m=r.useRef(!1),n=T(),h=n?.messages||[],M=h.some(t=>t.sender==="ai"&&t.id.startsWith("stream-")),g=l&&a===I&&!M,j=(t="auto")=>{const s=c.current;s&&s.scrollTo({top:s.scrollHeight,behavior:t})},P=()=>{const t=c.current;return t?t.scrollHeight-t.scrollTop-t.clientHeight<=120:!0},E=()=>{x.current=P()};r.useEffect(()=>{F(async()=>{const{warmupBackend:t}=await import("./apiService-ZZIWaV70.js");return{warmupBackend:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(({warmupBackend:t})=>{t()}).catch(t=>{console.warn("AI chat warmup skipped:",t)})},[]),r.useEffect(()=>{if(!x.current)return;const t=window.requestAnimationFrame(()=>j("auto"));return()=>window.cancelAnimationFrame(t)},[h,g]),r.useEffect(()=>{x.current=!0,j("auto")},[a]);const v=async()=>{if(!(!o.trim()||l||b||m.current)){m.current=!0,y(!0);try{let t=a;t||(t=u(),i(t));const s=o.trim();f(""),await A(t,s)}finally{m.current=!1,y(!1)}}},w=()=>{const t=u();i(t)},R=(t,s)=>{s.stopPropagation(),L(t)},p=C.filter(t=>t.title.toLowerCase().includes(d.toLowerCase())||t.preview.toLowerCase().includes(d.toLowerCase()));return e.jsxs("div",{className:"h-full min-h-0 overflow-hidden flex gap-4 px-4 sm:px-6 xl:px-10 py-6",children:[e.jsxs("div",{className:"w-80 min-h-0 flex flex-col bg-[#f7f9fc] rounded-3xl border border-[#dde3eb] overflow-hidden",children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-12 h-12 bg-gradient-to-r from-sky-600 to-sky-500 rounded-2xl flex items-center justify-center",children:e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-10 h-10 object-contain drop-shadow-md"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-base font-bold font-display text-[#0a1628]",children:"L.O.L.I."}),e.jsx("p",{className:"text-[10px] text-[#5a6578]",children:"Your AI Math Tutor"})]})]}),e.jsxs("button",{onClick:w,className:"w-full bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white px-4 py-3 rounded-xl text-sm font-bold transition-all shadow-md hover:shadow-lg flex items-center justify-center gap-2",children:[e.jsx(O,{size:18}),"New Chat"]}),e.jsxs("div",{className:"relative mt-3",children:[e.jsx(H,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:14}),e.jsx(S,{type:"text",placeholder:"Search conversations...",value:d,onChange:t=>_(t.target.value),className:"w-full pl-9 pr-3 py-2 text-xs rounded-xl border-[#dde3eb] focus:border-sky-600 focus:ring-2 focus:ring-sky-100"})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3 space-y-2",children:[e.jsx("div",{className:"flex items-center justify-between mb-2 px-2",children:e.jsxs("span",{className:"text-xs font-bold text-[#5a6578]",children:[p.length," Conversations"]})}),e.jsx(N,{children:p.map(t=>e.jsxs(k.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},onClick:()=>i(t.id),className:`group p-3 rounded-2xl cursor-pointer transition-all duration-200 border relative ${a===t.id?"bg-sky-50 border-sky-200 shadow-sm":"bg-[#edf1f7] border-transparent hover:bg-[#dde3eb] hover:border-[#dde3eb]"}`,children:[e.jsxs("div",{className:"flex items-start justify-between mb-1",children:[e.jsx("h3",{className:`text-xs font-bold mb-0.5 pr-6 line-clamp-1 ${a===t.id?"text-sky-700":"text-[#0a1628]"}`,children:t.title}),e.jsx("button",{onClick:s=>R(t.id,s),className:"absolute top-2 right-2 p-1.5 rounded-lg opacity-0 group-hover:opacity-100 hover:bg-red-100 text-slate-500 hover:text-red-600 transition-all",children:e.jsx(Y,{size:12})})]}),e.jsx("p",{className:"text-[10px] text-[#5a6578] mb-2 line-clamp-2",children:t.preview}),e.jsxs("div",{className:"flex items-center justify-between text-[10px]",children:[e.jsx("span",{className:"text-slate-500",children:t.date}),e.jsxs("span",{className:`px-2 py-0.5 rounded-full ${a===t.id?"bg-sky-100 text-sky-600":"bg-[#dde3eb] text-[#5a6578]"}`,children:[t.messageCount," msgs"]})]})]},t.id))}),p.length===0&&e.jsxs("div",{className:"text-center py-8",children:[e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-16 h-16 object-contain mx-auto mb-2 opacity-60 drop-shadow-sm grayscale contrast-50"}),e.jsx("p",{className:"text-sm text-slate-500",children:"No conversations found"}),e.jsx("p",{className:"text-xs text-slate-500/60 mt-1",children:"Start a new chat!"})]})]})]}),e.jsx("div",{className:"flex-1 min-h-0 flex flex-col bg-[#f7f9fc] rounded-3xl border border-[#dde3eb] overflow-hidden",children:a?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex items-center justify-between flex-shrink-0",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"font-bold font-display text-[#0a1628]",children:n?.title}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n?.date})]}),e.jsx("div",{className:"flex items-center gap-2",children:n?.topics.map((t,s)=>e.jsx("span",{className:"px-3 py-1 bg-sky-50 text-sky-600 text-xs font-bold rounded-lg",children:t},s))})]}),e.jsxs("div",{ref:c,onScroll:E,className:"flex-1 overflow-y-auto overscroll-contain p-6 space-y-4 bg-[#edf1f7] min-h-0",children:[e.jsx(N,{children:h.map(t=>e.jsx(k.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:`flex ${t.sender==="user"?"justify-end":"justify-start"}`,children:e.jsxs("div",{className:`max-w-[70%] rounded-2xl px-5 py-3 ${t.sender==="user"?"bg-gradient-to-r from-sky-600 to-sky-500 text-white":"bg-white text-[#0a1628] shadow-md border border-[#dde3eb]"}`,children:[t.sender==="user"?e.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:t.text}):e.jsx(z,{children:t.text}),e.jsx("p",{className:`text-[10px] mt-1.5 ${t.sender==="user"?"text-sky-200":"text-slate-500"}`,children:t.timestamp})]})},t.id))}),g&&e.jsx("div",{className:"flex justify-start",children:e.jsx("div",{className:"bg-white text-[#0a1628] shadow-md border border-[#dde3eb] rounded-2xl px-5 py-3 max-w-[70%]",children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:150ms]"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:300ms]"})]})})})]}),e.jsx("div",{className:"p-4 border-t border-[#dde3eb] bg-white flex-shrink-0",children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx(S,{type:"text",value:o,onChange:t=>f(t.target.value),onKeyPress:t=>t.key==="Enter"&&v(),placeholder:"Ask me anything about math...",className:"flex-1 px-5 py-3 rounded-xl border-[#dde3eb] focus:border-sky-600 focus:ring-2 focus:ring-sky-100 text-sm"}),e.jsx($,{onClick:v,disabled:!o.trim()||l||b,className:"px-6 bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed shadow-md hover:shadow-lg",children:e.jsx(D,{size:18})})]})})]}):e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center p-8 text-center",children:[e.jsx("div",{className:"w-24 h-24 bg-gradient-to-r from-sky-100 to-cyan-100 rounded-3xl flex items-center justify-center mb-6",children:e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-20 h-20 object-contain drop-shadow-lg"})}),e.jsx("h2",{className:"text-2xl font-bold font-display text-[#0a1628] mb-1",children:"Welcome to L.O.L.I."}),e.jsx("p",{className:"text-sky-600 text-sm font-bold tracking-wide uppercase mb-4",children:"Logical Operations & Learning Intelligence"}),e.jsx("p",{className:"text-[#5a6578] mb-6 max-w-md",children:"Your personal AI math tutor is here to help! Start a new conversation or select one from the sidebar."}),e.jsx("button",{onClick:w,className:"px-6 py-3 bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white rounded-xl font-bold shadow-lg hover:shadow-xl transition-all",children:"Start Your First Chat"}),e.jsx("div",{className:"mt-8 grid grid-cols-3 gap-4 max-w-2xl",children:["Algebra","Geometry","Calculus"].map(t=>e.jsxs("div",{className:"p-4 bg-[#edf1f7] rounded-xl border border-[#dde3eb]",children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628]",children:t}),e.jsxs("p",{className:"text-xs text-[#5a6578] mt-1",children:["Get help with ",t.toLowerCase()]})]},t))})]})})]})};export{ie as default}; diff --git a/assets/AdminDashboard-uzlVc26h.js b/assets/AdminDashboard-BkN0KBRk.js similarity index 91% rename from assets/AdminDashboard-uzlVc26h.js rename to assets/AdminDashboard-BkN0KBRk.js index 0f3cf58c22649610e1468ce14b2b4a76a092bb7a..6a7b85b0cdf482a15d20a30785f08cfd4f3fb2f5 100644 --- a/assets/AdminDashboard-uzlVc26h.js +++ b/assets/AdminDashboard-BkN0KBRk.js @@ -1,49 +1,54 @@ -import{r as c,j as e}from"./vendor-react-Dexh7fmo.js";import Ie from"./Sidebar-BH3yU0R9.js";import oe from"./ConfirmModal-B9CUrvQP.js";import{B as W}from"./button-DWdPuxDU.js";import{I as z}from"./input-DBkKXOmF.js";import{R as Ae,D as De,a as Pe,b as Te,c as Me,d as Ee,e as Qe,F as rs,V as is,I as fe,f as ce,T as ns}from"./dialog-C0Vo-dln.js";import{S as F,a as O,b as B,c as q,d as h}from"./select-CH9gS87N.js";import{h as X,e as V,q as me,o as ve,l as ye,w as Fe,u as Je,a as xe,d as Le,k as Ke,c as ds}from"./vendor-firebase-firestore-CkuVbeP5.js";import{c as Y,d as $,u as ze,t as M,m as _,T as we,Z as Ye,D as cs,j as os,k as ms,F as xs,M as hs}from"./index-DGWrSMOK.js";import{apiService as Ze,ApiError as us}from"./apiService-BuaHZ1Ho.js";import{P as es}from"./plus-DVCmopn-.js";import{L as Q}from"./loader-circle-BUf2fYcT.js";import{C as ps}from"./circle-check-big-mv2CRLCE.js";import{P as Oe}from"./pen-line-CX1xh2Q2.js";import{T as Se}from"./trash-2-CBQVcuBL.js";import{S as Re}from"./search-O5gEqRZi.js";import{U as he}from"./users-BRS21lR4.js";import{B as K}from"./book-open-B5Xvd1JL.js";import{C as gs}from"./circle-help-BOZYr6oH.js";import{C as ke}from"./calendar-19p2TrVX.js";import{C as be}from"./circle-alert-D8UKyVHS.js";import{E as Be}from"./eye-pSTVqBYO.js";import{S as ie}from"./shield-Cin8984_.js";import{S as J}from"./switch-DbjIWZtF.js";import{S as fs}from"./LogoutActionButton-D-8gok3U.js";import{B as bs}from"./bell-DeNrtKrI.js";import{S as js}from"./save-B5SCmCsP.js";import{R as vs,I as Ns,F as ys}from"./vendor-radix-B-ht8aK0.js";import{c as $e}from"./utils-BQQgILNW.js";import{G as Ue}from"./graduation-cap-Cr-ek4Bs.js";import{T as ss}from"./target-7Gevl8jn.js";import{C as ws}from"./clock-qHFbMxrB.js";import{A as je}from"./award-DpLN2BvV.js";import{B as Ss}from"./brain-DHmY5cbv.js";import{F as ks,T as Cs}from"./trending-down-C7JHnrbb.js";import{D as As}from"./download-DINpalm9.js";import{C as Ce}from"./chart-column-CJzwyNMx.js";import{a as Ds}from"./chevron-up-BJyzaJs7.js";import{M as Ps}from"./minus-BjTBUAx2.js";import{T as Ts}from"./trending-up-B2MPUPwk.js";import"./tooltip-D9lDiW9U.js";import"./x-Bj25rnWX.js";import"./chevron-right-DxXkA9aZ.js";import"./message-square-DIXhbelM.js";import"./swords-Bn50CmyM.js";import"./trophy-73YPSH67.js";import"./shirt-C4Gsu12G.js";import"./log-out-DYYu4gFF.js";import"./clsx-B-dksMZM.js";import"./check-BONc3QkK.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** +import{r as c,j as e}from"./vendor-react-Dexh7fmo.js";import Ie from"./Sidebar-oxQVx2NC.js";import oe from"./ConfirmModal-BO6r5veY.js";import{B as W}from"./button-BP5cklmU.js";import{I as z}from"./input-DBkKXOmF.js";import{R as Ae,D as De,a as Pe,b as Te,c as Me,d as Ee,e as Qe,F as rs,V as is,I as fe,f as ce,T as ns}from"./dialog-IPw3v6ZK.js";import{S as F,a as O,b as B,c as q,d as h}from"./select-D13dsNiO.js";import{h as X,e as V,q as me,o as ve,l as ye,w as Fe,u as Je,a as xe,d as Le,k as Ke,c as ds}from"./vendor-firebase-firestore-CkuVbeP5.js";import{c as J,d as $,u as ze,t as M,m as _,T as we,Z as Ye,D as cs,j as os,k as ms,F as xs,M as hs}from"./index-CmBdDSkw.js";import{apiService as Ze,ApiError as us}from"./apiService-ZZIWaV70.js";import{P as es}from"./plus-Dip_RqNl.js";import{L as Q}from"./loader-circle-BfAbw6jC.js";import{C as ps}from"./circle-check-big-C_XnLpga.js";import{P as Oe}from"./pen-line-CBic_SY8.js";import{T as Se}from"./trash-2-BGLuKCox.js";import{S as Re}from"./search-zqCwfHe1.js";import{U as he}from"./users-CdMqBLwG.js";import{B as Y}from"./book-open-BH_yilLK.js";import{C as gs}from"./circle-help-CCtzJ5sC.js";import{C as ke}from"./calendar-CP-HCx1y.js";import{C as be}from"./circle-alert-DWP6udG1.js";import{E as Be}from"./eye-DyGZzCgK.js";import{S as ie}from"./shield-B-mvw6Dl.js";import{S as K}from"./switch-CISoEIXM.js";import{S as fs}from"./LogoutActionButton-TpO-by05.js";import{B as bs}from"./bell-B1VXtbbh.js";import{S as js}from"./save-XQRYdTi9.js";import{R as vs,I as Ns,F as ys}from"./vendor-radix-CxzAJozq.js";import{c as $e}from"./utils-BQQgILNW.js";import{G as Ue}from"./graduation-cap-BxtuU7H1.js";import{T as ss}from"./target-BCguvjbb.js";import{C as ws}from"./clock-jSWTKlqH.js";import{A as je}from"./award-COlS18fi.js";import{B as Ss}from"./brain-DfMjTiNx.js";import{F as ks}from"./funnel-BHtkrar1.js";import{D as Cs}from"./download-DMZBRA1T.js";import{C as Ce}from"./chart-column-DzJCKCOe.js";import{a as As}from"./chevron-up-CwQX0CFg.js";import{M as Ds}from"./minus-8VjeOOlm.js";import{T as Ps}from"./trending-up-6u76yy2e.js";import"./tooltip-Bn7-0zmi.js";import"./x-BDSBB3q9.js";import"./chevron-right-BSCyuP_x.js";import"./message-square-BxgAV6zJ.js";import"./swords-CJyIL97F.js";import"./trophy-DrL6Ph2J.js";import"./shirt-CHOJLYIJ.js";import"./log-out-QZHYEhcR.js";import"./clsx-B-dksMZM.js";import"./check-D1XVAVXL.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ms=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],qe=Y("activity",Ms);/** + */const Ts=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],qe=J("activity",Ts);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Es=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]],Ls=Y("ban",Es);/** + */const Ms=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]],Es=J("ban",Ms);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const zs=[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]],Rs=Y("book-marked",zs);/** + */const Ls=[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]],zs=J("book-marked",Ls);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $s=[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]],Us=Y("chart-pie",$s);/** + */const Rs=[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]],$s=J("chart-pie",Rs);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Is=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],Fs=Y("grid-3x3",Is);/** + */const Us=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],Is=J("grid-3x3",Us);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Os=[["path",{d:"M14 22v-4a2 2 0 1 0-4 0v4",key:"hhkicm"}],["path",{d:"m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10",key:"1xqip1"}],["path",{d:"M18 5v17",key:"1sw6gf"}],["path",{d:"m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6",key:"9d2mlk"}],["path",{d:"M6 5v17",key:"1xfsm0"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}]],Bs=Y("school",Os);/** + */const Fs=[["path",{d:"M14 22v-4a2 2 0 1 0-4 0v4",key:"hhkicm"}],["path",{d:"m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10",key:"1xqip1"}],["path",{d:"M18 5v17",key:"1sw6gf"}],["path",{d:"m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6",key:"9d2mlk"}],["path",{d:"M6 5v17",key:"1xfsm0"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}]],Os=J("school",Fs);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const qs=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Vs=Y("server",qs);/** + */const Bs=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],qs=J("server",Bs);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Gs=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],_s=Y("square-pen",Gs);/** + */const Vs=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Gs=J("square-pen",Vs);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ws=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["polyline",{points:"16 11 18 13 22 9",key:"1pwet4"}]],Hs=Y("user-check",Ws);function Xs(t){return t?t.charAt(0).toUpperCase()+t.slice(1):"Student"}function Qs(t){if(t.role==="student"){const a=t.grade||"",l=t.section||"";return[a,l].filter(Boolean).join(" - ")||"Student"}return t.role==="teacher"?t.department||"Mathematics":t.role==="admin"?t.department||"System":""}function Js(t){if(!t||!t.toDate)return"Never";const a=t.toDate(),r=new Date().getTime()-a.getTime(),d=Math.floor(r/6e4);if(d<1)return"Just now";if(d<60)return`${d} minute${d!==1?"s":""} ago`;const m=Math.floor(d/60);if(m<24)return`${m} hour${m!==1?"s":""} ago`;const b=Math.floor(m/24);return b<7?`${b} day${b!==1?"s":""} ago`:a.toLocaleDateString()}function ts(t){if(!t||!t.toDate)return new Date().toISOString().replace("T"," ").slice(0,19);const a=t.toDate();return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")} ${String(a.getHours()).padStart(2,"0")}:${String(a.getMinutes()).padStart(2,"0")}:${String(a.getSeconds()).padStart(2,"0")}`}function Ks(){return ts({toDate:()=>new Date})}function as(t){if(t instanceof us){try{const a=JSON.parse(t.responseBody);if(a?.detail&&typeof a.detail=="string")return a.detail}catch{}return`Request failed (${t.status}).`}return t instanceof Error?t.message:"Request failed."}async function Ys(){try{const t=me(V($,"users"),ve("createdAt","desc"));return(await X(t)).docs.map(l=>{const r=l.data();return{id:l.id,name:r.name||"Unknown",email:r.email||"",role:Xs(r.role),status:r.status||"Active",department:Qs(r),grade:r.grade||"",section:r.section||"",classSection:[r.grade||"",r.section||""].filter(Boolean).join(" - "),lrn:r.lrn||"",photo:r.photo||r.photoURL||"",lastLogin:Js(r.lastLogin)}})}catch(t){return console.error("[adminService] getAllUsers error:",t),[]}}async function Ve(t,a){const l=Le($,"users",t),r={updatedAt:xe()};if(a.name!==void 0&&(r.name=a.name),a.status!==void 0&&(r.status=a.status),a.role!==void 0&&(r.role=a.role.toLowerCase()),a.department!==void 0&&(r.department=a.department,a.role?.toLowerCase()==="student"&&(r.grade=a.department)),a.grade!==void 0&&(r.grade=a.grade),a.section!==void 0&&(r.section=a.section),a.lrn!==void 0&&(r.lrn=a.lrn),r.grade||r.section){const d=r.grade||"",m=r.section||"";r.classSectionId=[d,m].filter(Boolean).join("_").replace(/\s+/g,"_").toLowerCase()}await Je(l,r)}async function Zs(t){try{const a=await Ze.deleteAdminUser(t);if(!a.success)throw new Error(a.message||"Failed to delete user account.")}catch(a){throw new Error(as(a))}}async function et(t){try{const a=await Ze.createAdminUser({name:t.name.trim(),email:t.email.trim().toLowerCase(),password:t.password,confirmPassword:t.confirmPassword,role:t.role,status:t.status,grade:t.grade.trim(),section:t.section.trim(),...t.lrn?.trim()?{lrn:t.lrn.trim()}:{}});if(!a.success||!a.userCreated||!a.uid)throw new Error(a.message||"Failed to create user account.");return{uid:a.uid,userCreated:a.userCreated,emailSent:a.emailSent,resultCode:a.resultCode,message:a.message,warnings:a.warnings??[],emailError:a.emailError}}catch(a){throw new Error(as(a))}}async function ls(){try{const t=me(V($,"auditLogs"),ve("timestampRaw","desc"),ye(100));return(await X(t)).docs.map(l=>{const r=l.data();return{id:l.id,severity:r.severity||"Info",timestamp:r.timestamp||ts(r.timestampRaw),user:r.user||{name:"System",role:"Admin",avatar:null},action:r.action||"",category:r.category||"System",details:r.details||""}})}catch(t){return console.error("[adminService] getAuditLogs error:",t),[]}}async function ae(t,a,l,r,d){await Ke(V($,"auditLogs"),{severity:l,timestamp:Ks(),timestampRaw:xe(),user:d,action:t,category:a,details:r})}async function st(){try{const t=me(V($,"modules"),ve("createdAt","desc"));return(await X(t)).docs.map(l=>{const r=l.data(),d=r.createdAt;return{id:l.id,title:r.title||"",subject:r.subject||"",type:r.type||"Video",difficulty:r.difficulty||"Beginner",status:r.status||"Draft",assigned:r.assigned||0,created:d?.toDate?.()?.toLocaleDateString()??(r.created||"Unknown")}})}catch(t){return console.error("[adminService] getModules error:",t),[]}}async function tt(t){return(await Ke(V($,"modules"),{...t,createdAt:xe(),updatedAt:xe()})).id}async function at(t,a){await Je(Le($,"modules",t),{...a,updatedAt:xe()})}async function lt(t){await ds(Le($,"modules",t))}async function rt(){try{const t=await X(V($,"users"));let a=0,l=0,r=0;t.docs.forEach(v=>{const N=v.data();N.role==="student"&&(a++,N.overallRisk==="High"&&r++),N.role==="teacher"&&N.status!=="Inactive"&&l++});let d=0;try{d=(await X(V($,"classrooms"))).size}catch{}let m=0;try{m=(await X(V($,"xpActivities"))).size}catch{}let b=0;try{const v=await X(V($,"progress")),N=[];v.docs.forEach(x=>{const g=x.data();typeof g.averageScore=="number"&&N.push(g.averageScore)}),b=N.length>0?Math.round(N.reduce((x,g)=>x+g,0)/N.length):0}catch{}return{totalStudents:a,activeTeachers:l,totalClasses:d,atRiskStudents:r,avgPerformance:b,aiPredictions:m}}catch(t){return console.error("[adminService] getDashboardStats error:",t),{totalStudents:0,activeTeachers:0,totalClasses:0,atRiskStudents:0,avgPerformance:0,aiPredictions:0}}}async function it(t=3){const a=r=>{const d=r.data(),m=d.level||1,b=d.currentXP||0,v=Math.min(100,m*8+Math.round(b/100));return{id:r.id,name:d.name||"Student",avatar:d.photo||d.photoURL||`https://ui-avatars.com/api/?name=${encodeURIComponent(d.name||"S")}&background=0d9488&color=fff`,class:d.grade||"Math",performance:v,level:m}},l=r=>r.sort((d,m)=>m.level!==d.level?m.level-d.level:m.performance-d.performance).slice(0,t);try{const r=me(V($,"users"),Fe("role","==","student"),ve("level","desc"),ye(t)),d=await X(r);return l(d.docs.map(a))}catch(r){if(r?.code==="failed-precondition")try{const m=me(V($,"users"),Fe("role","==","student"),ye(Math.max(50,t))),b=await X(m);return l(b.docs.map(a))}catch(m){return console.error("[adminService] getTopPerformers fallback error:",m),[]}return console.error("[adminService] getTopPerformers error:",r),[]}}async function nt(){try{const t=await X(V($,"users"));let a=0,l=0,r=0,d=0,m=0;t.docs.forEach(N=>{const x=N.data();x.role==="student"&&(a++,x.overallRisk==="High"&&r++,x.streak>0&&m++,d+=x.totalXP||0),x.role==="teacher"&&l++});let b=0;try{b=(await X(V($,"achievements"))).size}catch{}let v=0;try{v=(await X(V($,"chatSessions"))).size}catch{}return{totalActiveUsers:a+l,totalStudents:a,totalTeachers:l,atRiskStudents:r,achievementsUnlocked:b,totalXPEarned:d,activeStreaks:m,aiTutorSessions:v}}catch(t){return console.error("[adminService] getAnalyticsSummary error:",t),{totalActiveUsers:0,totalStudents:0,totalTeachers:0,atRiskStudents:0,achievementsUnlocked:0,totalXPEarned:0,activeStreaks:0,aiTutorSessions:0}}}const dt=()=>{const{userProfile:t}=ze(),[a,l]=c.useState([]),[r,d]=c.useState(!0),[m,b]=c.useState(!1),[v,N]=c.useState(!1),[x,g]=c.useState(""),[E,G]=c.useState("All Types"),[D,u]=c.useState("All Status"),[S,C]=c.useState(!1),[U,k]=c.useState(!1),[T,A]=c.useState(null),[y,P]=c.useState(null),[i,w]=c.useState({title:"",subject:"",type:"Video",difficulty:"Beginner",status:"Draft",assigned:0}),n=c.useCallback(async()=>{d(!0);try{const s=await st();l(s)}catch{M.error("Failed to load modules")}finally{d(!1)}},[]);c.useEffect(()=>{n()},[n]);const I=()=>{P(null),w({title:"",subject:"",type:"Video",difficulty:"Beginner",status:"Draft",assigned:0}),C(!0)},j=s=>{P(s),w({title:s.title,subject:s.subject,type:s.type,difficulty:s.difficulty,status:s.status,assigned:s.assigned}),C(!0)},R=async()=>{if(!i.title.trim()||!i.subject.trim()){M.error("Title and subject are required");return}b(!0);try{y?(await at(y.id,i),await ae("Module Updated","Content","Info",`Updated module: "${i.title}"`,{name:t?.name||"Admin",role:"Admin",avatar:t?.photo||null}),M.success("Module updated")):(await tt(i),await ae("Module Created","Content","Info",`Created new module: "${i.title}" (${i.subject})`,{name:t?.name||"Admin",role:"Admin",avatar:t?.photo||null}),M.success("Module created")),await n(),C(!1)}catch{M.error("Failed to save module")}finally{b(!1)}},o=s=>{A(s),k(!0)},L=async()=>{if(!(!T||v)){N(!0);try{await lt(T.id),await ae("Module Deleted","Content","Warning",`Deleted module: "${T.title}"`,{name:t?.name||"Admin",role:"Admin",avatar:t?.photo||null}),M.success("Module deleted"),l(s=>s.filter(p=>p.id!==T.id)),k(!1),A(null)}catch{M.error("Failed to delete module")}finally{N(!1)}}},Z=a.length,se=a.filter(s=>s.status==="Published").length,f=a.filter(s=>s.status==="Draft").length,H=a.filter(s=>s.status==="Archived").length,ee=s=>{switch(s){case"Published":return"bg-green-100 text-green-700 border-green-200";case"Draft":return"bg-rose-100 text-rose-700 border-rose-200";case"Archived":return"bg-[#edf1f7] text-[#0a1628] border-[#dde3eb]";default:return"bg-[#edf1f7] text-[#0a1628]"}},ne=s=>{switch(s){case"Beginner":return"bg-sky-50 text-sky-700";case"Intermediate":return"bg-sky-50 text-sky-700";case"Advanced":return"bg-sky-50 text-sky-700";default:return"bg-[#edf1f7] text-[#0a1628]"}},ue=s=>{switch(s){case"Video":return e.jsx(is,{size:16,className:"text-sky-600"});case"Quiz":return e.jsx(gs,{size:16,className:"text-teal-600"});default:return e.jsx(rs,{size:16,className:"text-[#5a6578]"})}},le=s=>{switch(s){case"Video":return"bg-sky-100 text-sky-700";case"Quiz":return"bg-teal-100 text-teal-700";default:return"bg-[#edf1f7] text-[#0a1628]"}},pe=a.filter(s=>{const p=s.title.toLowerCase().includes(x.toLowerCase())||s.subject.toLowerCase().includes(x.toLowerCase()),re=E==="All Types"||s.type===E,te=D==="All Status"||s.status===D;return p&&re&&te});return e.jsxs(_.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Content Management"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Manage learning modules, templates, and educational content"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(W,{variant:"outline",className:"gap-2 border-[#dde3eb] hover:bg-[#edf1f7]",onClick:n,children:[e.jsx(Ae,{size:16}),"Refresh"]}),e.jsxs(W,{className:"gap-2 bg-sky-600 hover:bg-sky-700 text-white",onClick:I,children:[e.jsx(es,{size:16}),"Create Module"]})]}),r?e.jsx("div",{className:"flex items-center justify-center h-24",children:e.jsx(Q,{size:24,className:"animate-spin text-sky-500"})}):null,e.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("p",{className:"text-xs font-bold text-[#5a6578] mb-1",children:"Total Modules"}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:Z})]}),e.jsx("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(ps,{size:14,className:"text-green-500"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Published"})]}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:se})]})}),e.jsx("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Oe,{size:14,className:"text-rose-500"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Drafts"})]}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:f})]})}),e.jsx("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Se,{size:14,className:"text-slate-500"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Archived"})]}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:H})]})})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Re,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx(z,{type:"text",placeholder:"Search modules by title or topic...",className:"pl-10 bg-[#edf1f7] border-[#dde3eb]",value:x,onChange:s=>g(s.target.value)})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs(F,{value:E,onValueChange:G,children:[e.jsx(O,{className:"w-full sm:w-[160px]",children:e.jsx(B,{placeholder:"All Types"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Types",children:"All Types"}),e.jsx(h,{value:"Video",children:"Video"}),e.jsx(h,{value:"Quiz",children:"Quiz"}),e.jsx(h,{value:"Document",children:"Document"})]})]}),e.jsxs(F,{value:D,onValueChange:u,children:[e.jsx(O,{className:"w-full sm:w-[160px]",children:e.jsx(B,{placeholder:"All Status"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Status",children:"All Status"}),e.jsx(h,{value:"Published",children:"Published"}),e.jsx(h,{value:"Draft",children:"Draft"}),e.jsx(h,{value:"Archived",children:"Archived"})]})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] shadow-sm overflow-x-auto",children:[e.jsxs("table",{className:"w-full min-w-[760px] text-left border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[#edf1f7] border-b border-[#dde3eb]",children:[e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Module"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Type"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Difficulty"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Status"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Assigned"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Created"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y divide-[#dde3eb]",children:pe.map(s=>e.jsxs("tr",{className:"hover:bg-[#edf1f7] transition-colors",children:[e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-8 h-8 rounded-lg flex items-center justify-center ${s.type==="Video"?"bg-sky-100 text-sky-600":s.type==="Quiz"?"bg-teal-100 text-teal-600":"bg-[#edf1f7] text-[#5a6578]"}`,children:ue(s.type)}),e.jsxs("div",{children:[e.jsx("p",{className:"font-bold text-[#0a1628] text-sm",children:s.title}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:s.subject})]})]})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded text-xs font-bold ${le(s.type)}`,children:s.type})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded text-xs font-bold ${ne(s.difficulty)}`,children:s.difficulty})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded-full text-xs font-bold border ${ee(s.status)}`,children:s.status})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-1 text-[#5a6578] text-sm",children:[e.jsx(he,{size:14}),e.jsx("span",{children:s.assigned})]})}),e.jsx("td",{className:"p-4 text-sm text-[#5a6578]",children:s.created||"Unknown"}),e.jsx("td",{className:"p-4 text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:()=>j(s),"aria-label":`Edit module ${s.title}`,className:"p-2 hover:bg-[#dde3eb] rounded-lg text-[#5a6578] hover:text-sky-600 transition-colors",children:e.jsx(Oe,{size:16})}),e.jsx("button",{type:"button",onClick:()=>o(s),"aria-label":`Delete module ${s.title}`,className:"p-2 hover:bg-red-50 rounded-lg text-[#5a6578] hover:text-red-600 transition-colors",children:e.jsx(Se,{size:16})})]})})]},s.id))})]}),pe.length===0&&!r&&e.jsxs("div",{className:"p-12 text-center text-[#5a6578]",children:[e.jsx(K,{size:48,className:"mx-auto mb-4 text-slate-500"}),e.jsx("p",{className:"font-medium",children:"No modules found"}),e.jsx("p",{className:"text-sm",children:a.length===0?"Create your first module to get started":"Try adjusting your search or filters"})]})]}),e.jsx(De,{open:S,onOpenChange:C,children:e.jsxs(Pe,{className:"sm:max-w-[480px]",children:[e.jsxs(Te,{children:[e.jsx(Me,{children:y?"Edit Module":"Create New Module"}),e.jsx(Ee,{children:y?"Update module details below.":"Fill in the details to create a new learning module."})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Title"}),e.jsx(z,{value:i.title,onChange:s=>w({...i,title:s.target.value}),placeholder:"Module title",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Subject"}),e.jsx(z,{value:i.subject,onChange:s=>w({...i,subject:s.target.value}),placeholder:"e.g. Algebra, Calculus",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Type"}),e.jsx("div",{className:"sm:col-span-3",children:e.jsxs(F,{value:i.type,onValueChange:s=>w({...i,type:s}),children:[e.jsx(O,{children:e.jsx(B,{})}),e.jsxs(q,{children:[e.jsx(h,{value:"Video",children:"Video"}),e.jsx(h,{value:"Quiz",children:"Quiz"}),e.jsx(h,{value:"Document",children:"Document"})]})]})})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Difficulty"}),e.jsx("div",{className:"sm:col-span-3",children:e.jsxs(F,{value:i.difficulty,onValueChange:s=>w({...i,difficulty:s}),children:[e.jsx(O,{children:e.jsx(B,{})}),e.jsxs(q,{children:[e.jsx(h,{value:"Beginner",children:"Beginner"}),e.jsx(h,{value:"Intermediate",children:"Intermediate"}),e.jsx(h,{value:"Advanced",children:"Advanced"}),e.jsx(h,{value:"N/A",children:"N/A"})]})]})})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Status"}),e.jsx("div",{className:"sm:col-span-3",children:e.jsxs(F,{value:i.status,onValueChange:s=>w({...i,status:s}),children:[e.jsx(O,{children:e.jsx(B,{})}),e.jsxs(q,{children:[e.jsx(h,{value:"Draft",children:"Draft"}),e.jsx(h,{value:"Published",children:"Published"}),e.jsx(h,{value:"Archived",children:"Archived"})]})]})})]})]}),e.jsxs(Qe,{children:[e.jsx(W,{variant:"outline",onClick:()=>C(!1),disabled:m,children:"Cancel"}),e.jsxs(W,{onClick:R,className:"bg-sky-600 hover:bg-sky-700 text-white",disabled:m,children:[m?e.jsx(Q,{size:16,className:"animate-spin mr-2"}):null,y?"Save Changes":"Create Module"]})]})]})}),e.jsx(oe,{isOpen:U,onClose:()=>{v||(k(!1),A(null))},onConfirm:L,title:"Delete Module?",message:T?`Delete "${T.title}"? This cannot be undone.`:"Delete this module? This cannot be undone.",confirmText:v?"Deleting...":"Delete",cancelText:"Cancel",type:"danger",icon:"delete"})]})},ct=()=>{const[t,a]=c.useState([]),[l,r]=c.useState(!0),[d,m]=c.useState(""),[b,v]=c.useState("All Categories"),[N,x]=c.useState("All Severity"),[g,E]=c.useState("All Roles"),[G,D]=c.useState(25),[u,S]=c.useState(null),C=c.useCallback(async()=>{r(!0);try{const n=await ls();a(n)}catch{M.error("Failed to load audit logs")}finally{r(!1)}},[]);c.useEffect(()=>{C()},[C]),c.useEffect(()=>{D(25)},[d,b,N,g,t.length]);const U=t.filter(n=>n.severity==="Info").length,k=t.filter(n=>n.severity==="Warning").length,T=t.filter(n=>n.severity==="Error"||n.severity==="Critical").length,A=n=>{switch(n){case"Info":return e.jsx(fe,{size:16,className:"text-sky-600"});case"Warning":return e.jsx(we,{size:16,className:"text-rose-600"});case"Error":return e.jsx(be,{size:16,className:"text-red-600"});case"Critical":return e.jsx(be,{size:16,className:"text-red-600"});default:return e.jsx(fe,{size:16,className:"text-[#5a6578]"})}},y=n=>{switch(n){case"Info":return"bg-sky-100 text-sky-700 border-sky-200";case"Warning":return"bg-rose-100 text-rose-700 border-rose-200";case"Error":return"bg-red-100 text-red-700 border-red-200";case"Critical":return"bg-red-100 text-red-700 border-red-200 ring-2 ring-red-500";default:return"bg-[#edf1f7] text-[#0a1628] border-[#dde3eb]"}},P=n=>{switch(n){case"Auth":return"bg-sky-100 text-sky-700";case"Data":return"bg-rose-100 text-rose-700";case"User":return"bg-sky-100 text-sky-700";case"System":return"bg-[#edf1f7] text-[#0a1628]";case"Content":return"bg-green-100 text-green-700";default:return"bg-[#edf1f7] text-[#0a1628]"}},i=t.filter(n=>{const I=n.action.toLowerCase().includes(d.toLowerCase())||n.details.toLowerCase().includes(d.toLowerCase())||n.user.name.toLowerCase().includes(d.toLowerCase()),j=b==="All Categories"||n.category===b,R=N==="All Severity"||n.severity===N,o=g==="All Roles"||n.user.role===g;return I&&j&&R&&o}),w=i.slice(0,G);return e.jsxs(_.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Audit Log"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"System activity monitoring and security events"})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs("div",{className:"bg-white px-3 py-2 rounded-xl border border-[#dde3eb] flex items-center gap-2 text-[#5a6578] text-sm font-medium",children:[e.jsx(ke,{size:16}),e.jsx("span",{children:"Last 100 events"})]}),e.jsxs(W,{variant:"outline",className:"gap-2 border-[#dde3eb] hover:bg-[#edf1f7]",onClick:C,children:[e.jsx(Ae,{size:16}),"Refresh"]}),e.jsx(W,{variant:"outline",disabled:!0,title:"Audit log export is not implemented yet",className:"gap-2 border-[#dde3eb] opacity-60 cursor-not-allowed",children:"Export (Unavailable)"})]}),l?e.jsx("div",{className:"flex items-center justify-center h-24",children:e.jsx(Q,{size:24,className:"animate-spin text-sky-500"})}):null,e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4",children:[e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("p",{className:"text-xs font-bold text-[#5a6578] mb-1",children:"Total Events"}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:t.length})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-sky-200 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(fe,{size:14,className:"text-sky-600"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Info"})]}),e.jsx("p",{className:"text-2xl font-bold text-sky-600",children:U})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-rose-200 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(we,{size:14,className:"text-rose-600"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Warnings"})]}),e.jsx("p",{className:"text-2xl font-bold text-rose-600",children:k})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-red-200 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(be,{size:14,className:"text-red-600"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Errors"})]}),e.jsx("p",{className:"text-2xl font-bold text-red-600",children:T})]})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Re,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx(z,{type:"text",placeholder:"Search by user, action, or details...",className:"pl-10 bg-[#edf1f7] border-[#dde3eb]",value:d,onChange:n=>m(n.target.value)})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs(F,{value:b,onValueChange:v,children:[e.jsx(O,{className:"w-full sm:w-[170px]",children:e.jsx(B,{placeholder:"All Categories"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Categories",children:"All Categories"}),e.jsx(h,{value:"Auth",children:"Auth"}),e.jsx(h,{value:"Data",children:"Data"}),e.jsx(h,{value:"User",children:"User"}),e.jsx(h,{value:"System",children:"System"}),e.jsx(h,{value:"Content",children:"Content"})]})]}),e.jsxs(F,{value:N,onValueChange:x,children:[e.jsx(O,{className:"w-full sm:w-[170px]",children:e.jsx(B,{placeholder:"All Severity"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Severity",children:"All Severity"}),e.jsx(h,{value:"Info",children:"Info"}),e.jsx(h,{value:"Warning",children:"Warning"}),e.jsx(h,{value:"Error",children:"Error"}),e.jsx(h,{value:"Critical",children:"Critical"})]})]}),e.jsxs(F,{value:g,onValueChange:E,children:[e.jsx(O,{className:"w-full sm:w-[170px]",children:e.jsx(B,{placeholder:"All Roles"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Roles",children:"All Roles"}),e.jsx(h,{value:"Admin",children:"Admin"}),e.jsx(h,{value:"Teacher",children:"Teacher"}),e.jsx(h,{value:"Student",children:"Student"})]})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] shadow-sm overflow-hidden",children:[e.jsx("div",{className:"md:hidden divide-y divide-[#dde3eb]",children:w.map(n=>e.jsxs("div",{className:"p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-bold border ${y(n.severity)}`,children:[A(n.severity),n.severity]}),e.jsx("button",{type:"button",onClick:()=>S(n),className:"p-2 hover:bg-[#dde3eb] rounded-lg text-slate-500 hover:text-sky-600 transition-colors","aria-label":`View audit event ${n.action}`,children:e.jsx(Be,{size:16})})]}),e.jsx("p",{className:"text-sm font-semibold text-[#0a1628]",children:n.action}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n.timestamp}),e.jsxs("p",{className:"text-xs text-[#5a6578]",children:[n.user.name," (",n.user.role,")"]}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n.details})]},`mobile-${n.id}`))}),e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full min-w-[980px] text-left border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[#edf1f7] border-b border-[#dde3eb]",children:[e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Severity"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Timestamp"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"User"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Action"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Category"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Details"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider text-right",children:"View"})]})}),e.jsx("tbody",{className:"divide-y divide-[#dde3eb]",children:w.map(n=>e.jsxs("tr",{className:"hover:bg-[#edf1f7] transition-colors",children:[e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-bold border ${y(n.severity)}`,children:[A(n.severity),n.severity]})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2 text-[#5a6578] text-sm",children:[e.jsx("div",{className:"p-1 bg-[#edf1f7] rounded",children:e.jsx(ke,{size:12})}),n.timestamp]})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[n.user.avatar?e.jsx("img",{src:n.user.avatar,alt:n.user.name,className:"w-8 h-8 rounded-full object-cover"}):e.jsx("div",{className:"w-8 h-8 bg-sky-100 rounded-full flex items-center justify-center",children:e.jsx(ie,{size:16,className:"text-sky-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-bold text-[#0a1628] text-sm",children:n.user.name}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n.user.role})]})]})}),e.jsx("td",{className:"p-4",children:e.jsx("p",{className:"font-medium text-[#0a1628] text-sm",children:n.action})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded text-xs font-bold ${P(n.category)}`,children:n.category})}),e.jsx("td",{className:"p-4 text-sm text-[#5a6578] max-w-xs truncate",title:n.details,children:n.details}),e.jsx("td",{className:"p-4 text-right",children:e.jsx("button",{type:"button",onClick:()=>S(n),className:"p-2 hover:bg-[#dde3eb] rounded-lg text-slate-500 hover:text-sky-600 transition-colors","aria-label":`View audit event ${n.action}`,children:e.jsx(Be,{size:16})})})]},n.id))})]})}),i.length>G?e.jsx("div",{className:"border-t border-[#dde3eb] p-4 flex justify-center",children:e.jsx(W,{variant:"outline",className:"border-[#dde3eb]",onClick:()=>D(n=>n+25),children:"Load more events"})}):null,i.length===0&&!l&&e.jsxs("div",{className:"p-12 text-center text-[#5a6578]",children:[e.jsx(ie,{size:48,className:"mx-auto mb-4 text-slate-500"}),e.jsx("p",{className:"font-medium",children:"No logs found"}),e.jsx("p",{className:"text-sm",children:t.length===0?"Audit events will appear here as actions are performed":"Try adjusting your search or filters"})]})]}),e.jsx(De,{open:!!u,onOpenChange:n=>{n||S(null)},children:e.jsxs(Pe,{children:[e.jsxs(Te,{children:[e.jsx(Me,{children:u?.action||"Audit Event Details"}),e.jsx(Ee,{children:"Detailed audit information for operational review."})]}),u?e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Severity:"})," ",u.severity]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Category:"})," ",u.category]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Timestamp:"})," ",u.timestamp]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"User:"})," ",u.user.name," (",u.user.role,")"]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Details:"})," ",u.details]})]}):null]})})]})},Ge=()=>JSON.parse(JSON.stringify(cs)),ot=({onDirtyChange:t})=>{const{userProfile:a}=ze(),[l,r]=c.useState("General"),[d,m]=c.useState(Ge()),[b,v]=c.useState(Ge()),[N,x]=c.useState(!1),[g,E]=c.useState(!1),[G,D]=c.useState(!1),[u,S]=c.useState(null),C=c.useMemo(()=>JSON.stringify(d)!==JSON.stringify(b),[d,b]),U=[{id:"General",label:"General",icon:fs},{id:"Security",label:"Security",icon:ie},{id:"AI Features",label:"AI Features",icon:Ye},{id:"Academic",label:"Academic",icon:K},{id:"Notifications",label:"Notifications",icon:bs},{id:"Backup & Data",label:"Backup & Data",icon:ce}];c.useEffect(()=>{(async()=>{if(a?.uid){x(!0);try{const w=await os(a.uid);m(w),v(w)}catch(w){console.error("Failed loading admin settings:",w),M.error("Failed to load admin settings")}finally{x(!1)}}})()},[a?.uid]),c.useEffect(()=>{t?.(C)},[C,t]),c.useEffect(()=>{const i=w=>{C&&(w.preventDefault(),w.returnValue="")};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i)}},[C]);const k=i=>{if(i!==l){if(C){S(i),D(!0);return}r(i)}},T=()=>{m(b),u&&r(u),S(null),D(!1)},A=()=>{S(null),D(!1)},y=i=>{m(w=>({...w,adminPanel:{...w.adminPanel,...i}}))},P=async()=>{if(a?.uid){E(!0);try{const i=await ms(a.uid,d);m(i),v(i),M.success("Admin settings updated")}catch(i){console.error("Failed saving admin settings:",i),M.error("Failed to save admin settings")}finally{E(!1)}}};return e.jsxs(_.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-4 md:gap-6",children:[e.jsx("div",{className:"md:col-span-3",children:e.jsx("div",{className:"bg-white rounded-xl shadow-sm border border-[#dde3eb] overflow-hidden",children:e.jsx("nav",{className:"grid grid-cols-2 sm:grid-cols-3 md:flex md:flex-col py-2",children:U.map(i=>{const w=i.icon,n=l===i.id;return e.jsxs("button",{onClick:()=>k(i.id),className:`flex items-center gap-3 px-4 py-3 text-sm font-medium transition-all relative ${n?"text-sky-600 bg-sky-50/50":"text-[#5a6578] hover:bg-[#edf1f7] hover:text-[#0a1628]"}`,children:[n&&e.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 bg-sky-600 rounded-r-full"}),e.jsx(w,{size:18,className:n?"text-sky-600":"text-slate-500"}),i.label]},i.id)})})})}),e.jsx("div",{className:"md:col-span-9",children:e.jsx(_.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},className:"space-y-6",children:e.jsx("div",{className:"bg-white rounded-xl shadow-sm border border-[#dde3eb] p-6",children:N?e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Loading settings..."}):e.jsxs(e.Fragment,{children:[l==="General"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Site Name"}),e.jsx(z,{value:d.adminPanel.siteName,onChange:i=>y({siteName:i.target.value}),className:"bg-white"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Site Description"}),e.jsx(ns,{className:"min-h-[80px] bg-white border-[#dde3eb]",value:d.adminPanel.siteDescription,onChange:i=>y({siteDescription:i.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Default Language"}),e.jsxs(F,{value:d.adminPanel.defaultLanguage,onValueChange:i=>y({defaultLanguage:i}),children:[e.jsx(O,{className:"w-full",children:e.jsx(B,{placeholder:"Select language"})}),e.jsxs(q,{children:[e.jsx(h,{value:"English",children:"English"}),e.jsx(h,{value:"Spanish",children:"Spanish"}),e.jsx(h,{value:"French",children:"French"}),e.jsx(h,{value:"German",children:"German"})]})]})]}),e.jsxs("div",{className:"mt-6 p-4 bg-red-50 border border-red-100 rounded-xl flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 bg-white rounded-lg text-red-600 shadow-sm border border-red-100",children:e.jsx(Vs,{size:18})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-red-900",children:"Maintenance Mode"}),e.jsx("p",{className:"text-xs text-red-700 mt-0.5",children:"Temporarily disable access for non-admins"})]})]}),e.jsx(J,{checked:d.adminPanel.maintenanceMode,onCheckedChange:i=>y({maintenanceMode:i}),className:"data-[state=checked]:bg-red-600 data-[state=unchecked]:bg-[#dde3eb]"})]})]}),l==="Security"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Enforce Strong Passwords"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Require stronger passwords for all users"})]}),e.jsx(J,{checked:d.adminPanel.enforceStrongPasswords,onCheckedChange:i=>y({enforceStrongPasswords:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Session Timeout (minutes)"}),e.jsx(z,{type:"number",value:d.adminPanel.sessionTimeoutMinutes,onChange:i=>y({sessionTimeoutMinutes:Number(i.target.value||0)}),className:"max-w-xs"})]})]}),l==="AI Features"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"AI Tutor"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Enable AI tutoring experience"})]}),e.jsx(J,{checked:d.adminPanel.aiTutorEnabled,onCheckedChange:i=>y({aiTutorEnabled:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Auto Recommendations"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Enable AI-generated recommendations"})]}),e.jsx(J,{checked:d.adminPanel.aiAutoRecommendations,onCheckedChange:i=>y({aiAutoRecommendations:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Risk Alerts"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Send proactive risk alerts for at-risk learners"})]}),e.jsx(J,{checked:d.adminPanel.aiRiskAlertsEnabled,onCheckedChange:i=>y({aiRiskAlertsEnabled:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]})]}),l==="Academic"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Grading Scale"}),e.jsxs(F,{value:d.adminPanel.gradingScale,onValueChange:i=>y({gradingScale:i}),children:[e.jsx(O,{className:"w-full max-w-xs",children:e.jsx(B,{placeholder:"Select grading scale"})}),e.jsxs(q,{children:[e.jsx(h,{value:"percentage",children:"Percentage"}),e.jsx(h,{value:"gpa",children:"GPA"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Passing Grade"}),e.jsx(z,{type:"number",value:d.adminPanel.passingGrade,onChange:i=>y({passingGrade:Number(i.target.value||0)}),className:"max-w-xs"})]})]}),l==="Notifications"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Parent Summary Emails"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Weekly summaries for guardians"})]}),e.jsx(J,{checked:d.adminPanel.parentSummaryEmails,onCheckedChange:i=>y({parentSummaryEmails:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Teacher Digest Emails"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Daily teacher performance digest"})]}),e.jsx(J,{checked:d.adminPanel.teacherDigestEmails,onCheckedChange:i=>y({teacherDigestEmails:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Weekly Platform Report"}),e.jsx("p",{className:"text-xs text-slate-500",children:"System report for administrators"})]}),e.jsx(J,{checked:d.adminPanel.weeklyPlatformReport,onCheckedChange:i=>y({weeklyPlatformReport:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]})]}),l==="Backup & Data"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Automatic Backups"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Create scheduled backups of platform data"})]}),e.jsx(J,{checked:d.adminPanel.autoBackupEnabled,onCheckedChange:i=>y({autoBackupEnabled:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Backup Frequency"}),e.jsxs(F,{value:d.adminPanel.backupFrequency,onValueChange:i=>y({backupFrequency:i}),children:[e.jsx(O,{className:"w-full max-w-xs",children:e.jsx(B,{placeholder:"Select backup frequency"})}),e.jsxs(q,{children:[e.jsx(h,{value:"daily",children:"Daily"}),e.jsx(h,{value:"weekly",children:"Weekly"}),e.jsx(h,{value:"monthly",children:"Monthly"})]})]})]})]}),e.jsxs("div",{className:"mt-8 pt-6 border-t border-[#dde3eb] flex flex-col sm:flex-row gap-3 sm:items-center sm:justify-end",children:[C?e.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded-lg px-3 py-2",children:"You have unsaved changes."}):e.jsx("p",{className:"text-xs text-[#5a6578]",children:"All changes are saved."}),e.jsxs(W,{className:`bg-sky-600 hover:bg-sky-700 text-white gap-2 ${g||!C?"opacity-70 cursor-not-allowed":""}`,onClick:P,disabled:g||N||!C,children:[g?e.jsx(Q,{size:16,className:"animate-spin"}):e.jsx(js,{size:16}),g?"Saving...":"Save Changes"]})]})]})})})})]}),e.jsx(oe,{isOpen:G,onClose:A,onConfirm:T,title:"Discard Unsaved Changes?",message:"You have unsaved settings updates. Switching sections now will discard those edits.",confirmText:"Discard Changes",cancelText:"Keep Editing",type:"warning",icon:"warning"})]})};function _e({className:t,...a}){return e.jsx(vs,{"data-slot":"avatar",className:$e("relative flex size-10 shrink-0 overflow-hidden rounded-full",t),...a})}function We({className:t,...a}){return e.jsx(Ns,{"data-slot":"avatar-image",className:$e("aspect-square size-full",t),...a})}function He({className:t,...a}){return e.jsx(ys,{"data-slot":"avatar-fallback",className:$e("bg-muted flex size-full items-center justify-center rounded-full",t),...a})}const mt=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,xt=/[A-Z]/,ht=/[a-z]/,ut=/\d/,pt=/[^A-Za-z0-9]/;function gt(t){const a={};t.name.trim()||(a.name="Name is required.");const l=t.email.trim().toLowerCase();l?mt.test(l)||(a.email="Enter a valid email address."):a.email="Email is required.";const r=t.password;return r.length<8?a.password="Password must be at least 8 characters.":xt.test(r)?ht.test(r)?ut.test(r)?pt.test(r)||(a.password="Password must include at least one special character."):a.password="Password must include at least one number.":a.password="Password must include at least one lowercase letter.":a.password="Password must include at least one uppercase letter.",t.confirmPassword?t.confirmPassword!==r&&(a.confirmPassword="Passwords do not match."):a.confirmPassword="Confirm password is required.",t.role.trim()||(a.role="Role is required."),t.status.trim()||(a.status="Status is required."),t.grade.trim()||(a.grade="Grade is required."),t.section.trim()||(a.section="Section is required."),t.role.trim().toLowerCase()==="student"&&!t.lrn.trim()&&(a.lrn="LRN is required for student accounts."),a}function ft(t){return Object.values(t).find(l=>!!l)??null}const Xe=(t="Student")=>({name:"",email:"",password:"",confirmPassword:"",role:t,status:"Active",department:t==="Teacher"?"Mathematics":t==="Admin"?"System":"",grade:"Grade 11",section:"Section A",lrn:""}),bt=({createIntentRole:t=null,onCreateIntentConsumed:a})=>{const{userProfile:l}=ze(),[r,d]=c.useState([]),[m,b]=c.useState(!0),[v,N]=c.useState(!1),[x,g]=c.useState(!1),[E,G]=c.useState(null),[D,u]=c.useState(""),[S,C]=c.useState("All Roles"),[U,k]=c.useState("All Status"),[T,A]=c.useState(!1),[y,P]=c.useState(!1),[i,w]=c.useState(null),[n,I]=c.useState(null),[j,R]=c.useState({}),[o,L]=c.useState(Xe()),Z=c.useCallback(async()=>{b(!0);try{const s=await Ys();d(s)}catch{M.error("Failed to load users")}finally{b(!1)}},[]);c.useEffect(()=>{Z()},[Z]);const se=c.useCallback((s="Student")=>{I(null),R({}),L(Xe(s)),A(!0)},[]);c.useEffect(()=>{t&&(se(t),a?.())},[t,se,a]);const f=s=>{I(s),R({}),L({name:s.name,email:s.email,password:"",confirmPassword:"",role:s.role,status:s.status,department:s.department,grade:s.grade||"Grade 11",section:s.section||"Section A",lrn:s.lrn||""}),A(!0)},H=async()=>{if(!o.name.trim()||!o.email.trim()){M.error("Name and email are required");return}if(!n){const s=gt({name:o.name,email:o.email,password:o.password,confirmPassword:o.confirmPassword,role:o.role,status:o.status,grade:o.grade,section:o.section,lrn:o.lrn}),p=ft(s);if(p){R(s),M.error(p);return}}N(!0);try{if(n){const s={name:o.name,role:o.role,status:o.status,grade:o.grade,section:o.section,lrn:o.role==="Student"?o.lrn:void 0};o.role!=="Student"&&(s.department=o.department),await Ve(n.id,s),await ae("User Updated","User","Info",`Updated user: ${o.name} (${n.email})`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),M.success("User updated successfully")}else{const s=await et({email:o.email,name:o.name,password:o.password,confirmPassword:o.confirmPassword,role:o.role,status:o.status,grade:o.grade,section:o.section,lrn:o.role==="Student"?o.lrn:void 0});await ae("Created New User","User","Info",`Created new ${o.role.toLowerCase()} account: ${o.name} (${o.email}), emailSent=${s.emailSent}`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),s.emailSent?M.success("User created and welcome email sent"):(M.warning("User created, but welcome email failed to send"),s.emailError?.message&&M.error(s.emailError.message))}await Z(),A(!1)}catch(s){M.error(s instanceof Error?s.message:"Failed to save user")}finally{N(!1)}},ee=(s,p)=>{w({id:s,name:p}),P(!0)},ne=async()=>{if(!(!i||x)){g(!0);try{await Zs(i.id),await ae("User Deleted","User","Warning",`Deleted user account: ${i.name}`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),M.success("User deleted"),d(s=>s.filter(p=>p.id!==i.id)),P(!1),w(null)}catch{M.error("Failed to delete user")}finally{g(!1)}}},ue=async s=>{if(E||x)return;const p=s.status==="Active"?"Inactive":"Active";G(s.id);try{await Ve(s.id,{status:p}),await ae("User Status Changed","User","Warning",`${p==="Active"?"Activated":"Deactivated"} user: ${s.email}`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),M.success(`User ${p==="Active"?"activated":"deactivated"}`),d(re=>re.map(te=>te.id===s.id?{...te,status:p}:te))}catch{M.error("Failed to update user status")}finally{G(null)}},le=r.filter(s=>{const p=s.name.toLowerCase().includes(D.toLowerCase())||s.email.toLowerCase().includes(D.toLowerCase()),re=S==="All Roles"||s.role===S,te=U==="All Status"||s.status===U;return p&&re&&te}),pe=[{label:"Total Users",value:r.length,color:"text-[#0a1628]"},{label:"Active",value:r.filter(s=>s.status==="Active").length,color:"text-green-600"},{label:"Admins",value:r.filter(s=>s.role==="Admin").length,color:"text-sky-600"},{label:"Teachers",value:r.filter(s=>s.role==="Teacher").length,color:"text-sky-600"},{label:"Students",value:r.filter(s=>s.role==="Student").length,color:"text-emerald-600"}];return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-5 gap-4",children:m?Array.from({length:5}).map((s,p)=>e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("div",{className:"h-7 w-16 bg-[#edf1f7] rounded animate-pulse mb-2"}),e.jsx("div",{className:"h-4 w-24 bg-[#edf1f7] rounded animate-pulse"})]},`stats-skeleton-${p}`)):pe.map((s,p)=>e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("h3",{className:`text-2xl font-bold ${s.color}`,children:s.value}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:s.label})]},p))}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Re,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx(z,{placeholder:"Search users by name or email...",className:"pl-10 bg-[#edf1f7] border-[#dde3eb]",value:D,onChange:s=>u(s.target.value)})]}),e.jsxs("div",{className:"flex flex-col md:flex-row justify-between gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs(F,{value:S,onValueChange:C,children:[e.jsx(O,{className:"w-full sm:w-[140px] bg-[#edf1f7] border-[#dde3eb]",children:e.jsx(B,{placeholder:"All Roles"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Roles",children:"All Roles"}),e.jsx(h,{value:"Admin",children:"Admin"}),e.jsx(h,{value:"Teacher",children:"Teacher"}),e.jsx(h,{value:"Student",children:"Student"})]})]}),e.jsxs(F,{value:U,onValueChange:k,children:[e.jsx(O,{className:"w-full sm:w-[140px] bg-[#edf1f7] border-[#dde3eb]",children:e.jsx(B,{placeholder:"All Status"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Status",children:"All Status"}),e.jsx(h,{value:"Active",children:"Active"}),e.jsx(h,{value:"Inactive",children:"Inactive"})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs(W,{variant:"outline",className:"gap-2 border-[#dde3eb] text-[#5a6578]",onClick:Z,children:[e.jsx(Ae,{size:16}),"Refresh"]}),e.jsxs(W,{className:"gap-2 bg-sky-500 hover:bg-sky-600 text-white",onClick:()=>se(),children:[e.jsx(es,{size:16}),"Add User"]})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] shadow-sm overflow-hidden",children:[e.jsx("div",{className:"md:hidden divide-y divide-[#dde3eb]",children:le.length>0?le.map(s=>{const p=E===s.id;return e.jsxs("div",{className:"p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(_e,{children:[e.jsx(We,{src:s.photo}),e.jsx(He,{children:s.name.charAt(0)})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-semibold text-[#0a1628] truncate",children:s.name}),e.jsx("p",{className:"text-xs text-[#5a6578] truncate",children:s.email})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsxs("div",{className:"rounded-lg bg-[#edf1f7] px-2 py-1.5 text-[#5a6578]",children:["Role: ",e.jsx("span",{className:"font-semibold text-[#0a1628]",children:s.role})]}),e.jsxs("div",{className:"rounded-lg bg-[#edf1f7] px-2 py-1.5 text-[#5a6578]",children:["Status: ",e.jsx("span",{className:"font-semibold text-[#0a1628]",children:s.status})]}),e.jsxs("div",{className:"rounded-lg bg-[#edf1f7] px-2 py-1.5 text-[#5a6578] col-span-2",children:["Last Login: ",e.jsx("span",{className:"font-semibold text-[#0a1628]",children:s.lastLogin||"Never"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>f(s),"aria-label":`Edit ${s.name}`,className:"px-3 py-2 rounded-lg border border-[#dde3eb] text-[#5a6578] hover:bg-[#edf1f7]",children:"Edit"}),e.jsx("button",{type:"button",onClick:()=>ue(s),"aria-label":s.status==="Active"?`Deactivate ${s.name}`:`Activate ${s.name}`,disabled:p||x,className:"px-3 py-2 rounded-lg border border-[#dde3eb] text-[#5a6578] disabled:opacity-60 disabled:cursor-not-allowed",children:p?"Updating...":s.status==="Active"?"Deactivate":"Activate"}),e.jsx("button",{type:"button",onClick:()=>ee(s.id,s.name),"aria-label":`Delete ${s.name}`,disabled:x,className:"px-3 py-2 rounded-lg border border-red-200 text-red-600 disabled:opacity-60 disabled:cursor-not-allowed",children:"Delete"})]})]},`mobile-${s.id}`)}):e.jsx("div",{className:"px-6 py-12 text-center text-[#5a6578]",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-[#edf1f7] rounded-full",children:e.jsx(he,{size:24,className:"text-slate-500"})}),e.jsx("p",{children:"No users found matching your filters"})]})})}),e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm text-left",children:[e.jsx("thead",{className:"text-xs text-[#5a6578] uppercase bg-[#edf1f7] border-b border-[#dde3eb]",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-4 font-semibold",children:"User"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Role"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Status"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Class/Department"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Last Login"}),e.jsx("th",{className:"px-6 py-4 font-semibold text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y divide-[#dde3eb]",children:le.length>0?le.map(s=>{const p=E===s.id;return e.jsxs("tr",{className:"hover:bg-[#edf1f7]/50 transition-colors",children:[e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(_e,{children:[e.jsx(We,{src:s.photo}),e.jsx(He,{children:s.name.charAt(0)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-[#0a1628]",children:s.name}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:s.email})]})]})}),e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex items-center gap-1.5",children:[s.role==="Admin"&&e.jsx(ie,{size:14,className:"text-sky-600"}),s.role==="Teacher"&&e.jsx(Ue,{size:14,className:"text-sky-600"}),s.role==="Student"&&e.jsx(Bs,{size:14,className:"text-emerald-600"}),e.jsx("span",{className:` + */const _s=[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]],Ws=J("trending-down",_s);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hs=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["polyline",{points:"16 11 18 13 22 9",key:"1pwet4"}]],Xs=J("user-check",Hs);function Qs(t){return t?t.charAt(0).toUpperCase()+t.slice(1):"Student"}function Js(t){if(t.role==="student"){const a=t.grade||"",l=t.section||"";return[a,l].filter(Boolean).join(" - ")||"Student"}return t.role==="teacher"?t.department||"Mathematics":t.role==="admin"?t.department||"System":""}function Ks(t){if(!t||!t.toDate)return"Never";const a=t.toDate(),r=new Date().getTime()-a.getTime(),d=Math.floor(r/6e4);if(d<1)return"Just now";if(d<60)return`${d} minute${d!==1?"s":""} ago`;const m=Math.floor(d/60);if(m<24)return`${m} hour${m!==1?"s":""} ago`;const b=Math.floor(m/24);return b<7?`${b} day${b!==1?"s":""} ago`:a.toLocaleDateString()}function ts(t){if(!t||!t.toDate)return new Date().toISOString().replace("T"," ").slice(0,19);const a=t.toDate();return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")} ${String(a.getHours()).padStart(2,"0")}:${String(a.getMinutes()).padStart(2,"0")}:${String(a.getSeconds()).padStart(2,"0")}`}function Ys(){return ts({toDate:()=>new Date})}function as(t){if(t instanceof us){try{const a=JSON.parse(t.responseBody);if(a?.detail&&typeof a.detail=="string")return a.detail}catch{}return`Request failed (${t.status}).`}return t instanceof Error?t.message:"Request failed."}async function Zs(){try{const t=me(V($,"users"),ve("createdAt","desc"));return(await X(t)).docs.map(l=>{const r=l.data();return{id:l.id,name:r.name||"Unknown",email:r.email||"",role:Qs(r.role),status:r.status||"Active",department:Js(r),grade:r.grade||"",section:r.section||"",classSection:[r.grade||"",r.section||""].filter(Boolean).join(" - "),lrn:r.lrn||"",photo:r.photo||r.photoURL||"",lastLogin:Ks(r.lastLogin)}})}catch(t){return console.error("[adminService] getAllUsers error:",t),[]}}async function Ve(t,a){const l=Le($,"users",t),r={updatedAt:xe()};if(a.name!==void 0&&(r.name=a.name),a.status!==void 0&&(r.status=a.status),a.role!==void 0&&(r.role=a.role.toLowerCase()),a.department!==void 0&&(r.department=a.department,a.role?.toLowerCase()==="student"&&(r.grade=a.department)),a.grade!==void 0&&(r.grade=a.grade),a.section!==void 0&&(r.section=a.section),a.lrn!==void 0&&(r.lrn=a.lrn),r.grade||r.section){const d=r.grade||"",m=r.section||"";r.classSectionId=[d,m].filter(Boolean).join("_").replace(/\s+/g,"_").toLowerCase()}await Je(l,r)}async function et(t){try{const a=await Ze.deleteAdminUser(t);if(!a.success)throw new Error(a.message||"Failed to delete user account.")}catch(a){throw new Error(as(a))}}async function st(t){try{const a=await Ze.createAdminUser({name:t.name.trim(),email:t.email.trim().toLowerCase(),password:t.password,confirmPassword:t.confirmPassword,role:t.role,status:t.status,grade:t.grade.trim(),section:t.section.trim(),...t.lrn?.trim()?{lrn:t.lrn.trim()}:{}});if(!a.success||!a.userCreated||!a.uid)throw new Error(a.message||"Failed to create user account.");return{uid:a.uid,userCreated:a.userCreated,emailSent:a.emailSent,resultCode:a.resultCode,message:a.message,warnings:a.warnings??[],emailError:a.emailError}}catch(a){throw new Error(as(a))}}async function ls(){try{const t=me(V($,"auditLogs"),ve("timestampRaw","desc"),ye(100));return(await X(t)).docs.map(l=>{const r=l.data();return{id:l.id,severity:r.severity||"Info",timestamp:r.timestamp||ts(r.timestampRaw),user:r.user||{name:"System",role:"Admin",avatar:null},action:r.action||"",category:r.category||"System",details:r.details||""}})}catch(t){return console.error("[adminService] getAuditLogs error:",t),[]}}async function ae(t,a,l,r,d){await Ke(V($,"auditLogs"),{severity:l,timestamp:Ys(),timestampRaw:xe(),user:d,action:t,category:a,details:r})}async function tt(){try{const t=me(V($,"modules"),ve("createdAt","desc"));return(await X(t)).docs.map(l=>{const r=l.data(),d=r.createdAt;return{id:l.id,title:r.title||"",subject:r.subject||"",type:r.type||"Video",difficulty:r.difficulty||"Beginner",status:r.status||"Draft",assigned:r.assigned||0,created:d?.toDate?.()?.toLocaleDateString()??(r.created||"Unknown")}})}catch(t){return console.error("[adminService] getModules error:",t),[]}}async function at(t){return(await Ke(V($,"modules"),{...t,createdAt:xe(),updatedAt:xe()})).id}async function lt(t,a){await Je(Le($,"modules",t),{...a,updatedAt:xe()})}async function rt(t){await ds(Le($,"modules",t))}async function it(){try{const t=await X(V($,"users"));let a=0,l=0,r=0;t.docs.forEach(v=>{const N=v.data();N.role==="student"&&(a++,N.overallRisk==="High"&&r++),N.role==="teacher"&&N.status!=="Inactive"&&l++});let d=0;try{d=(await X(V($,"classrooms"))).size}catch{}let m=0;try{m=(await X(V($,"xpActivities"))).size}catch{}let b=0;try{const v=await X(V($,"progress")),N=[];v.docs.forEach(x=>{const g=x.data();typeof g.averageScore=="number"&&N.push(g.averageScore)}),b=N.length>0?Math.round(N.reduce((x,g)=>x+g,0)/N.length):0}catch{}return{totalStudents:a,activeTeachers:l,totalClasses:d,atRiskStudents:r,avgPerformance:b,aiPredictions:m}}catch(t){return console.error("[adminService] getDashboardStats error:",t),{totalStudents:0,activeTeachers:0,totalClasses:0,atRiskStudents:0,avgPerformance:0,aiPredictions:0}}}async function nt(t=3){const a=r=>{const d=r.data(),m=d.level||1,b=d.currentXP||0,v=Math.min(100,m*8+Math.round(b/100));return{id:r.id,name:d.name||"Student",avatar:d.photo||d.photoURL||`https://ui-avatars.com/api/?name=${encodeURIComponent(d.name||"S")}&background=0d9488&color=fff`,class:d.grade||"Math",performance:v,level:m}},l=r=>r.sort((d,m)=>m.level!==d.level?m.level-d.level:m.performance-d.performance).slice(0,t);try{const r=me(V($,"users"),Fe("role","==","student"),ve("level","desc"),ye(t)),d=await X(r);return l(d.docs.map(a))}catch(r){if(r?.code==="failed-precondition")try{const m=me(V($,"users"),Fe("role","==","student"),ye(Math.max(50,t))),b=await X(m);return l(b.docs.map(a))}catch(m){return console.error("[adminService] getTopPerformers fallback error:",m),[]}return console.error("[adminService] getTopPerformers error:",r),[]}}async function dt(){try{const t=await X(V($,"users"));let a=0,l=0,r=0,d=0,m=0;t.docs.forEach(N=>{const x=N.data();x.role==="student"&&(a++,x.overallRisk==="High"&&r++,x.streak>0&&m++,d+=x.totalXP||0),x.role==="teacher"&&l++});let b=0;try{b=(await X(V($,"achievements"))).size}catch{}let v=0;try{v=(await X(V($,"chatSessions"))).size}catch{}return{totalActiveUsers:a+l,totalStudents:a,totalTeachers:l,atRiskStudents:r,achievementsUnlocked:b,totalXPEarned:d,activeStreaks:m,aiTutorSessions:v}}catch(t){return console.error("[adminService] getAnalyticsSummary error:",t),{totalActiveUsers:0,totalStudents:0,totalTeachers:0,atRiskStudents:0,achievementsUnlocked:0,totalXPEarned:0,activeStreaks:0,aiTutorSessions:0}}}const ct=()=>{const{userProfile:t}=ze(),[a,l]=c.useState([]),[r,d]=c.useState(!0),[m,b]=c.useState(!1),[v,N]=c.useState(!1),[x,g]=c.useState(""),[E,G]=c.useState("All Types"),[D,u]=c.useState("All Status"),[S,C]=c.useState(!1),[U,k]=c.useState(!1),[T,A]=c.useState(null),[y,P]=c.useState(null),[i,w]=c.useState({title:"",subject:"",type:"Video",difficulty:"Beginner",status:"Draft",assigned:0}),n=c.useCallback(async()=>{d(!0);try{const s=await tt();l(s)}catch{M.error("Failed to load modules")}finally{d(!1)}},[]);c.useEffect(()=>{n()},[n]);const I=()=>{P(null),w({title:"",subject:"",type:"Video",difficulty:"Beginner",status:"Draft",assigned:0}),C(!0)},j=s=>{P(s),w({title:s.title,subject:s.subject,type:s.type,difficulty:s.difficulty,status:s.status,assigned:s.assigned}),C(!0)},R=async()=>{if(!i.title.trim()||!i.subject.trim()){M.error("Title and subject are required");return}b(!0);try{y?(await lt(y.id,i),await ae("Module Updated","Content","Info",`Updated module: "${i.title}"`,{name:t?.name||"Admin",role:"Admin",avatar:t?.photo||null}),M.success("Module updated")):(await at(i),await ae("Module Created","Content","Info",`Created new module: "${i.title}" (${i.subject})`,{name:t?.name||"Admin",role:"Admin",avatar:t?.photo||null}),M.success("Module created")),await n(),C(!1)}catch{M.error("Failed to save module")}finally{b(!1)}},o=s=>{A(s),k(!0)},L=async()=>{if(!(!T||v)){N(!0);try{await rt(T.id),await ae("Module Deleted","Content","Warning",`Deleted module: "${T.title}"`,{name:t?.name||"Admin",role:"Admin",avatar:t?.photo||null}),M.success("Module deleted"),l(s=>s.filter(p=>p.id!==T.id)),k(!1),A(null)}catch{M.error("Failed to delete module")}finally{N(!1)}}},Z=a.length,se=a.filter(s=>s.status==="Published").length,f=a.filter(s=>s.status==="Draft").length,H=a.filter(s=>s.status==="Archived").length,ee=s=>{switch(s){case"Published":return"bg-green-100 text-green-700 border-green-200";case"Draft":return"bg-rose-100 text-rose-700 border-rose-200";case"Archived":return"bg-[#edf1f7] text-[#0a1628] border-[#dde3eb]";default:return"bg-[#edf1f7] text-[#0a1628]"}},ne=s=>{switch(s){case"Beginner":return"bg-sky-50 text-sky-700";case"Intermediate":return"bg-sky-50 text-sky-700";case"Advanced":return"bg-sky-50 text-sky-700";default:return"bg-[#edf1f7] text-[#0a1628]"}},ue=s=>{switch(s){case"Video":return e.jsx(is,{size:16,className:"text-sky-600"});case"Quiz":return e.jsx(gs,{size:16,className:"text-teal-600"});default:return e.jsx(rs,{size:16,className:"text-[#5a6578]"})}},le=s=>{switch(s){case"Video":return"bg-sky-100 text-sky-700";case"Quiz":return"bg-teal-100 text-teal-700";default:return"bg-[#edf1f7] text-[#0a1628]"}},pe=a.filter(s=>{const p=s.title.toLowerCase().includes(x.toLowerCase())||s.subject.toLowerCase().includes(x.toLowerCase()),re=E==="All Types"||s.type===E,te=D==="All Status"||s.status===D;return p&&re&&te});return e.jsxs(_.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Content Management"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Manage learning modules, templates, and educational content"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(W,{variant:"outline",className:"gap-2 border-[#dde3eb] hover:bg-[#edf1f7]",onClick:n,children:[e.jsx(Ae,{size:16}),"Refresh"]}),e.jsxs(W,{className:"gap-2 bg-sky-600 hover:bg-sky-700 text-white",onClick:I,children:[e.jsx(es,{size:16}),"Create Module"]})]}),r?e.jsx("div",{className:"flex items-center justify-center h-24",children:e.jsx(Q,{size:24,className:"animate-spin text-sky-500"})}):null,e.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("p",{className:"text-xs font-bold text-[#5a6578] mb-1",children:"Total Modules"}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:Z})]}),e.jsx("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(ps,{size:14,className:"text-green-500"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Published"})]}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:se})]})}),e.jsx("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Oe,{size:14,className:"text-rose-500"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Drafts"})]}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:f})]})}),e.jsx("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Se,{size:14,className:"text-slate-500"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Archived"})]}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:H})]})})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Re,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx(z,{type:"text",placeholder:"Search modules by title or topic...",className:"pl-10 bg-[#edf1f7] border-[#dde3eb]",value:x,onChange:s=>g(s.target.value)})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs(F,{value:E,onValueChange:G,children:[e.jsx(O,{className:"w-full sm:w-[160px]",children:e.jsx(B,{placeholder:"All Types"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Types",children:"All Types"}),e.jsx(h,{value:"Video",children:"Video"}),e.jsx(h,{value:"Quiz",children:"Quiz"}),e.jsx(h,{value:"Document",children:"Document"})]})]}),e.jsxs(F,{value:D,onValueChange:u,children:[e.jsx(O,{className:"w-full sm:w-[160px]",children:e.jsx(B,{placeholder:"All Status"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Status",children:"All Status"}),e.jsx(h,{value:"Published",children:"Published"}),e.jsx(h,{value:"Draft",children:"Draft"}),e.jsx(h,{value:"Archived",children:"Archived"})]})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] shadow-sm overflow-x-auto",children:[e.jsxs("table",{className:"w-full min-w-[760px] text-left border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[#edf1f7] border-b border-[#dde3eb]",children:[e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Module"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Type"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Difficulty"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Status"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Assigned"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Created"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y divide-[#dde3eb]",children:pe.map(s=>e.jsxs("tr",{className:"hover:bg-[#edf1f7] transition-colors",children:[e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-8 h-8 rounded-lg flex items-center justify-center ${s.type==="Video"?"bg-sky-100 text-sky-600":s.type==="Quiz"?"bg-teal-100 text-teal-600":"bg-[#edf1f7] text-[#5a6578]"}`,children:ue(s.type)}),e.jsxs("div",{children:[e.jsx("p",{className:"font-bold text-[#0a1628] text-sm",children:s.title}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:s.subject})]})]})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded text-xs font-bold ${le(s.type)}`,children:s.type})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded text-xs font-bold ${ne(s.difficulty)}`,children:s.difficulty})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded-full text-xs font-bold border ${ee(s.status)}`,children:s.status})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-1 text-[#5a6578] text-sm",children:[e.jsx(he,{size:14}),e.jsx("span",{children:s.assigned})]})}),e.jsx("td",{className:"p-4 text-sm text-[#5a6578]",children:s.created||"Unknown"}),e.jsx("td",{className:"p-4 text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:()=>j(s),"aria-label":`Edit module ${s.title}`,className:"p-2 hover:bg-[#dde3eb] rounded-lg text-[#5a6578] hover:text-sky-600 transition-colors",children:e.jsx(Oe,{size:16})}),e.jsx("button",{type:"button",onClick:()=>o(s),"aria-label":`Delete module ${s.title}`,className:"p-2 hover:bg-red-50 rounded-lg text-[#5a6578] hover:text-red-600 transition-colors",children:e.jsx(Se,{size:16})})]})})]},s.id))})]}),pe.length===0&&!r&&e.jsxs("div",{className:"p-12 text-center text-[#5a6578]",children:[e.jsx(Y,{size:48,className:"mx-auto mb-4 text-slate-500"}),e.jsx("p",{className:"font-medium",children:"No modules found"}),e.jsx("p",{className:"text-sm",children:a.length===0?"Create your first module to get started":"Try adjusting your search or filters"})]})]}),e.jsx(De,{open:S,onOpenChange:C,children:e.jsxs(Pe,{className:"sm:max-w-[480px]",children:[e.jsxs(Te,{children:[e.jsx(Me,{children:y?"Edit Module":"Create New Module"}),e.jsx(Ee,{children:y?"Update module details below.":"Fill in the details to create a new learning module."})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Title"}),e.jsx(z,{value:i.title,onChange:s=>w({...i,title:s.target.value}),placeholder:"Module title",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Subject"}),e.jsx(z,{value:i.subject,onChange:s=>w({...i,subject:s.target.value}),placeholder:"e.g. Algebra, Calculus",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Type"}),e.jsx("div",{className:"sm:col-span-3",children:e.jsxs(F,{value:i.type,onValueChange:s=>w({...i,type:s}),children:[e.jsx(O,{children:e.jsx(B,{})}),e.jsxs(q,{children:[e.jsx(h,{value:"Video",children:"Video"}),e.jsx(h,{value:"Quiz",children:"Quiz"}),e.jsx(h,{value:"Document",children:"Document"})]})]})})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Difficulty"}),e.jsx("div",{className:"sm:col-span-3",children:e.jsxs(F,{value:i.difficulty,onValueChange:s=>w({...i,difficulty:s}),children:[e.jsx(O,{children:e.jsx(B,{})}),e.jsxs(q,{children:[e.jsx(h,{value:"Beginner",children:"Beginner"}),e.jsx(h,{value:"Intermediate",children:"Intermediate"}),e.jsx(h,{value:"Advanced",children:"Advanced"}),e.jsx(h,{value:"N/A",children:"N/A"})]})]})})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Status"}),e.jsx("div",{className:"sm:col-span-3",children:e.jsxs(F,{value:i.status,onValueChange:s=>w({...i,status:s}),children:[e.jsx(O,{children:e.jsx(B,{})}),e.jsxs(q,{children:[e.jsx(h,{value:"Draft",children:"Draft"}),e.jsx(h,{value:"Published",children:"Published"}),e.jsx(h,{value:"Archived",children:"Archived"})]})]})})]})]}),e.jsxs(Qe,{children:[e.jsx(W,{variant:"outline",onClick:()=>C(!1),disabled:m,children:"Cancel"}),e.jsxs(W,{onClick:R,className:"bg-sky-600 hover:bg-sky-700 text-white",disabled:m,children:[m?e.jsx(Q,{size:16,className:"animate-spin mr-2"}):null,y?"Save Changes":"Create Module"]})]})]})}),e.jsx(oe,{isOpen:U,onClose:()=>{v||(k(!1),A(null))},onConfirm:L,title:"Delete Module?",message:T?`Delete "${T.title}"? This cannot be undone.`:"Delete this module? This cannot be undone.",confirmText:v?"Deleting...":"Delete",cancelText:"Cancel",type:"danger",icon:"delete"})]})},ot=()=>{const[t,a]=c.useState([]),[l,r]=c.useState(!0),[d,m]=c.useState(""),[b,v]=c.useState("All Categories"),[N,x]=c.useState("All Severity"),[g,E]=c.useState("All Roles"),[G,D]=c.useState(25),[u,S]=c.useState(null),C=c.useCallback(async()=>{r(!0);try{const n=await ls();a(n)}catch{M.error("Failed to load audit logs")}finally{r(!1)}},[]);c.useEffect(()=>{C()},[C]),c.useEffect(()=>{D(25)},[d,b,N,g,t.length]);const U=t.filter(n=>n.severity==="Info").length,k=t.filter(n=>n.severity==="Warning").length,T=t.filter(n=>n.severity==="Error"||n.severity==="Critical").length,A=n=>{switch(n){case"Info":return e.jsx(fe,{size:16,className:"text-sky-600"});case"Warning":return e.jsx(we,{size:16,className:"text-rose-600"});case"Error":return e.jsx(be,{size:16,className:"text-red-600"});case"Critical":return e.jsx(be,{size:16,className:"text-red-600"});default:return e.jsx(fe,{size:16,className:"text-[#5a6578]"})}},y=n=>{switch(n){case"Info":return"bg-sky-100 text-sky-700 border-sky-200";case"Warning":return"bg-rose-100 text-rose-700 border-rose-200";case"Error":return"bg-red-100 text-red-700 border-red-200";case"Critical":return"bg-red-100 text-red-700 border-red-200 ring-2 ring-red-500";default:return"bg-[#edf1f7] text-[#0a1628] border-[#dde3eb]"}},P=n=>{switch(n){case"Auth":return"bg-sky-100 text-sky-700";case"Data":return"bg-rose-100 text-rose-700";case"User":return"bg-sky-100 text-sky-700";case"System":return"bg-[#edf1f7] text-[#0a1628]";case"Content":return"bg-green-100 text-green-700";default:return"bg-[#edf1f7] text-[#0a1628]"}},i=t.filter(n=>{const I=n.action.toLowerCase().includes(d.toLowerCase())||n.details.toLowerCase().includes(d.toLowerCase())||n.user.name.toLowerCase().includes(d.toLowerCase()),j=b==="All Categories"||n.category===b,R=N==="All Severity"||n.severity===N,o=g==="All Roles"||n.user.role===g;return I&&j&&R&&o}),w=i.slice(0,G);return e.jsxs(_.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Audit Log"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"System activity monitoring and security events"})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs("div",{className:"bg-white px-3 py-2 rounded-xl border border-[#dde3eb] flex items-center gap-2 text-[#5a6578] text-sm font-medium",children:[e.jsx(ke,{size:16}),e.jsx("span",{children:"Last 100 events"})]}),e.jsxs(W,{variant:"outline",className:"gap-2 border-[#dde3eb] hover:bg-[#edf1f7]",onClick:C,children:[e.jsx(Ae,{size:16}),"Refresh"]}),e.jsx(W,{variant:"outline",disabled:!0,title:"Audit log export is not implemented yet",className:"gap-2 border-[#dde3eb] opacity-60 cursor-not-allowed",children:"Export (Unavailable)"})]}),l?e.jsx("div",{className:"flex items-center justify-center h-24",children:e.jsx(Q,{size:24,className:"animate-spin text-sky-500"})}):null,e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4",children:[e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("p",{className:"text-xs font-bold text-[#5a6578] mb-1",children:"Total Events"}),e.jsx("p",{className:"text-2xl font-bold text-[#0a1628]",children:t.length})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-sky-200 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(fe,{size:14,className:"text-sky-600"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Info"})]}),e.jsx("p",{className:"text-2xl font-bold text-sky-600",children:U})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-rose-200 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(we,{size:14,className:"text-rose-600"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Warnings"})]}),e.jsx("p",{className:"text-2xl font-bold text-rose-600",children:k})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-red-200 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(be,{size:14,className:"text-red-600"}),e.jsx("p",{className:"text-xs font-bold text-[#5a6578]",children:"Errors"})]}),e.jsx("p",{className:"text-2xl font-bold text-red-600",children:T})]})]}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Re,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx(z,{type:"text",placeholder:"Search by user, action, or details...",className:"pl-10 bg-[#edf1f7] border-[#dde3eb]",value:d,onChange:n=>m(n.target.value)})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs(F,{value:b,onValueChange:v,children:[e.jsx(O,{className:"w-full sm:w-[170px]",children:e.jsx(B,{placeholder:"All Categories"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Categories",children:"All Categories"}),e.jsx(h,{value:"Auth",children:"Auth"}),e.jsx(h,{value:"Data",children:"Data"}),e.jsx(h,{value:"User",children:"User"}),e.jsx(h,{value:"System",children:"System"}),e.jsx(h,{value:"Content",children:"Content"})]})]}),e.jsxs(F,{value:N,onValueChange:x,children:[e.jsx(O,{className:"w-full sm:w-[170px]",children:e.jsx(B,{placeholder:"All Severity"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Severity",children:"All Severity"}),e.jsx(h,{value:"Info",children:"Info"}),e.jsx(h,{value:"Warning",children:"Warning"}),e.jsx(h,{value:"Error",children:"Error"}),e.jsx(h,{value:"Critical",children:"Critical"})]})]}),e.jsxs(F,{value:g,onValueChange:E,children:[e.jsx(O,{className:"w-full sm:w-[170px]",children:e.jsx(B,{placeholder:"All Roles"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Roles",children:"All Roles"}),e.jsx(h,{value:"Admin",children:"Admin"}),e.jsx(h,{value:"Teacher",children:"Teacher"}),e.jsx(h,{value:"Student",children:"Student"})]})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] shadow-sm overflow-hidden",children:[e.jsx("div",{className:"md:hidden divide-y divide-[#dde3eb]",children:w.map(n=>e.jsxs("div",{className:"p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-bold border ${y(n.severity)}`,children:[A(n.severity),n.severity]}),e.jsx("button",{type:"button",onClick:()=>S(n),className:"p-2 hover:bg-[#dde3eb] rounded-lg text-slate-500 hover:text-sky-600 transition-colors","aria-label":`View audit event ${n.action}`,children:e.jsx(Be,{size:16})})]}),e.jsx("p",{className:"text-sm font-semibold text-[#0a1628]",children:n.action}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n.timestamp}),e.jsxs("p",{className:"text-xs text-[#5a6578]",children:[n.user.name," (",n.user.role,")"]}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n.details})]},`mobile-${n.id}`))}),e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full min-w-[980px] text-left border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[#edf1f7] border-b border-[#dde3eb]",children:[e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Severity"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Timestamp"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"User"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Action"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Category"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider",children:"Details"}),e.jsx("th",{className:"p-4 text-xs font-bold text-[#5a6578] uppercase tracking-wider text-right",children:"View"})]})}),e.jsx("tbody",{className:"divide-y divide-[#dde3eb]",children:w.map(n=>e.jsxs("tr",{className:"hover:bg-[#edf1f7] transition-colors",children:[e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-bold border ${y(n.severity)}`,children:[A(n.severity),n.severity]})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2 text-[#5a6578] text-sm",children:[e.jsx("div",{className:"p-1 bg-[#edf1f7] rounded",children:e.jsx(ke,{size:12})}),n.timestamp]})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[n.user.avatar?e.jsx("img",{src:n.user.avatar,alt:n.user.name,className:"w-8 h-8 rounded-full object-cover"}):e.jsx("div",{className:"w-8 h-8 bg-sky-100 rounded-full flex items-center justify-center",children:e.jsx(ie,{size:16,className:"text-sky-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-bold text-[#0a1628] text-sm",children:n.user.name}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:n.user.role})]})]})}),e.jsx("td",{className:"p-4",children:e.jsx("p",{className:"font-medium text-[#0a1628] text-sm",children:n.action})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:`px-2 py-1 rounded text-xs font-bold ${P(n.category)}`,children:n.category})}),e.jsx("td",{className:"p-4 text-sm text-[#5a6578] max-w-xs truncate",title:n.details,children:n.details}),e.jsx("td",{className:"p-4 text-right",children:e.jsx("button",{type:"button",onClick:()=>S(n),className:"p-2 hover:bg-[#dde3eb] rounded-lg text-slate-500 hover:text-sky-600 transition-colors","aria-label":`View audit event ${n.action}`,children:e.jsx(Be,{size:16})})})]},n.id))})]})}),i.length>G?e.jsx("div",{className:"border-t border-[#dde3eb] p-4 flex justify-center",children:e.jsx(W,{variant:"outline",className:"border-[#dde3eb]",onClick:()=>D(n=>n+25),children:"Load more events"})}):null,i.length===0&&!l&&e.jsxs("div",{className:"p-12 text-center text-[#5a6578]",children:[e.jsx(ie,{size:48,className:"mx-auto mb-4 text-slate-500"}),e.jsx("p",{className:"font-medium",children:"No logs found"}),e.jsx("p",{className:"text-sm",children:t.length===0?"Audit events will appear here as actions are performed":"Try adjusting your search or filters"})]})]}),e.jsx(De,{open:!!u,onOpenChange:n=>{n||S(null)},children:e.jsxs(Pe,{children:[e.jsxs(Te,{children:[e.jsx(Me,{children:u?.action||"Audit Event Details"}),e.jsx(Ee,{children:"Detailed audit information for operational review."})]}),u?e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Severity:"})," ",u.severity]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Category:"})," ",u.category]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Timestamp:"})," ",u.timestamp]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"User:"})," ",u.user.name," (",u.user.role,")"]}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-[#0a1628]",children:"Details:"})," ",u.details]})]}):null]})})]})},Ge=()=>JSON.parse(JSON.stringify(cs)),mt=({onDirtyChange:t})=>{const{userProfile:a}=ze(),[l,r]=c.useState("General"),[d,m]=c.useState(Ge()),[b,v]=c.useState(Ge()),[N,x]=c.useState(!1),[g,E]=c.useState(!1),[G,D]=c.useState(!1),[u,S]=c.useState(null),C=c.useMemo(()=>JSON.stringify(d)!==JSON.stringify(b),[d,b]),U=[{id:"General",label:"General",icon:fs},{id:"Security",label:"Security",icon:ie},{id:"AI Features",label:"AI Features",icon:Ye},{id:"Academic",label:"Academic",icon:Y},{id:"Notifications",label:"Notifications",icon:bs},{id:"Backup & Data",label:"Backup & Data",icon:ce}];c.useEffect(()=>{(async()=>{if(a?.uid){x(!0);try{const w=await os(a.uid);m(w),v(w)}catch(w){console.error("Failed loading admin settings:",w),M.error("Failed to load admin settings")}finally{x(!1)}}})()},[a?.uid]),c.useEffect(()=>{t?.(C)},[C,t]),c.useEffect(()=>{const i=w=>{C&&(w.preventDefault(),w.returnValue="")};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i)}},[C]);const k=i=>{if(i!==l){if(C){S(i),D(!0);return}r(i)}},T=()=>{m(b),u&&r(u),S(null),D(!1)},A=()=>{S(null),D(!1)},y=i=>{m(w=>({...w,adminPanel:{...w.adminPanel,...i}}))},P=async()=>{if(a?.uid){E(!0);try{const i=await ms(a.uid,d);m(i),v(i),M.success("Admin settings updated")}catch(i){console.error("Failed saving admin settings:",i),M.error("Failed to save admin settings")}finally{E(!1)}}};return e.jsxs(_.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-4 md:gap-6",children:[e.jsx("div",{className:"md:col-span-3",children:e.jsx("div",{className:"bg-white rounded-xl shadow-sm border border-[#dde3eb] overflow-hidden",children:e.jsx("nav",{className:"grid grid-cols-2 sm:grid-cols-3 md:flex md:flex-col py-2",children:U.map(i=>{const w=i.icon,n=l===i.id;return e.jsxs("button",{onClick:()=>k(i.id),className:`flex items-center gap-3 px-4 py-3 text-sm font-medium transition-all relative ${n?"text-sky-600 bg-sky-50/50":"text-[#5a6578] hover:bg-[#edf1f7] hover:text-[#0a1628]"}`,children:[n&&e.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 bg-sky-600 rounded-r-full"}),e.jsx(w,{size:18,className:n?"text-sky-600":"text-slate-500"}),i.label]},i.id)})})})}),e.jsx("div",{className:"md:col-span-9",children:e.jsx(_.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},className:"space-y-6",children:e.jsx("div",{className:"bg-white rounded-xl shadow-sm border border-[#dde3eb] p-6",children:N?e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Loading settings..."}):e.jsxs(e.Fragment,{children:[l==="General"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Site Name"}),e.jsx(z,{value:d.adminPanel.siteName,onChange:i=>y({siteName:i.target.value}),className:"bg-white"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Site Description"}),e.jsx(ns,{className:"min-h-[80px] bg-white border-[#dde3eb]",value:d.adminPanel.siteDescription,onChange:i=>y({siteDescription:i.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Default Language"}),e.jsxs(F,{value:d.adminPanel.defaultLanguage,onValueChange:i=>y({defaultLanguage:i}),children:[e.jsx(O,{className:"w-full",children:e.jsx(B,{placeholder:"Select language"})}),e.jsxs(q,{children:[e.jsx(h,{value:"English",children:"English"}),e.jsx(h,{value:"Spanish",children:"Spanish"}),e.jsx(h,{value:"French",children:"French"}),e.jsx(h,{value:"German",children:"German"})]})]})]}),e.jsxs("div",{className:"mt-6 p-4 bg-red-50 border border-red-100 rounded-xl flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 bg-white rounded-lg text-red-600 shadow-sm border border-red-100",children:e.jsx(qs,{size:18})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-red-900",children:"Maintenance Mode"}),e.jsx("p",{className:"text-xs text-red-700 mt-0.5",children:"Temporarily disable access for non-admins"})]})]}),e.jsx(K,{checked:d.adminPanel.maintenanceMode,onCheckedChange:i=>y({maintenanceMode:i}),className:"data-[state=checked]:bg-red-600 data-[state=unchecked]:bg-[#dde3eb]"})]})]}),l==="Security"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Enforce Strong Passwords"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Require stronger passwords for all users"})]}),e.jsx(K,{checked:d.adminPanel.enforceStrongPasswords,onCheckedChange:i=>y({enforceStrongPasswords:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Session Timeout (minutes)"}),e.jsx(z,{type:"number",value:d.adminPanel.sessionTimeoutMinutes,onChange:i=>y({sessionTimeoutMinutes:Number(i.target.value||0)}),className:"max-w-xs"})]})]}),l==="AI Features"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"AI Tutor"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Enable AI tutoring experience"})]}),e.jsx(K,{checked:d.adminPanel.aiTutorEnabled,onCheckedChange:i=>y({aiTutorEnabled:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Auto Recommendations"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Enable AI-generated recommendations"})]}),e.jsx(K,{checked:d.adminPanel.aiAutoRecommendations,onCheckedChange:i=>y({aiAutoRecommendations:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Risk Alerts"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Send proactive risk alerts for at-risk learners"})]}),e.jsx(K,{checked:d.adminPanel.aiRiskAlertsEnabled,onCheckedChange:i=>y({aiRiskAlertsEnabled:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]})]}),l==="Academic"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Grading Scale"}),e.jsxs(F,{value:d.adminPanel.gradingScale,onValueChange:i=>y({gradingScale:i}),children:[e.jsx(O,{className:"w-full max-w-xs",children:e.jsx(B,{placeholder:"Select grading scale"})}),e.jsxs(q,{children:[e.jsx(h,{value:"percentage",children:"Percentage"}),e.jsx(h,{value:"gpa",children:"GPA"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Passing Grade"}),e.jsx(z,{type:"number",value:d.adminPanel.passingGrade,onChange:i=>y({passingGrade:Number(i.target.value||0)}),className:"max-w-xs"})]})]}),l==="Notifications"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Parent Summary Emails"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Weekly summaries for guardians"})]}),e.jsx(K,{checked:d.adminPanel.parentSummaryEmails,onCheckedChange:i=>y({parentSummaryEmails:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Teacher Digest Emails"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Daily teacher performance digest"})]}),e.jsx(K,{checked:d.adminPanel.teacherDigestEmails,onCheckedChange:i=>y({teacherDigestEmails:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Weekly Platform Report"}),e.jsx("p",{className:"text-xs text-slate-500",children:"System report for administrators"})]}),e.jsx(K,{checked:d.adminPanel.weeklyPlatformReport,onCheckedChange:i=>y({weeklyPlatformReport:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]})]}),l==="Backup & Data"&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:"Automatic Backups"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Create scheduled backups of platform data"})]}),e.jsx(K,{checked:d.adminPanel.autoBackupEnabled,onCheckedChange:i=>y({autoBackupEnabled:i}),className:"data-[state=checked]:bg-sky-600 data-[state=unchecked]:bg-[#dde3eb]"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-[#0a1628]",children:"Backup Frequency"}),e.jsxs(F,{value:d.adminPanel.backupFrequency,onValueChange:i=>y({backupFrequency:i}),children:[e.jsx(O,{className:"w-full max-w-xs",children:e.jsx(B,{placeholder:"Select backup frequency"})}),e.jsxs(q,{children:[e.jsx(h,{value:"daily",children:"Daily"}),e.jsx(h,{value:"weekly",children:"Weekly"}),e.jsx(h,{value:"monthly",children:"Monthly"})]})]})]})]}),e.jsxs("div",{className:"mt-8 pt-6 border-t border-[#dde3eb] flex flex-col sm:flex-row gap-3 sm:items-center sm:justify-end",children:[C?e.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded-lg px-3 py-2",children:"You have unsaved changes."}):e.jsx("p",{className:"text-xs text-[#5a6578]",children:"All changes are saved."}),e.jsxs(W,{className:`bg-sky-600 hover:bg-sky-700 text-white gap-2 ${g||!C?"opacity-70 cursor-not-allowed":""}`,onClick:P,disabled:g||N||!C,children:[g?e.jsx(Q,{size:16,className:"animate-spin"}):e.jsx(js,{size:16}),g?"Saving...":"Save Changes"]})]})]})})})})]}),e.jsx(oe,{isOpen:G,onClose:A,onConfirm:T,title:"Discard Unsaved Changes?",message:"You have unsaved settings updates. Switching sections now will discard those edits.",confirmText:"Discard Changes",cancelText:"Keep Editing",type:"warning",icon:"warning"})]})};function _e({className:t,...a}){return e.jsx(vs,{"data-slot":"avatar",className:$e("relative flex size-10 shrink-0 overflow-hidden rounded-full",t),...a})}function We({className:t,...a}){return e.jsx(Ns,{"data-slot":"avatar-image",className:$e("aspect-square size-full",t),...a})}function He({className:t,...a}){return e.jsx(ys,{"data-slot":"avatar-fallback",className:$e("bg-muted flex size-full items-center justify-center rounded-full",t),...a})}const xt=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ht=/[A-Z]/,ut=/[a-z]/,pt=/\d/,gt=/[^A-Za-z0-9]/;function ft(t){const a={};t.name.trim()||(a.name="Name is required.");const l=t.email.trim().toLowerCase();l?xt.test(l)||(a.email="Enter a valid email address."):a.email="Email is required.";const r=t.password;return r.length<8?a.password="Password must be at least 8 characters.":ht.test(r)?ut.test(r)?pt.test(r)?gt.test(r)||(a.password="Password must include at least one special character."):a.password="Password must include at least one number.":a.password="Password must include at least one lowercase letter.":a.password="Password must include at least one uppercase letter.",t.confirmPassword?t.confirmPassword!==r&&(a.confirmPassword="Passwords do not match."):a.confirmPassword="Confirm password is required.",t.role.trim()||(a.role="Role is required."),t.status.trim()||(a.status="Status is required."),t.grade.trim()||(a.grade="Grade is required."),t.section.trim()||(a.section="Section is required."),t.role.trim().toLowerCase()==="student"&&!t.lrn.trim()&&(a.lrn="LRN is required for student accounts."),a}function bt(t){return Object.values(t).find(l=>!!l)??null}const Xe=(t="Student")=>({name:"",email:"",password:"",confirmPassword:"",role:t,status:"Active",department:t==="Teacher"?"Mathematics":t==="Admin"?"System":"",grade:"Grade 11",section:"Section A",lrn:""}),jt=({createIntentRole:t=null,onCreateIntentConsumed:a})=>{const{userProfile:l}=ze(),[r,d]=c.useState([]),[m,b]=c.useState(!0),[v,N]=c.useState(!1),[x,g]=c.useState(!1),[E,G]=c.useState(null),[D,u]=c.useState(""),[S,C]=c.useState("All Roles"),[U,k]=c.useState("All Status"),[T,A]=c.useState(!1),[y,P]=c.useState(!1),[i,w]=c.useState(null),[n,I]=c.useState(null),[j,R]=c.useState({}),[o,L]=c.useState(Xe()),Z=c.useCallback(async()=>{b(!0);try{const s=await Zs();d(s)}catch{M.error("Failed to load users")}finally{b(!1)}},[]);c.useEffect(()=>{Z()},[Z]);const se=c.useCallback((s="Student")=>{I(null),R({}),L(Xe(s)),A(!0)},[]);c.useEffect(()=>{t&&(se(t),a?.())},[t,se,a]);const f=s=>{I(s),R({}),L({name:s.name,email:s.email,password:"",confirmPassword:"",role:s.role,status:s.status,department:s.department,grade:s.grade||"Grade 11",section:s.section||"Section A",lrn:s.lrn||""}),A(!0)},H=async()=>{if(!o.name.trim()||!o.email.trim()){M.error("Name and email are required");return}if(!n){const s=ft({name:o.name,email:o.email,password:o.password,confirmPassword:o.confirmPassword,role:o.role,status:o.status,grade:o.grade,section:o.section,lrn:o.lrn}),p=bt(s);if(p){R(s),M.error(p);return}}N(!0);try{if(n){const s={name:o.name,role:o.role,status:o.status,grade:o.grade,section:o.section,lrn:o.role==="Student"?o.lrn:void 0};o.role!=="Student"&&(s.department=o.department),await Ve(n.id,s),await ae("User Updated","User","Info",`Updated user: ${o.name} (${n.email})`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),M.success("User updated successfully")}else{const s=await st({email:o.email,name:o.name,password:o.password,confirmPassword:o.confirmPassword,role:o.role,status:o.status,grade:o.grade,section:o.section,lrn:o.role==="Student"?o.lrn:void 0});await ae("Created New User","User","Info",`Created new ${o.role.toLowerCase()} account: ${o.name} (${o.email}), emailSent=${s.emailSent}`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),s.emailSent?M.success("User created and welcome email sent"):(M.warning("User created, but welcome email failed to send"),s.emailError?.message&&M.error(s.emailError.message))}await Z(),A(!1)}catch(s){M.error(s instanceof Error?s.message:"Failed to save user")}finally{N(!1)}},ee=(s,p)=>{w({id:s,name:p}),P(!0)},ne=async()=>{if(!(!i||x)){g(!0);try{await et(i.id),await ae("User Deleted","User","Warning",`Deleted user account: ${i.name}`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),M.success("User deleted"),d(s=>s.filter(p=>p.id!==i.id)),P(!1),w(null)}catch{M.error("Failed to delete user")}finally{g(!1)}}},ue=async s=>{if(E||x)return;const p=s.status==="Active"?"Inactive":"Active";G(s.id);try{await Ve(s.id,{status:p}),await ae("User Status Changed","User","Warning",`${p==="Active"?"Activated":"Deactivated"} user: ${s.email}`,{name:l?.name||"Admin",role:"Admin",avatar:l?.photo||null}),M.success(`User ${p==="Active"?"activated":"deactivated"}`),d(re=>re.map(te=>te.id===s.id?{...te,status:p}:te))}catch{M.error("Failed to update user status")}finally{G(null)}},le=r.filter(s=>{const p=s.name.toLowerCase().includes(D.toLowerCase())||s.email.toLowerCase().includes(D.toLowerCase()),re=S==="All Roles"||s.role===S,te=U==="All Status"||s.status===U;return p&&re&&te}),pe=[{label:"Total Users",value:r.length,color:"text-[#0a1628]"},{label:"Active",value:r.filter(s=>s.status==="Active").length,color:"text-green-600"},{label:"Admins",value:r.filter(s=>s.role==="Admin").length,color:"text-sky-600"},{label:"Teachers",value:r.filter(s=>s.role==="Teacher").length,color:"text-sky-600"},{label:"Students",value:r.filter(s=>s.role==="Student").length,color:"text-emerald-600"}];return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-5 gap-4",children:m?Array.from({length:5}).map((s,p)=>e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("div",{className:"h-7 w-16 bg-[#edf1f7] rounded animate-pulse mb-2"}),e.jsx("div",{className:"h-4 w-24 bg-[#edf1f7] rounded animate-pulse"})]},`stats-skeleton-${p}`)):pe.map((s,p)=>e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm",children:[e.jsx("h3",{className:`text-2xl font-bold ${s.color}`,children:s.value}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:s.label})]},p))}),e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-[#dde3eb] shadow-sm space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Re,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx(z,{placeholder:"Search users by name or email...",className:"pl-10 bg-[#edf1f7] border-[#dde3eb]",value:D,onChange:s=>u(s.target.value)})]}),e.jsxs("div",{className:"flex flex-col md:flex-row justify-between gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs(F,{value:S,onValueChange:C,children:[e.jsx(O,{className:"w-full sm:w-[140px] bg-[#edf1f7] border-[#dde3eb]",children:e.jsx(B,{placeholder:"All Roles"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Roles",children:"All Roles"}),e.jsx(h,{value:"Admin",children:"Admin"}),e.jsx(h,{value:"Teacher",children:"Teacher"}),e.jsx(h,{value:"Student",children:"Student"})]})]}),e.jsxs(F,{value:U,onValueChange:k,children:[e.jsx(O,{className:"w-full sm:w-[140px] bg-[#edf1f7] border-[#dde3eb]",children:e.jsx(B,{placeholder:"All Status"})}),e.jsxs(q,{children:[e.jsx(h,{value:"All Status",children:"All Status"}),e.jsx(h,{value:"Active",children:"Active"}),e.jsx(h,{value:"Inactive",children:"Inactive"})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs(W,{variant:"outline",className:"gap-2 border-[#dde3eb] text-[#5a6578]",onClick:Z,children:[e.jsx(Ae,{size:16}),"Refresh"]}),e.jsxs(W,{className:"gap-2 bg-sky-500 hover:bg-sky-600 text-white",onClick:()=>se(),children:[e.jsx(es,{size:16}),"Add User"]})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] shadow-sm overflow-hidden",children:[e.jsx("div",{className:"md:hidden divide-y divide-[#dde3eb]",children:le.length>0?le.map(s=>{const p=E===s.id;return e.jsxs("div",{className:"p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(_e,{children:[e.jsx(We,{src:s.photo}),e.jsx(He,{children:s.name.charAt(0)})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-semibold text-[#0a1628] truncate",children:s.name}),e.jsx("p",{className:"text-xs text-[#5a6578] truncate",children:s.email})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsxs("div",{className:"rounded-lg bg-[#edf1f7] px-2 py-1.5 text-[#5a6578]",children:["Role: ",e.jsx("span",{className:"font-semibold text-[#0a1628]",children:s.role})]}),e.jsxs("div",{className:"rounded-lg bg-[#edf1f7] px-2 py-1.5 text-[#5a6578]",children:["Status: ",e.jsx("span",{className:"font-semibold text-[#0a1628]",children:s.status})]}),e.jsxs("div",{className:"rounded-lg bg-[#edf1f7] px-2 py-1.5 text-[#5a6578] col-span-2",children:["Last Login: ",e.jsx("span",{className:"font-semibold text-[#0a1628]",children:s.lastLogin||"Never"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>f(s),"aria-label":`Edit ${s.name}`,className:"px-3 py-2 rounded-lg border border-[#dde3eb] text-[#5a6578] hover:bg-[#edf1f7]",children:"Edit"}),e.jsx("button",{type:"button",onClick:()=>ue(s),"aria-label":s.status==="Active"?`Deactivate ${s.name}`:`Activate ${s.name}`,disabled:p||x,className:"px-3 py-2 rounded-lg border border-[#dde3eb] text-[#5a6578] disabled:opacity-60 disabled:cursor-not-allowed",children:p?"Updating...":s.status==="Active"?"Deactivate":"Activate"}),e.jsx("button",{type:"button",onClick:()=>ee(s.id,s.name),"aria-label":`Delete ${s.name}`,disabled:x,className:"px-3 py-2 rounded-lg border border-red-200 text-red-600 disabled:opacity-60 disabled:cursor-not-allowed",children:"Delete"})]})]},`mobile-${s.id}`)}):e.jsx("div",{className:"px-6 py-12 text-center text-[#5a6578]",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-[#edf1f7] rounded-full",children:e.jsx(he,{size:24,className:"text-slate-500"})}),e.jsx("p",{children:"No users found matching your filters"})]})})}),e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm text-left",children:[e.jsx("thead",{className:"text-xs text-[#5a6578] uppercase bg-[#edf1f7] border-b border-[#dde3eb]",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-4 font-semibold",children:"User"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Role"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Status"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Class/Department"}),e.jsx("th",{className:"px-6 py-4 font-semibold",children:"Last Login"}),e.jsx("th",{className:"px-6 py-4 font-semibold text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y divide-[#dde3eb]",children:le.length>0?le.map(s=>{const p=E===s.id;return e.jsxs("tr",{className:"hover:bg-[#edf1f7]/50 transition-colors",children:[e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(_e,{children:[e.jsx(We,{src:s.photo}),e.jsx(He,{children:s.name.charAt(0)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-[#0a1628]",children:s.name}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:s.email})]})]})}),e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex items-center gap-1.5",children:[s.role==="Admin"&&e.jsx(ie,{size:14,className:"text-sky-600"}),s.role==="Teacher"&&e.jsx(Ue,{size:14,className:"text-sky-600"}),s.role==="Student"&&e.jsx(Os,{size:14,className:"text-emerald-600"}),e.jsx("span",{className:` font-medium text-xs px-2 py-0.5 rounded-full ${s.role==="Admin"?"bg-sky-100 text-sky-700":""} ${s.role==="Teacher"?"bg-sky-100 text-sky-700":""} @@ -51,8 +56,8 @@ import{r as c,j as e}from"./vendor-react-Dexh7fmo.js";import Ie from"./Sidebar-B `,children:s.role})]})}),e.jsx("td",{className:"px-6 py-4",children:e.jsxs("span",{className:` inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${s.status==="Active"?"bg-green-50 text-green-700 border-green-200":"bg-[#edf1f7] text-[#5a6578] border-[#dde3eb]"} - `,children:[e.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${s.status==="Active"?"bg-green-500":"bg-[#a8a5b3]"}`}),s.status]})}),e.jsx("td",{className:"px-6 py-4 text-[#5a6578]",children:s.role==="Student"&&s.classSection||s.department}),e.jsx("td",{className:"px-6 py-4 text-[#5a6578]",children:s.lastLogin||"Never"}),e.jsx("td",{className:"px-6 py-4 text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:()=>f(s),"aria-label":`Edit ${s.name}`,className:"p-1.5 text-slate-500 hover:text-sky-600 hover:bg-sky-50 rounded-lg transition-colors",children:e.jsx(_s,{size:16})}),e.jsx("button",{type:"button",onClick:()=>ue(s),"aria-label":s.status==="Active"?`Deactivate ${s.name}`:`Activate ${s.name}`,disabled:p||x,className:`p-1.5 rounded-lg transition-colors ${p?"opacity-60 cursor-not-allowed":""} ${s.status==="Active"?"text-slate-500 hover:text-orange-600 hover:bg-orange-50":"text-orange-500 hover:text-green-600 hover:bg-green-50"}`,title:s.status==="Active"?"Deactivate User":"Activate User",children:p?e.jsx(Q,{size:16,className:"animate-spin"}):s.status==="Active"?e.jsx(Ls,{size:16}):e.jsx(Hs,{size:16})}),e.jsx("button",{type:"button",onClick:()=>ee(s.id,s.name),"aria-label":`Delete ${s.name}`,disabled:x,className:"p-1.5 text-slate-500 hover:text-red-600 hover:bg-red-50 rounded-lg transition-colors",children:e.jsx(Se,{size:16})})]})})]},s.id)}):e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-6 py-12 text-center text-[#5a6578]",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-[#edf1f7] rounded-full",children:e.jsx(he,{size:24,className:"text-slate-500"})}),e.jsx("p",{children:"No users found matching your filters"})]})})})})]})})]}),e.jsx(De,{open:T,onOpenChange:A,children:e.jsxs(Pe,{className:"sm:max-w-[425px]",children:[e.jsxs(Te,{children:[e.jsx(Me,{children:n?"Edit User Access":"Add New User"}),e.jsx(Ee,{children:n?"Update user details and manage access permissions.":"Create a new account and send welcome credentials by email."})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"name",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Name"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"name",value:o.name,onChange:s=>{L({...o,name:s.target.value}),j.name&&R(p=>({...p,name:void 0}))},className:j.name?"border-red-500 focus-visible:ring-red-500":""}),j.name?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.name}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"email",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Email"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"email",type:"email",value:o.email,onChange:s=>{n||(L({...o,email:s.target.value}),j.email&&R(p=>({...p,email:void 0})))},readOnly:!!n,"aria-readonly":!!n,className:`${j.email?"border-red-500 focus-visible:ring-red-500":""} ${n?"bg-[#edf1f7] text-[#5a6578] cursor-not-allowed":""}`}),j.email?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.email}):null,n?e.jsx("p",{className:"mt-1 text-xs text-[#5a6578]",children:"Email changes are disabled because authentication email updates are not supported in this panel."}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"role",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Role"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsxs(F,{value:o.role,onValueChange:s=>{L({...o,role:s,lrn:s==="Student"?o.lrn:""}),R(p=>({...p,role:void 0,lrn:void 0}))},children:[e.jsx(O,{className:j.role?"border-red-500 focus:ring-red-500":"",children:e.jsx(B,{placeholder:"Select role"})}),e.jsxs(q,{children:[e.jsx(h,{value:"Student",children:"Student"}),e.jsx(h,{value:"Teacher",children:"Teacher"}),e.jsx(h,{value:"Admin",children:"Admin"})]})]}),j.role?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.role}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"status",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Status"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsxs(F,{value:o.status,onValueChange:s=>{L({...o,status:s}),j.status&&R(p=>({...p,status:void 0}))},children:[e.jsx(O,{className:j.status?"border-red-500 focus:ring-red-500":"",children:e.jsx(B,{placeholder:"Select status"})}),e.jsxs(q,{children:[e.jsx(h,{value:"Active",children:"Active"}),e.jsx(h,{value:"Inactive",children:"Inactive"})]})]}),j.status?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.status}):null]})]}),n?o.role==="Student"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"lrn",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"LRN"}),e.jsx(z,{id:"lrn",value:o.lrn,onChange:s=>L({...o,lrn:s.target.value}),placeholder:"12-digit learner reference",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"grade",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Grade"}),e.jsx(z,{id:"grade",value:o.grade,onChange:s=>L({...o,grade:s.target.value}),placeholder:"e.g. Grade 11",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"section",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Section"}),e.jsx(z,{id:"section",value:o.section,onChange:s=>L({...o,section:s.target.value}),placeholder:"e.g. STEM A",className:"sm:col-span-3"})]})]}):e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"department",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Department"}),e.jsx(z,{id:"department",value:o.department,onChange:s=>L({...o,department:s.target.value}),placeholder:"e.g. Mathematics",className:"sm:col-span-3"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"grade",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Grade"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"grade",value:o.grade,onChange:s=>{L({...o,grade:s.target.value}),j.grade&&R(p=>({...p,grade:void 0}))},placeholder:"e.g. Grade 11",className:j.grade?"border-red-500 focus-visible:ring-red-500":""}),j.grade?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.grade}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"section",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Section"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"section",value:o.section,onChange:s=>{L({...o,section:s.target.value}),j.section&&R(p=>({...p,section:void 0}))},placeholder:"e.g. STEM A",className:j.section?"border-red-500 focus-visible:ring-red-500":""}),j.section?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.section}):null]})]}),o.role==="Student"?e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"lrn",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"LRN"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"lrn",value:o.lrn,onChange:s=>{L({...o,lrn:s.target.value}),j.lrn&&R(p=>({...p,lrn:void 0}))},placeholder:"Required for student accounts",className:j.lrn?"border-red-500 focus-visible:ring-red-500":""}),j.lrn?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.lrn}):null]})]}):null,e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"password",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Password"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"password",type:"password",value:o.password,onChange:s=>{L({...o,password:s.target.value}),j.password&&R(p=>({...p,password:void 0}))},placeholder:"Min 8 chars, upper/lowercase, number, and symbol",className:j.password?"border-red-500 focus-visible:ring-red-500":""}),j.password?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.password}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"confirmPassword",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Confirm"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"confirmPassword",type:"password",value:o.confirmPassword,onChange:s=>{L({...o,confirmPassword:s.target.value}),j.confirmPassword&&R(p=>({...p,confirmPassword:void 0}))},placeholder:"Retype password",className:j.confirmPassword?"border-red-500 focus-visible:ring-red-500":""}),j.confirmPassword?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.confirmPassword}):null]})]})]})]}),e.jsxs(Qe,{children:[e.jsx(W,{variant:"outline",onClick:()=>A(!1),disabled:v,children:"Cancel"}),e.jsxs(W,{onClick:H,className:"bg-sky-600 hover:bg-sky-700 text-white",disabled:v,children:[v?e.jsx(Q,{size:16,className:"animate-spin mr-2"}):null,n?"Save Changes":"Create User & Send Email"]})]})]})}),e.jsx(oe,{isOpen:y,onClose:()=>{x||(P(!1),w(null))},onConfirm:ne,title:"Delete User?",message:i?`Delete user "${i.name}"? This cannot be undone.`:"Delete this user? This cannot be undone.",confirmText:x?"Deleting...":"Delete",cancelText:"Cancel",type:"danger",icon:"delete"})]})},de=({icon:t,title:a,subtitle:l})=>e.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-[#edf1f7] flex items-center justify-center",children:t}),e.jsx("p",{className:"text-sm font-semibold text-[#5a6578]",children:a}),l&&e.jsx("p",{className:"text-xs text-[#a0aec0] max-w-xs",children:l})]}),jt=()=>{const[t,a]=c.useState("30d"),[l,r]=c.useState(null),[d,m]=c.useState(!0);c.useEffect(()=>{nt().then(r).catch(console.error).finally(()=>m(!1))},[]);const b={"7d":"Last 7 Days","30d":"Last 30 Days","90d":"Last 90 Days","12m":"Last 12 Months"},v=[{label:"Total Active Users",value:d?null:(l?.totalActiveUsers??0).toLocaleString(),icon:he,color:"from-sky-500 to-blue-600"},{label:"Avg. Completion Rate",value:"N/A",icon:ss,color:"from-teal-500 to-emerald-600"},{label:"Avg. Session Duration",value:"N/A",icon:ws,color:"from-violet-500 to-purple-600"},{label:"At-Risk Students",value:d?null:(l?.atRiskStudents??0).toString(),icon:qe,color:"from-rose-500 to-orange-600"}],N=[{label:"Achievements Unlocked",icon:je,color:"text-rose-600",bg:"bg-rose-50",value:d?null:(l?.achievementsUnlocked??0).toLocaleString()},{label:"XP Earned (Platform)",icon:Ye,color:"text-violet-600",bg:"bg-violet-50",value:d?null:(l?.totalXPEarned??0)>=1e6?`${((l?.totalXPEarned??0)/1e6).toFixed(1)}M`:(l?.totalXPEarned??0)>=1e3?`${Math.round((l?.totalXPEarned??0)/1e3)}K`:(l?.totalXPEarned??0).toLocaleString()},{label:"Active Streaks",icon:xs,color:"text-orange-600",bg:"bg-orange-50",value:d?null:(l?.activeStreaks??0).toLocaleString()},{label:"AI Tutor Sessions",icon:Ss,color:"text-sky-600",bg:"bg-sky-50",value:d?null:(l?.aiTutorSessions??0).toLocaleString()}];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.3},className:"flex items-center justify-between",children:[e.jsx("div",{className:"flex items-center gap-2 bg-white rounded-xl p-1 shadow-sm border border-[#dde3eb]",children:Object.entries(b).map(([x,g])=>e.jsx("button",{onClick:()=>a(x),disabled:!0,title:"Range selection is unavailable until backend range queries are supported.",className:`px-4 py-2 rounded-lg text-sm font-semibold transition-all ${t===x?"bg-sky-600 text-white shadow-sm":"text-[#5a6578] hover:bg-[#edf1f7]"} opacity-60 cursor-not-allowed`,children:g},x))}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(W,{variant:"outline",disabled:!0,title:"Advanced analytics filters are not implemented yet",className:"px-4 py-2 gap-2 rounded-xl border-[#dde3eb] font-semibold text-sm opacity-50 cursor-not-allowed",children:[e.jsx(ks,{size:16}),"Filters"]}),e.jsxs(W,{variant:"outline",disabled:!0,title:"Export is unavailable until backend report generation is implemented",className:"px-4 py-2 gap-2 rounded-xl border-[#dde3eb] font-semibold text-sm opacity-50 cursor-not-allowed",children:[e.jsx(As,{size:16}),"Export"]})]})]}),e.jsx("p",{className:"text-xs text-[#5a6578] -mt-3",children:"Time-range filtering is currently disabled because analytics range queries are not yet supported by the backend."}),!d&&!l?.totalActiveUsers&&e.jsxs(_.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.35},className:"flex items-center gap-3 bg-rose-50 border border-rose-200 rounded-2xl px-5 py-4",children:[e.jsx(ce,{size:18,className:"text-rose-600 shrink-0"}),e.jsxs("p",{className:"text-sm text-rose-800",children:[e.jsx("span",{className:"font-semibold",children:"Limited analytics data."})," ","KPI cards will populate automatically as students, quizzes, and sessions accumulate in the platform. Chart visualisations require time-series data."]})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:v.map((x,g)=>{const E=x.icon;return e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.35,delay:g*.06},className:"bg-white rounded-2xl p-5 shadow-sm border border-[#dde3eb]",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsx("div",{className:`w-11 h-11 rounded-xl bg-gradient-to-br ${x.color} flex items-center justify-center shadow-sm`,children:e.jsx(E,{size:20,className:"text-white"})})}),d?e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Q,{size:16,className:"animate-spin text-[#a0aec0]"}),e.jsx("div",{className:"w-14 h-6 bg-[#edf1f7] rounded-lg animate-pulse"})]}):e.jsx("p",{className:"text-2xl font-bold text-[#0a1628] mb-2",children:x.value}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-[#5a6578] font-medium",children:x.label}),e.jsx("span",{className:"text-xs text-[#a0aec0] font-medium",children:b[t]})]})]},x.label)})}),e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.15},className:"xl:col-span-8 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Performance Trends"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Average scores — students vs. teacher targets"})]}),e.jsxs("div",{className:"flex items-center gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-sky-300"}),e.jsx("span",{className:"text-[#a0aec0] font-medium",children:"Students"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-violet-300"}),e.jsx("span",{className:"text-[#a0aec0] font-medium",children:"Teacher Targets"})]})]})]}),e.jsx(de,{icon:e.jsx(Ce,{size:24,className:"text-[#c2cad8]"}),title:"No performance data yet",subtitle:"Import student and class records to generate trend charts."})]}),e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.2},className:"xl:col-span-4 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-violet-100 rounded-xl flex items-center justify-center",children:e.jsx(Us,{size:20,className:"text-violet-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Grade Distribution"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"All students, current term"})]})]}),e.jsx(de,{icon:e.jsx(ce,{size:24,className:"text-[#c2cad8]"}),title:"No grade data",subtitle:"Import quiz and assessment results to see grade breakdowns."})]})]}),e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.25},className:"xl:col-span-7 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-sky-100 rounded-xl flex items-center justify-center",children:e.jsx(K,{size:20,className:"text-sky-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Subject Engagement"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Enrollment, completion, and average scores"})]})]}),e.jsx("div",{className:"overflow-hidden rounded-xl border border-[#dde3eb]",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[#f7f9fc]",children:[e.jsx("th",{className:"text-left text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Subject"}),e.jsx("th",{className:"text-right text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Enrolled"}),e.jsx("th",{className:"text-right text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Completion"}),e.jsx("th",{className:"text-right text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Avg. Score"}),e.jsx("th",{className:"text-left text-xs font-semibold text-[#5a6578] px-4 py-3 w-36",children:"Progress"})]})}),e.jsx("tbody",{children:e.jsx("tr",{children:e.jsx("td",{colSpan:5,className:"px-4 py-10",children:e.jsx(de,{icon:e.jsx(ce,{size:22,className:"text-[#c2cad8]"}),title:"No subject data available",subtitle:"Import class enrollment records to view subject engagement."})})})})]})})]}),e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.3},className:"xl:col-span-5 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-orange-100 rounded-xl flex items-center justify-center",children:e.jsx(ke,{size:20,className:"text-orange-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Weekly Activity"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Sessions per day of week"})]})]}),e.jsx(de,{icon:e.jsx(qe,{size:24,className:"text-[#c2cad8]"}),title:"No session activity yet",subtitle:"Student logins and session data will appear here after data is imported."})]})]}),e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.35},className:"xl:col-span-5 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-rose-100 rounded-xl flex items-center justify-center",children:e.jsx(je,{size:20,className:"text-rose-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Gamification Overview"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Engagement & motivation metrics"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:N.map(x=>{const g=x.icon;return e.jsxs("div",{className:`${x.bg} border border-[#dde3eb] rounded-xl p-4`,children:[e.jsx(g,{size:20,className:x.color}),d?e.jsx("div",{className:"w-12 h-5 bg-white/60 rounded mt-2 mb-1 animate-pulse"}):e.jsx("p",{className:"text-lg font-bold text-[#0a1628] mt-2 mb-1",children:x.value}),e.jsx("p",{className:"text-xs text-[#5a6578] font-medium",children:x.label})]},x.label)})})]}),e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.4},className:"xl:col-span-7 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-teal-100 rounded-xl flex items-center justify-center",children:e.jsx(Ue,{size:20,className:"text-teal-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Top Performing Classes"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Ranked by average score this term"})]})]}),e.jsx(de,{icon:e.jsx(ce,{size:24,className:"text-[#c2cad8]"}),title:"No class data yet",subtitle:"Import class and student records to see top performers ranked here."})]})]})]})},ge=[{id:"gen-math",name:"Gen Math",shortName:"GM",color:"#3B82F6"},{id:"stats-prob",name:"Stats & Prob",shortName:"SP",color:"#0ea5e9"},{id:"pre-calc",name:"Pre-Calc",shortName:"PC",color:"#F97316"},{id:"basic-calc",name:"Basic Calc",shortName:"BC",color:"#EF4444"}],Ne={"gen-math":[{name:"Functions & Relations",unit:"Functions"},{name:"Rational Functions",unit:"Functions"},{name:"Exponential Functions",unit:"Functions"},{name:"Logarithmic Functions",unit:"Functions"},{name:"Simple Interest",unit:"Business Math"},{name:"Compound Interest",unit:"Business Math"},{name:"Annuities",unit:"Business Math"},{name:"Propositions",unit:"Logic"},{name:"Truth Tables",unit:"Logic"}],"stats-prob":[{name:"Random Variables",unit:"Random Variables"},{name:"Probability Distributions",unit:"Random Variables"},{name:"Normal Distribution",unit:"Normal Dist"},{name:"Z-scores",unit:"Normal Dist"},{name:"Sampling Distributions",unit:"Sampling"},{name:"Central Limit Theorem",unit:"Sampling"},{name:"Confidence Intervals",unit:"Estimation"},{name:"Hypothesis Testing",unit:"Testing"},{name:"Correlation",unit:"Regression"}],"pre-calc":[{name:"Parabola",unit:"Conics"},{name:"Ellipse",unit:"Conics"},{name:"Hyperbola",unit:"Conics"},{name:"Arithmetic Seq",unit:"Series"},{name:"Geometric Seq",unit:"Series"},{name:"Math Induction",unit:"Series"},{name:"Trig Functions",unit:"Trigonometry"},{name:"Trig Identities",unit:"Trigonometry"},{name:"Polar Coords",unit:"Trigonometry"}],"basic-calc":[{name:"Limits",unit:"Limits"},{name:"Continuity",unit:"Limits"},{name:"Definition of Deriv.",unit:"Derivatives"},{name:"Diff. Rules",unit:"Derivatives"},{name:"Chain Rule",unit:"Derivatives"},{name:"Related Rates",unit:"Derivatives"},{name:"Optimization",unit:"Derivatives"},{name:"Antiderivatives",unit:"Integration"},{name:"Definite Integrals",unit:"Integration"}]};function vt(t){return t>=85?"bg-emerald-500":t>=70?"bg-emerald-300":t>=55?"bg-rose-300":t>=40?"bg-orange-400":t>=20?"bg-red-400":"bg-red-600"}function Nt(t){return t>=70||t>=40,"text-white"}const yt=({title:t="Platform-Wide Subject Mastery"})=>{const[a,l]=c.useState(null),[r,d]=c.useState("all"),[m,b]=c.useState([]),[v,N]=c.useState(!0);c.useEffect(()=>{(async()=>{N(!0);try{const S=await X(V($,"progress")),C={};S.forEach(k=>{const A=k.data().subjects||{};for(const[y,P]of Object.entries(A)){const i=Ne[y]||[],w=P?.progress??0;for(const n of i){const I=`${y}::${n.name}`;C[I]||(C[I]={totalMastery:0,count:0}),C[I].totalMastery+=w,C[I].count+=1}}});const U=[];for(const k of ge){const T=Ne[k.id]||[];for(const A of T){const y=`${k.id}::${A.name}`,P=C[y];U.push({subject:k.id,topic:A.name,mastery:P&&P.count>0?Math.round(P.totalMastery/P.count):0,students:P?.count??0})}}b(U)}catch(S){console.error("[MasteryHeatmap] Error fetching progress data:",S)}finally{N(!1)}})()},[]);const x=r==="all"?ge:ge.filter(u=>u.id===r),g=m.filter(u=>u.students>0),E=g.length>0?Math.round(g.reduce((u,S)=>u+S.mastery,0)/g.length):0,G=g.length>0?g.reduce((u,S)=>S.mastery0?g.reduce((u,S)=>S.mastery>u.mastery?S:u,g[0]):null;return v?e.jsx("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb] flex items-center justify-center min-h-[200px]",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx(Q,{size:28,className:"text-sky-500 animate-spin"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Loading mastery data..."})]})}):e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-gradient-to-br from-indigo-500 to-sky-500 rounded-xl flex items-center justify-center",children:e.jsx(Fs,{size:20,className:"text-white"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:t}),e.jsxs("p",{className:"text-xs text-[#5a6578]",children:["Aggregated mastery levels across all classes • ",m.filter(u=>u.students>0).length," tracked combinations"]})]})]}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r,onChange:u=>d(u.target.value),className:"appearance-none bg-[#edf1f7] border border-[#dde3eb] rounded-lg px-3 py-1.5 pr-8 text-xs font-semibold text-[#5a6578] focus:outline-none focus:ring-2 focus:ring-sky-500/20",children:[e.jsx("option",{value:"all",children:"All Subjects"}),ge.map(u=>e.jsx("option",{value:u.id,children:u.name},u.id))]}),e.jsx(Ds,{size:12,className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-500 pointer-events-none"})]})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 mb-5",children:[e.jsxs("div",{className:"bg-[#edf1f7] rounded-xl p-3 flex items-center gap-3",children:[e.jsx("div",{className:`w-8 h-8 rounded-lg flex items-center justify-center ${E>=70?"bg-emerald-100":"bg-rose-100"}`,children:e.jsx(Ps,{size:16,className:E>=70?"text-emerald-600":"text-rose-600"})}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-lg font-bold text-[#0a1628]",children:[E,"%"]}),e.jsx("p",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider",children:"Platform Average"})]})]}),e.jsxs("div",{className:"bg-red-50 rounded-xl p-3 flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-red-100 rounded-lg flex items-center justify-center",children:e.jsx(Cs,{size:16,className:"text-red-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628] truncate",children:G?.topic}),e.jsxs("p",{className:"text-[10px] text-red-600 font-semibold",children:[G?.mastery,"% — Lowest"]})]})]}),e.jsxs("div",{className:"bg-emerald-50 rounded-xl p-3 flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-emerald-100 rounded-lg flex items-center justify-center",children:e.jsx(Ts,{size:16,className:"text-emerald-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628] truncate",children:D?.topic}),e.jsxs("p",{className:"text-[10px] text-emerald-600 font-semibold",children:[D?.mastery,"% — Highest"]})]})]})]}),e.jsx("div",{className:"overflow-x-auto",children:x.map(u=>{const S=Ne[u.id]||[],C=m.filter(k=>k.subject===u.id),U=C.length>0?Math.round(C.reduce((k,T)=>k+T.mastery,0)/C.length):0;return e.jsxs("div",{className:"mb-5 last:mb-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-sm",style:{backgroundColor:u.color}}),e.jsx("span",{className:"text-xs font-bold text-[#0a1628]",children:u.name}),e.jsxs("span",{className:"text-[10px] text-slate-500 ml-1",children:["Avg: ",U,"%"]})]}),e.jsxs("div",{className:"grid gap-1",style:{gridTemplateColumns:`repeat(${S.length}, minmax(0, 1fr))`},children:[S.map((k,T)=>e.jsx("div",{className:"text-center",children:e.jsx("p",{className:"text-[9px] text-slate-500 truncate px-0.5 mb-1",title:k.name,children:k.name})},`label-${T}`)),S.map((k,T)=>{const A=C.find(i=>i.topic===k.name),y=A?.mastery||0,P=a?.topic===k.name&&a?.subject===u.id;return e.jsxs(_.div,{onMouseEnter:()=>A&&l(A),onMouseLeave:()=>l(null),whileHover:{scale:1.05},className:`relative h-10 rounded-lg flex items-center justify-center cursor-pointer transition-all ${vt(y)} ${P?"ring-2 ring-white shadow-lg z-10":""}`,children:[e.jsxs("span",{className:`text-xs font-bold ${Nt(y)}`,children:[y,"%"]}),P&&A&&e.jsxs("div",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 bg-slate-800 text-white rounded-lg px-3 py-2 text-xs whitespace-nowrap z-20 shadow-xl pointer-events-none",children:[e.jsx("p",{className:"font-bold mb-0.5",children:A.topic}),e.jsxs("p",{children:["Mastery: ",e.jsxs("strong",{children:[A.mastery,"%"]})]}),e.jsxs("p",{children:["Students: ",e.jsx("strong",{children:A.students})]}),e.jsx("div",{className:"absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-full w-0 h-0 border-l-[6px] border-l-transparent border-r-[6px] border-r-transparent border-t-[6px] border-t-slate-800"})]})]},`cell-${T}`)})]})]},u.id)})}),e.jsxs("div",{className:"flex items-center justify-center gap-4 mt-5 pt-4 border-t border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[#5a6578]",children:[e.jsx(fe,{size:10}),e.jsx("span",{children:"Color scale:"})]}),[{label:"0-19%",color:"bg-red-600"},{label:"20-39%",color:"bg-red-400"},{label:"40-54%",color:"bg-orange-400"},{label:"55-69%",color:"bg-rose-300"},{label:"70-84%",color:"bg-emerald-300"},{label:"85-100%",color:"bg-emerald-500"}].map((u,S)=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:`w-3 h-3 rounded-sm ${u.color}`}),e.jsx("span",{className:"text-[10px] text-[#5a6578]",children:u.label})]},S))]})]})},wt=[{id:"gen-math",title:"General Mathematics",icon:K,bg:"bg-[#9956DE]",tags:["Algebra","Fractions","Integers"],level:1,progress:25,isAtRisk:!0},{id:"pre-calc",title:"Pre-Calculus",icon:K,bg:"bg-[#1FA7E1]",tags:["Functions","Limits","Graphs"],level:2,progress:15,isAtRisk:!0},{id:"stats-prob",title:"Statistics & Probability",icon:K,bg:"bg-[#FFB356]",tags:["Probability","Mean/Median"],level:2,progress:40,isAtRisk:!1},{id:"basic-calc",title:"Basic Calculus",icon:K,bg:"bg-[#FB96BB]",tags:["Derivatives","Integrals"],level:3,progress:50,isAtRisk:!1},{id:"adv-math",title:"Advanced Algebra",icon:K,bg:"bg-[#7274ED]",tags:["Math","Logic"],level:4,progress:10,isAtRisk:!0}].slice(0,5),St=()=>{const t=c.useRef(null),[a,l]=c.useState(0),r=()=>{if(!t.current)return;const{scrollLeft:m,scrollWidth:b,clientWidth:v}=t.current,N=m/(b-v),x=3;let g=Math.round(N*(x-1));g<0&&(g=0),g>=x&&(g=x-1),l(g)},d=m=>{if(!t.current)return;const{scrollWidth:b,clientWidth:v}=t.current,x=(b-v)/2*m;t.current.scrollTo({left:x,behavior:"smooth"}),l(m)};return e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb] mb-6",children:[e.jsx("div",{className:"flex items-center justify-between mb-5",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-1",children:"Priority Attention Modules"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Highly recommended to be reviewed (lowest performance)."})]})}),e.jsx("div",{className:"relative",children:e.jsx("div",{ref:t,onScroll:r,className:"flex overflow-x-auto snap-x snap-mandatory gap-5 pb-6 hide-scrollbar",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:wt.map(m=>{const b=m.icon;return e.jsxs("div",{className:`snap-center shrink-0 w-[280px] sm:w-[300px] ${m.bg} rounded-[2rem] p-5 min-h-[290px] relative overflow-hidden transition-all duration-300 flex flex-col group shadow-sm`,children:[e.jsx("div",{className:"absolute -bottom-8 right-[-20%] w-32 h-32 bg-white opacity-10 rounded-full"}),e.jsx("div",{className:"absolute bottom-4 right-12 w-20 h-20 bg-white opacity-10 rounded-full"}),e.jsxs("div",{className:"flex justify-between items-start mb-4 relative z-10",children:[e.jsx("div",{className:"w-12 h-12 rounded-[1rem] bg-white/20 flex flex-shrink-0 items-center justify-center text-white backdrop-blur-sm",children:e.jsx(b,{size:24,className:"opacity-90"})}),e.jsxs("div",{className:"px-4 py-1.5 rounded-full bg-white/20 text-white/90 text-sm font-bold backdrop-blur-sm",children:["Lv ",m.level]})]}),e.jsxs("div",{className:"relative z-10 flex-1",children:[e.jsx("h3",{className:"text-2xl font-display font-black text-white leading-[1.1] mb-3 drop-shadow-sm pr-4 line-clamp-2",children:m.title}),e.jsx("div",{className:"flex flex-wrap gap-2 pb-4",children:m.tags.map(v=>e.jsx("span",{className:"px-3 py-1 rounded-full bg-white/20 text-white text-[13px] font-bold shadow-sm backdrop-blur-sm",children:v},v))})]}),e.jsxs("div",{className:"relative z-10 mt-auto pt-4 flex flex-col gap-2.5",children:[e.jsxs("div",{className:"flex justify-between text-white/90 text-[13px] font-bold",children:[e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx("span",{children:"Avg Mastery"})}),e.jsxs("span",{children:[m.progress,"%"]})]}),e.jsx("div",{className:"w-full h-2 rounded-full bg-white/30 overflow-hidden shadow-inner mt-1",children:e.jsx("div",{className:"h-full bg-white rounded-full",style:{width:`${m.progress}%`}})}),m.isAtRisk&&e.jsxs("div",{className:"absolute -top-12 right-0 bg-red-500 text-white px-3 py-1 rounded-full text-[11px] font-bold flex items-center gap-1 shadow-lg animate-pulse",children:[e.jsx(we,{size:12})," At Risk"]})]})]},m.id)})})}),e.jsx("div",{className:"flex justify-center items-center gap-2 mt-2",children:[0,1,2].map(m=>e.jsx("button",{onClick:()=>d(m),className:`w-2.5 h-2.5 rounded-full transition-all duration-300 ${a===m?"bg-sky-600 w-6":"bg-sky-200 hover:bg-sky-300"}`,"aria-label":`Go to slide ${m+1}`},m))}),e.jsx("style",{children:` + `,children:[e.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${s.status==="Active"?"bg-green-500":"bg-[#a8a5b3]"}`}),s.status]})}),e.jsx("td",{className:"px-6 py-4 text-[#5a6578]",children:s.role==="Student"&&s.classSection||s.department}),e.jsx("td",{className:"px-6 py-4 text-[#5a6578]",children:s.lastLogin||"Never"}),e.jsx("td",{className:"px-6 py-4 text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:()=>f(s),"aria-label":`Edit ${s.name}`,className:"p-1.5 text-slate-500 hover:text-sky-600 hover:bg-sky-50 rounded-lg transition-colors",children:e.jsx(Gs,{size:16})}),e.jsx("button",{type:"button",onClick:()=>ue(s),"aria-label":s.status==="Active"?`Deactivate ${s.name}`:`Activate ${s.name}`,disabled:p||x,className:`p-1.5 rounded-lg transition-colors ${p?"opacity-60 cursor-not-allowed":""} ${s.status==="Active"?"text-slate-500 hover:text-orange-600 hover:bg-orange-50":"text-orange-500 hover:text-green-600 hover:bg-green-50"}`,title:s.status==="Active"?"Deactivate User":"Activate User",children:p?e.jsx(Q,{size:16,className:"animate-spin"}):s.status==="Active"?e.jsx(Es,{size:16}):e.jsx(Xs,{size:16})}),e.jsx("button",{type:"button",onClick:()=>ee(s.id,s.name),"aria-label":`Delete ${s.name}`,disabled:x,className:"p-1.5 text-slate-500 hover:text-red-600 hover:bg-red-50 rounded-lg transition-colors",children:e.jsx(Se,{size:16})})]})})]},s.id)}):e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-6 py-12 text-center text-[#5a6578]",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-[#edf1f7] rounded-full",children:e.jsx(he,{size:24,className:"text-slate-500"})}),e.jsx("p",{children:"No users found matching your filters"})]})})})})]})})]}),e.jsx(De,{open:T,onOpenChange:A,children:e.jsxs(Pe,{className:"sm:max-w-[425px]",children:[e.jsxs(Te,{children:[e.jsx(Me,{children:n?"Edit User Access":"Add New User"}),e.jsx(Ee,{children:n?"Update user details and manage access permissions.":"Create a new account and send welcome credentials by email."})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"name",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Name"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"name",value:o.name,onChange:s=>{L({...o,name:s.target.value}),j.name&&R(p=>({...p,name:void 0}))},className:j.name?"border-red-500 focus-visible:ring-red-500":""}),j.name?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.name}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"email",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Email"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"email",type:"email",value:o.email,onChange:s=>{n||(L({...o,email:s.target.value}),j.email&&R(p=>({...p,email:void 0})))},readOnly:!!n,"aria-readonly":!!n,className:`${j.email?"border-red-500 focus-visible:ring-red-500":""} ${n?"bg-[#edf1f7] text-[#5a6578] cursor-not-allowed":""}`}),j.email?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.email}):null,n?e.jsx("p",{className:"mt-1 text-xs text-[#5a6578]",children:"Email changes are disabled because authentication email updates are not supported in this panel."}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"role",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Role"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsxs(F,{value:o.role,onValueChange:s=>{L({...o,role:s,lrn:s==="Student"?o.lrn:""}),R(p=>({...p,role:void 0,lrn:void 0}))},children:[e.jsx(O,{className:j.role?"border-red-500 focus:ring-red-500":"",children:e.jsx(B,{placeholder:"Select role"})}),e.jsxs(q,{children:[e.jsx(h,{value:"Student",children:"Student"}),e.jsx(h,{value:"Teacher",children:"Teacher"}),e.jsx(h,{value:"Admin",children:"Admin"})]})]}),j.role?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.role}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"status",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Status"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsxs(F,{value:o.status,onValueChange:s=>{L({...o,status:s}),j.status&&R(p=>({...p,status:void 0}))},children:[e.jsx(O,{className:j.status?"border-red-500 focus:ring-red-500":"",children:e.jsx(B,{placeholder:"Select status"})}),e.jsxs(q,{children:[e.jsx(h,{value:"Active",children:"Active"}),e.jsx(h,{value:"Inactive",children:"Inactive"})]})]}),j.status?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.status}):null]})]}),n?o.role==="Student"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"lrn",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"LRN"}),e.jsx(z,{id:"lrn",value:o.lrn,onChange:s=>L({...o,lrn:s.target.value}),placeholder:"12-digit learner reference",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"grade",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Grade"}),e.jsx(z,{id:"grade",value:o.grade,onChange:s=>L({...o,grade:s.target.value}),placeholder:"e.g. Grade 11",className:"sm:col-span-3"})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"section",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Section"}),e.jsx(z,{id:"section",value:o.section,onChange:s=>L({...o,section:s.target.value}),placeholder:"e.g. STEM A",className:"sm:col-span-3"})]})]}):e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-center sm:gap-4",children:[e.jsx("label",{htmlFor:"department",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Department"}),e.jsx(z,{id:"department",value:o.department,onChange:s=>L({...o,department:s.target.value}),placeholder:"e.g. Mathematics",className:"sm:col-span-3"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"grade",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Grade"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"grade",value:o.grade,onChange:s=>{L({...o,grade:s.target.value}),j.grade&&R(p=>({...p,grade:void 0}))},placeholder:"e.g. Grade 11",className:j.grade?"border-red-500 focus-visible:ring-red-500":""}),j.grade?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.grade}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"section",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Section"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"section",value:o.section,onChange:s=>{L({...o,section:s.target.value}),j.section&&R(p=>({...p,section:void 0}))},placeholder:"e.g. STEM A",className:j.section?"border-red-500 focus-visible:ring-red-500":""}),j.section?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.section}):null]})]}),o.role==="Student"?e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"lrn",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"LRN"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"lrn",value:o.lrn,onChange:s=>{L({...o,lrn:s.target.value}),j.lrn&&R(p=>({...p,lrn:void 0}))},placeholder:"Required for student accounts",className:j.lrn?"border-red-500 focus-visible:ring-red-500":""}),j.lrn?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.lrn}):null]})]}):null,e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"password",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Password"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"password",type:"password",value:o.password,onChange:s=>{L({...o,password:s.target.value}),j.password&&R(p=>({...p,password:void 0}))},placeholder:"Min 8 chars, upper/lowercase, number, and symbol",className:j.password?"border-red-500 focus-visible:ring-red-500":""}),j.password?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.password}):null]})]}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4 sm:items-start sm:gap-4",children:[e.jsx("label",{htmlFor:"confirmPassword",className:"text-left sm:text-right text-sm font-medium text-[#0a1628]",children:"Confirm"}),e.jsxs("div",{className:"sm:col-span-3",children:[e.jsx(z,{id:"confirmPassword",type:"password",value:o.confirmPassword,onChange:s=>{L({...o,confirmPassword:s.target.value}),j.confirmPassword&&R(p=>({...p,confirmPassword:void 0}))},placeholder:"Retype password",className:j.confirmPassword?"border-red-500 focus-visible:ring-red-500":""}),j.confirmPassword?e.jsx("p",{className:"mt-1 text-xs text-red-600",children:j.confirmPassword}):null]})]})]})]}),e.jsxs(Qe,{children:[e.jsx(W,{variant:"outline",onClick:()=>A(!1),disabled:v,children:"Cancel"}),e.jsxs(W,{onClick:H,className:"bg-sky-600 hover:bg-sky-700 text-white",disabled:v,children:[v?e.jsx(Q,{size:16,className:"animate-spin mr-2"}):null,n?"Save Changes":"Create User & Send Email"]})]})]})}),e.jsx(oe,{isOpen:y,onClose:()=>{x||(P(!1),w(null))},onConfirm:ne,title:"Delete User?",message:i?`Delete user "${i.name}"? This cannot be undone.`:"Delete this user? This cannot be undone.",confirmText:x?"Deleting...":"Delete",cancelText:"Cancel",type:"danger",icon:"delete"})]})},de=({icon:t,title:a,subtitle:l})=>e.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-[#edf1f7] flex items-center justify-center",children:t}),e.jsx("p",{className:"text-sm font-semibold text-[#5a6578]",children:a}),l&&e.jsx("p",{className:"text-xs text-[#a0aec0] max-w-xs",children:l})]}),vt=()=>{const[t,a]=c.useState("30d"),[l,r]=c.useState(null),[d,m]=c.useState(!0);c.useEffect(()=>{dt().then(r).catch(console.error).finally(()=>m(!1))},[]);const b={"7d":"Last 7 Days","30d":"Last 30 Days","90d":"Last 90 Days","12m":"Last 12 Months"},v=[{label:"Total Active Users",value:d?null:(l?.totalActiveUsers??0).toLocaleString(),icon:he,color:"from-sky-500 to-blue-600"},{label:"Avg. Completion Rate",value:"N/A",icon:ss,color:"from-teal-500 to-emerald-600"},{label:"Avg. Session Duration",value:"N/A",icon:ws,color:"from-violet-500 to-purple-600"},{label:"At-Risk Students",value:d?null:(l?.atRiskStudents??0).toString(),icon:qe,color:"from-rose-500 to-orange-600"}],N=[{label:"Achievements Unlocked",icon:je,color:"text-rose-600",bg:"bg-rose-50",value:d?null:(l?.achievementsUnlocked??0).toLocaleString()},{label:"XP Earned (Platform)",icon:Ye,color:"text-violet-600",bg:"bg-violet-50",value:d?null:(l?.totalXPEarned??0)>=1e6?`${((l?.totalXPEarned??0)/1e6).toFixed(1)}M`:(l?.totalXPEarned??0)>=1e3?`${Math.round((l?.totalXPEarned??0)/1e3)}K`:(l?.totalXPEarned??0).toLocaleString()},{label:"Active Streaks",icon:xs,color:"text-orange-600",bg:"bg-orange-50",value:d?null:(l?.activeStreaks??0).toLocaleString()},{label:"AI Tutor Sessions",icon:Ss,color:"text-sky-600",bg:"bg-sky-50",value:d?null:(l?.aiTutorSessions??0).toLocaleString()}];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.3},className:"flex items-center justify-between",children:[e.jsx("div",{className:"flex items-center gap-2 bg-white rounded-xl p-1 shadow-sm border border-[#dde3eb]",children:Object.entries(b).map(([x,g])=>e.jsx("button",{onClick:()=>a(x),disabled:!0,title:"Range selection is unavailable until backend range queries are supported.",className:`px-4 py-2 rounded-lg text-sm font-semibold transition-all ${t===x?"bg-sky-600 text-white shadow-sm":"text-[#5a6578] hover:bg-[#edf1f7]"} opacity-60 cursor-not-allowed`,children:g},x))}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(W,{variant:"outline",disabled:!0,title:"Advanced analytics filters are not implemented yet",className:"px-4 py-2 gap-2 rounded-xl border-[#dde3eb] font-semibold text-sm opacity-50 cursor-not-allowed",children:[e.jsx(ks,{size:16}),"Filters"]}),e.jsxs(W,{variant:"outline",disabled:!0,title:"Export is unavailable until backend report generation is implemented",className:"px-4 py-2 gap-2 rounded-xl border-[#dde3eb] font-semibold text-sm opacity-50 cursor-not-allowed",children:[e.jsx(Cs,{size:16}),"Export"]})]})]}),e.jsx("p",{className:"text-xs text-[#5a6578] -mt-3",children:"Time-range filtering is currently disabled because analytics range queries are not yet supported by the backend."}),!d&&!l?.totalActiveUsers&&e.jsxs(_.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.35},className:"flex items-center gap-3 bg-rose-50 border border-rose-200 rounded-2xl px-5 py-4",children:[e.jsx(ce,{size:18,className:"text-rose-600 shrink-0"}),e.jsxs("p",{className:"text-sm text-rose-800",children:[e.jsx("span",{className:"font-semibold",children:"Limited analytics data."})," ","KPI cards will populate automatically as students, quizzes, and sessions accumulate in the platform. Chart visualisations require time-series data."]})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:v.map((x,g)=>{const E=x.icon;return e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.35,delay:g*.06},className:"bg-white rounded-2xl p-5 shadow-sm border border-[#dde3eb]",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsx("div",{className:`w-11 h-11 rounded-xl bg-gradient-to-br ${x.color} flex items-center justify-center shadow-sm`,children:e.jsx(E,{size:20,className:"text-white"})})}),d?e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Q,{size:16,className:"animate-spin text-[#a0aec0]"}),e.jsx("div",{className:"w-14 h-6 bg-[#edf1f7] rounded-lg animate-pulse"})]}):e.jsx("p",{className:"text-2xl font-bold text-[#0a1628] mb-2",children:x.value}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-[#5a6578] font-medium",children:x.label}),e.jsx("span",{className:"text-xs text-[#a0aec0] font-medium",children:b[t]})]})]},x.label)})}),e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.15},className:"xl:col-span-8 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Performance Trends"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Average scores — students vs. teacher targets"})]}),e.jsxs("div",{className:"flex items-center gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-sky-300"}),e.jsx("span",{className:"text-[#a0aec0] font-medium",children:"Students"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-violet-300"}),e.jsx("span",{className:"text-[#a0aec0] font-medium",children:"Teacher Targets"})]})]})]}),e.jsx(de,{icon:e.jsx(Ce,{size:24,className:"text-[#c2cad8]"}),title:"No performance data yet",subtitle:"Import student and class records to generate trend charts."})]}),e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.2},className:"xl:col-span-4 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-violet-100 rounded-xl flex items-center justify-center",children:e.jsx($s,{size:20,className:"text-violet-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Grade Distribution"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"All students, current term"})]})]}),e.jsx(de,{icon:e.jsx(ce,{size:24,className:"text-[#c2cad8]"}),title:"No grade data",subtitle:"Import quiz and assessment results to see grade breakdowns."})]})]}),e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.25},className:"xl:col-span-7 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-sky-100 rounded-xl flex items-center justify-center",children:e.jsx(Y,{size:20,className:"text-sky-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Subject Engagement"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Enrollment, completion, and average scores"})]})]}),e.jsx("div",{className:"overflow-hidden rounded-xl border border-[#dde3eb]",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[#f7f9fc]",children:[e.jsx("th",{className:"text-left text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Subject"}),e.jsx("th",{className:"text-right text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Enrolled"}),e.jsx("th",{className:"text-right text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Completion"}),e.jsx("th",{className:"text-right text-xs font-semibold text-[#5a6578] px-4 py-3",children:"Avg. Score"}),e.jsx("th",{className:"text-left text-xs font-semibold text-[#5a6578] px-4 py-3 w-36",children:"Progress"})]})}),e.jsx("tbody",{children:e.jsx("tr",{children:e.jsx("td",{colSpan:5,className:"px-4 py-10",children:e.jsx(de,{icon:e.jsx(ce,{size:22,className:"text-[#c2cad8]"}),title:"No subject data available",subtitle:"Import class enrollment records to view subject engagement."})})})})]})})]}),e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.3},className:"xl:col-span-5 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-orange-100 rounded-xl flex items-center justify-center",children:e.jsx(ke,{size:20,className:"text-orange-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Weekly Activity"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Sessions per day of week"})]})]}),e.jsx(de,{icon:e.jsx(qe,{size:24,className:"text-[#c2cad8]"}),title:"No session activity yet",subtitle:"Student logins and session data will appear here after data is imported."})]})]}),e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.35},className:"xl:col-span-5 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-rose-100 rounded-xl flex items-center justify-center",children:e.jsx(je,{size:20,className:"text-rose-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Gamification Overview"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Engagement & motivation metrics"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:N.map(x=>{const g=x.icon;return e.jsxs("div",{className:`${x.bg} border border-[#dde3eb] rounded-xl p-4`,children:[e.jsx(g,{size:20,className:x.color}),d?e.jsx("div",{className:"w-12 h-5 bg-white/60 rounded mt-2 mb-1 animate-pulse"}):e.jsx("p",{className:"text-lg font-bold text-[#0a1628] mt-2 mb-1",children:x.value}),e.jsx("p",{className:"text-xs text-[#5a6578] font-medium",children:x.label})]},x.label)})})]}),e.jsxs(_.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.4},className:"xl:col-span-7 bg-white rounded-2xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-10 h-10 bg-teal-100 rounded-xl flex items-center justify-center",children:e.jsx(Ue,{size:20,className:"text-teal-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Top Performing Classes"}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:"Ranked by average score this term"})]})]}),e.jsx(de,{icon:e.jsx(ce,{size:24,className:"text-[#c2cad8]"}),title:"No class data yet",subtitle:"Import class and student records to see top performers ranked here."})]})]})]})},ge=[{id:"gen-math",name:"Gen Math",shortName:"GM",color:"#3B82F6"},{id:"stats-prob",name:"Stats & Prob",shortName:"SP",color:"#0ea5e9"},{id:"pre-calc",name:"Pre-Calc",shortName:"PC",color:"#F97316"},{id:"basic-calc",name:"Basic Calc",shortName:"BC",color:"#EF4444"}],Ne={"gen-math":[{name:"Functions & Relations",unit:"Functions"},{name:"Rational Functions",unit:"Functions"},{name:"Exponential Functions",unit:"Functions"},{name:"Logarithmic Functions",unit:"Functions"},{name:"Simple Interest",unit:"Business Math"},{name:"Compound Interest",unit:"Business Math"},{name:"Annuities",unit:"Business Math"},{name:"Propositions",unit:"Logic"},{name:"Truth Tables",unit:"Logic"}],"stats-prob":[{name:"Random Variables",unit:"Random Variables"},{name:"Probability Distributions",unit:"Random Variables"},{name:"Normal Distribution",unit:"Normal Dist"},{name:"Z-scores",unit:"Normal Dist"},{name:"Sampling Distributions",unit:"Sampling"},{name:"Central Limit Theorem",unit:"Sampling"},{name:"Confidence Intervals",unit:"Estimation"},{name:"Hypothesis Testing",unit:"Testing"},{name:"Correlation",unit:"Regression"}],"pre-calc":[{name:"Parabola",unit:"Conics"},{name:"Ellipse",unit:"Conics"},{name:"Hyperbola",unit:"Conics"},{name:"Arithmetic Seq",unit:"Series"},{name:"Geometric Seq",unit:"Series"},{name:"Math Induction",unit:"Series"},{name:"Trig Functions",unit:"Trigonometry"},{name:"Trig Identities",unit:"Trigonometry"},{name:"Polar Coords",unit:"Trigonometry"}],"basic-calc":[{name:"Limits",unit:"Limits"},{name:"Continuity",unit:"Limits"},{name:"Definition of Deriv.",unit:"Derivatives"},{name:"Diff. Rules",unit:"Derivatives"},{name:"Chain Rule",unit:"Derivatives"},{name:"Related Rates",unit:"Derivatives"},{name:"Optimization",unit:"Derivatives"},{name:"Antiderivatives",unit:"Integration"},{name:"Definite Integrals",unit:"Integration"}]};function Nt(t){return t>=85?"bg-emerald-500":t>=70?"bg-emerald-300":t>=55?"bg-rose-300":t>=40?"bg-orange-400":t>=20?"bg-red-400":"bg-red-600"}function yt(t){return t>=70||t>=40,"text-white"}const wt=({title:t="Platform-Wide Subject Mastery"})=>{const[a,l]=c.useState(null),[r,d]=c.useState("all"),[m,b]=c.useState([]),[v,N]=c.useState(!0);c.useEffect(()=>{(async()=>{N(!0);try{const S=await X(V($,"progress")),C={};S.forEach(k=>{const A=k.data().subjects||{};for(const[y,P]of Object.entries(A)){const i=Ne[y]||[],w=P?.progress??0;for(const n of i){const I=`${y}::${n.name}`;C[I]||(C[I]={totalMastery:0,count:0}),C[I].totalMastery+=w,C[I].count+=1}}});const U=[];for(const k of ge){const T=Ne[k.id]||[];for(const A of T){const y=`${k.id}::${A.name}`,P=C[y];U.push({subject:k.id,topic:A.name,mastery:P&&P.count>0?Math.round(P.totalMastery/P.count):0,students:P?.count??0})}}b(U)}catch(S){console.error("[MasteryHeatmap] Error fetching progress data:",S)}finally{N(!1)}})()},[]);const x=r==="all"?ge:ge.filter(u=>u.id===r),g=m.filter(u=>u.students>0),E=g.length>0?Math.round(g.reduce((u,S)=>u+S.mastery,0)/g.length):0,G=g.length>0?g.reduce((u,S)=>S.mastery0?g.reduce((u,S)=>S.mastery>u.mastery?S:u,g[0]):null;return v?e.jsx("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb] flex items-center justify-center min-h-[200px]",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx(Q,{size:28,className:"text-sky-500 animate-spin"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Loading mastery data..."})]})}):e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-gradient-to-br from-indigo-500 to-sky-500 rounded-xl flex items-center justify-center",children:e.jsx(Is,{size:20,className:"text-white"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:t}),e.jsxs("p",{className:"text-xs text-[#5a6578]",children:["Aggregated mastery levels across all classes • ",m.filter(u=>u.students>0).length," tracked combinations"]})]})]}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r,onChange:u=>d(u.target.value),className:"appearance-none bg-[#edf1f7] border border-[#dde3eb] rounded-lg px-3 py-1.5 pr-8 text-xs font-semibold text-[#5a6578] focus:outline-none focus:ring-2 focus:ring-sky-500/20",children:[e.jsx("option",{value:"all",children:"All Subjects"}),ge.map(u=>e.jsx("option",{value:u.id,children:u.name},u.id))]}),e.jsx(As,{size:12,className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-500 pointer-events-none"})]})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 mb-5",children:[e.jsxs("div",{className:"bg-[#edf1f7] rounded-xl p-3 flex items-center gap-3",children:[e.jsx("div",{className:`w-8 h-8 rounded-lg flex items-center justify-center ${E>=70?"bg-emerald-100":"bg-rose-100"}`,children:e.jsx(Ds,{size:16,className:E>=70?"text-emerald-600":"text-rose-600"})}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-lg font-bold text-[#0a1628]",children:[E,"%"]}),e.jsx("p",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider",children:"Platform Average"})]})]}),e.jsxs("div",{className:"bg-red-50 rounded-xl p-3 flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-red-100 rounded-lg flex items-center justify-center",children:e.jsx(Ws,{size:16,className:"text-red-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628] truncate",children:G?.topic}),e.jsxs("p",{className:"text-[10px] text-red-600 font-semibold",children:[G?.mastery,"% — Lowest"]})]})]}),e.jsxs("div",{className:"bg-emerald-50 rounded-xl p-3 flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-emerald-100 rounded-lg flex items-center justify-center",children:e.jsx(Ps,{size:16,className:"text-emerald-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628] truncate",children:D?.topic}),e.jsxs("p",{className:"text-[10px] text-emerald-600 font-semibold",children:[D?.mastery,"% — Highest"]})]})]})]}),e.jsx("div",{className:"overflow-x-auto",children:x.map(u=>{const S=Ne[u.id]||[],C=m.filter(k=>k.subject===u.id),U=C.length>0?Math.round(C.reduce((k,T)=>k+T.mastery,0)/C.length):0;return e.jsxs("div",{className:"mb-5 last:mb-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-sm",style:{backgroundColor:u.color}}),e.jsx("span",{className:"text-xs font-bold text-[#0a1628]",children:u.name}),e.jsxs("span",{className:"text-[10px] text-slate-500 ml-1",children:["Avg: ",U,"%"]})]}),e.jsxs("div",{className:"grid gap-1",style:{gridTemplateColumns:`repeat(${S.length}, minmax(0, 1fr))`},children:[S.map((k,T)=>e.jsx("div",{className:"text-center",children:e.jsx("p",{className:"text-[9px] text-slate-500 truncate px-0.5 mb-1",title:k.name,children:k.name})},`label-${T}`)),S.map((k,T)=>{const A=C.find(i=>i.topic===k.name),y=A?.mastery||0,P=a?.topic===k.name&&a?.subject===u.id;return e.jsxs(_.div,{onMouseEnter:()=>A&&l(A),onMouseLeave:()=>l(null),whileHover:{scale:1.05},className:`relative h-10 rounded-lg flex items-center justify-center cursor-pointer transition-all ${Nt(y)} ${P?"ring-2 ring-white shadow-lg z-10":""}`,children:[e.jsxs("span",{className:`text-xs font-bold ${yt(y)}`,children:[y,"%"]}),P&&A&&e.jsxs("div",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 bg-slate-800 text-white rounded-lg px-3 py-2 text-xs whitespace-nowrap z-20 shadow-xl pointer-events-none",children:[e.jsx("p",{className:"font-bold mb-0.5",children:A.topic}),e.jsxs("p",{children:["Mastery: ",e.jsxs("strong",{children:[A.mastery,"%"]})]}),e.jsxs("p",{children:["Students: ",e.jsx("strong",{children:A.students})]}),e.jsx("div",{className:"absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-full w-0 h-0 border-l-[6px] border-l-transparent border-r-[6px] border-r-transparent border-t-[6px] border-t-slate-800"})]})]},`cell-${T}`)})]})]},u.id)})}),e.jsxs("div",{className:"flex items-center justify-center gap-4 mt-5 pt-4 border-t border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[#5a6578]",children:[e.jsx(fe,{size:10}),e.jsx("span",{children:"Color scale:"})]}),[{label:"0-19%",color:"bg-red-600"},{label:"20-39%",color:"bg-red-400"},{label:"40-54%",color:"bg-orange-400"},{label:"55-69%",color:"bg-rose-300"},{label:"70-84%",color:"bg-emerald-300"},{label:"85-100%",color:"bg-emerald-500"}].map((u,S)=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:`w-3 h-3 rounded-sm ${u.color}`}),e.jsx("span",{className:"text-[10px] text-[#5a6578]",children:u.label})]},S))]})]})},St=[{id:"gen-math",title:"General Mathematics",icon:Y,bg:"bg-[#9956DE]",tags:["Algebra","Fractions","Integers"],level:1,progress:25,isAtRisk:!0},{id:"pre-calc",title:"Pre-Calculus",icon:Y,bg:"bg-[#1FA7E1]",tags:["Functions","Limits","Graphs"],level:2,progress:15,isAtRisk:!0},{id:"stats-prob",title:"Statistics & Probability",icon:Y,bg:"bg-[#FFB356]",tags:["Probability","Mean/Median"],level:2,progress:40,isAtRisk:!1},{id:"basic-calc",title:"Basic Calculus",icon:Y,bg:"bg-[#FB96BB]",tags:["Derivatives","Integrals"],level:3,progress:50,isAtRisk:!1},{id:"adv-math",title:"Advanced Algebra",icon:Y,bg:"bg-[#7274ED]",tags:["Math","Logic"],level:4,progress:10,isAtRisk:!0}].slice(0,5),kt=()=>{const t=c.useRef(null),[a,l]=c.useState(0),r=()=>{if(!t.current)return;const{scrollLeft:m,scrollWidth:b,clientWidth:v}=t.current,N=m/(b-v),x=3;let g=Math.round(N*(x-1));g<0&&(g=0),g>=x&&(g=x-1),l(g)},d=m=>{if(!t.current)return;const{scrollWidth:b,clientWidth:v}=t.current,x=(b-v)/2*m;t.current.scrollTo({left:x,behavior:"smooth"}),l(m)};return e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb] mb-6",children:[e.jsx("div",{className:"flex items-center justify-between mb-5",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-1",children:"Priority Attention Modules"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Highly recommended to be reviewed (lowest performance)."})]})}),e.jsx("div",{className:"relative",children:e.jsx("div",{ref:t,onScroll:r,className:"flex overflow-x-auto snap-x snap-mandatory gap-5 pb-6 hide-scrollbar",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:St.map(m=>{const b=m.icon;return e.jsxs("div",{className:`snap-center shrink-0 w-[280px] sm:w-[300px] ${m.bg} rounded-[2rem] p-5 min-h-[290px] relative overflow-hidden transition-all duration-300 flex flex-col group shadow-sm`,children:[e.jsx("div",{className:"absolute -bottom-8 right-[-20%] w-32 h-32 bg-white opacity-10 rounded-full"}),e.jsx("div",{className:"absolute bottom-4 right-12 w-20 h-20 bg-white opacity-10 rounded-full"}),e.jsxs("div",{className:"flex justify-between items-start mb-4 relative z-10",children:[e.jsx("div",{className:"w-12 h-12 rounded-[1rem] bg-white/20 flex flex-shrink-0 items-center justify-center text-white backdrop-blur-sm",children:e.jsx(b,{size:24,className:"opacity-90"})}),e.jsxs("div",{className:"px-4 py-1.5 rounded-full bg-white/20 text-white/90 text-sm font-bold backdrop-blur-sm",children:["Lv ",m.level]})]}),e.jsxs("div",{className:"relative z-10 flex-1",children:[e.jsx("h3",{className:"text-2xl font-display font-black text-white leading-[1.1] mb-3 drop-shadow-sm pr-4 line-clamp-2",children:m.title}),e.jsx("div",{className:"flex flex-wrap gap-2 pb-4",children:m.tags.map(v=>e.jsx("span",{className:"px-3 py-1 rounded-full bg-white/20 text-white text-[13px] font-bold shadow-sm backdrop-blur-sm",children:v},v))})]}),e.jsxs("div",{className:"relative z-10 mt-auto pt-4 flex flex-col gap-2.5",children:[e.jsxs("div",{className:"flex justify-between text-white/90 text-[13px] font-bold",children:[e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx("span",{children:"Avg Mastery"})}),e.jsxs("span",{children:[m.progress,"%"]})]}),e.jsx("div",{className:"w-full h-2 rounded-full bg-white/30 overflow-hidden shadow-inner mt-1",children:e.jsx("div",{className:"h-full bg-white rounded-full",style:{width:`${m.progress}%`}})}),m.isAtRisk&&e.jsxs("div",{className:"absolute -top-12 right-0 bg-red-500 text-white px-3 py-1 rounded-full text-[11px] font-bold flex items-center gap-1 shadow-lg animate-pulse",children:[e.jsx(we,{size:12})," At Risk"]})]})]},m.id)})})}),e.jsx("div",{className:"flex justify-center items-center gap-2 mt-2",children:[0,1,2].map(m=>e.jsx("button",{onClick:()=>d(m),className:`w-2.5 h-2.5 rounded-full transition-all duration-300 ${a===m?"bg-sky-600 w-6":"bg-sky-200 hover:bg-sky-300"}`,"aria-label":`Go to slide ${m+1}`},m))}),e.jsx("style",{children:` .hide-scrollbar::-webkit-scrollbar { display: none; } - `})]})},ka=({onLogout:t,onOpenProfile:a})=>{const[l,r]=c.useState("Overview"),[d,m]=c.useState(!1),[b,v]=c.useState(!1),[N,x]=c.useState(null),[g,E]=c.useState(!1),[G,D]=c.useState(!1),[u,S]=c.useState(!1),[C,U]=c.useState(null),[k,T]=c.useState(null),[A,y]=c.useState([]),[P,i]=c.useState([]),[w,n]=c.useState(!0),I=f=>l===f?!0:l==="Settings"&&f!=="Settings"&&u?(x(f),v(!0),!1):(r(f),!0),j=()=>{N&&r(N),S(!1),x(null),v(!1),D(!1)},R=()=>{x(null),v(!1)},o=f=>{I(f)&&D(!1)},L=f=>{U(f),I("User Management")};c.useEffect(()=>{if(l!=="Overview")return;let f=!1;return n(!0),Promise.all([rt(),ls(),it(3)]).then(([H,ee,ne])=>{f||(T(H),y(ee.slice(0,4)),i(ne))}).catch(console.error).finally(()=>{f||n(!1)}),()=>{f=!0}},[l]);const Z=[{label:"Total Students",value:(k?.totalStudents??0).toLocaleString(),icon:he,color:"bg-sky-100",iconColor:"text-sky-600"},{label:"Active Teachers",value:(k?.activeTeachers??0).toString(),icon:Ue,color:"bg-teal-100",iconColor:"text-teal-600"},{label:"Total Classes",value:(k?.totalClasses??0).toString(),icon:K,color:"bg-sky-100",iconColor:"text-sky-600"},{label:"At-Risk Students",value:(k?.atRiskStudents??0).toString(),icon:be,color:"bg-red-100",iconColor:"text-red-600"},{label:"Avg Performance",value:`${k?.avgPerformance??0}%`,icon:Ce,color:"bg-orange-100",iconColor:"text-orange-600"},{label:"AI Interactions",value:(k?.aiPredictions??0).toLocaleString(),icon:ss,color:"bg-sky-100",iconColor:"text-sky-600"}],se=f=>f==="Error"||f==="Critical"?{text:"text-red-600",bg:"bg-red-50"}:f==="Warning"?{text:"text-rose-600",bg:"bg-rose-50"}:{text:"text-sky-600",bg:"bg-sky-50"};return e.jsxs("div",{className:"flex h-screen w-full bg-[#edf1f7] overflow-hidden",children:[e.jsx("div",{className:"hidden lg:block",children:e.jsx(Ie,{activeTab:l,setActiveTab:o,userRole:"admin",onOpenSettings:()=>o("Settings"),onLogout:()=>m(!0),sidebarCollapsed:g,setSidebarCollapsed:E})}),G&&e.jsxs(e.Fragment,{children:[e.jsx("button",{"aria-label":"Close navigation",className:"fixed inset-0 z-40 bg-slate-900/40 backdrop-blur-[1px] lg:hidden",onClick:()=>D(!1)}),e.jsx("div",{className:"fixed inset-y-0 left-0 z-50 p-3 lg:hidden",children:e.jsx(Ie,{mode:"mobile",onRequestClose:()=>D(!1),activeTab:l,setActiveTab:o,userRole:"admin",onOpenSettings:()=>o("Settings"),onLogout:()=>{m(!0),D(!1)},sidebarCollapsed:!1})})]}),e.jsxs("div",{className:"flex-1 flex flex-col",children:[e.jsxs("header",{className:"bg-white/80 backdrop-blur-md border-b border-[#dde3eb] px-6 py-3 flex items-center justify-between sticky top-0 z-30",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("button",{type:"button",onClick:()=>D(!0),className:"inline-flex lg:hidden items-center justify-center w-10 h-10 rounded-xl border border-[#dde3eb] bg-white text-[#5a6578] hover:bg-[#edf1f7]","aria-label":"Open navigation",children:e.jsx(hs,{size:18})}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-xl font-display font-bold text-[#0a1628] leading-tight",children:[l==="Overview"&&"Admin Dashboard",l==="Content"&&"Content",l==="Audit Log"&&"Audit Log",l==="User Management"&&"User Management",l==="Analytics"&&"Analytics",l==="Settings"&&"Settings"]}),e.jsxs("p",{className:"text-xs text-[#5a6578] font-body",children:[l==="Overview"&&"System Overview & Management",l==="Content"&&"Manage platform content",l==="Audit Log"&&"Monitor system activity",l==="User Management"&&"Manage all user accounts",l==="Analytics"&&"Detailed performance metrics",l==="Settings"&&"Configure platform settings"]})]})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("button",{onClick:a,className:"flex items-center gap-2.5 w-[152px] h-11 shrink-0 bg-[#edf1f7] p-1.5 pr-3 rounded-lg cursor-pointer hover:bg-[#dde3eb] transition-all group",children:[e.jsx("div",{className:"w-8 h-8 bg-gradient-to-br from-sky-600 to-indigo-600 rounded-lg flex items-center justify-center",children:e.jsx(ie,{size:16,className:"text-white"})}),e.jsx("div",{className:"min-w-0 flex-1 text-left",children:e.jsx("p",{className:"text-sm font-semibold text-[#0a1628] leading-none group-hover:text-sky-600 transition-colors truncate",children:"Admin"})})]})})]}),e.jsxs("main",{className:"flex-1 overflow-y-auto p-6",children:[l==="Overview"&&e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs("div",{className:"xl:col-span-8 space-y-6",children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:Z.map((f,H)=>{const ee=f.icon;return e.jsxs("div",{className:"bg-white rounded-2xl p-5 shadow-sm border border-[#dde3eb] hover:shadow-md transition-all",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsx("div",{className:`w-12 h-12 ${f.color} rounded-xl flex items-center justify-center`,children:e.jsx(ee,{size:24,className:f.iconColor})})}),e.jsx("h3",{className:"text-2xl font-bold text-[#0a1628] mb-1",children:w?e.jsx("div",{className:"h-8 w-20 bg-[#edf1f7] rounded animate-pulse"}):f.value}),e.jsx("p",{className:"text-sm text-[#5a6578] font-medium",children:f.label})]},H)})}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsx("div",{className:"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-1",children:"System Performance Overview"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Trend visualization"})]})}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-3",children:[e.jsx(Ce,{size:32,className:"text-[#dde3eb]"}),e.jsx("p",{className:"text-sm font-medium text-[#5a6578]",children:"Performance trend chart is currently unavailable"}),e.jsx("p",{className:"text-xs text-[#a0aec0]",children:"Live KPI totals are shown above. Time-series backend support is required for chart rendering."})]})]}),e.jsx(St,{}),e.jsx(yt,{}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-5",children:"Recent System Activity"}),w?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(Q,{className:"animate-spin text-sky-500"})}):A.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-10 gap-3",children:[e.jsx(Rs,{size:28,className:"text-[#dde3eb]"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"No audit events yet"})]}):e.jsx("div",{className:"space-y-3",children:A.map(f=>{const H=se(f.severity);return e.jsxs("div",{className:`${H.bg} border border-[#dde3eb] rounded-2xl p-4 flex items-start gap-4`,children:[e.jsx("div",{className:"w-10 h-10 bg-white rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(ie,{size:18,className:H.text})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628] mb-0.5",children:f.action}),e.jsx("p",{className:"text-xs text-[#5a6578] truncate",children:f.details}),e.jsxs("p",{className:"text-xs text-[#5a6578] mt-1",children:[f.timestamp," · ",f.user.name]})]})]},f.id)})})]})]}),e.jsxs("div",{className:"xl:col-span-4 space-y-6",children:[e.jsxs("div",{className:"bg-gradient-to-br from-indigo-600 to-sky-600 rounded-3xl p-6 text-white shadow-lg",children:[e.jsx("h2",{className:"text-lg font-bold mb-4",children:"Quick Actions"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("button",{type:"button",onClick:()=>L("Teacher"),className:"w-full bg-white/20 hover:bg-white/30 backdrop-blur-sm border border-slate-300 rounded-xl p-3 text-left transition-all",children:[e.jsx("p",{className:"text-sm font-bold",children:"Add New Teacher"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Create teacher account"})]}),e.jsxs("button",{type:"button",onClick:()=>L("Student"),className:"w-full bg-white/20 hover:bg-white/30 backdrop-blur-sm border border-slate-300 rounded-xl p-3 text-left transition-all",children:[e.jsx("p",{className:"text-sm font-bold",children:"Add New Student"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Register new student"})]}),e.jsxs("button",{type:"button",onClick:()=>I("Settings"),className:"w-full bg-white/20 hover:bg-white/30 backdrop-blur-sm border border-slate-300 rounded-xl p-3 text-left transition-all",children:[e.jsx("p",{className:"text-sm font-bold",children:"System Settings"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Configure platform"})]}),e.jsxs("button",{type:"button",disabled:!0,"aria-disabled":"true",title:"Report export is not available yet",className:"w-full bg-white/10 border border-slate-300/70 rounded-xl p-3 text-left opacity-60 cursor-not-allowed",children:[e.jsx("p",{className:"text-sm font-bold",children:"Generate Report"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Export support is not available yet"})]})]})]}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsx("div",{className:"w-10 h-10 bg-rose-100 rounded-xl flex items-center justify-center",children:e.jsx(je,{size:20,className:"text-rose-600"})}),e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Top Performers"})]}),w?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(Q,{className:"animate-spin text-sky-500"})}):P.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-10 gap-3",children:[e.jsx(je,{size:28,className:"text-[#dde3eb]"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"No student data yet"}),e.jsx("p",{className:"text-xs text-[#a0aec0]",children:"Students will appear here as they progress."})]}):e.jsx("div",{className:"space-y-3",children:P.map((f,H)=>e.jsxs("div",{className:"bg-gradient-to-r from-rose-50 to-orange-50 border border-rose-200 rounded-2xl p-4",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx("img",{src:f.avatar,alt:f.name,className:"w-12 h-12 rounded-xl object-cover"}),e.jsx("span",{className:"absolute -top-1 -right-1 w-6 h-6 bg-rose-500 text-white text-xs font-bold rounded-full flex items-center justify-center",children:H+1})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:f.name}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:f.class})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"bg-white rounded-xl p-2",children:[e.jsx("p",{className:"text-[10px] text-[#5a6578] mb-1",children:"Performance"}),e.jsxs("p",{className:"text-lg font-bold text-teal-600",children:[f.performance,"%"]})]}),e.jsxs("div",{className:"bg-white rounded-xl p-2",children:[e.jsx("p",{className:"text-[10px] text-[#5a6578] mb-1",children:"Level"}),e.jsx("p",{className:"text-lg font-bold text-sky-600",children:f.level})]})]})]},f.id))})]}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-5",children:"AI Model Status"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-[#5a6578]",children:"AI Interactions Logged"}),e.jsx("span",{className:"text-sm font-bold text-[#0a1628]",children:w?"...":(k?.aiPredictions??0).toLocaleString()})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-[#5a6578]",children:"At-Risk Students Tracked"}),e.jsx("span",{className:"text-sm font-bold text-[#0a1628]",children:w?"...":(k?.atRiskStudents??0).toLocaleString()})]}),e.jsx("div",{className:"mt-4 p-3 bg-sky-50 border border-sky-200 rounded-xl",children:e.jsxs("p",{className:"text-xs text-sky-800",children:[e.jsx("strong",{children:"Status:"})," Model quality metrics (accuracy/drift) are unavailable in the current backend and are intentionally hidden."]})})]})]})]})]}),l==="Content"&&e.jsx(dt,{}),l==="Audit Log"&&e.jsx(ct,{}),l==="User Management"&&e.jsx(bt,{createIntentRole:C,onCreateIntentConsumed:()=>U(null)}),l==="Analytics"&&e.jsx(jt,{}),l==="Settings"&&e.jsx(ot,{onDirtyChange:S})]})]}),e.jsx(oe,{isOpen:d,onClose:()=>m(!1),onConfirm:t,title:"Logout Confirmation",message:"Are you sure you want to log out? This will end your current session.",confirmText:"Logout",cancelText:"Cancel"}),e.jsx(oe,{isOpen:b,onClose:R,onConfirm:j,title:"Discard Unsaved Changes?",message:"You have unsaved settings changes. If you continue, your edits will be discarded.",confirmText:"Discard Changes",cancelText:"Keep Editing",type:"warning",icon:"warning"})]})};export{ka as default}; + `})]})},Ca=({onLogout:t,onOpenProfile:a})=>{const[l,r]=c.useState("Overview"),[d,m]=c.useState(!1),[b,v]=c.useState(!1),[N,x]=c.useState(null),[g,E]=c.useState(!1),[G,D]=c.useState(!1),[u,S]=c.useState(!1),[C,U]=c.useState(null),[k,T]=c.useState(null),[A,y]=c.useState([]),[P,i]=c.useState([]),[w,n]=c.useState(!0),I=f=>l===f?!0:l==="Settings"&&f!=="Settings"&&u?(x(f),v(!0),!1):(r(f),!0),j=()=>{N&&r(N),S(!1),x(null),v(!1),D(!1)},R=()=>{x(null),v(!1)},o=f=>{I(f)&&D(!1)},L=f=>{U(f),I("User Management")};c.useEffect(()=>{if(l!=="Overview")return;let f=!1;return n(!0),Promise.all([it(),ls(),nt(3)]).then(([H,ee,ne])=>{f||(T(H),y(ee.slice(0,4)),i(ne))}).catch(console.error).finally(()=>{f||n(!1)}),()=>{f=!0}},[l]);const Z=[{label:"Total Students",value:(k?.totalStudents??0).toLocaleString(),icon:he,color:"bg-sky-100",iconColor:"text-sky-600"},{label:"Active Teachers",value:(k?.activeTeachers??0).toString(),icon:Ue,color:"bg-teal-100",iconColor:"text-teal-600"},{label:"Total Classes",value:(k?.totalClasses??0).toString(),icon:Y,color:"bg-sky-100",iconColor:"text-sky-600"},{label:"At-Risk Students",value:(k?.atRiskStudents??0).toString(),icon:be,color:"bg-red-100",iconColor:"text-red-600"},{label:"Avg Performance",value:`${k?.avgPerformance??0}%`,icon:Ce,color:"bg-orange-100",iconColor:"text-orange-600"},{label:"AI Interactions",value:(k?.aiPredictions??0).toLocaleString(),icon:ss,color:"bg-sky-100",iconColor:"text-sky-600"}],se=f=>f==="Error"||f==="Critical"?{text:"text-red-600",bg:"bg-red-50"}:f==="Warning"?{text:"text-rose-600",bg:"bg-rose-50"}:{text:"text-sky-600",bg:"bg-sky-50"};return e.jsxs("div",{className:"flex h-screen w-full bg-[#edf1f7] overflow-hidden",children:[e.jsx("div",{className:"hidden lg:block",children:e.jsx(Ie,{activeTab:l,setActiveTab:o,userRole:"admin",onOpenSettings:()=>o("Settings"),onLogout:()=>m(!0),sidebarCollapsed:g,setSidebarCollapsed:E})}),G&&e.jsxs(e.Fragment,{children:[e.jsx("button",{"aria-label":"Close navigation",className:"fixed inset-0 z-40 bg-slate-900/40 backdrop-blur-[1px] lg:hidden",onClick:()=>D(!1)}),e.jsx("div",{className:"fixed inset-y-0 left-0 z-50 p-3 lg:hidden",children:e.jsx(Ie,{mode:"mobile",onRequestClose:()=>D(!1),activeTab:l,setActiveTab:o,userRole:"admin",onOpenSettings:()=>o("Settings"),onLogout:()=>{m(!0),D(!1)},sidebarCollapsed:!1})})]}),e.jsxs("div",{className:"flex-1 flex flex-col",children:[e.jsxs("header",{className:"bg-white/80 backdrop-blur-md border-b border-[#dde3eb] px-6 py-3 flex items-center justify-between sticky top-0 z-30",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("button",{type:"button",onClick:()=>D(!0),className:"inline-flex lg:hidden items-center justify-center w-10 h-10 rounded-xl border border-[#dde3eb] bg-white text-[#5a6578] hover:bg-[#edf1f7]","aria-label":"Open navigation",children:e.jsx(hs,{size:18})}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-xl font-display font-bold text-[#0a1628] leading-tight",children:[l==="Overview"&&"Admin Dashboard",l==="Content"&&"Content",l==="Audit Log"&&"Audit Log",l==="User Management"&&"User Management",l==="Analytics"&&"Analytics",l==="Settings"&&"Settings"]}),e.jsxs("p",{className:"text-xs text-[#5a6578] font-body",children:[l==="Overview"&&"System Overview & Management",l==="Content"&&"Manage platform content",l==="Audit Log"&&"Monitor system activity",l==="User Management"&&"Manage all user accounts",l==="Analytics"&&"Detailed performance metrics",l==="Settings"&&"Configure platform settings"]})]})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("button",{onClick:a,className:"flex items-center gap-2.5 w-[152px] h-11 shrink-0 bg-[#edf1f7] p-1.5 pr-3 rounded-lg cursor-pointer hover:bg-[#dde3eb] transition-all group",children:[e.jsx("div",{className:"w-8 h-8 bg-gradient-to-br from-sky-600 to-indigo-600 rounded-lg flex items-center justify-center",children:e.jsx(ie,{size:16,className:"text-white"})}),e.jsx("div",{className:"min-w-0 flex-1 text-left",children:e.jsx("p",{className:"text-sm font-semibold text-[#0a1628] leading-none group-hover:text-sky-600 transition-colors truncate",children:"Admin"})})]})})]}),e.jsxs("main",{className:"flex-1 overflow-y-auto p-6",children:[l==="Overview"&&e.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-12 gap-6",children:[e.jsxs("div",{className:"xl:col-span-8 space-y-6",children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:Z.map((f,H)=>{const ee=f.icon;return e.jsxs("div",{className:"bg-white rounded-2xl p-5 shadow-sm border border-[#dde3eb] hover:shadow-md transition-all",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsx("div",{className:`w-12 h-12 ${f.color} rounded-xl flex items-center justify-center`,children:e.jsx(ee,{size:24,className:f.iconColor})})}),e.jsx("h3",{className:"text-2xl font-bold text-[#0a1628] mb-1",children:w?e.jsx("div",{className:"h-8 w-20 bg-[#edf1f7] rounded animate-pulse"}):f.value}),e.jsx("p",{className:"text-sm text-[#5a6578] font-medium",children:f.label})]},H)})}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsx("div",{className:"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-1",children:"System Performance Overview"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Trend visualization"})]})}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-3",children:[e.jsx(Ce,{size:32,className:"text-[#dde3eb]"}),e.jsx("p",{className:"text-sm font-medium text-[#5a6578]",children:"Performance trend chart is currently unavailable"}),e.jsx("p",{className:"text-xs text-[#a0aec0]",children:"Live KPI totals are shown above. Time-series backend support is required for chart rendering."})]})]}),e.jsx(kt,{}),e.jsx(wt,{}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-5",children:"Recent System Activity"}),w?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(Q,{className:"animate-spin text-sky-500"})}):A.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-10 gap-3",children:[e.jsx(zs,{size:28,className:"text-[#dde3eb]"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"No audit events yet"})]}):e.jsx("div",{className:"space-y-3",children:A.map(f=>{const H=se(f.severity);return e.jsxs("div",{className:`${H.bg} border border-[#dde3eb] rounded-2xl p-4 flex items-start gap-4`,children:[e.jsx("div",{className:"w-10 h-10 bg-white rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(ie,{size:18,className:H.text})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-bold text-[#0a1628] mb-0.5",children:f.action}),e.jsx("p",{className:"text-xs text-[#5a6578] truncate",children:f.details}),e.jsxs("p",{className:"text-xs text-[#5a6578] mt-1",children:[f.timestamp," · ",f.user.name]})]})]},f.id)})})]})]}),e.jsxs("div",{className:"xl:col-span-4 space-y-6",children:[e.jsxs("div",{className:"bg-gradient-to-br from-indigo-600 to-sky-600 rounded-3xl p-6 text-white shadow-lg",children:[e.jsx("h2",{className:"text-lg font-bold mb-4",children:"Quick Actions"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("button",{type:"button",onClick:()=>L("Teacher"),className:"w-full bg-white/20 hover:bg-white/30 backdrop-blur-sm border border-slate-300 rounded-xl p-3 text-left transition-all",children:[e.jsx("p",{className:"text-sm font-bold",children:"Add New Teacher"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Create teacher account"})]}),e.jsxs("button",{type:"button",onClick:()=>L("Student"),className:"w-full bg-white/20 hover:bg-white/30 backdrop-blur-sm border border-slate-300 rounded-xl p-3 text-left transition-all",children:[e.jsx("p",{className:"text-sm font-bold",children:"Add New Student"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Register new student"})]}),e.jsxs("button",{type:"button",onClick:()=>I("Settings"),className:"w-full bg-white/20 hover:bg-white/30 backdrop-blur-sm border border-slate-300 rounded-xl p-3 text-left transition-all",children:[e.jsx("p",{className:"text-sm font-bold",children:"System Settings"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Configure platform"})]}),e.jsxs("button",{type:"button",disabled:!0,"aria-disabled":"true",title:"Report export is not available yet",className:"w-full bg-white/10 border border-slate-300/70 rounded-xl p-3 text-left opacity-60 cursor-not-allowed",children:[e.jsx("p",{className:"text-sm font-bold",children:"Generate Report"}),e.jsx("p",{className:"text-xs text-sky-100",children:"Export support is not available yet"})]})]})]}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsx("div",{className:"w-10 h-10 bg-rose-100 rounded-xl flex items-center justify-center",children:e.jsx(je,{size:20,className:"text-rose-600"})}),e.jsx("h2",{className:"text-lg font-bold text-[#0a1628]",children:"Top Performers"})]}),w?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(Q,{className:"animate-spin text-sky-500"})}):P.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-10 gap-3",children:[e.jsx(je,{size:28,className:"text-[#dde3eb]"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"No student data yet"}),e.jsx("p",{className:"text-xs text-[#a0aec0]",children:"Students will appear here as they progress."})]}):e.jsx("div",{className:"space-y-3",children:P.map((f,H)=>e.jsxs("div",{className:"bg-gradient-to-r from-rose-50 to-orange-50 border border-rose-200 rounded-2xl p-4",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx("img",{src:f.avatar,alt:f.name,className:"w-12 h-12 rounded-xl object-cover"}),e.jsx("span",{className:"absolute -top-1 -right-1 w-6 h-6 bg-rose-500 text-white text-xs font-bold rounded-full flex items-center justify-center",children:H+1})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628]",children:f.name}),e.jsx("p",{className:"text-xs text-[#5a6578]",children:f.class})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"bg-white rounded-xl p-2",children:[e.jsx("p",{className:"text-[10px] text-[#5a6578] mb-1",children:"Performance"}),e.jsxs("p",{className:"text-lg font-bold text-teal-600",children:[f.performance,"%"]})]}),e.jsxs("div",{className:"bg-white rounded-xl p-2",children:[e.jsx("p",{className:"text-[10px] text-[#5a6578] mb-1",children:"Level"}),e.jsx("p",{className:"text-lg font-bold text-sky-600",children:f.level})]})]})]},f.id))})]}),e.jsxs("div",{className:"bg-white rounded-3xl p-6 shadow-sm border border-[#dde3eb]",children:[e.jsx("h2",{className:"text-lg font-bold text-[#0a1628] mb-5",children:"AI Model Status"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-[#5a6578]",children:"AI Interactions Logged"}),e.jsx("span",{className:"text-sm font-bold text-[#0a1628]",children:w?"...":(k?.aiPredictions??0).toLocaleString()})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-[#5a6578]",children:"At-Risk Students Tracked"}),e.jsx("span",{className:"text-sm font-bold text-[#0a1628]",children:w?"...":(k?.atRiskStudents??0).toLocaleString()})]}),e.jsx("div",{className:"mt-4 p-3 bg-sky-50 border border-sky-200 rounded-xl",children:e.jsxs("p",{className:"text-xs text-sky-800",children:[e.jsx("strong",{children:"Status:"})," Model quality metrics (accuracy/drift) are unavailable in the current backend and are intentionally hidden."]})})]})]})]})]}),l==="Content"&&e.jsx(ct,{}),l==="Audit Log"&&e.jsx(ot,{}),l==="User Management"&&e.jsx(jt,{createIntentRole:C,onCreateIntentConsumed:()=>U(null)}),l==="Analytics"&&e.jsx(vt,{}),l==="Settings"&&e.jsx(mt,{onDirtyChange:S})]})]}),e.jsx(oe,{isOpen:d,onClose:()=>m(!1),onConfirm:t,title:"Logout Confirmation",message:"Are you sure you want to log out? This will end your current session.",confirmText:"Logout",cancelText:"Cancel"}),e.jsx(oe,{isOpen:b,onClose:R,onConfirm:j,title:"Discard Unsaved Changes?",message:"You have unsaved settings changes. If you continue, your edits will be discarded.",confirmText:"Discard Changes",cancelText:"Keep Editing",type:"warning",icon:"warning"})]})};export{Ca as default}; diff --git a/assets/AvatarShop-CFi18Hj0.js b/assets/AvatarShop-CFi18Hj0.js new file mode 100644 index 0000000000000000000000000000000000000000..864bcd5d65ced7a526b2a2312ef0f6d35f037423 --- /dev/null +++ b/assets/AvatarShop-CFi18Hj0.js @@ -0,0 +1,16 @@ +import{r as l,j as e}from"./vendor-react-Dexh7fmo.js";import{c as V,L as B,o as $,d as F}from"./vendor-radix-CxzAJozq.js";import{c as v,u as K,l as z,m as d,e as U,t as n,K as Y,L as Z}from"./index-CmBdDSkw.js";import{T as D,a as G,b as H}from"./tooltip-Bn7-0zmi.js";import{C as W}from"./CompositeAvatar-DSWWcDP7.js";import{M as L}from"./avatarData-BW_TX0b4.js";import{S as I}from"./sparkles-D6B_TX7M.js";import{L as Q}from"./lock-Dt6Po_Oi.js";import{S as J}from"./save-XQRYdTi9.js";import{S as ee}from"./shirt-CHOJLYIJ.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./utils-BQQgILNW.js";import"./clsx-B-dksMZM.js";/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const te=[["path",{d:"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z",key:"1dudjm"}],["path",{d:"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z",key:"l2t8xc"}],["path",{d:"M16 17h4",key:"1dejxt"}],["path",{d:"M4 13h4",key:"1bwh8b"}]],se=v("footprints",te);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ae=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],re=v("scissors",ae);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oe=[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]],b=v("shopping-bag",oe),E=["Wow!","Cute!","I love it!","Perfect!","So cool!","Awesome!"],M=["Gain more XP to buy me more clothes!","Help me get stylish!","Let's earn some XP to unlock more!","I'd love to try on more outfits!","Keep learning to unlock new looks!"],Ne=({onSaveProfile:g,onNavigateToModules:C})=>{const{userProfile:a,refreshProfile:y}=K(),_=!1,[m,w]=l.useState({top:a?.avatarLayers?.top||"top_pink",bottom:a?.avatarLayers?.bottom||"",shoes:a?.avatarLayers?.shoes||"",accessory:a?.avatarLayers?.accessory||""}),[p,x]=l.useState(!1),[h,j]=l.useState([]),[A,N]=l.useState(0),[k,S]=l.useState(null),[c,u]=l.useState(null);l.useEffect(()=>{if(a&&a.role==="student"){const t=a;j(t.ownedAvatarItems||[]),N(t.currentXP||0)}},[a]),l.useEffect(()=>{w({top:a?.avatarLayers?.top||"top_pink",bottom:a?.avatarLayers?.bottom||"",shoes:a?.avatarLayers?.shoes||"",accessory:a?.avatarLayers?.accessory||""})},[a?.avatarLayers?.top,a?.avatarLayers?.bottom,a?.avatarLayers?.shoes,a?.avatarLayers?.accessory]),l.useEffect(()=>{if(!c){const t=setInterval(()=>{Math.random()>.6&&u(M[Math.floor(Math.random()*M.length)])},4e3);return()=>clearInterval(t)}},[c]),l.useEffect(()=>{if(c){const t=setTimeout(()=>{u(null)},3500);return()=>clearTimeout(t)}},[c]);const T=(t,o)=>{const s=L.find(r=>r.id===o);if(s&&s.price&&s.price>0&&!h.includes(o)){n.error("This item is locked. Purchase it first!");return}w(r=>({...r,[t]:r[t]===o?"":o})),u(E[Math.floor(Math.random()*E.length)])},X=async(t,o,s)=>{if(t.stopPropagation(),!a?.uid){n.error("You must be logged in to purchase items");return}if(h.includes(o)){n.info("You already own this item");return}S(o);try{const r=await Y(a.uid,o,s);r.success?(n.success(r.message||"Item purchased!"),j(f=>[...f,o]),r.currentXP!==void 0&&N(r.currentXP),await y()):n.error(r.message||"Failed to purchase item")}catch(r){console.error("Purchase error:",r),n.error("Error purchasing item")}finally{S(null)}},q=t=>({top:t.top===""?void 0:t.top,bottom:t.bottom===""?void 0:t.bottom,shoes:t.shoes===""?void 0:t.shoes,accessory:t.accessory===""?void 0:t.accessory}),O=async()=>{if(a?.uid){x(!0);try{const t=q(m);await Z(a.uid,{avatarLayers:t}),g&&g(t),n.success("Avatar saved successfully"),await y(),x(!1)}catch(t){console.error(t),x(!1)}}},P=[{id:"top",label:"Tops",icon:e.jsx(ee,{size:16})},{id:"bottom",label:"Bottoms",icon:e.jsx(re,{size:16,className:"rotate-90"})},{id:"shoes",label:"Shoes",icon:e.jsx(se,{size:16})},{id:"accessory",label:"Accessories",icon:e.jsx(z,{size:16})}];return e.jsx("div",{className:"h-full w-full flex items-center justify-center p-4 sm:p-6 lg:p-8 overflow-hidden",children:e.jsxs("div",{className:"relative w-full max-w-[1000px] h-[80vh] min-h-[500px] max-h-[700px] rounded-[2rem] p-6 lg:p-8 bg-gradient-to-br from-white via-sky-50/30 to-white border border-slate-200/80 shadow-[0_8px_30px_rgb(0,0,0,0.04)] flex flex-col xl:flex-row gap-12 overflow-hidden",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden rounded-[2rem] pointer-events-none",children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-sky-400/30 to-transparent"}),e.jsx("div",{className:"absolute -top-40 -right-40 w-96 h-96 bg-blue-100/40 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute -bottom-40 -left-40 w-96 h-96 bg-purple-100/30 rounded-full blur-3xl"})]}),e.jsxs("div",{className:"flex flex-col h-full min-h-0 relative z-10 w-full xl:w-[50%] mx-auto xl:mx-0 flex-1 min-h-0",children:[e.jsxs("div",{className:"mb-6 flex flex-col gap-2 shrink-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between xl:justify-start gap-4",children:[e.jsxs("h1",{className:"text-3xl md:text-4xl font-display font-black text-[#0a1628] tracking-tight flex items-center gap-2.5",children:[e.jsx("span",{className:"whitespace-nowrap",children:"Avatar Studio"})," ",e.jsx(I,{className:"text-blue-500 fill-blue-500",size:28})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[_,e.jsxs("div",{className:"bg-gradient-to-br from-amber-400 to-orange-500 rounded-xl px-3 py-1.5 shadow-md flex items-center gap-2 h-fit",children:[e.jsx(b,{className:"text-white shrink-0",size:16}),e.jsxs(D,{children:[e.jsx(G,{asChild:!0,children:e.jsxs("button",{onClick:C,className:"cursor-pointer hover:opacity-90 transition-opacity active:scale-95 text-left",children:[e.jsx("p",{className:"text-white text-[9px] font-bold uppercase tracking-wider leading-none mb-0.5",children:"XP Balance"}),e.jsx("p",{className:"text-white text-base font-black leading-none",children:A})]})}),e.jsx(H,{side:"bottom",className:"bg-slate-900 text-white border border-slate-700",children:"Review more lessons to earn more XP!"})]})]})]})]}),e.jsx("p",{className:"text-slate-500 font-medium text-sm md:text-base",children:"Design your perfect learning companion."})]}),e.jsxs(V,{defaultValue:"top",className:"flex flex-col flex-1 min-h-0",children:[e.jsx(B,{className:"flex flex-nowrap shrink-0 justify-start space-x-1 sm:space-x-2 mb-4 bg-white shadow-sm p-1 rounded-full border border-slate-100 w-fit overflow-x-auto max-w-full scrollbar-hide",children:P.map(t=>e.jsxs($,{value:t.id,className:"flex items-center gap-1.5 px-4 py-2 rounded-full font-bold text-[13px] text-slate-500 hover:bg-slate-50 data-[state=active]:bg-gradient-to-r data-[state=active]:from-blue-600 data-[state=active]:to-sky-500 data-[state=active]:text-white transition-all shadow-sm outline-none whitespace-nowrap",children:[t.icon,t.label]},t.id))}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden min-h-0 pb-6 scrollbar-hide px-2 -mx-2",children:P.map(t=>{const o=L.filter(s=>s.category===t.id);return e.jsx(F,{value:t.id,className:"outline-none pt-2 h-full",children:o.length===0?e.jsxs("div",{className:"w-full h-full min-h-[250px] flex flex-col items-center justify-center border-2 border-dashed border-slate-200 rounded-[2rem] bg-slate-50/50 p-8 text-center",children:[e.jsx(z,{size:48,className:"text-slate-300 mb-4 opacity-50"}),e.jsx("h3",{className:"font-bold text-xl text-slate-500 mb-2",children:"Accessories coming soon"}),e.jsx("p",{className:"text-slate-400 text-sm max-w-xs",children:"We're crafting some awesome gear for your avatar! Check back later."})]}):e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4 lg:gap-6",children:o.map(s=>{const r=m[t.id]===s.id,f=h.includes(s.id),i=!!(s.price&&s.price>0&&!f);return e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsxs("button",{onClick:()=>!i&&T(t.id,s.id),disabled:i,className:`relative w-full aspect-square rounded-2xl border-2 transition-all flex flex-col items-center justify-center group ${r&&!i?"bg-white border-blue-500 shadow-md scale-[1.02] z-10":i?"bg-slate-50 border-slate-200 opacity-50 cursor-not-allowed":"bg-white border-slate-100 hover:border-sky-300 hover:shadow-lg hover:scale-[1.02] hover:z-10"}`,children:[r&&!i&&e.jsxs("div",{className:"absolute top-1.5 left-1/2 -translate-x-1/2 px-1.5 py-0.5 bg-gradient-to-r from-blue-500 to-sky-400 text-white text-[9px] font-black rounded-full flex items-center gap-1 z-10 whitespace-nowrap",children:["Equipped ",e.jsx(I,{size:9,className:"fill-white"})]}),i&&e.jsx("div",{className:"absolute inset-0 bg-black/20 z-20 flex items-center justify-center rounded-[1rem]",children:e.jsx(Q,{className:"text-white",size:24})}),e.jsx("img",{src:s.thumbnail,alt:s.name,className:`w-3/4 h-3/4 object-contain transition-transform ${!i&&"group-hover:scale-110"}`,style:{filter:i?"grayscale(70%)":"none"}})]}),e.jsx("p",{className:"text-xs font-bold text-slate-700 text-center line-clamp-2",children:s.name}),i&&e.jsx(d.button,{initial:{opacity:0},animate:{opacity:1},onClick:R=>X(R,s.id,s.price||0),disabled:k===s.id,className:"w-full py-1 bg-gradient-to-r from-amber-500 to-orange-500 hover:from-amber-600 hover:to-orange-600 text-white text-[9px] font-bold flex items-center justify-center gap-1 rounded shadow-sm transition-all disabled:opacity-70",children:k===s.id?e.jsx(d.div,{animate:{rotate:360},transition:{repeat:1/0,duration:1},children:e.jsx(b,{size:11})}):e.jsxs(e.Fragment,{children:[e.jsx(b,{size:11}),s.price," XP"]})})]},s.id)})})},t.id)})})]})]}),e.jsxs("div",{className:"flex flex-col gap-4 relative z-10 w-full xl:w-[350px] shrink-0 xl:self-center",children:[e.jsxs("div",{className:"bg-[#0f1422] rounded-[2rem] overflow-hidden relative shadow-[0_20px_50px_rgba(15,20,34,0.2)] h-[400px] w-full flex items-center justify-center mx-auto border-4 border-slate-800",children:[e.jsx("div",{className:"absolute top-[-10%] left-0 right-0 h-[110%] pointer-events-none mix-blend-screen opacity-70",style:{background:"linear-gradient(to bottom, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 60%, transparent 100%)",clipPath:"polygon(15% 0, 85% 0, 65% 100%, 35% 100%)"}}),e.jsx("div",{className:"absolute bottom-12 left-1/2 -translate-x-1/2 w-[220px] h-[25px] bg-sky-500/20 blur-xl rounded-full"}),e.jsxs(d.div,{animate:{y:[-8,8,-8]},transition:{repeat:1/0,duration:4,ease:"easeInOut"},className:"relative w-full h-[80%] z-10 flex justify-center items-center",children:[e.jsx(W,{layers:m,className:"w-full h-full absolute inset-0 z-20"}),e.jsx(U,{children:c&&e.jsxs(d.div,{initial:{opacity:0,y:-10,scale:.8},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.8},transition:{duration:.3},className:"absolute -top-24 left-1/2 -translate-x-1/2 z-30 bg-white text-slate-800 px-4 py-2 rounded-full shadow-lg border-2 border-sky-300 whitespace-nowrap font-bold text-sm max-w-xs text-center",children:[c,e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-l-transparent border-r-transparent border-t-white"})]})})]})]}),e.jsxs("button",{onClick:O,disabled:p,className:"w-full max-w-[450px] mx-auto h-[54px] bg-blue-600 hover:bg-blue-500 text-white rounded-xl font-bold text-base flex items-center justify-center gap-2 transition-colors shadow-md disabled:opacity-70 disabled:cursor-not-allowed active:scale-[0.98]",children:[p?e.jsx(d.div,{animate:{rotate:360},transition:{repeat:1/0,duration:1,ease:"linear"},children:e.jsx(J,{size:24,className:"opacity-50"})}):null,p?"Saving...":"Save Profile Avatar"]})]})]})})};export{Ne as default}; diff --git a/assets/AvatarShop-D-gwLcZq.js b/assets/AvatarShop-D-gwLcZq.js deleted file mode 100644 index 0c74fde813c2464151e9af0efb9a2c82997ff6f3..0000000000000000000000000000000000000000 --- a/assets/AvatarShop-D-gwLcZq.js +++ /dev/null @@ -1,11 +0,0 @@ -import{r as c,j as e}from"./vendor-react-Dexh7fmo.js";import{T as y,b as j,c as n,a as k}from"./tabs-BJVl1n4R.js";import{B as N}from"./button-DWdPuxDU.js";import{c as i}from"./utils-BQQgILNW.js";import{c as h,u as _,l as S,m as o,t as d,K as T}from"./index-DGWrSMOK.js";import{S as z}from"./shirt-C4Gsu12G.js";import{S as A}from"./sparkles-DxmNHQEo.js";import{L}from"./loader-circle-BUf2fYcT.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const B=[["path",{d:"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z",key:"1dudjm"}],["path",{d:"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z",key:"l2t8xc"}],["path",{d:"M16 17h4",key:"1dejxt"}],["path",{d:"M4 13h4",key:"1bwh8b"}]],C=h("footprints",B);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const I=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],P=h("scissors",I),E=[{id:"uniform_blue",name:"Blue Uniform",src:"/avatar/uniform_blue.png",thumbnail:"/avatar/uniform_blue_thumbnail.png",category:"Tops"},{id:"uniform_pink",name:"Pink Uniform",src:"/avatar/uniform_pink.png",thumbnail:"/avatar/uniform_pink_thumbnail.png",category:"Tops"},{id:"pants_black",name:"Black Pants",src:"/avatar/pants_black.png",thumbnail:"/avatar/pants_black_thumbnail.png",category:"Bottoms"},{id:"shoes_black",name:"Black Shoes",src:"/avatar/shoes_black.png",thumbnail:"/avatar/shoes_black_thumbnail.png",category:"Shoes"}],M=s=>({top:s.tops??void 0,bottom:s.bottoms??void 0,shoes:s.shoes??void 0,accessory:s.accessories??void 0}),O=s=>({tops:s?.top??"uniform_blue",bottoms:s?.bottom??"pants_black",shoes:s?.shoes??"shoes_black",accessories:s?.accessory??null}),X=()=>{const{currentUser:s,userProfile:p,refreshProfile:b}=_(),[r,u]=c.useState({tops:"uniform_blue",bottoms:"pants_black",shoes:"shoes_black",accessories:null}),[m,x]=c.useState(!1);c.useEffect(()=>{u(O(p?.avatarLayers))},[p?.avatarLayers]);const g=t=>{u(a=>({...a,[t.category.toLowerCase()]:a[t.category.toLowerCase()]===t.id?null:t.id}))},f=async()=>{if(!s?.uid){d.error("Please sign in to save avatar changes.");return}x(!0);try{await T(s.uid,{avatarLayers:M(r)}),await b(),d.success("Avatar saved to your profile.")}catch(t){console.error("Failed to save avatar config:",t),d.error("Unable to save avatar right now.")}finally{x(!1)}},v=["Tops","Bottoms","Shoes","Accessories"],w=t=>{switch(t){case"Tops":return"object-center scale-[1.7] translate-y-2";case"Bottoms":return"object-bottom scale-[2.2] translate-y-8";case"Shoes":return"object-bottom scale-[3.2] translate-y-12";default:return"object-center scale-[1.5]"}};return e.jsxs("div",{className:"relative min-h-full h-full w-full flex items-center justify-center p-4 lg:p-8 bg-transparent overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(ellipse at 30% 50%, rgba(240,249,255,0.2) 0%, rgba(248,250,252,0.5) 50%, rgba(255,241,242,0.4) 80%, rgba(248,250,252,0.85) 100%)"}}),e.jsx("div",{className:"absolute top-[10%] left-[-10%] w-[60%] h-[60%] rounded-full blur-[140px] pointer-events-none mix-blend-multiply",style:{background:"radial-gradient(circle, rgba(168,85,247,0.3) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute bottom-[-10%] right-[-10%] w-[70%] h-[70%] rounded-full blur-[160px] pointer-events-none mix-blend-multiply",style:{background:"radial-gradient(circle, rgba(236,72,153,0.25) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute top-[40%] left-[40%] w-[40%] h-[40%] rounded-full blur-[120px] pointer-events-none mix-blend-screen",style:{background:"radial-gradient(circle, rgba(56,189,248,0.2) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundImage:"radial-gradient(circle, rgba(15,23,42,0.4) 1px, transparent 1px)",backgroundSize:"24px 24px"}}),e.jsxs("div",{className:"relative z-10 w-full max-w-[1400px] h-[calc(100vh-2rem)] lg:h-[800px] flex flex-col-reverse lg:flex-row bg-white/90 backdrop-blur-xl rounded-[2.5rem] shadow-2xl border border-white/50 overflow-hidden divide-y-reverse lg:divide-y-0 lg:divide-x divide-slate-100/60 ring-1 ring-slate-900/5",children:[e.jsxs("div",{className:"flex-1 lg:w-[55%] flex flex-col p-6 lg:p-12 space-y-8 bg-white/40 overflow-y-auto min-h-0",children:[e.jsxs("div",{className:"flex flex-col space-y-2",children:[e.jsx("h1",{className:"text-4xl lg:text-5xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-r from-purple-600 via-pink-500 to-sky-500 flex items-center gap-3 drop-shadow-sm",children:"Avatar Studio ✨"}),e.jsx("p",{className:"text-slate-600 text-base font-medium lg:text-lg",children:"Design your perfect learning companion."})]}),e.jsxs(y,{defaultValue:"Tops",className:"w-full flex-1 flex flex-col",children:[e.jsxs(j,{className:"flex flex-nowrap shrink-0 justify-start gap-3 bg-white/60 backdrop-blur-xl p-3 border-2 border-white/80 rounded-3xl mb-10 overflow-x-auto overflow-y-hidden whitespace-nowrap scrollbar-hide min-w-full shadow-[0_8px_30px_rgb(0,0,0,0.04)]",children:[e.jsxs(n,{value:"Tops",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-500 data-[state=active]:to-pink-500 data-[state=active]:text-white data-[state=inactive]:hover:bg-purple-50 data-[state=inactive]:text-slate-500 data-[state=active]:shadow-md rounded-2xl py-3.5 px-5 font-bold transition-all flex-1 min-w-[120px] whitespace-nowrap shrink-0",children:[e.jsx(z,{className:"w-5 h-5 mr-2"})," Tops"]}),e.jsxs(n,{value:"Bottoms",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-500 data-[state=active]:to-pink-500 data-[state=active]:text-white data-[state=inactive]:hover:bg-purple-50 data-[state=inactive]:text-slate-500 data-[state=active]:shadow-md rounded-2xl py-3.5 px-5 font-bold transition-all flex-1 min-w-[120px] whitespace-nowrap shrink-0",children:[e.jsx(P,{className:"w-5 h-5 mr-2"})," Bottoms"]}),e.jsxs(n,{value:"Shoes",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-500 data-[state=active]:to-pink-500 data-[state=active]:text-white data-[state=inactive]:hover:bg-purple-50 data-[state=inactive]:text-slate-500 data-[state=active]:shadow-md rounded-2xl py-3.5 px-5 font-bold transition-all flex-1 min-w-[120px] whitespace-nowrap shrink-0",children:[e.jsx(C,{className:"w-5 h-5 mr-2"})," Shoes"]}),e.jsxs(n,{value:"Accessories",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-500 data-[state=active]:to-pink-500 data-[state=active]:text-white data-[state=inactive]:hover:bg-purple-50 data-[state=inactive]:text-slate-500 data-[state=active]:shadow-md rounded-2xl py-3.5 px-5 font-bold transition-all flex-1 min-w-[120px] whitespace-nowrap shrink-0",children:[e.jsx(S,{className:"w-5 h-5 mr-2"})," Accs"]})]}),v.map(t=>e.jsx(k,{value:t,className:"flex-1 focus-visible:outline-none focus-visible:ring-0",children:t==="Accessories"?e.jsxs("div",{className:"h-48 md:h-64 flex flex-col items-center justify-center text-slate-400 font-medium bg-white/50 backdrop-blur-sm rounded-[2rem] border-4 border-dashed border-slate-200/60 gap-4 relative overflow-hidden group",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-purple-100/30 to-pink-100/30 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsx(o.div,{className:"w-20 h-20 bg-white rounded-3xl flex items-center justify-center shadow-[0_10px_30px_-10px_rgba(0,0,0,0.1)] rotate-3 group-hover:rotate-12 transition-transform duration-300",animate:{y:[0,-10,0]},transition:{duration:4,repeat:1/0,ease:"easeInOut"},children:e.jsx(A,{className:"w-10 h-10 text-purple-400 drop-shadow-sm"})}),e.jsx("p",{className:"text-xl font-bold text-slate-500 group-hover:text-purple-500 transition-colors",children:"Accessories dropping soon! 🎁"})]}):e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-5 lg:gap-6 pb-8 lg:pb-0 h-full content-start",children:E.filter(a=>a.category===t).map(a=>{const l=r[t.toLowerCase()]===a.id;return e.jsxs(o.div,{whileHover:{scale:1.05,y:-4,rotate:Math.random()*2-1},whileTap:{scale:.95},onClick:()=>g(a),className:i("relative cursor-pointer rounded-[2rem] transition-all overflow-hidden flex flex-col items-center p-5 aspect-square bg-white border-4 justify-end group",l?"border-pink-500 shadow-[0_15px_35px_-5px_rgba(236,72,153,0.4)]":"border-slate-100 hover:border-sky-300 hover:shadow-[0_15px_35px_-5px_rgba(56,189,248,0.3)] shadow-sm"),children:[e.jsx("div",{className:i("absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-500 bg-gradient-to-tr from-transparent via-white/50 to-white/10",l&&"opacity-100 bg-gradient-to-t from-pink-50/50 to-transparent")}),e.jsx("div",{className:"absolute inset-0 top-4 bottom-[20%] flex items-center justify-center pointer-events-none mix-blend-multiply overflow-hidden z-10 transition-transform duration-300 group-hover:scale-110",children:e.jsx("img",{src:a.thumbnail||a.src,alt:a.name,className:i("w-full h-full object-contain drop-shadow-xl transition-all duration-300",!a.thumbnail&&w(a.category))})}),e.jsx("span",{className:i("text-sm lg:text-base font-black z-20 bg-white/90 backdrop-blur-md px-4 py-1.5 rounded-xl mt-auto text-center w-full transition-colors",l?"text-pink-600":"text-slate-700"),children:a.name}),l&&e.jsx("div",{className:"absolute top-4 right-4 bg-gradient-to-r from-pink-500 to-purple-500 text-white text-[10px] uppercase font-black px-3 py-1.5 rounded-full z-20 shadow-lg transform rotate-3",children:"Equipped ✨"})]},a.id)})})},t))]})]}),e.jsxs("div",{className:"flex-1 lg:w-[45%] flex flex-col items-center justify-center p-8 lg:p-12 relative bg-transparent overflow-hidden",children:[e.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-gradient-to-tr from-purple-300/50 via-sky-300/30 to-pink-300/40 blur-[100px] rounded-full pointer-events-none"}),e.jsxs("div",{className:"relative z-10 flex flex-col items-center gap-12 w-full max-w-[480px]",children:[e.jsxs("div",{className:"relative w-[340px] h-[340px] sm:w-[440px] sm:h-[440px] rounded-[3rem] bg-[#0A1128] border-[6px] border-[#1E293B] shadow-[0_30px_60px_rgba(15,23,42,0.4),inset_0_0_120px_rgba(0,0,0,0.9)] flex items-end justify-center pt-10 overflow-hidden transform-gpu shrink-0 ring-1 ring-white/10",children:[e.jsx("div",{className:"absolute top-[-10%] left-0 right-0 h-[110%] pointer-events-none mix-blend-screen",style:{background:"linear-gradient(to bottom, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 60%, transparent 100%)",clipPath:"polygon(15% 0, 85% 0, 65% 100%, 35% 100%)"}}),e.jsx("div",{className:"absolute bottom-5 left-1/2 -translate-x-1/2 w-[60%] h-8 bg-sky-300/30 blur-[15px] rounded-[100%] pointer-events-none"}),e.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-80 h-80 bg-gradient-to-br from-sky-500/20 to-indigo-500/20 blur-[70px] rounded-full pointer-events-none"}),e.jsxs(o.div,{className:"relative w-full h-[120%] pb-6",animate:{y:[-5,5,-5]},transition:{repeat:1/0,duration:3.5,ease:"easeInOut"},children:[e.jsx("img",{src:"/avatar/avatar_body.png",className:"absolute inset-0 w-full h-full object-contain z-10",alt:"Base Avatar"}),r.bottoms&&e.jsx("img",{src:`/avatar/${r.bottoms}.png`,className:"absolute inset-0 w-full h-full object-contain z-20",alt:"Pants"}),r.shoes&&e.jsx("img",{src:`/avatar/${r.shoes}.png`,className:"absolute inset-0 w-full h-full object-contain z-30",alt:"Shoes"}),r.tops&&e.jsx("img",{src:`/avatar/${r.tops}.png`,className:"absolute inset-0 w-full h-full object-contain z-40",alt:"Top"}),e.jsx(o.img,{src:"/avatar/left_horn.png",className:"absolute inset-0 w-full h-full object-contain z-50 origin-[50%_45%]",animate:{rotate:[-8,8,-8]},transition:{repeat:1/0,duration:4,ease:"easeInOut"},alt:"Left Horn"}),e.jsx(o.img,{src:"/avatar/right_horn.png",className:"absolute inset-0 w-full h-full object-contain z-50 origin-[50%_45%]",animate:{rotate:[8,-8,8]},transition:{repeat:1/0,duration:4,ease:"easeInOut"},alt:"Right Horn"}),e.jsx("div",{className:"absolute inset-0 pointer-events-none bg-gradient-to-t from-slate-900/40 via-transparent to-transparent z-[60]"})]})]}),e.jsxs(N,{size:"lg",className:"relative w-full bg-blue-600 hover:bg-blue-500 text-white font-black h-[72px] rounded-2xl shadow-[0_10px_30px_-10px_rgba(37,99,235,0.6)] text-lg sm:text-xl transition-all hover:-translate-y-1 active:scale-95 group overflow-hidden border border-blue-500",onClick:f,disabled:m,children:[e.jsx("div",{className:"absolute inset-0 bg-white/10 translate-y-full group-hover:translate-y-0 transition-transform duration-300 ease-out"}),e.jsx("span",{className:"relative z-10 flex items-center justify-center gap-2",children:m?e.jsxs(e.Fragment,{children:[e.jsx(L,{className:"h-5 w-5 animate-spin"}),"Saving..."]}):"Save Profile Avatar"})]})]})]})]})]})};export{X as default}; diff --git a/assets/ChatMarkdown-BI4vbcO7.js b/assets/ChatMarkdown-XT9mMuBR.js similarity index 97% rename from assets/ChatMarkdown-BI4vbcO7.js rename to assets/ChatMarkdown-XT9mMuBR.js index fb61754cd28b91dc86dfa81ad0eaf0e51a61707c..605116295808ff0bf4b7b60d3baceabe04471de9 100644 --- a/assets/ChatMarkdown-BI4vbcO7.js +++ b/assets/ChatMarkdown-XT9mMuBR.js @@ -1,2 +1,2 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-markdown-C5ikSDMA.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-markdown-CBmFCdgC.css"])))=>i.map(i=>d[i]); -import{P as i,_ as c}from"./index-DGWrSMOK.js";import{r as m,j as r}from"./vendor-react-Dexh7fmo.js";import{M as h,r as x,a as y}from"./vendor-markdown-C5ikSDMA.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";let a=null;const p=()=>(a||(a=c(()=>import("./vendor-markdown-C5ikSDMA.js").then(l=>l.k),__vite__mapDeps([0,1,2]))),a),v=({children:l})=>{if(m.useEffect(()=>{p()},[]),!l||typeof l!="string")return null;const t=i(l);return r.jsx("div",{className:"chat-markdown",children:r.jsx(h,{remarkPlugins:[y],rehypePlugins:[x],components:{a:({href:e,children:s})=>r.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:s}),code:e=>{const{inline:s,className:n,children:o,...d}=e;return r.jsx("code",{className:`${s?"bg-gray-100 dark:bg-gray-800 rounded px-1 py-0.5 text-sm":"block bg-gray-100 dark:bg-gray-900 rounded p-3 overflow-x-auto my-2"} ${n||""}`,...d,children:o})},blockquote:({children:e})=>r.jsx("blockquote",{className:"border-l-4 border-gray-300 dark:border-gray-600 pl-4 italic text-gray-600 dark:text-gray-400 my-2",children:e}),h1:({children:e})=>r.jsx("h1",{className:"text-2xl font-bold my-2",children:e}),h2:({children:e})=>r.jsx("h2",{className:"text-xl font-bold my-2",children:e}),h3:({children:e})=>r.jsx("h3",{className:"text-lg font-bold my-2",children:e}),h4:({children:e})=>r.jsx("h4",{className:"text-base font-bold my-2",children:e}),h5:({children:e})=>r.jsx("h5",{className:"text-sm font-bold my-2",children:e}),h6:({children:e})=>r.jsx("h6",{className:"text-xs font-bold my-2",children:e}),ul:({children:e})=>r.jsx("ul",{className:"list-disc list-inside my-2",children:e}),ol:({children:e})=>r.jsx("ol",{className:"list-decimal list-inside my-2",children:e}),li:({children:e})=>r.jsx("li",{className:"ml-2",children:e}),hr:()=>r.jsx("hr",{className:"my-4 border-t border-gray-300 dark:border-gray-600"}),p:({children:e})=>r.jsx("p",{className:"my-1",children:e})},children:t})})};export{v as default}; +import{Q as i,_ as c}from"./index-CmBdDSkw.js";import{r as m,j as r}from"./vendor-react-Dexh7fmo.js";import{M as h,r as x,a as y}from"./vendor-markdown-C5ikSDMA.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";let a=null;const p=()=>(a||(a=c(()=>import("./vendor-markdown-C5ikSDMA.js").then(l=>l.k),__vite__mapDeps([0,1,2]))),a),v=({children:l})=>{if(m.useEffect(()=>{p()},[]),!l||typeof l!="string")return null;const t=i(l);return r.jsx("div",{className:"chat-markdown",children:r.jsx(h,{remarkPlugins:[y],rehypePlugins:[x],components:{a:({href:e,children:s})=>r.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:s}),code:e=>{const{inline:s,className:n,children:o,...d}=e;return r.jsx("code",{className:`${s?"bg-gray-100 dark:bg-gray-800 rounded px-1 py-0.5 text-sm":"block bg-gray-100 dark:bg-gray-900 rounded p-3 overflow-x-auto my-2"} ${n||""}`,...d,children:o})},blockquote:({children:e})=>r.jsx("blockquote",{className:"border-l-4 border-gray-300 dark:border-gray-600 pl-4 italic text-gray-600 dark:text-gray-400 my-2",children:e}),h1:({children:e})=>r.jsx("h1",{className:"text-2xl font-bold my-2",children:e}),h2:({children:e})=>r.jsx("h2",{className:"text-xl font-bold my-2",children:e}),h3:({children:e})=>r.jsx("h3",{className:"text-lg font-bold my-2",children:e}),h4:({children:e})=>r.jsx("h4",{className:"text-base font-bold my-2",children:e}),h5:({children:e})=>r.jsx("h5",{className:"text-sm font-bold my-2",children:e}),h6:({children:e})=>r.jsx("h6",{className:"text-xs font-bold my-2",children:e}),ul:({children:e})=>r.jsx("ul",{className:"list-disc list-inside my-2",children:e}),ol:({children:e})=>r.jsx("ol",{className:"list-decimal list-inside my-2",children:e}),li:({children:e})=>r.jsx("li",{className:"ml-2",children:e}),hr:()=>r.jsx("hr",{className:"my-4 border-t border-gray-300 dark:border-gray-600"}),p:({children:e})=>r.jsx("p",{className:"my-1",children:e})},children:t})})};export{v as default}; diff --git a/assets/CompetencyRadarChart-Bv4P4qFs.js b/assets/CompetencyRadarChart-B1x3Wmwg.js similarity index 98% rename from assets/CompetencyRadarChart-Bv4P4qFs.js rename to assets/CompetencyRadarChart-B1x3Wmwg.js index 28d6101d039b3f72a9197316d1e539562d9453ba..540c36cde9aae2c8276c90eaafe98bb70bdd13fd 100644 --- a/assets/CompetencyRadarChart-Bv4P4qFs.js +++ b/assets/CompetencyRadarChart-B1x3Wmwg.js @@ -1,2 +1,2 @@ -import{c as u,g as he,r as A,j as p}from"./vendor-react-Dexh7fmo.js";import{u as it,q as at,m as ot}from"./index-DGWrSMOK.js";import{g as st,s as ke}from"./subjects-DDYtJwQO.js";import{B as ct}from"./brain-DHmY5cbv.js";import{S as lt}from"./sparkles-DxmNHQEo.js";import{f as b,x as w,y as qe,z as ut,A as We,D as ft,b as B,T as Ke,L as S,E as Ve,d as Ge,e as pt,F as He,H as dt,I as X,J as mt,K as yt,G as ht,M as we,N as vt,O as _e,r as gt,P as bt,R as xt,v as Pt}from"./generateCategoricalChart-CiUYzAvW.js";import{c as N}from"./clsx-B-dksMZM.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./trending-up-B2MPUPwk.js";import"./chart-column-CJzwyNMx.js";var Ot=["points","className","baseLinePoints","connectNulls"];function F(){return F=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function kt(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ae(t){return Et(t)||At(t)||_t(t)||wt()}function wt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +import{c as u,g as he,r as A,j as p}from"./vendor-react-Dexh7fmo.js";import{u as it,q as at,m as ot}from"./index-CmBdDSkw.js";import{g as st,s as ke}from"./subjects-wOHUanD9.js";import{B as ct}from"./brain-DfMjTiNx.js";import{S as lt}from"./sparkles-D6B_TX7M.js";import{f as b,x as w,y as qe,z as ut,A as We,D as ft,b as B,T as Ke,L as S,E as Ve,d as Ge,e as pt,F as He,H as dt,I as X,J as mt,K as yt,G as ht,M as we,N as vt,O as _e,r as gt,P as bt,R as xt,v as Pt}from"./generateCategoricalChart-CiUYzAvW.js";import{c as N}from"./clsx-B-dksMZM.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./trending-up-6u76yy2e.js";import"./chart-column-DzJCKCOe.js";var Ot=["points","className","baseLinePoints","connectNulls"];function F(){return F=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function kt(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ae(t){return Et(t)||At(t)||_t(t)||wt()}function wt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _t(t,e){if(t){if(typeof t=="string")return pe(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pe(t,e)}}function At(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Et(t){if(Array.isArray(t))return pe(t)}function pe(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return e.forEach(function(r){Ee(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),Ee(e[0])&&n[n.length-1].push(e[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},V=function(e,n){var r=St(e);n&&(r=[r.reduce(function(a,o){return[].concat(Ae(a),Ae(o))},[])]);var i=r.map(function(a){return a.reduce(function(o,s,c){return"".concat(o).concat(c===0?"M":"L").concat(s.x,",").concat(s.y)},"")}).join("");return r.length===1?"".concat(i,"Z"):i},Nt=function(e,n,r){var i=V(e,r);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(V(n.reverse(),r).slice(1))},Ze=function(e){var n=e.points,r=e.className,i=e.baseLinePoints,a=e.connectNulls,o=jt(e,Ot);if(!n||!n.length)return null;var s=N("recharts-polygon",r);if(i&&i.length){var c=o.stroke&&o.stroke!=="none",d=Nt(n,i,a);return u.createElement("g",{className:s},u.createElement("path",F({},b(o,!0),{fill:d.slice(-1)==="Z"?o.fill:"none",stroke:"none",d})),c?u.createElement("path",F({},b(o,!0),{fill:"none",d:V(n,a)})):null,c?u.createElement("path",F({},b(o,!0),{fill:"none",d:V(i,a)})):null)}var f=V(n,a);return u.createElement("path",F({},b(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:s,d:f}))},Tt=["cx","cy","innerRadius","outerRadius","gridType","radialLines"];function H(t){"@babel/helpers - typeof";return H=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},H(t)}function $t(t,e){if(t==null)return{};var n=Rt(t,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Rt(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function T(){return T=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Yt(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Jt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Le(t,e){for(var n=0;nMe?o=i==="outer"?"start":"end":a<-Me?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var r=this.props,i=r.cx,a=r.cy,o=r.radius,s=r.axisLine,c=r.axisLineType,d=L(L({},b(this.props,!1)),{},{fill:"none"},b(s,!1));if(c==="circle")return u.createElement(He,D({className:"recharts-polar-angle-axis-line"},d,{cx:i,cy:a,r:o}));var f=this.props.ticks,m=f.map(function(l){return w(i,a,o,l.coordinate)});return u.createElement(Ze,D({className:"recharts-polar-angle-axis-line"},d,{points:m}))}},{key:"renderTicks",value:function(){var r=this,i=this.props,a=i.ticks,o=i.tick,s=i.tickLine,c=i.tickFormatter,d=i.stroke,f=b(this.props,!1),m=b(o,!1),l=L(L({},f),{},{fill:"none"},b(s,!1)),v=a.map(function(y,h){var g=r.getTickLineCoord(y),O=r.getTickTextAnchor(y),j=L(L(L({textAnchor:O},f),{},{stroke:"none",fill:d},m),{},{index:h,payload:y,x:g.x2,y:g.y2});return u.createElement(S,D({className:N("recharts-polar-angle-axis-tick",Ve(o)),key:"tick-".concat(y.coordinate)},Ge(r.props,y,h)),s&&u.createElement("line",D({className:"recharts-polar-angle-axis-tick-line"},l,g)),o&&e.renderTickItem(o,j,c?c(y.value,h):y.value))});return u.createElement(S,{className:"recharts-polar-angle-axis-ticks"},v)}},{key:"render",value:function(){var r=this.props,i=r.ticks,a=r.radius,o=r.axisLine;return a<=0||!i||!i.length?null:u.createElement(S,{className:N("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,i,a){var o;return u.isValidElement(r)?o=u.cloneElement(r,i):B(r)?o=r(i):o=u.createElement(Ke,D({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])})(A.PureComponent);ie(Y,"displayName","PolarAngleAxis");ie(Y,"axisType","angleAxis");ie(Y,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var ue,Ce;function pr(){if(Ce)return ue;Ce=1;function t(e){return e&&e.length?e[0]:void 0}return ue=t,ue}var fe,Be;function dr(){return Be||(Be=1,fe=pr()),fe}var mr=dr();const yr=he(mr);var hr=["key"];function W(t){"@babel/helpers - typeof";return W=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},W(t)}function vr(t,e){if(t==null)return{};var n=gr(t,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function gr(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function te(){return te=Object.assign?Object.assign.bind():function(t){for(var e=1;e=2&&(c=!0),d.push(P(P({},w(o,s,j,g)),{},{name:y,value:h,cx:o,cy:s,radius:j,angle:g,payload:l}))});var m=[];return c&&d.forEach(function(l){if(Array.isArray(l.value)){var v=yr(l.value),y=_e(v)?void 0:e.scale(v);m.push(P(P({},l),{},{radius:y},w(o,s,y,l.angle)))}else m.push(l)}),{points:d,isRange:c,baseLinePoints:m}});var _r=gt({chartName:"RadarChart",GraphicalChild:J,axisComponents:[{axisType:"angleAxis",AxisComp:Y},{axisType:"radiusAxis",AxisComp:U}],formatAxisMap:bt,defaultProps:{layout:"centric",startAngle:90,endAngle:-270,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}});const zr=()=>{const{userProfile:t}=it(),[e,n]=A.useState([]),[r,i]=A.useState([]),[a,o]=A.useState("N/A"),[s,c]=A.useState(!0),[d,f]=A.useState(!1),m=["#1FA7E1","#9956DE","#75D06A","#FFB356","#7274ED","#FF8B8B","#6ED1CF","#FB96BB"];return A.useEffect(()=>{if(!t?.uid){c(!1);return}const l=t.role==="student"?t.grade:null,y=st(l)[0]??"gen-math",h=ke.find(x=>x.id===y)?.modules||[],g=new Map;ke.forEach(x=>{x.modules.forEach($=>g.set($.id,x.id))});const O=h.map((x,$)=>({id:x.id,name:x.title.length>15?x.title.substring(0,15).trim()+"...":x.title,color:m[$%m.length]}));i(O);const j=[{key:"progress",label:"Overall Mastery"},{key:"concept",label:"Concept Grasp"},{key:"application",label:"Application"},{key:"engagement",label:"Engagement"},{key:"consistency",label:"Consistency"}],ae=x=>{let $=-1,ve="N/A";const ge=j.map(_=>{const K={metric:_.label,fullMark:100};return h.forEach(k=>{const I=g.get(k.id),M=I?x?.subjects?.[I]?.modulesProgress?.[k.id]:null,be=M?.progress||0,rt=x?.lessons??{},xe=k.lessons.length?k.lessons.reduce((Oe,je)=>{const se=rt?.[je.id]?.progressPercent;if(typeof se=="number"&&Number.isFinite(se))return Oe+Math.max(0,Math.min(100,se));const nt=!!M?.lessonsCompleted?.includes?.(je.id);return Oe+(nt?100:0)},0)/k.lessons.length:0,Pe=k.quizzes.length?(M?.quizzesCompleted?.length||0)/k.quizzes.length*100:0;let C=0;_.key==="progress"?C=be:_.key==="concept"?C=xe:_.key==="application"?C=Pe:_.key==="engagement"?C=Math.min(100,(xe+Pe*2)/1.5):_.key==="consistency"&&(C=Math.min(100,40+be*.6)),K[k.id]=C||0}),K});h.forEach(_=>{let K=0;ge.forEach(I=>{const M=I[_.id];K+=typeof M=="number"?M:0});const k=K/j.length;k>$&&($=k,ve=O.find(I=>I.id===_.id)?.name||"N/A")}),o(ve),n(ge),c(!1)};c(!0);const oe=at(t.uid,x=>{ae(x)});return()=>oe()},[t?.uid]),p.jsxs(ot.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,ease:[.22,1,.36,1]},className:"relative overflow-hidden bg-white/80 backdrop-blur-xl border border-white/50 shadow-[0_8px_30px_rgb(0,0,0,0.04)] rounded-[2rem] p-6 lg:p-8 isolate group",onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[p.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-violet-400/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/4"}),p.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-rose-400/5 rounded-full blur-3xl translate-y-1/3 -translate-x-1/3"}),p.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between mb-8 relative z-10 gap-4",children:[p.jsxs("div",{children:[p.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[p.jsx("span",{className:"p-2 bg-violet-100 text-violet-600 rounded-xl",children:p.jsx(ct,{size:20,className:"stroke-[2.5]"})}),p.jsx("h3",{className:"text-xl font-display font-extrabold text-[#0a1628] tracking-tight",children:"Competency Matrix"})]}),p.jsx("p",{className:"text-sm text-[#5a6578] font-body ml-12",children:"Your realtime performance across modules"})]}),p.jsxs("div",{className:"flex items-center gap-3 bg-slate-50 border border-slate-100 px-4 py-2 rounded-2xl ml-12 sm:ml-0",children:[p.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-full bg-white shadow-sm border border-slate-100",children:p.jsx(lt,{size:14,className:"text-amber-500"})}),p.jsxs("div",{children:[p.jsx("p",{className:"text-[10px] font-bold text-slate-400 uppercase tracking-wider",children:"Top Module"}),p.jsx("p",{className:"text-sm font-bold text-slate-700",children:a})]})]})]}),p.jsx("div",{className:"h-[300px] sm:h-[360px] w-full relative z-10",children:s?p.jsx("div",{className:"w-full h-full flex items-center justify-center",children:p.jsxs("div",{className:"flex flex-col items-center gap-3",children:[p.jsx("div",{className:"w-8 h-8 border-4 border-violet-200 border-t-violet-500 rounded-full animate-spin"}),p.jsx("p",{className:"text-sm text-slate-400 font-medium",children:"Analyzing skill vectors..."})]})}):p.jsx(xt,{width:"100%",height:"100%",children:p.jsxs(_r,{cx:"50%",cy:"50%",outerRadius:d?"75%":"70%",data:e,children:[p.jsx(Ue,{stroke:"#e2e8f0",strokeDasharray:"4 4",polarRadius:[20,40,60,80,100]}),p.jsx(Y,{dataKey:"metric",tick:{fill:"#475569",fontSize:12,fontWeight:600,fontFamily:"Inter, sans-serif"}}),p.jsx(U,{angle:90,domain:[0,100],tick:{fill:"#94a3b8",fontSize:10},tickCount:6,axisLine:!1}),r.map(l=>p.jsx(J,{name:l.name,dataKey:l.id,stroke:l.color,strokeWidth:2,fill:l.color,fillOpacity:.35,dot:{r:3,fill:"#fff",stroke:l.color,strokeWidth:2},activeDot:{r:5,fill:l.color,stroke:"#fff",strokeWidth:2},isAnimationActive:!0,animationDuration:1500,animationEasing:"ease-out"},l.id)),p.jsx(Pt,{cursor:!1,content:({active:l,payload:v})=>l&&v&&v.length?p.jsxs("div",{className:"bg-white/95 backdrop-blur shadow-[0_10px_40px_-10px_rgba(0,0,0,0.15)] border border-slate-100 rounded-xl p-4",children:[p.jsx("p",{className:"font-display font-bold text-slate-800 text-sm mb-3",children:v[0].payload.metric}),p.jsx("div",{className:"flex flex-col gap-2",children:v.map(y=>p.jsxs("div",{className:"flex items-center justify-between gap-4",children:[p.jsxs("div",{className:"flex items-center gap-2",children:[p.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:y.stroke}}),p.jsx("span",{className:"text-xs font-bold text-slate-600 uppercase tracking-wide truncate max-w-[120px]",title:String(y.name),children:String(y.name)})]}),p.jsxs("span",{className:"text-sm font-black",style:{color:y.stroke},children:[Math.round(y.value),"%"]})]},y.name))})]}):null})]})})}),!s&&r.length>0&&p.jsx("div",{className:"flex flex-wrap justify-center items-center gap-3 md:gap-5 mt-[5px] z-10 relative",children:r.map(l=>p.jsxs("div",{className:"flex items-center gap-1.5",children:[p.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{backgroundColor:l.color}}),p.jsx("span",{className:"text-[10px] font-bold text-slate-600 uppercase tracking-widest",children:l.name.length>15?l.name.substring(0,12)+"...":l.name})]},l.id))})]})};export{zr as CompetencyRadarChart}; diff --git a/assets/CompositeAvatar-CphZ-OWw.js b/assets/CompositeAvatar-DSWWcDP7.js similarity index 96% rename from assets/CompositeAvatar-CphZ-OWw.js rename to assets/CompositeAvatar-DSWWcDP7.js index 21c604e30153ad6a5c7ea85047704b63e524e212..bcc59168c7c72aebc60cbdbc39e42b16e8050e80 100644 --- a/assets/CompositeAvatar-CphZ-OWw.js +++ b/assets/CompositeAvatar-DSWWcDP7.js @@ -1 +1 @@ -import{j as t}from"./vendor-react-Dexh7fmo.js";import{g as e}from"./avatarData-DykDiQ_Y.js";import{m as s}from"./index-DGWrSMOK.js";const g=({layers:a,className:o="w-10 h-10 bg-slate-200 rounded-full",fallbackSrc:m})=>{const n=e(a?.top),i=e(a?.bottom),l=e(a?.shoes),r=e(a?.accessory),c=t.jsx("img",{src:"/avatar/avatar_body_base.png",alt:"base body",className:"absolute inset-0 w-full h-full object-contain z-10"}),u=t.jsxs(s.div,{className:"absolute inset-0 w-full h-full z-50 pointer-events-none",animate:{rotate:[-2,2,-2],y:[0,-3,0]},transition:{repeat:1/0,duration:4,ease:"easeInOut"},style:{originY:.7,originX:.5},children:[t.jsx(s.img,{src:"/avatar/left_horn.png",alt:"left horn",className:"absolute inset-0 w-full h-full object-contain origin-[50%_45%] z-0",animate:{rotate:[-4,4,-4]},transition:{repeat:1/0,duration:4,ease:"easeInOut"}}),t.jsx(s.img,{src:"/avatar/right_horn.png",alt:"right horn",className:"absolute inset-0 w-full h-full object-contain origin-[50%_45%] z-0",animate:{rotate:[4,-4,4]},transition:{repeat:1/0,duration:4,ease:"easeInOut"}}),t.jsx("img",{src:"/avatar/avatar_head_base.png",alt:"head base",className:"absolute inset-0 w-full h-full object-contain z-10"}),t.jsx(s.img,{src:"/avatar/eyes_default.png",alt:"Avatar Eyes",className:"absolute inset-0 w-full h-full object-contain z-10",style:{originY:"50%"},animate:{scaleY:[1,.1,1]},transition:{duration:.2,repeat:1/0,repeatDelay:3.8,ease:"easeInOut"}}),r&&t.jsx("img",{src:r,alt:"accessory",className:"absolute inset-0 w-full h-full object-contain z-20"})]});return!a||!a.top&&!a.bottom&&!a.shoes&&!a.accessory?t.jsxs("div",{className:`relative overflow-hidden ${o}`,children:[c,u]}):t.jsxs("div",{className:`relative overflow-hidden ${o}`,children:[c,i&&t.jsx("img",{src:i,alt:"bottom",className:"absolute inset-0 w-full h-full object-contain z-20"}),l&&t.jsx("img",{src:l,alt:"shoes",className:"absolute inset-0 w-full h-full object-contain z-30"}),n&&t.jsx("img",{src:n,alt:"top",className:"absolute inset-0 w-full h-full object-contain z-40"}),u]})};export{g as C}; +import{j as t}from"./vendor-react-Dexh7fmo.js";import{g as e}from"./avatarData-BW_TX0b4.js";import{m as s}from"./index-CmBdDSkw.js";const g=({layers:a,className:o="w-10 h-10 bg-slate-200 rounded-full",fallbackSrc:m})=>{const n=e(a?.top),i=e(a?.bottom),l=e(a?.shoes),r=e(a?.accessory),c=t.jsx("img",{src:"/avatar/avatar_body_base.png",alt:"base body",className:"absolute inset-0 w-full h-full object-contain z-10"}),u=t.jsxs(s.div,{className:"absolute inset-0 w-full h-full z-50 pointer-events-none",animate:{rotate:[-2,2,-2],y:[0,-3,0]},transition:{repeat:1/0,duration:4,ease:"easeInOut"},style:{originY:.7,originX:.5},children:[t.jsx(s.img,{src:"/avatar/left_horn.png",alt:"left horn",className:"absolute inset-0 w-full h-full object-contain origin-[50%_45%] z-0",animate:{rotate:[-4,4,-4]},transition:{repeat:1/0,duration:4,ease:"easeInOut"}}),t.jsx(s.img,{src:"/avatar/right_horn.png",alt:"right horn",className:"absolute inset-0 w-full h-full object-contain origin-[50%_45%] z-0",animate:{rotate:[4,-4,4]},transition:{repeat:1/0,duration:4,ease:"easeInOut"}}),t.jsx("img",{src:"/avatar/avatar_head_base.png",alt:"head base",className:"absolute inset-0 w-full h-full object-contain z-10"}),t.jsx(s.img,{src:"/avatar/eyes_default.png",alt:"Avatar Eyes",className:"absolute inset-0 w-full h-full object-contain z-10",style:{originY:"50%"},animate:{scaleY:[1,.1,1]},transition:{duration:.2,repeat:1/0,repeatDelay:3.8,ease:"easeInOut"}}),r&&t.jsx("img",{src:r,alt:"accessory",className:"absolute inset-0 w-full h-full object-contain z-20"})]});return!a||!a.top&&!a.bottom&&!a.shoes&&!a.accessory?t.jsxs("div",{className:`relative overflow-hidden ${o}`,children:[c,u]}):t.jsxs("div",{className:`relative overflow-hidden ${o}`,children:[c,i&&t.jsx("img",{src:i,alt:"bottom",className:"absolute inset-0 w-full h-full object-contain z-20"}),l&&t.jsx("img",{src:l,alt:"shoes",className:"absolute inset-0 w-full h-full object-contain z-30"}),n&&t.jsx("img",{src:n,alt:"top",className:"absolute inset-0 w-full h-full object-contain z-40"}),u]})};export{g as C}; diff --git a/assets/ConfirmModal-B9CUrvQP.js b/assets/ConfirmModal-BO6r5veY.js similarity index 91% rename from assets/ConfirmModal-B9CUrvQP.js rename to assets/ConfirmModal-BO6r5veY.js index bf11ed65c1232e778b3a67e684c87b41c7d27e79..665a42b2356b5b699dd30c4003f3a8b0b1565b7c 100644 --- a/assets/ConfirmModal-B9CUrvQP.js +++ b/assets/ConfirmModal-BO6r5veY.js @@ -1 +1 @@ -import{j as e}from"./vendor-react-Dexh7fmo.js";import{B as i}from"./button-DWdPuxDU.js";import{e as f,m as r,T as h}from"./index-DGWrSMOK.js";import{X as y}from"./x-Bj25rnWX.js";import{T as j}from"./trash-2-CBQVcuBL.js";import{L as w}from"./log-out-DYYu4gFF.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const O=({isOpen:s,onClose:t,onConfirm:n,title:a,message:l,confirmText:c="Confirm",cancelText:d="Cancel",type:m="warning",icon:x="warning",zIndexClass:g="z-50"})=>{const b=()=>{switch(x){case"logout":return e.jsx(w,{size:32});case"delete":return e.jsx(j,{size:32});case"warning":default:return e.jsx(h,{size:32})}},o=(()=>{switch(m){case"danger":return{iconBg:"bg-red-100",iconColor:"text-red-600",buttonBg:"bg-red-600 hover:bg-red-700",buttonText:"text-white"};case"warning":return{iconBg:"bg-rose-100",iconColor:"text-rose-600",buttonBg:"bg-rose-600 hover:bg-rose-700",buttonText:"text-white"};case"info":default:return{iconBg:"bg-sky-100",iconColor:"text-sky-600",buttonBg:"bg-sky-600 hover:bg-sky-700",buttonText:"text-white"}}})(),p=async()=>{try{await n(),t()}catch{}};return e.jsx(f,{children:s&&e.jsx(e.Fragment,{children:e.jsx(r.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:t,className:`fixed inset-0 bg-black/50 backdrop-blur-sm ${g} flex items-center justify-center p-4`,children:e.jsxs(r.div,{initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,y:20},transition:{type:"spring",damping:25,stiffness:300},onClick:u=>u.stopPropagation(),className:"bg-[#f7f9fc] rounded-3xl shadow-2xl max-w-md w-full overflow-hidden border border-[#dde3eb]",children:[e.jsx("button",{onClick:t,className:"absolute top-4 right-4 p-2 text-slate-500 hover:text-[#0a1628] hover:bg-[#dde3eb] rounded-xl transition-colors z-10",children:e.jsx(y,{size:20})}),e.jsxs("div",{className:"p-8 text-center",children:[e.jsx(r.div,{initial:{scale:0},animate:{scale:1},transition:{delay:.1,type:"spring",damping:15},className:`w-20 h-20 ${o.iconBg} rounded-full flex items-center justify-center mx-auto mb-6 ${o.iconColor}`,children:b()}),e.jsx("h2",{className:"text-2xl font-display font-bold text-[#0a1628] mb-3",children:a}),e.jsx("p",{className:"text-[#5a6578] mb-8 leading-relaxed",children:l}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(i,{onClick:t,variant:"outline",size:"lg",className:"flex-1 h-12 rounded-xl border-[#dde3eb] hover:border-[#d1cec6] hover:bg-[#edf1f7] font-bold",children:d}),e.jsx(i,{onClick:p,size:"lg",className:`flex-1 h-12 rounded-xl font-bold ${o.buttonBg} ${o.buttonText} transition-colors shadow-lg`,children:c})]})]})]})})})})};export{O as default}; +import{j as e}from"./vendor-react-Dexh7fmo.js";import{B as i}from"./button-BP5cklmU.js";import{e as f,m as r,T as h}from"./index-CmBdDSkw.js";import{X as y}from"./x-BDSBB3q9.js";import{T as j}from"./trash-2-BGLuKCox.js";import{L as w}from"./log-out-QZHYEhcR.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const O=({isOpen:s,onClose:t,onConfirm:n,title:a,message:l,confirmText:c="Confirm",cancelText:d="Cancel",type:m="warning",icon:x="warning",zIndexClass:g="z-50"})=>{const b=()=>{switch(x){case"logout":return e.jsx(w,{size:32});case"delete":return e.jsx(j,{size:32});case"warning":default:return e.jsx(h,{size:32})}},o=(()=>{switch(m){case"danger":return{iconBg:"bg-red-100",iconColor:"text-red-600",buttonBg:"bg-red-600 hover:bg-red-700",buttonText:"text-white"};case"warning":return{iconBg:"bg-rose-100",iconColor:"text-rose-600",buttonBg:"bg-rose-600 hover:bg-rose-700",buttonText:"text-white"};case"info":default:return{iconBg:"bg-sky-100",iconColor:"text-sky-600",buttonBg:"bg-sky-600 hover:bg-sky-700",buttonText:"text-white"}}})(),p=async()=>{try{await n(),t()}catch{}};return e.jsx(f,{children:s&&e.jsx(e.Fragment,{children:e.jsx(r.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:t,className:`fixed inset-0 bg-black/50 backdrop-blur-sm ${g} flex items-center justify-center p-4`,children:e.jsxs(r.div,{initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,y:20},transition:{type:"spring",damping:25,stiffness:300},onClick:u=>u.stopPropagation(),className:"bg-[#f7f9fc] rounded-3xl shadow-2xl max-w-md w-full overflow-hidden border border-[#dde3eb]",children:[e.jsx("button",{onClick:t,className:"absolute top-4 right-4 p-2 text-slate-500 hover:text-[#0a1628] hover:bg-[#dde3eb] rounded-xl transition-colors z-10",children:e.jsx(y,{size:20})}),e.jsxs("div",{className:"p-8 text-center",children:[e.jsx(r.div,{initial:{scale:0},animate:{scale:1},transition:{delay:.1,type:"spring",damping:15},className:`w-20 h-20 ${o.iconBg} rounded-full flex items-center justify-center mx-auto mb-6 ${o.iconColor}`,children:b()}),e.jsx("h2",{className:"text-2xl font-display font-bold text-[#0a1628] mb-3",children:a}),e.jsx("p",{className:"text-[#5a6578] mb-8 leading-relaxed",children:l}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(i,{onClick:t,variant:"outline",size:"lg",className:"flex-1 h-12 rounded-xl border-[#dde3eb] hover:border-[#d1cec6] hover:bg-[#edf1f7] font-bold",children:d}),e.jsx(i,{onClick:p,size:"lg",className:`flex-1 h-12 rounded-xl font-bold ${o.buttonBg} ${o.buttonText} transition-colors shadow-lg`,children:c})]})]})]})})})})};export{O as default}; diff --git a/assets/DashboardAvatar-MX9hSo-6.js b/assets/DashboardAvatar-2y_SuM8T.js similarity index 96% rename from assets/DashboardAvatar-MX9hSo-6.js rename to assets/DashboardAvatar-2y_SuM8T.js index 75295d31350c41e655e361bd05845bcba2cd3b8f..c48b804ce549748da5b7425ec45ebcdd16dd840b 100644 --- a/assets/DashboardAvatar-MX9hSo-6.js +++ b/assets/DashboardAvatar-2y_SuM8T.js @@ -1 +1 @@ -import{j as a}from"./vendor-react-Dexh7fmo.js";import{g as e}from"./avatarData-DykDiQ_Y.js";import{m as r}from"./index-DGWrSMOK.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const x=({className:l="w-full h-full",layers:s})=>{const t="absolute inset-0 w-full h-full object-contain object-bottom",o=e(s?.top),i=e(s?.bottom),n=e(s?.shoes),c=e(s?.accessory);return a.jsxs("div",{className:`relative flex items-end justify-center ${l}`,children:[a.jsx("img",{src:"/avatar/avatar_body_base.png",alt:"Avatar Body",className:`${t} z-10`}),i&&a.jsx("img",{src:i,alt:"Pants",className:`${t} z-[12]`}),n&&a.jsx("img",{src:n,alt:"Shoes",className:`${t} z-[11]`}),o&&a.jsx("img",{src:o,alt:"Uniform",className:`${t} z-[13]`}),a.jsxs(r.div,{className:"absolute inset-0 w-full h-full z-30",style:{originY:"80%"},animate:{rotate:[-2,2,-2]},transition:{duration:4,ease:"easeInOut",repeat:1/0},children:[a.jsx("img",{src:"/avatar/avatar_head_base.png",alt:"Avatar Head",className:`${t} z-[1]`}),a.jsx(r.img,{src:"/avatar/eyes_default.png",alt:"Avatar Eyes",className:`${t} z-[2]`,style:{originY:"50%"},animate:{scaleY:[1,.1,1]},transition:{duration:.2,repeat:1/0,repeatDelay:3.8,ease:"easeInOut"}}),a.jsxs(r.div,{className:`${t} z-[3]`,style:{originY:"bottom"},animate:{rotate:[1,-1,1]},transition:{duration:3.5,ease:"easeInOut",repeat:1/0},children:[a.jsx("img",{src:"/avatar/left_horn.png",alt:"Left Horn",className:t}),a.jsx("img",{src:"/avatar/right_horn.png",alt:"Right Horn",className:t})]}),c&&a.jsx("img",{src:c,alt:"Accessory",className:`${t} z-[4]`})]})]})};export{x as DashboardAvatar,x as default}; +import{j as a}from"./vendor-react-Dexh7fmo.js";import{g as e}from"./avatarData-BW_TX0b4.js";import{m as r}from"./index-CmBdDSkw.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const x=({className:l="w-full h-full",layers:s})=>{const t="absolute inset-0 w-full h-full object-contain object-bottom",o=e(s?.top),i=e(s?.bottom),n=e(s?.shoes),c=e(s?.accessory);return a.jsxs("div",{className:`relative flex items-end justify-center ${l}`,children:[a.jsx("img",{src:"/avatar/avatar_body_base.png",alt:"Avatar Body",className:`${t} z-10`}),i&&a.jsx("img",{src:i,alt:"Pants",className:`${t} z-[12]`}),n&&a.jsx("img",{src:n,alt:"Shoes",className:`${t} z-[11]`}),o&&a.jsx("img",{src:o,alt:"Uniform",className:`${t} z-[13]`}),a.jsxs(r.div,{className:"absolute inset-0 w-full h-full z-30",style:{originY:"80%"},animate:{rotate:[-2,2,-2]},transition:{duration:4,ease:"easeInOut",repeat:1/0},children:[a.jsx("img",{src:"/avatar/avatar_head_base.png",alt:"Avatar Head",className:`${t} z-[1]`}),a.jsx(r.img,{src:"/avatar/eyes_default.png",alt:"Avatar Eyes",className:`${t} z-[2]`,style:{originY:"50%"},animate:{scaleY:[1,.1,1]},transition:{duration:.2,repeat:1/0,repeatDelay:3.8,ease:"easeInOut"}}),a.jsxs(r.div,{className:`${t} z-[3]`,style:{originY:"bottom"},animate:{rotate:[1,-1,1]},transition:{duration:3.5,ease:"easeInOut",repeat:1/0},children:[a.jsx("img",{src:"/avatar/left_horn.png",alt:"Left Horn",className:t}),a.jsx("img",{src:"/avatar/right_horn.png",alt:"Right Horn",className:t})]}),c&&a.jsx("img",{src:c,alt:"Accessory",className:`${t} z-[4]`})]})]})};export{x as DashboardAvatar,x as default}; diff --git a/assets/DiagnosticAssessmentModal-BoOvPWwv.js b/assets/DiagnosticAssessmentModal-DG6T8nsY.js similarity index 97% rename from assets/DiagnosticAssessmentModal-BoOvPWwv.js rename to assets/DiagnosticAssessmentModal-DG6T8nsY.js index c391d48cb74b4de8728d9ef3188e1cf5de7101c4..9bfe24dee5de0aad569d011135369312c8b0accc 100644 --- a/assets/DiagnosticAssessmentModal-BoOvPWwv.js +++ b/assets/DiagnosticAssessmentModal-DG6T8nsY.js @@ -1 +1 @@ -import{r as m,c as z,j as e}from"./vendor-react-Dexh7fmo.js";import{B as E}from"./button-DWdPuxDU.js";import{M as ye}from"./MathAnswerInput-Bx58557t.js";import be from"./ScientificCalculator-BP-XvW_h.js";import{triggerDiagnosticCompleted as ge}from"./automationService-1THdsq3v.js";import{m as g,C as T,e as O,T as Q}from"./index-DGWrSMOK.js";import{B as J}from"./brain-DHmY5cbv.js";import{X as Z}from"./x-Bj25rnWX.js";import{C as ee}from"./circle-check-big-mv2CRLCE.js";import{C as ve}from"./chevron-right-DxXkA9aZ.js";import{C as we}from"./chart-column-CJzwyNMx.js";import{T as je}from"./trending-up-B2MPUPwk.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./apiService-BuaHZ1Ho.js";import"./chevron-up-BJyzaJs7.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const H="iar-v2-deped-g11-core-g12-candidate-shortform",ae=[{id:"iar-fn-01",topicArea:"Functions",gradeLevel:"G11",quarter:1,difficulty:"basic",competencyCode:"M11GM-Ia-2",competencyDescription:"Evaluates a function and solves basic linear expressions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"Solve for x: 3x - 4 = 17",options:["5","6","7","8"],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:35},{id:"iar-fn-02",topicArea:"Functions",gradeLevel:"G11",quarter:1,difficulty:"standard",competencyCode:"M11GM-Ib-5",competencyDescription:"Finds the domain of a rational function.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"What is the domain of f(x) = 5 / (x - 2)?",options:["All real numbers","x > 2","x ≠ 2","x < 2"],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-fn-03",topicArea:"Functions",gradeLevel:"G11",quarter:2,difficulty:"standard",competencyCode:"M11GM-Ie-f-1",competencyDescription:"Solves exponential equations in real-life growth contexts.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"A quantity doubles every hour. If it starts at 3, what is the value after 4 hours?",acceptableNumericAnswers:[48],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:55},{id:"iar-fn-04",topicArea:"Functions",gradeLevel:"G11",quarter:2,difficulty:"challenge",competencyCode:"M11GM-Ii-4",competencyDescription:"Determines intercepts and asymptotic behavior of logarithmic functions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"Which statement is true for f(x) = log(x - 1)?",options:["Domain is all real numbers.","Vertical asymptote is x = 1.","x-intercept is always 0.","Range is x > 1."],correctOptionIndex:1,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:55},{id:"iar-fn-c1",topicArea:"Functions",gradeLevel:"G11",quarter:2,difficulty:"standard",competencyCode:"M11GM-Id-2",competencyDescription:"Determines the inverse of a one-to-one function.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"If f(x) = 2x + 3, what is f⁻¹(11)?",acceptableNumericAnswers:[4],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:35},{id:"iar-bm-01",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"basic",competencyCode:"M11GM-IIa-b-1",competencyDescription:"Computes simple interest and maturity value.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"Find the simple interest on PHP 8,000 at 5% annual rate for 2 years.",acceptableNumericAnswers:[800],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-bm-02",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"standard",competencyCode:"M11GM-IIa-2",competencyDescription:"Distinguishes simple and compound interest contexts.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"Which statement correctly describes compound interest?",options:["Interest is based only on original principal.","Interest is computed once at maturity.","Interest is computed on principal plus accumulated interest.","Interest is always lower than simple interest."],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-bm-03",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"standard",competencyCode:"M11GM-IIc-d-1",competencyDescription:"Computes annuity future value in basic settings.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"A student saves PHP 1,000 monthly for 6 months with no interest. What is the accumulated amount?",options:["PHP 5,000","PHP 6,000","PHP 7,000","PHP 12,000"],correctOptionIndex:1,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40},{id:"iar-bm-04",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"challenge",competencyCode:"M11GM-IIf-3",competencyDescription:"Solves business and consumer loan scenarios.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"A borrower receives PHP 20,000 and repays PHP 22,400 after 1 year. What is the annual simple interest rate?",options:["8%","10%","12%","14%"],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:60},{id:"iar-bm-c1",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"standard",competencyCode:"M11GM-IIc-d-1",competencyDescription:"Finds future value and present value of annuities.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"Without interest, what is the present value of a 12-month annuity paying PHP 500 each month?",acceptableNumericAnswers:[6e3],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40},{id:"iar-lg-01",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"basic",competencyCode:"M11GM-IIg-1",competencyDescription:"Identifies and negates propositions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:'If p is "All triangles have three sides," what is not p?',options:["Some triangles have three sides.","No triangle has three sides.","At least one triangle does not have three sides.","All triangles are polygons."],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-lg-02",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"standard",competencyCode:"M11GM-IIh-1",competencyDescription:"Determines truth values of compound propositions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"When p is true and q is false, what is the truth value of p -> q?",options:["True","False","Cannot be determined","Both true and false"],correctOptionIndex:1,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40},{id:"iar-lg-03",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"standard",competencyCode:"M11GM-IIi-1",competencyDescription:"Identifies common reasoning fallacies in short arguments.",answerType:"shortAnswerText",depedBasis:"depedPattern",prompt:'A post says, "Everyone in my class passed because we used this lucky pen." Type the best label for this weak reasoning.',acceptableTextAnswers:["false cause","false causation","post hoc","hasty generalization"],isConfidenceProbe:!1,scorable:!0,estimatedSeconds:60},{id:"iar-lg-04",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"challenge",competencyCode:"M11GM-IIi-2",competencyDescription:"Determines the validity of categorical syllogisms.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"All squares are rectangles. All rectangles are quadrilaterals. Therefore all squares are quadrilaterals. This argument is:",options:["Valid","Invalid","A fallacy of composition","A contradiction"],correctOptionIndex:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:55},{id:"iar-lg-c1",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"standard",competencyCode:"M11GM-IIj-1",competencyDescription:"Illustrates methods of proof and disproof.",answerType:"MCQ",depedBasis:"depedPattern",prompt:'To prove "if n is even then n² is even," which method is commonly used?',options:["Direct proof","Proof by contradiction only","Survey method","Graph sketch only"],correctOptionIndex:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40}];function Ne(s){return s>=75?"Mastered":s>=40?"NeedsReview":"HighRisk"}function Ce(){return ae.filter(s=>s.depedBasis==="depedPattern"&&!!s.competencyCode)}function ke(s=ae){const n=s.reduce((p,h)=>p+h.estimatedSeconds,0);return Math.round(n/60*10)/10}const te={Functions:"Functions and Graphs",BusinessMath:"Business and Financial Mathematics",Logic:"Logic and Reasoning"},Me={atRiskSubjectIds:[],questionSetVersion:H},x=Ce(),se=s=>s.trim().toLowerCase().replace(/\s+/g," "),re=(s,n)=>{if(!s.scorable)return!1;if(s.answerType==="MCQ")return typeof n=="number"&&n===s.correctOptionIndex;if(s.answerType==="shortAnswerNumeric"){if(typeof n!="string")return!1;const p=Number(n);if(Number.isNaN(p))return!1;const h=s.numericTolerance??0;return(s.acceptableNumericAnswers||[]).some(B=>Math.abs(p-B)<=h)}if(s.answerType==="shortAnswerText"){if(typeof n!="string")return!1;const p=se(n);return(s.acceptableTextAnswers||[]).some(h=>se(h)===p)}return!1},Ae=s=>s==="Mastered"?"text-teal-600 bg-teal-50":s==="NeedsReview"?"text-amber-700 bg-amber-50":"text-red-600 bg-red-50",Ie=s=>s==="NeedsReview"?"Needs Review":s==="HighRisk"?"High Risk":"Mastered",et=({isOpen:s,onClose:n,onComplete:p,lrn:h,gradeLevel:B="Grade 11",workflowMode:ie="iar_only",assessmentType:N="initial_assessment"})=>{const[v,L]=m.useState("intro"),[y,W]=m.useState(0),[ne,_]=m.useState([]),[C,I]=m.useState(""),[w,j]=m.useState(!1),[oe,b]=m.useState(!1),[a,q]=m.useState(null),[u,$]=m.useState(null),[k,V]=m.useState([]),[Se,U]=m.useState(!1);z.useEffect(()=>{s&&(L("intro"),W(0),_([]),I(""),j(!1),b(!1),q(null),$(null),V([]))},[s]),z.useEffect(()=>{if(!s||v!=="test"){b(!1);return}if(y>0||w){b(!1);return}b(!0);const t=window.setTimeout(()=>{b(!1)},2800);return()=>window.clearTimeout(t)},[s,v,y,w]);const ce=()=>{p({status:"skipped",...Me}),n()},R=()=>{n()};z.useEffect(()=>{if(!s)return;const t=i=>{i.key==="Escape"&&R()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[s]);const le=()=>{L("test")},de=t=>{_(t),I(""),j(!1),y{W(i=>i+1)},300):pe(t)},K=t=>{const i=[...ne];i[y]=t,de(i)},G=()=>{C.trim()&&K(C.trim())},pe=async t=>{const i=[],S={Functions:{correct:0,total:0},BusinessMath:{correct:0,total:0},Logic:{correct:0,total:0}},fe={Functions:[],BusinessMath:[],Logic:[]},P={};x.forEach((r,c)=>{const l=t[c];if(r.answerType==="confidenceLikert"&&typeof l=="number"&&fe[r.topicArea].push(l+1),!r.scorable)return;const d=re(r,l);S[r.topicArea].total+=1,d&&(S[r.topicArea].correct+=1),P[r.topicArea]||(P[r.topicArea]=[]),P[r.topicArea].push({correct:d,questionId:r.id,difficulty:r.difficulty,gradeLevelTag:r.gradeLevel,quarter:r.quarter,answerType:r.answerType})});const o=Object.keys(S).reduce((r,c)=>{const{correct:l,total:d}=S[c],M=d>0?Math.round(l/d*100):0,A=Ne(M);return A!=="Mastered"&&i.push(c),r[c]={correct:l,total:d,scorePercent:M,classification:A},r},{}),D=x.filter(r=>r.scorable&&r.gradeLevel==="G12Candidate"),xe=D.reduce((r,c)=>{const l=x.findIndex(d=>d.id===c.id);return r+(re(c,t[l])?1:0)},0),F=D.length>0?xe/D.length:1,he={readyForFiniteMath:Object.values(o).filter(r=>r.classification==="Mastered").length/3>=.67&&o.Functions.classification!=="HighRisk"&&o.BusinessMath.classification!=="HighRisk"&&F>=.5,readyForAdvancedStats:o.Logic.classification==="Mastered"&&F>=.67,readyForCalcIntro:o.Functions.classification==="Mastered"&&F>=.67,needsStrongerFunctions:o.Functions.classification!=="Mastered",needsStrongerBusinessMath:o.BusinessMath.classification!=="Mastered"};if(Object.keys(o).sort((r,c)=>{const l=o[r],d=o[c],M=X=>X==="HighRisk"?0:X==="NeedsReview"?1:2,A=M(l.classification)-M(d.classification);return A!==0?A:l.scorePercent-d.scorePercent}),V(i),q(o),$(he),L("results"),h){U(!0);try{const r=Object.keys(o).map(c=>({subject:c,score:o[c].scorePercent}));await ge(h,r,B,P,ie,N),console.log("[OK] Automation: diagnostic pipeline completed")}catch(r){console.error("[WARN] Automation: diagnostic pipeline failed:",r)}finally{U(!1)}}},me=()=>{if(!a||!u){p({status:"completed",atRiskSubjectIds:k,questionSetVersion:H}),n();return}p({status:"completed",atRiskSubjectIds:k,topicScores:{Functions:a.Functions.scorePercent,BusinessMath:a.BusinessMath.scorePercent,Logic:a.Logic.scorePercent},topicClassifications:{Functions:a.Functions.classification,BusinessMath:a.BusinessMath.classification,Logic:a.Logic.classification},priorityTopics:Object.keys(a).sort((t,i)=>a[t].scorePercent-a[i].scorePercent),g12ReadinessIndicators:u,questionSetVersion:H}),n()},f=x[y],Y=Math.round(y/x.length*100),ue=ke(x);return s?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm",onClick:()=>{R()},children:[e.jsxs(g.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},className:"bg-white rounded-3xl shadow-2xl max-w-2xl w-full flex flex-col max-h-[90vh] pointer-events-auto overflow-hidden relative z-[51]",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"px-8 py-6 border-b border-[#dde3eb] flex items-center justify-between bg-[#edf1f7] flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-sky-100 rounded-xl flex items-center justify-center text-sky-600",children:e.jsx(J,{size:24})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-bold text-[#0a1628]",children:N==="followup_diagnostic"?"Deep Diagnostic":"Initial Assessment"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Analyze your strengths & weaknesses"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 relative",children:[e.jsxs("div",{className:"relative",children:[e.jsx("button",{onClick:()=>{j(!w),b(!1)},className:`relative w-10 h-10 rounded-xl flex items-center justify-center transition-all duration-200 border-2 ${w?"bg-sky-100 border-sky-300 text-sky-700 shadow-sm":"bg-white border-[#dde3eb] text-slate-500 hover:text-sky-600 hover:border-sky-200 hover:bg-sky-50"}`,title:"Toggle Calculator",children:e.jsx(T,{size:20})}),e.jsx(O,{children:s&&v==="test"&&oe&&!w&&e.jsxs(g.div,{initial:{opacity:0,y:10,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.95},className:"absolute right-0 top-full mt-3 w-[260px] bg-[#0a1628] text-white border border-[#2a3648] rounded-2xl p-4 shadow-2xl z-50 pointer-events-none",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-sky-500/20 flex items-center justify-center flex-shrink-0",children:e.jsx(T,{size:16,className:"text-sky-400"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-bold text-sm mb-1",children:"Calculator Available"}),e.jsx("p",{className:"text-xs text-slate-300 leading-relaxed",children:"You can freely use the scientific calculator at any time during this quiz."})]})]}),e.jsx("div",{className:"absolute -top-2 right-4 w-4 h-4 bg-[#0a1628] border-l border-t border-[#2a3648] rotate-45 rounded-tl-sm"})]})})]}),e.jsx("button",{onClick:()=>{R()},className:"w-10 h-10 rounded-xl flex items-center justify-center text-slate-500 border-2 border-transparent hover:text-[#5a6578] hover:bg-[#dde3eb] hover:border-[#dde3eb] transition-all",title:"Close assessment",children:e.jsx(Z,{size:20})})]})]}),e.jsx("div",{className:"p-8 overflow-y-auto",children:e.jsxs(O,{mode:"wait",children:[v==="intro"&&e.jsxs(g.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"text-center space-y-6",children:[e.jsx("div",{className:"w-32 h-32 bg-sky-50 rounded-full flex items-center justify-center mx-auto mb-6",children:e.jsx(T,{size:64,className:"text-sky-600"})}),e.jsx("h3",{className:"text-2xl font-bold text-[#0a1628]",children:N==="followup_diagnostic"?"Let's close the gaps":"Welcome to MathPulse AI!"}),e.jsx("p",{className:"text-[#5a6578] max-w-md mx-auto leading-relaxed",children:N==="followup_diagnostic"?"You have pending weak-area checks from your initial assessment. Complete this deep diagnostic to unlock regular modules and practice.":`To personalize your learning path, complete a DepEd competency-based SHS diagnostic (${x.length} items, around ${ue} minutes).`}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 max-w-lg mx-auto text-left",children:[e.jsxs("div",{className:"bg-[#edf1f7] p-4 rounded-xl border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 font-bold text-[#0a1628] mb-1",children:[e.jsx(ee,{size:16,className:"text-teal-500"}),"Personalized Path"]}),e.jsx("p",{className:"text-xs text-[#5a6578] pl-6",children:"Get recommendations based on your level."})]}),e.jsxs("div",{className:"bg-[#edf1f7] p-4 rounded-xl border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 font-bold text-[#0a1628] mb-1",children:[e.jsx(Q,{size:16,className:"text-rose-500"}),"Identify Risks"]}),e.jsx("p",{className:"text-xs text-[#5a6578] pl-6",children:"Spot areas that need more attention early."})]})]}),e.jsxs("div",{className:"pt-4 space-y-3",children:[e.jsx(E,{onClick:le,className:"bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white px-8 py-6 rounded-xl text-lg font-bold shadow-lg shadow-sky-200 w-full max-w-xs mx-auto",children:N==="followup_diagnostic"?"Start Deep Diagnostic":"Start Assessment"}),e.jsx("button",{onClick:()=>{ce()},className:"block mx-auto text-sm text-slate-500 hover:text-[#5a6578] transition-colors font-medium",children:"Skip for now →"})]})]},"intro"),v==="test"&&e.jsxs(g.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"space-y-8",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm font-bold text-[#5a6578] mb-2",children:[e.jsxs("span",{children:["Question ",y+1," of ",x.length]}),e.jsxs("span",{children:[Y,"% Completed"]})]}),e.jsx("div",{className:"h-2 bg-[#edf1f7] rounded-full overflow-hidden mb-8",children:e.jsx(g.div,{className:"h-full bg-sky-600 rounded-full",initial:{width:0},animate:{width:`${Y}%`}})}),e.jsxs("div",{className:"bg-[#edf1f7] p-6 rounded-2xl border border-[#dde3eb] mb-6",children:[e.jsxs("p",{className:"text-xs font-bold uppercase tracking-wide text-slate-500 mb-2",children:[te[f.topicArea]," • ",f.difficulty]}),e.jsx("h3",{className:"text-xl font-bold text-[#0a1628] leading-relaxed",children:f.prompt})]}),(f.answerType==="MCQ"||f.answerType==="confidenceLikert")&&e.jsx("div",{className:"grid grid-cols-1 gap-3",children:(f.options||[]).map((t,i)=>e.jsxs("button",{onClick:()=>K(i),className:"w-full text-left p-4 rounded-xl border-2 border-[#dde3eb] hover:border-indigo-600 hover:bg-sky-50 transition-all font-medium text-[#0a1628] group flex items-center justify-between",children:[e.jsxs("span",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"w-8 h-8 rounded-lg bg-white border border-[#dde3eb] flex items-center justify-center text-sm font-bold text-[#5a6578] group-hover:border-sky-300 group-hover:text-sky-600",children:String.fromCharCode(65+i)}),t]}),e.jsx(ve,{size:18,className:"opacity-0 group-hover:opacity-100 text-sky-600 transition-opacity"})]},i))}),(f.answerType==="shortAnswerNumeric"||f.answerType==="shortAnswerText")&&e.jsxs("div",{className:"space-y-3",children:[f.answerType==="shortAnswerNumeric"?e.jsx(e.Fragment,{children:e.jsx(ye,{value:C,onChange:I,placeholder:"Type numeric answer",onSubmit:G,onCalculatorOpen:()=>{j(!0),b(!1)}})}):e.jsx("input",{id:"diagnostic-short-answer",name:"diagnostic-short-answer","aria-label":"Short answer response",value:C,onChange:t=>I(t.target.value),onKeyDown:t=>{t.key==="Enter"&&G()},className:"w-full p-4 rounded-xl border-2 border-[#dde3eb] focus:outline-none focus:ring-2 focus:ring-sky-200 focus:border-sky-500",placeholder:"Type short answer"}),e.jsx(E,{onClick:G,disabled:!C.trim(),className:"w-full bg-sky-600 hover:bg-sky-700 text-white py-3 rounded-xl font-bold",children:"Submit Answer"})]})]},"test"),v==="results"&&e.jsxs(g.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"text-center space-y-6",children:[e.jsx("div",{className:"w-24 h-24 bg-teal-100 rounded-full flex items-center justify-center mx-auto mb-4 animate-bounce",children:e.jsx(ee,{size:48,className:"text-teal-600"})}),e.jsx("h3",{className:"text-2xl font-bold text-[#0a1628]",children:"Assessment Completed!"}),e.jsx("p",{className:"text-[#5a6578]",children:"We computed topic-level placement from your IAR responses."}),e.jsxs("div",{className:"bg-[#edf1f7] rounded-2xl p-6 border border-[#dde3eb] text-left space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:e.jsx(we,{size:18,strokeWidth:2.4})}),e.jsx("h4",{className:"font-display font-black text-[22px] text-slate-800 tracking-tight",children:"Topic Analysis"})]}),e.jsx("div",{className:"space-y-3",children:a&&Object.keys(a).map(t=>e.jsxs("div",{className:"flex items-center justify-between p-3 bg-white rounded-xl border border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-[#0a1628]",children:te[t]}),e.jsxs("p",{className:"text-xs text-slate-500",children:[a[t].correct,"/",a[t].total," correct • ",a[t].scorePercent,"%"]})]}),e.jsxs("span",{className:`text-xs font-bold px-2 py-1 rounded-lg flex items-center gap-1 ${Ae(a[t].classification)}`,children:[a[t].classification==="Mastered"?e.jsx(je,{size:12}):e.jsx(Q,{size:12}),Ie(a[t].classification)]})]},t))})]}),u&&e.jsxs("div",{className:"bg-sky-50 rounded-2xl p-6 border border-sky-100 text-left space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:e.jsx(J,{size:18,strokeWidth:2.4})}),e.jsx("h4",{className:"font-display font-black text-[22px] text-slate-800 tracking-tight",children:"Grade 12 Readiness Signals"})]}),e.jsx("p",{className:"text-xs text-slate-600",children:"These indicators come from challenge and candidate items only."}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-2 text-xs",children:[e.jsxs("span",{className:`px-2 py-1 rounded-md font-bold ${u.readyForFiniteMath?"bg-teal-50 text-teal-700":"bg-slate-100 text-slate-600"}`,children:["Finite Math: ",u.readyForFiniteMath?"Ready":"Build More"]}),e.jsxs("span",{className:`px-2 py-1 rounded-md font-bold ${u.readyForAdvancedStats?"bg-teal-50 text-teal-700":"bg-slate-100 text-slate-600"}`,children:["Advanced Stats: ",u.readyForAdvancedStats?"Ready":"Build More"]}),e.jsxs("span",{className:`px-2 py-1 rounded-md font-bold ${u.readyForCalcIntro?"bg-teal-50 text-teal-700":"bg-slate-100 text-slate-600"}`,children:["Calculus Intro: ",u.readyForCalcIntro?"Ready":"Build More"]})]})]}),k.length>0&&e.jsxs("div",{className:"flex items-start gap-3 p-4 bg-rose-50 border border-rose-100 rounded-xl text-left",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-rose-100 border border-rose-200 flex items-center justify-center text-rose-600 shadow-inner shrink-0",children:e.jsx(Q,{size:18,strokeWidth:2.3})}),e.jsxs("div",{children:[e.jsx("h5",{className:"font-display font-black text-[20px] tracking-tight text-rose-800 leading-none mb-1",children:"Attention Needed"}),e.jsxs("p",{className:"text-rose-700 text-xs mt-1",children:["We flagged ",k.length," topic area",k.length>1?"s":""," for review. In IAR + Diagnostic mode, focused deep diagnostics may launch before full unlock."]})]})]}),e.jsx("div",{className:"pt-4",children:e.jsx(E,{onClick:me,className:"bg-sky-600 hover:bg-sky-700 text-white px-8 py-4 rounded-xl text-lg font-bold w-full",children:"Go to Dashboard"})})]},"results")]})})]}),e.jsx(O,{children:w&&e.jsxs(g.div,{drag:!0,dragMomentum:!1,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{type:"spring",damping:25,stiffness:200},style:{position:"absolute",top:"50%",left:"calc(50% + 390px)",y:"-50%"},className:"w-[420px] max-w-[calc(100vw-24px)] bg-white rounded-3xl shadow-2xl border border-slate-200 flex flex-col pointer-events-auto overflow-hidden z-[60]",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex items-center justify-between bg-[#edf1f7] flex-shrink-0 cursor-move",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-xl bg-sky-100 flex items-center justify-center text-sky-600",children:e.jsx(T,{size:18})}),e.jsx("h3",{className:"font-bold text-[#0a1628] select-none",children:"Scientific Calc"})]}),e.jsx("button",{onClick:t=>{t.stopPropagation(),j(!1)},className:"w-8 h-8 flex items-center justify-center text-slate-500 hover:text-[#0a1628] hover:bg-[#dde3eb] rounded-lg transition-colors cursor-pointer",title:"Close Calculator",children:e.jsx(Z,{size:16})})]}),e.jsx("div",{className:"p-4 bg-[#f7f9fc]",children:e.jsx(be,{isOpen:!0,onClose:()=>j(!1),inline:!0})})]})})]}):null};export{et as default}; +import{r as m,c as z,j as e}from"./vendor-react-Dexh7fmo.js";import{B as E}from"./button-BP5cklmU.js";import{M as ye}from"./MathAnswerInput-DOzNwadV.js";import be from"./ScientificCalculator-B0rqpddr.js";import{triggerDiagnosticCompleted as ge}from"./automationService-IMphlGK7.js";import{m as g,C as T,e as O,T as Q}from"./index-CmBdDSkw.js";import{B as J}from"./brain-DfMjTiNx.js";import{X as Z}from"./x-BDSBB3q9.js";import{C as ee}from"./circle-check-big-C_XnLpga.js";import{C as ve}from"./chevron-right-BSCyuP_x.js";import{C as we}from"./chart-column-DzJCKCOe.js";import{T as je}from"./trending-up-6u76yy2e.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./apiService-ZZIWaV70.js";import"./chevron-up-CwQX0CFg.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const H="iar-v2-deped-g11-core-g12-candidate-shortform",ae=[{id:"iar-fn-01",topicArea:"Functions",gradeLevel:"G11",quarter:1,difficulty:"basic",competencyCode:"M11GM-Ia-2",competencyDescription:"Evaluates a function and solves basic linear expressions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"Solve for x: 3x - 4 = 17",options:["5","6","7","8"],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:35},{id:"iar-fn-02",topicArea:"Functions",gradeLevel:"G11",quarter:1,difficulty:"standard",competencyCode:"M11GM-Ib-5",competencyDescription:"Finds the domain of a rational function.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"What is the domain of f(x) = 5 / (x - 2)?",options:["All real numbers","x > 2","x ≠ 2","x < 2"],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-fn-03",topicArea:"Functions",gradeLevel:"G11",quarter:2,difficulty:"standard",competencyCode:"M11GM-Ie-f-1",competencyDescription:"Solves exponential equations in real-life growth contexts.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"A quantity doubles every hour. If it starts at 3, what is the value after 4 hours?",acceptableNumericAnswers:[48],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:55},{id:"iar-fn-04",topicArea:"Functions",gradeLevel:"G11",quarter:2,difficulty:"challenge",competencyCode:"M11GM-Ii-4",competencyDescription:"Determines intercepts and asymptotic behavior of logarithmic functions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"Which statement is true for f(x) = log(x - 1)?",options:["Domain is all real numbers.","Vertical asymptote is x = 1.","x-intercept is always 0.","Range is x > 1."],correctOptionIndex:1,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:55},{id:"iar-fn-c1",topicArea:"Functions",gradeLevel:"G11",quarter:2,difficulty:"standard",competencyCode:"M11GM-Id-2",competencyDescription:"Determines the inverse of a one-to-one function.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"If f(x) = 2x + 3, what is f⁻¹(11)?",acceptableNumericAnswers:[4],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:35},{id:"iar-bm-01",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"basic",competencyCode:"M11GM-IIa-b-1",competencyDescription:"Computes simple interest and maturity value.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"Find the simple interest on PHP 8,000 at 5% annual rate for 2 years.",acceptableNumericAnswers:[800],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-bm-02",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"standard",competencyCode:"M11GM-IIa-2",competencyDescription:"Distinguishes simple and compound interest contexts.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"Which statement correctly describes compound interest?",options:["Interest is based only on original principal.","Interest is computed once at maturity.","Interest is computed on principal plus accumulated interest.","Interest is always lower than simple interest."],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-bm-03",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"standard",competencyCode:"M11GM-IIc-d-1",competencyDescription:"Computes annuity future value in basic settings.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"A student saves PHP 1,000 monthly for 6 months with no interest. What is the accumulated amount?",options:["PHP 5,000","PHP 6,000","PHP 7,000","PHP 12,000"],correctOptionIndex:1,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40},{id:"iar-bm-04",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"challenge",competencyCode:"M11GM-IIf-3",competencyDescription:"Solves business and consumer loan scenarios.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"A borrower receives PHP 20,000 and repays PHP 22,400 after 1 year. What is the annual simple interest rate?",options:["8%","10%","12%","14%"],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:60},{id:"iar-bm-c1",topicArea:"BusinessMath",gradeLevel:"G11",quarter:3,difficulty:"standard",competencyCode:"M11GM-IIc-d-1",competencyDescription:"Finds future value and present value of annuities.",answerType:"shortAnswerNumeric",depedBasis:"depedPattern",prompt:"Without interest, what is the present value of a 12-month annuity paying PHP 500 each month?",acceptableNumericAnswers:[6e3],numericTolerance:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40},{id:"iar-lg-01",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"basic",competencyCode:"M11GM-IIg-1",competencyDescription:"Identifies and negates propositions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:'If p is "All triangles have three sides," what is not p?',options:["Some triangles have three sides.","No triangle has three sides.","At least one triangle does not have three sides.","All triangles are polygons."],correctOptionIndex:2,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:45},{id:"iar-lg-02",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"standard",competencyCode:"M11GM-IIh-1",competencyDescription:"Determines truth values of compound propositions.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"When p is true and q is false, what is the truth value of p -> q?",options:["True","False","Cannot be determined","Both true and false"],correctOptionIndex:1,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40},{id:"iar-lg-03",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"standard",competencyCode:"M11GM-IIi-1",competencyDescription:"Identifies common reasoning fallacies in short arguments.",answerType:"shortAnswerText",depedBasis:"depedPattern",prompt:'A post says, "Everyone in my class passed because we used this lucky pen." Type the best label for this weak reasoning.',acceptableTextAnswers:["false cause","false causation","post hoc","hasty generalization"],isConfidenceProbe:!1,scorable:!0,estimatedSeconds:60},{id:"iar-lg-04",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"challenge",competencyCode:"M11GM-IIi-2",competencyDescription:"Determines the validity of categorical syllogisms.",answerType:"MCQ",depedBasis:"depedPattern",prompt:"All squares are rectangles. All rectangles are quadrilaterals. Therefore all squares are quadrilaterals. This argument is:",options:["Valid","Invalid","A fallacy of composition","A contradiction"],correctOptionIndex:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:55},{id:"iar-lg-c1",topicArea:"Logic",gradeLevel:"G11",quarter:4,difficulty:"standard",competencyCode:"M11GM-IIj-1",competencyDescription:"Illustrates methods of proof and disproof.",answerType:"MCQ",depedBasis:"depedPattern",prompt:'To prove "if n is even then n² is even," which method is commonly used?',options:["Direct proof","Proof by contradiction only","Survey method","Graph sketch only"],correctOptionIndex:0,isConfidenceProbe:!1,scorable:!0,estimatedSeconds:40}];function Ne(s){return s>=75?"Mastered":s>=40?"NeedsReview":"HighRisk"}function Ce(){return ae.filter(s=>s.depedBasis==="depedPattern"&&!!s.competencyCode)}function ke(s=ae){const n=s.reduce((p,h)=>p+h.estimatedSeconds,0);return Math.round(n/60*10)/10}const te={Functions:"Functions and Graphs",BusinessMath:"Business and Financial Mathematics",Logic:"Logic and Reasoning"},Me={atRiskSubjectIds:[],questionSetVersion:H},x=Ce(),se=s=>s.trim().toLowerCase().replace(/\s+/g," "),re=(s,n)=>{if(!s.scorable)return!1;if(s.answerType==="MCQ")return typeof n=="number"&&n===s.correctOptionIndex;if(s.answerType==="shortAnswerNumeric"){if(typeof n!="string")return!1;const p=Number(n);if(Number.isNaN(p))return!1;const h=s.numericTolerance??0;return(s.acceptableNumericAnswers||[]).some(B=>Math.abs(p-B)<=h)}if(s.answerType==="shortAnswerText"){if(typeof n!="string")return!1;const p=se(n);return(s.acceptableTextAnswers||[]).some(h=>se(h)===p)}return!1},Ae=s=>s==="Mastered"?"text-teal-600 bg-teal-50":s==="NeedsReview"?"text-amber-700 bg-amber-50":"text-red-600 bg-red-50",Ie=s=>s==="NeedsReview"?"Needs Review":s==="HighRisk"?"High Risk":"Mastered",et=({isOpen:s,onClose:n,onComplete:p,lrn:h,gradeLevel:B="Grade 11",workflowMode:ie="iar_only",assessmentType:N="initial_assessment"})=>{const[v,L]=m.useState("intro"),[y,W]=m.useState(0),[ne,_]=m.useState([]),[C,I]=m.useState(""),[w,j]=m.useState(!1),[oe,b]=m.useState(!1),[a,q]=m.useState(null),[u,$]=m.useState(null),[k,V]=m.useState([]),[Se,U]=m.useState(!1);z.useEffect(()=>{s&&(L("intro"),W(0),_([]),I(""),j(!1),b(!1),q(null),$(null),V([]))},[s]),z.useEffect(()=>{if(!s||v!=="test"){b(!1);return}if(y>0||w){b(!1);return}b(!0);const t=window.setTimeout(()=>{b(!1)},2800);return()=>window.clearTimeout(t)},[s,v,y,w]);const ce=()=>{p({status:"skipped",...Me}),n()},R=()=>{n()};z.useEffect(()=>{if(!s)return;const t=i=>{i.key==="Escape"&&R()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[s]);const le=()=>{L("test")},de=t=>{_(t),I(""),j(!1),y{W(i=>i+1)},300):pe(t)},K=t=>{const i=[...ne];i[y]=t,de(i)},G=()=>{C.trim()&&K(C.trim())},pe=async t=>{const i=[],S={Functions:{correct:0,total:0},BusinessMath:{correct:0,total:0},Logic:{correct:0,total:0}},fe={Functions:[],BusinessMath:[],Logic:[]},P={};x.forEach((r,c)=>{const l=t[c];if(r.answerType==="confidenceLikert"&&typeof l=="number"&&fe[r.topicArea].push(l+1),!r.scorable)return;const d=re(r,l);S[r.topicArea].total+=1,d&&(S[r.topicArea].correct+=1),P[r.topicArea]||(P[r.topicArea]=[]),P[r.topicArea].push({correct:d,questionId:r.id,difficulty:r.difficulty,gradeLevelTag:r.gradeLevel,quarter:r.quarter,answerType:r.answerType})});const o=Object.keys(S).reduce((r,c)=>{const{correct:l,total:d}=S[c],M=d>0?Math.round(l/d*100):0,A=Ne(M);return A!=="Mastered"&&i.push(c),r[c]={correct:l,total:d,scorePercent:M,classification:A},r},{}),D=x.filter(r=>r.scorable&&r.gradeLevel==="G12Candidate"),xe=D.reduce((r,c)=>{const l=x.findIndex(d=>d.id===c.id);return r+(re(c,t[l])?1:0)},0),F=D.length>0?xe/D.length:1,he={readyForFiniteMath:Object.values(o).filter(r=>r.classification==="Mastered").length/3>=.67&&o.Functions.classification!=="HighRisk"&&o.BusinessMath.classification!=="HighRisk"&&F>=.5,readyForAdvancedStats:o.Logic.classification==="Mastered"&&F>=.67,readyForCalcIntro:o.Functions.classification==="Mastered"&&F>=.67,needsStrongerFunctions:o.Functions.classification!=="Mastered",needsStrongerBusinessMath:o.BusinessMath.classification!=="Mastered"};if(Object.keys(o).sort((r,c)=>{const l=o[r],d=o[c],M=X=>X==="HighRisk"?0:X==="NeedsReview"?1:2,A=M(l.classification)-M(d.classification);return A!==0?A:l.scorePercent-d.scorePercent}),V(i),q(o),$(he),L("results"),h){U(!0);try{const r=Object.keys(o).map(c=>({subject:c,score:o[c].scorePercent}));await ge(h,r,B,P,ie,N),console.log("[OK] Automation: diagnostic pipeline completed")}catch(r){console.error("[WARN] Automation: diagnostic pipeline failed:",r)}finally{U(!1)}}},me=()=>{if(!a||!u){p({status:"completed",atRiskSubjectIds:k,questionSetVersion:H}),n();return}p({status:"completed",atRiskSubjectIds:k,topicScores:{Functions:a.Functions.scorePercent,BusinessMath:a.BusinessMath.scorePercent,Logic:a.Logic.scorePercent},topicClassifications:{Functions:a.Functions.classification,BusinessMath:a.BusinessMath.classification,Logic:a.Logic.classification},priorityTopics:Object.keys(a).sort((t,i)=>a[t].scorePercent-a[i].scorePercent),g12ReadinessIndicators:u,questionSetVersion:H}),n()},f=x[y],Y=Math.round(y/x.length*100),ue=ke(x);return s?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm",onClick:()=>{R()},children:[e.jsxs(g.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},className:"bg-white rounded-3xl shadow-2xl max-w-2xl w-full flex flex-col max-h-[90vh] pointer-events-auto overflow-hidden relative z-[51]",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"px-8 py-6 border-b border-[#dde3eb] flex items-center justify-between bg-[#edf1f7] flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-sky-100 rounded-xl flex items-center justify-center text-sky-600",children:e.jsx(J,{size:24})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-bold text-[#0a1628]",children:N==="followup_diagnostic"?"Deep Diagnostic":"Initial Assessment"}),e.jsx("p",{className:"text-sm text-[#5a6578]",children:"Analyze your strengths & weaknesses"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 relative",children:[e.jsxs("div",{className:"relative",children:[e.jsx("button",{onClick:()=>{j(!w),b(!1)},className:`relative w-10 h-10 rounded-xl flex items-center justify-center transition-all duration-200 border-2 ${w?"bg-sky-100 border-sky-300 text-sky-700 shadow-sm":"bg-white border-[#dde3eb] text-slate-500 hover:text-sky-600 hover:border-sky-200 hover:bg-sky-50"}`,title:"Toggle Calculator",children:e.jsx(T,{size:20})}),e.jsx(O,{children:s&&v==="test"&&oe&&!w&&e.jsxs(g.div,{initial:{opacity:0,y:10,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.95},className:"absolute right-0 top-full mt-3 w-[260px] bg-[#0a1628] text-white border border-[#2a3648] rounded-2xl p-4 shadow-2xl z-50 pointer-events-none",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-sky-500/20 flex items-center justify-center flex-shrink-0",children:e.jsx(T,{size:16,className:"text-sky-400"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-bold text-sm mb-1",children:"Calculator Available"}),e.jsx("p",{className:"text-xs text-slate-300 leading-relaxed",children:"You can freely use the scientific calculator at any time during this quiz."})]})]}),e.jsx("div",{className:"absolute -top-2 right-4 w-4 h-4 bg-[#0a1628] border-l border-t border-[#2a3648] rotate-45 rounded-tl-sm"})]})})]}),e.jsx("button",{onClick:()=>{R()},className:"w-10 h-10 rounded-xl flex items-center justify-center text-slate-500 border-2 border-transparent hover:text-[#5a6578] hover:bg-[#dde3eb] hover:border-[#dde3eb] transition-all",title:"Close assessment",children:e.jsx(Z,{size:20})})]})]}),e.jsx("div",{className:"p-8 overflow-y-auto",children:e.jsxs(O,{mode:"wait",children:[v==="intro"&&e.jsxs(g.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"text-center space-y-6",children:[e.jsx("div",{className:"w-32 h-32 bg-sky-50 rounded-full flex items-center justify-center mx-auto mb-6",children:e.jsx(T,{size:64,className:"text-sky-600"})}),e.jsx("h3",{className:"text-2xl font-bold text-[#0a1628]",children:N==="followup_diagnostic"?"Let's close the gaps":"Welcome to MathPulse AI!"}),e.jsx("p",{className:"text-[#5a6578] max-w-md mx-auto leading-relaxed",children:N==="followup_diagnostic"?"You have pending weak-area checks from your initial assessment. Complete this deep diagnostic to unlock regular modules and practice.":`To personalize your learning path, complete a DepEd competency-based SHS diagnostic (${x.length} items, around ${ue} minutes).`}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 max-w-lg mx-auto text-left",children:[e.jsxs("div",{className:"bg-[#edf1f7] p-4 rounded-xl border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 font-bold text-[#0a1628] mb-1",children:[e.jsx(ee,{size:16,className:"text-teal-500"}),"Personalized Path"]}),e.jsx("p",{className:"text-xs text-[#5a6578] pl-6",children:"Get recommendations based on your level."})]}),e.jsxs("div",{className:"bg-[#edf1f7] p-4 rounded-xl border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 font-bold text-[#0a1628] mb-1",children:[e.jsx(Q,{size:16,className:"text-rose-500"}),"Identify Risks"]}),e.jsx("p",{className:"text-xs text-[#5a6578] pl-6",children:"Spot areas that need more attention early."})]})]}),e.jsxs("div",{className:"pt-4 space-y-3",children:[e.jsx(E,{onClick:le,className:"bg-gradient-to-r from-sky-600 to-sky-500 hover:from-sky-700 hover:to-sky-600 text-white px-8 py-6 rounded-xl text-lg font-bold shadow-lg shadow-sky-200 w-full max-w-xs mx-auto",children:N==="followup_diagnostic"?"Start Deep Diagnostic":"Start Assessment"}),e.jsx("button",{onClick:()=>{ce()},className:"block mx-auto text-sm text-slate-500 hover:text-[#5a6578] transition-colors font-medium",children:"Skip for now →"})]})]},"intro"),v==="test"&&e.jsxs(g.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"space-y-8",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm font-bold text-[#5a6578] mb-2",children:[e.jsxs("span",{children:["Question ",y+1," of ",x.length]}),e.jsxs("span",{children:[Y,"% Completed"]})]}),e.jsx("div",{className:"h-2 bg-[#edf1f7] rounded-full overflow-hidden mb-8",children:e.jsx(g.div,{className:"h-full bg-sky-600 rounded-full",initial:{width:0},animate:{width:`${Y}%`}})}),e.jsxs("div",{className:"bg-[#edf1f7] p-6 rounded-2xl border border-[#dde3eb] mb-6",children:[e.jsxs("p",{className:"text-xs font-bold uppercase tracking-wide text-slate-500 mb-2",children:[te[f.topicArea]," • ",f.difficulty]}),e.jsx("h3",{className:"text-xl font-bold text-[#0a1628] leading-relaxed",children:f.prompt})]}),(f.answerType==="MCQ"||f.answerType==="confidenceLikert")&&e.jsx("div",{className:"grid grid-cols-1 gap-3",children:(f.options||[]).map((t,i)=>e.jsxs("button",{onClick:()=>K(i),className:"w-full text-left p-4 rounded-xl border-2 border-[#dde3eb] hover:border-indigo-600 hover:bg-sky-50 transition-all font-medium text-[#0a1628] group flex items-center justify-between",children:[e.jsxs("span",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"w-8 h-8 rounded-lg bg-white border border-[#dde3eb] flex items-center justify-center text-sm font-bold text-[#5a6578] group-hover:border-sky-300 group-hover:text-sky-600",children:String.fromCharCode(65+i)}),t]}),e.jsx(ve,{size:18,className:"opacity-0 group-hover:opacity-100 text-sky-600 transition-opacity"})]},i))}),(f.answerType==="shortAnswerNumeric"||f.answerType==="shortAnswerText")&&e.jsxs("div",{className:"space-y-3",children:[f.answerType==="shortAnswerNumeric"?e.jsx(e.Fragment,{children:e.jsx(ye,{value:C,onChange:I,placeholder:"Type numeric answer",onSubmit:G,onCalculatorOpen:()=>{j(!0),b(!1)}})}):e.jsx("input",{id:"diagnostic-short-answer",name:"diagnostic-short-answer","aria-label":"Short answer response",value:C,onChange:t=>I(t.target.value),onKeyDown:t=>{t.key==="Enter"&&G()},className:"w-full p-4 rounded-xl border-2 border-[#dde3eb] focus:outline-none focus:ring-2 focus:ring-sky-200 focus:border-sky-500",placeholder:"Type short answer"}),e.jsx(E,{onClick:G,disabled:!C.trim(),className:"w-full bg-sky-600 hover:bg-sky-700 text-white py-3 rounded-xl font-bold",children:"Submit Answer"})]})]},"test"),v==="results"&&e.jsxs(g.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"text-center space-y-6",children:[e.jsx("div",{className:"w-24 h-24 bg-teal-100 rounded-full flex items-center justify-center mx-auto mb-4 animate-bounce",children:e.jsx(ee,{size:48,className:"text-teal-600"})}),e.jsx("h3",{className:"text-2xl font-bold text-[#0a1628]",children:"Assessment Completed!"}),e.jsx("p",{className:"text-[#5a6578]",children:"We computed topic-level placement from your IAR responses."}),e.jsxs("div",{className:"bg-[#edf1f7] rounded-2xl p-6 border border-[#dde3eb] text-left space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:e.jsx(we,{size:18,strokeWidth:2.4})}),e.jsx("h4",{className:"font-display font-black text-[22px] text-slate-800 tracking-tight",children:"Topic Analysis"})]}),e.jsx("div",{className:"space-y-3",children:a&&Object.keys(a).map(t=>e.jsxs("div",{className:"flex items-center justify-between p-3 bg-white rounded-xl border border-[#dde3eb]",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-[#0a1628]",children:te[t]}),e.jsxs("p",{className:"text-xs text-slate-500",children:[a[t].correct,"/",a[t].total," correct • ",a[t].scorePercent,"%"]})]}),e.jsxs("span",{className:`text-xs font-bold px-2 py-1 rounded-lg flex items-center gap-1 ${Ae(a[t].classification)}`,children:[a[t].classification==="Mastered"?e.jsx(je,{size:12}):e.jsx(Q,{size:12}),Ie(a[t].classification)]})]},t))})]}),u&&e.jsxs("div",{className:"bg-sky-50 rounded-2xl p-6 border border-sky-100 text-left space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:e.jsx(J,{size:18,strokeWidth:2.4})}),e.jsx("h4",{className:"font-display font-black text-[22px] text-slate-800 tracking-tight",children:"Grade 12 Readiness Signals"})]}),e.jsx("p",{className:"text-xs text-slate-600",children:"These indicators come from challenge and candidate items only."}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-2 text-xs",children:[e.jsxs("span",{className:`px-2 py-1 rounded-md font-bold ${u.readyForFiniteMath?"bg-teal-50 text-teal-700":"bg-slate-100 text-slate-600"}`,children:["Finite Math: ",u.readyForFiniteMath?"Ready":"Build More"]}),e.jsxs("span",{className:`px-2 py-1 rounded-md font-bold ${u.readyForAdvancedStats?"bg-teal-50 text-teal-700":"bg-slate-100 text-slate-600"}`,children:["Advanced Stats: ",u.readyForAdvancedStats?"Ready":"Build More"]}),e.jsxs("span",{className:`px-2 py-1 rounded-md font-bold ${u.readyForCalcIntro?"bg-teal-50 text-teal-700":"bg-slate-100 text-slate-600"}`,children:["Calculus Intro: ",u.readyForCalcIntro?"Ready":"Build More"]})]})]}),k.length>0&&e.jsxs("div",{className:"flex items-start gap-3 p-4 bg-rose-50 border border-rose-100 rounded-xl text-left",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-rose-100 border border-rose-200 flex items-center justify-center text-rose-600 shadow-inner shrink-0",children:e.jsx(Q,{size:18,strokeWidth:2.3})}),e.jsxs("div",{children:[e.jsx("h5",{className:"font-display font-black text-[20px] tracking-tight text-rose-800 leading-none mb-1",children:"Attention Needed"}),e.jsxs("p",{className:"text-rose-700 text-xs mt-1",children:["We flagged ",k.length," topic area",k.length>1?"s":""," for review. In IAR + Diagnostic mode, focused deep diagnostics may launch before full unlock."]})]})]}),e.jsx("div",{className:"pt-4",children:e.jsx(E,{onClick:me,className:"bg-sky-600 hover:bg-sky-700 text-white px-8 py-4 rounded-xl text-lg font-bold w-full",children:"Go to Dashboard"})})]},"results")]})})]}),e.jsx(O,{children:w&&e.jsxs(g.div,{drag:!0,dragMomentum:!1,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{type:"spring",damping:25,stiffness:200},style:{position:"absolute",top:"50%",left:"calc(50% + 390px)",y:"-50%"},className:"w-[420px] max-w-[calc(100vw-24px)] bg-white rounded-3xl shadow-2xl border border-slate-200 flex flex-col pointer-events-auto overflow-hidden z-[60]",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex items-center justify-between bg-[#edf1f7] flex-shrink-0 cursor-move",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-xl bg-sky-100 flex items-center justify-center text-sky-600",children:e.jsx(T,{size:18})}),e.jsx("h3",{className:"font-bold text-[#0a1628] select-none",children:"Scientific Calc"})]}),e.jsx("button",{onClick:t=>{t.stopPropagation(),j(!1)},className:"w-8 h-8 flex items-center justify-center text-slate-500 hover:text-[#0a1628] hover:bg-[#dde3eb] rounded-lg transition-colors cursor-pointer",title:"Close Calculator",children:e.jsx(Z,{size:16})})]}),e.jsx("div",{className:"p-4 bg-[#f7f9fc]",children:e.jsx(be,{isOpen:!0,onClose:()=>j(!1),inline:!0})})]})})]}):null};export{et as default}; diff --git a/assets/FloatingAITutor-DYvlvoVe.js b/assets/FloatingAITutor-BhjMn9CN.js similarity index 94% rename from assets/FloatingAITutor-DYvlvoVe.js rename to assets/FloatingAITutor-BhjMn9CN.js index a3803353b02d24af2b462dc619944cf4774f6dbc..c7a402b43dc3bce69f22beb84d267c622106ca06 100644 --- a/assets/FloatingAITutor-DYvlvoVe.js +++ b/assets/FloatingAITutor-BhjMn9CN.js @@ -1,7 +1,7 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatMarkdown-BI4vbcO7.js","assets/index-DGWrSMOK.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/index-CR2i2gnI.css","assets/vendor-markdown-C5ikSDMA.js","assets/vendor-markdown-CBmFCdgC.css","assets/apiService-BuaHZ1Ho.js"])))=>i.map(i=>d[i]); -import{c as S,z as A,_ as w,m as p,B as M}from"./index-DGWrSMOK.js";import{r as a,j as e}from"./vendor-react-Dexh7fmo.js";import{M as f}from"./minus-BjTBUAx2.js";import{X as b}from"./x-Bj25rnWX.js";import{S as C}from"./send-nCgvy9cZ.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatMarkdown-XT9mMuBR.js","assets/index-CmBdDSkw.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/index-CR2i2gnI.css","assets/vendor-markdown-C5ikSDMA.js","assets/vendor-markdown-CBmFCdgC.css","assets/apiService-ZZIWaV70.js"])))=>i.map(i=>d[i]); +import{c as S,z as A,_ as w,m as p,B as M}from"./index-CmBdDSkw.js";import{r as a,j as e}from"./vendor-react-Dexh7fmo.js";import{M as f}from"./minus-8VjeOOlm.js";import{X as b}from"./x-BDSBB3q9.js";import{S as C}from"./send-OMGWblBc.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const L=[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]],E=S("maximize-2",L),O=a.lazy(()=>w(()=>import("./ChatMarkdown-BI4vbcO7.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),X=({constraintsRef:T,onFullScreen:y})=>{const{activeSessionId:n,setActiveSessionId:g,createNewSession:j,getActiveSession:v,sendMessage:N,isLoading:o}=A(),[s,r]=a.useState(!1),[l,c]=a.useState(()=>typeof window>"u"?!1:window.localStorage.getItem("floating_ai_tutor_minimized")==="1"),[i,d]=a.useState(""),u=a.useRef(null);a.useEffect(()=>{typeof window>"u"||window.localStorage.setItem("floating_ai_tutor_minimized",l?"1":"0")},[l]),a.useEffect(()=>{s&&w(async()=>{const{warmupBackend:t}=await import("./apiService-BuaHZ1Ho.js");return{warmupBackend:t}},__vite__mapDeps([11,1,2,3,4,5,6,7,8])).then(({warmupBackend:t})=>{t()}).catch(t=>{console.warn("Floating tutor warmup skipped:",t)})},[s]),a.useEffect(()=>{if(s&&!n){const t={id:"1",sender:"ai",text:"Hi! I'm your AI math tutor. What would you like to learn about today?",timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})},_=j(t);g(_)}},[s]);const m=v()?.messages||[],k=()=>{u.current?.scrollIntoView({behavior:"smooth"})};a.useEffect(()=>{k()},[m]);const x=async()=>{if(!i.trim()||!n||o)return;const t=i.trim();d(""),await N(n,t)},I=()=>{y()},h=()=>{r(!1),c(!0)},z=()=>{c(!1)};return e.jsxs("div",{className:"pointer-events-none flex flex-col items-end",children:[e.jsxs("div",{className:`pointer-events-auto mb-4 w-80 bg-[#f7f9fc] rounded-3xl shadow-2xl border border-[#dde3eb] flex flex-col overflow-hidden transition-all duration-300 origin-bottom-right select-none ${s?"opacity-100 scale-100 translate-y-0":"opacity-0 scale-95 translate-y-10 pointer-events-none h-0"}`,style:{maxHeight:s?"32rem":"0"},children:[e.jsxs("div",{className:"bg-gradient-to-r from-sky-600 to-sky-500 p-4 flex items-center justify-between flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-white/20 rounded-xl flex items-center justify-center backdrop-blur-sm",children:e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-9 h-9 object-contain drop-shadow-md"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-white font-bold text-sm",children:"L.O.L.I."}),e.jsxs("p",{className:"text-sky-100 text-[10px] leading-tight",children:["Logical Operations &",e.jsx("br",{}),"Learning Intelligence"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{onClick:I,type:"button","aria-label":"Open fullscreen",className:"p-2 hover:bg-white/20 rounded-lg transition-colors",title:"Open fullscreen",children:e.jsx(E,{size:16,className:"text-white"})}),e.jsx("button",{type:"button","aria-label":"Minimize AI tutor launcher",onClick:h,className:"p-2 hover:bg-white/20 rounded-lg transition-colors",title:"Minimize",children:e.jsx(f,{size:16,className:"text-white"})}),e.jsx("button",{type:"button","aria-label":"Close chat",onClick:()=>r(!1),className:"p-2 hover:bg-white/20 rounded-lg transition-colors",children:e.jsx(b,{size:16,className:"text-white"})})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 bg-[#edf1f7]",children:[m.map(t=>e.jsx("div",{className:`flex ${t.sender==="user"?"justify-end":"justify-start"}`,children:e.jsxs("div",{className:`max-w-[75%] rounded-2xl px-4 py-2.5 ${t.sender==="user"?"bg-sky-600 text-white":"bg-white text-[#0a1628] shadow-sm border border-[#dde3eb]"}`,children:[t.sender==="user"?e.jsx("p",{className:"text-sm whitespace-pre-wrap",children:t.text}):e.jsx(a.Suspense,{fallback:e.jsx("p",{className:"text-sm whitespace-pre-wrap",children:t.text}),children:e.jsx(O,{children:t.text})}),e.jsx("p",{className:`text-[10px] mt-1 ${t.sender==="user"?"text-sky-200":"text-slate-500"}`,children:t.timestamp})]})},t.id)),o&&e.jsx("div",{className:"flex justify-start",children:e.jsx("div",{className:"bg-white text-[#0a1628] shadow-sm border border-[#dde3eb] rounded-2xl px-4 py-2.5 max-w-[75%]",children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:150ms]"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:300ms]"})]})})}),e.jsx("div",{ref:u})]}),e.jsx("div",{className:"p-4 border-t border-[#dde3eb] bg-white flex-shrink-0",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{id:"ai-tutor-input",name:"ai-tutor-input","aria-label":"Ask AI tutor a question",type:"text",value:i,onChange:t=>d(t.target.value),onKeyPress:t=>t.key==="Enter"&&x(),placeholder:"Ask me anything...",className:"flex-1 px-4 py-2.5 rounded-xl border border-[#dde3eb] focus:outline-none focus:ring-2 focus:ring-sky-500 text-sm bg-[#f7f9fc]"}),e.jsx("button",{type:"button","aria-label":"Send message",onClick:x,className:"p-2.5 bg-sky-600 hover:bg-sky-700 text-white rounded-xl transition-colors disabled:opacity-50 disabled:cursor-not-allowed",disabled:!i.trim()||o,children:e.jsx(C,{size:18})})]})})]}),e.jsx("div",{className:"pointer-events-auto relative self-end",children:l?e.jsx(p.button,{type:"button",onClick:z,whileHover:{scale:1.08},whileTap:{scale:.95},className:"h-9 w-9 rounded-full bg-slate-900/85 text-white shadow-lg ring-1 ring-white/20 backdrop-blur-sm flex items-center justify-center","aria-label":"Restore AI tutor launcher",title:"Show AI tutor",children:e.jsx(M,{size:14})}):e.jsxs("div",{className:"relative group",children:[!s&&e.jsxs("div",{className:"absolute right-full mr-4 top-1/2 -translate-y-1/2 px-4 py-2 bg-slate-800 text-white text-sm rounded-xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none whitespace-nowrap shadow-xl z-50",children:["Hello! I'm L.O.L.I., how may I help you?",e.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 -right-1 w-3 h-3 bg-slate-800 rotate-45"})]}),!s&&e.jsx("button",{type:"button","aria-label":"Minimize AI tutor launcher",title:"Minimize",onClick:h,className:"absolute -top-2 -left-2 z-10 h-6 w-6 rounded-full bg-white text-slate-700 border border-slate-200 shadow-md hover:bg-slate-100 transition-colors flex items-center justify-center",children:e.jsx(f,{size:12})}),e.jsx(p.button,{type:"button",onClick:()=>r(!s),whileHover:{scale:1.1},whileTap:{scale:.9},className:"w-16 h-16 bg-gradient-to-br from-sky-600 to-sky-500 rounded-xl shadow-2xl flex items-center justify-center text-white hover:shadow-sky-300/50 transition-all","aria-label":s?"Close AI tutor chat":"Open AI tutor chat",children:s?e.jsx(b,{size:28}):e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-14 h-14 object-contain drop-shadow-lg"})})]})})]})};export{X as default}; + */const L=[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]],E=S("maximize-2",L),O=a.lazy(()=>w(()=>import("./ChatMarkdown-XT9mMuBR.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),X=({constraintsRef:T,onFullScreen:y})=>{const{activeSessionId:n,setActiveSessionId:g,createNewSession:j,getActiveSession:v,sendMessage:N,isLoading:o}=A(),[s,r]=a.useState(!1),[l,c]=a.useState(()=>typeof window>"u"?!1:window.localStorage.getItem("floating_ai_tutor_minimized")==="1"),[i,d]=a.useState(""),u=a.useRef(null);a.useEffect(()=>{typeof window>"u"||window.localStorage.setItem("floating_ai_tutor_minimized",l?"1":"0")},[l]),a.useEffect(()=>{s&&w(async()=>{const{warmupBackend:t}=await import("./apiService-ZZIWaV70.js");return{warmupBackend:t}},__vite__mapDeps([11,1,2,3,4,5,6,7,8])).then(({warmupBackend:t})=>{t()}).catch(t=>{console.warn("Floating tutor warmup skipped:",t)})},[s]),a.useEffect(()=>{if(s&&!n){const t={id:"1",sender:"ai",text:"Hi! I'm your AI math tutor. What would you like to learn about today?",timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})},_=j(t);g(_)}},[s]);const m=v()?.messages||[],k=()=>{u.current?.scrollIntoView({behavior:"smooth"})};a.useEffect(()=>{k()},[m]);const x=async()=>{if(!i.trim()||!n||o)return;const t=i.trim();d(""),await N(n,t)},I=()=>{y()},h=()=>{r(!1),c(!0)},z=()=>{c(!1)};return e.jsxs("div",{className:"pointer-events-none flex flex-col items-end",children:[e.jsxs("div",{className:`pointer-events-auto mb-4 w-80 bg-[#f7f9fc] rounded-3xl shadow-2xl border border-[#dde3eb] flex flex-col overflow-hidden transition-all duration-300 origin-bottom-right select-none ${s?"opacity-100 scale-100 translate-y-0":"opacity-0 scale-95 translate-y-10 pointer-events-none h-0"}`,style:{maxHeight:s?"32rem":"0"},children:[e.jsxs("div",{className:"bg-gradient-to-r from-sky-600 to-sky-500 p-4 flex items-center justify-between flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-white/20 rounded-xl flex items-center justify-center backdrop-blur-sm",children:e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-9 h-9 object-contain drop-shadow-md"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-white font-bold text-sm",children:"L.O.L.I."}),e.jsxs("p",{className:"text-sky-100 text-[10px] leading-tight",children:["Logical Operations &",e.jsx("br",{}),"Learning Intelligence"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{onClick:I,type:"button","aria-label":"Open fullscreen",className:"p-2 hover:bg-white/20 rounded-lg transition-colors",title:"Open fullscreen",children:e.jsx(E,{size:16,className:"text-white"})}),e.jsx("button",{type:"button","aria-label":"Minimize AI tutor launcher",onClick:h,className:"p-2 hover:bg-white/20 rounded-lg transition-colors",title:"Minimize",children:e.jsx(f,{size:16,className:"text-white"})}),e.jsx("button",{type:"button","aria-label":"Close chat",onClick:()=>r(!1),className:"p-2 hover:bg-white/20 rounded-lg transition-colors",children:e.jsx(b,{size:16,className:"text-white"})})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 bg-[#edf1f7]",children:[m.map(t=>e.jsx("div",{className:`flex ${t.sender==="user"?"justify-end":"justify-start"}`,children:e.jsxs("div",{className:`max-w-[75%] rounded-2xl px-4 py-2.5 ${t.sender==="user"?"bg-sky-600 text-white":"bg-white text-[#0a1628] shadow-sm border border-[#dde3eb]"}`,children:[t.sender==="user"?e.jsx("p",{className:"text-sm whitespace-pre-wrap",children:t.text}):e.jsx(a.Suspense,{fallback:e.jsx("p",{className:"text-sm whitespace-pre-wrap",children:t.text}),children:e.jsx(O,{children:t.text})}),e.jsx("p",{className:`text-[10px] mt-1 ${t.sender==="user"?"text-sky-200":"text-slate-500"}`,children:t.timestamp})]})},t.id)),o&&e.jsx("div",{className:"flex justify-start",children:e.jsx("div",{className:"bg-white text-[#0a1628] shadow-sm border border-[#dde3eb] rounded-2xl px-4 py-2.5 max-w-[75%]",children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:150ms]"}),e.jsx("div",{className:"w-2 h-2 bg-sky-400 rounded-full animate-bounce [animation-delay:300ms]"})]})})}),e.jsx("div",{ref:u})]}),e.jsx("div",{className:"p-4 border-t border-[#dde3eb] bg-white flex-shrink-0",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{id:"ai-tutor-input",name:"ai-tutor-input","aria-label":"Ask AI tutor a question",type:"text",value:i,onChange:t=>d(t.target.value),onKeyPress:t=>t.key==="Enter"&&x(),placeholder:"Ask me anything...",className:"flex-1 px-4 py-2.5 rounded-xl border border-[#dde3eb] focus:outline-none focus:ring-2 focus:ring-sky-500 text-sm bg-[#f7f9fc]"}),e.jsx("button",{type:"button","aria-label":"Send message",onClick:x,className:"p-2.5 bg-sky-600 hover:bg-sky-700 text-white rounded-xl transition-colors disabled:opacity-50 disabled:cursor-not-allowed",disabled:!i.trim()||o,children:e.jsx(C,{size:18})})]})})]}),e.jsx("div",{className:"pointer-events-auto relative self-end",children:l?e.jsx(p.button,{type:"button",onClick:z,whileHover:{scale:1.08},whileTap:{scale:.95},className:"h-9 w-9 rounded-full bg-slate-900/85 text-white shadow-lg ring-1 ring-white/20 backdrop-blur-sm flex items-center justify-center","aria-label":"Restore AI tutor launcher",title:"Show AI tutor",children:e.jsx(M,{size:14})}):e.jsxs("div",{className:"relative group",children:[!s&&e.jsxs("div",{className:"absolute right-full mr-4 top-1/2 -translate-y-1/2 px-4 py-2 bg-slate-800 text-white text-sm rounded-xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none whitespace-nowrap shadow-xl z-50",children:["Hello! I'm L.O.L.I., how may I help you?",e.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 -right-1 w-3 h-3 bg-slate-800 rotate-45"})]}),!s&&e.jsx("button",{type:"button","aria-label":"Minimize AI tutor launcher",title:"Minimize",onClick:h,className:"absolute -top-2 -left-2 z-10 h-6 w-6 rounded-full bg-white text-slate-700 border border-slate-200 shadow-md hover:bg-slate-100 transition-colors flex items-center justify-center",children:e.jsx(f,{size:12})}),e.jsx(p.button,{type:"button",onClick:()=>r(!s),whileHover:{scale:1.1},whileTap:{scale:.9},className:"w-16 h-16 bg-gradient-to-br from-sky-600 to-sky-500 rounded-xl shadow-2xl flex items-center justify-center text-white hover:shadow-sky-300/50 transition-all","aria-label":s?"Close AI tutor chat":"Open AI tutor chat",children:s?e.jsx(b,{size:28}):e.jsx("img",{src:"/avatar/avatar_icon.png",alt:"AI Tutor",className:"w-14 h-14 object-contain drop-shadow-lg"})})]})})]})};export{X as default}; diff --git a/assets/GradesPage-BIf0hX4r.js b/assets/GradesPage-BIf0hX4r.js deleted file mode 100644 index 70855fff1126ba1cd5c4205b01fe080dc0d6d70c..0000000000000000000000000000000000000000 --- a/assets/GradesPage-BIf0hX4r.js +++ /dev/null @@ -1,2 +0,0 @@ -import{r as n,j as e}from"./vendor-react-Dexh7fmo.js";import{B as S}from"./button-DWdPuxDU.js";import{u as $,m as H,g as W}from"./index-DGWrSMOK.js";import{g as V,S as k}from"./subjects-DDYtJwQO.js";import{A as T}from"./award-DpLN2BvV.js";import{T as A}from"./trending-up-B2MPUPwk.js";import{T as C}from"./target-7Gevl8jn.js";import{C as P}from"./calendar-19p2TrVX.js";import{D as _}from"./download-DINpalm9.js";import{T as J,F as K}from"./trending-down-C7JHnrbb.js";import{C as X}from"./chevron-right-DxXkA9aZ.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./chart-column-CJzwyNMx.js";const je=()=>{const{currentUser:p,userProfile:Q}=$(),[o,u]=n.useState("all"),[f,D]=n.useState("all"),[Y,j]=n.useState(!0),[i,R]=n.useState(null),E=Q?.grade,g=V(E),y=new Set(g);n.useEffect(()=>{(async()=>{if(p){j(!0);try{const s=await W(p.uid);R(s)}catch(s){console.error("Error loading grades:",s)}finally{j(!1)}}})()},[p]);const N=i?.quizAttempts||[],M=i?.totalQuizzesCompleted||0,h=i?.averageScore||0,U=h>0?Math.min(h/25,4).toFixed(2):"0.00",F={"gen-math":"blue","stats-prob":"cyan","pre-calc":"teal","basic-calc":"orange"},b=k.reduce((t,s)=>(t[s.id]={label:s.name,color:F[s.id]||"slate"},t),{}),c=k.filter(t=>y.has(t.id)).map(t=>t.name),v=Object.entries(i?.subjects||{}).filter(([t])=>y.has(t)).map(([t,s])=>{const a=b[t]||{label:t,color:"slate"},d=N.filter(l=>l.quizId?.startsWith(t)),m=d.length>0?Math.round(d.reduce((l,r)=>l+r.score,0)/d.length):Math.round(s.progress);return{subject:a.label,average:m,quizzes:d.length||s.completedModules,color:a.color,trend:"up"}}),G=g.map(t=>{const s=b[t]||{label:t,color:"slate"};return{subject:s.label,average:0,quizzes:0,color:s.color,trend:"up"}}),I=v.length>0?v:G,w=N.sort((t,s)=>new Date(s.completedAt).getTime()-new Date(t.completedAt).getTime()).slice(0,10).map((t,s)=>({id:s+1,title:t.quizId?.replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())||`Quiz ${s+1}`,subject:Object.entries(b).find(([a])=>t.quizId?.startsWith(a))?.[1]?.label||"General",score:t.score,total:100,date:t.completedAt instanceof Date?t.completedAt.toISOString().split("T")[0]:new Date(t.completedAt).toISOString().split("T")[0],type:t.quizId?.includes("practice")?"practice":"module",status:t.score>=60?"passed":"failed"})).filter(t=>c.includes(t.subject)),x={gpa:parseFloat(U),totalQuizzes:M,averageScore:h,trendValue:0},z=w.filter(t=>{if(!c.includes(t.subject))return!1;const s=o==="all"||t.subject===o,a=f==="all"||t.type===f;return s&&a});n.useEffect(()=>{o!=="all"&&(c.includes(o)||u("all"))},[c,o]);const O=()=>{const t=["Quiz","Subject","Type","Score","Date","Status"],s=w.map(r=>[r.title,r.subject,r.type,`${r.score}%`,r.date,r.status]),a=[t,...s].map(r=>r.join(",")).join(` -`),d=new Blob([a],{type:"text/csv;charset=utf-8;"}),m=URL.createObjectURL(d),l=document.createElement("a");l.href=m,l.download=`mathpulse-grades-${new Date().toISOString().split("T")[0]}.csv`,l.click(),URL.revokeObjectURL(m)},L=t=>t>=90?"text-emerald-600 bg-emerald-50":t>=80?"text-sky-600 bg-sky-50":t>=70?"text-rose-600 bg-rose-50":"text-red-600 bg-red-50",B=t=>t>=90?"A":t>=80?"B":t>=70?"C":t>=60?"D":"F";return e.jsxs("div",{className:"space-y-6 px-4 sm:px-6 xl:px-10 py-6 sm:py-8",children:[e.jsxs("div",{className:"bg-gradient-to-br from-white via-sky-50/30 to-white rounded-2xl p-7 card-elevated-lg relative overflow-hidden border border-slate-200/80",children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-sky-400/40 to-transparent"}),e.jsx("div",{className:"absolute top-0 right-0 w-48 h-48 bg-sky-100/40 rounded-full -translate-y-1/2 translate-x-1/2"}),e.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[e.jsxs("div",{className:"bg-white rounded-lg p-4 border border-slate-200/80 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(T,{size:18,className:"text-rose-500"}),e.jsx("span",{className:"text-xs text-slate-500 font-body",children:"Overall GPA"})]}),e.jsx("p",{className:"text-3xl font-display font-bold text-[#0a1628]",children:x.gpa}),e.jsxs("div",{className:"flex items-center gap-1 mt-2",children:[e.jsx(A,{size:14,className:"text-emerald-500"}),e.jsxs("span",{className:"text-xs text-slate-500 font-body",children:["+",x.trendValue,"% this month"]})]})]}),e.jsxs("div",{className:"bg-white rounded-lg p-4 border border-slate-200/80 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(C,{size:18,className:"text-sky-500"}),e.jsx("span",{className:"text-xs text-slate-500 font-body",children:"Average Score"})]}),e.jsxs("p",{className:"text-3xl font-display font-bold text-[#0a1628]",children:[x.averageScore,"%"]}),e.jsx("p",{className:"text-xs text-slate-500 font-body mt-2",children:"Across all subjects"})]}),e.jsxs("div",{className:"bg-white rounded-lg p-4 border border-slate-200/80 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(P,{size:18,className:"text-rose-500"}),e.jsx("span",{className:"text-xs text-slate-500 font-body",children:"Total Quizzes"})]}),e.jsx("p",{className:"text-3xl font-display font-bold text-[#0a1628]",children:x.totalQuizzes}),e.jsx("p",{className:"text-xs text-slate-500 font-body mt-2",children:"Completed"})]}),e.jsxs("div",{className:"bg-white rounded-lg p-4 border border-slate-200/80 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(T,{size:18,className:"text-rose-500"}),e.jsx("span",{className:"text-xs text-slate-500 font-body",children:"Grade Rank"})]}),e.jsx("p",{className:"text-3xl font-display font-bold text-[#0a1628]",children:"Top 15%"}),e.jsx("p",{className:"text-xs text-slate-500 font-body mt-2",children:"In your class"})]})]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:e.jsx(C,{size:20,strokeWidth:2.5})}),e.jsx("h2",{className:"font-display font-black text-[24px] text-slate-800 tracking-tight",children:"Subject Performance"})]}),e.jsxs(S,{variant:"outline",size:"sm",className:"rounded-lg font-body border-[#dde3eb] text-[#5a6578]",onClick:O,children:[e.jsx(_,{size:16,className:"mr-2"}),"Export Report"]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:I.map(t=>e.jsxs(H.div,{whileHover:{scale:1.02},className:"bg-white rounded-xl p-5 border border-[#dde3eb] card-elevated cursor-pointer",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"font-display font-bold text-[#0a1628] mb-1",children:t.subject}),e.jsxs("p",{className:"text-xs text-[#5a6578] font-body",children:[t.quizzes," quizzes completed"]})]}),e.jsx("div",{className:`w-14 h-14 rounded-lg bg-${t.color}-50 flex items-center justify-center`,children:e.jsx("span",{className:`text-xl font-display font-bold text-${t.color}-600`,children:B(t.average)})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-3xl font-display font-bold text-[#0a1628]",children:[t.average,"%"]}),e.jsx("p",{className:"text-xs text-[#5a6578] font-body mt-1",children:"Average"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[t.trend==="up"?e.jsx(A,{size:18,className:"text-green-500"}):e.jsx(J,{size:18,className:"text-red-500"}),e.jsx(X,{size:16,className:"text-[#d1cec6]"})]})]})]},t.subject))})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:e.jsx(P,{size:20,strokeWidth:2.5})}),e.jsx("h2",{className:"font-display font-black text-[24px] text-slate-800 tracking-tight",children:"Quiz History"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("select",{value:o,onChange:t=>u(t.target.value),className:"px-3 py-2 border border-[#dde3eb] rounded-lg text-sm font-body bg-white text-[#0a1628]",children:[e.jsx("option",{value:"all",children:"All Subjects"}),c.map(t=>e.jsx("option",{value:t,children:t},t))]}),e.jsxs("select",{value:f,onChange:t=>D(t.target.value),className:"px-3 py-2 border border-[#dde3eb] rounded-lg text-sm font-body bg-white text-[#0a1628]",children:[e.jsx("option",{value:"all",children:"All Types"}),e.jsx("option",{value:"practice",children:"Practice"}),e.jsx("option",{value:"module",children:"Module"})]})]})]}),e.jsxs("div",{className:"bg-white rounded-xl border border-[#dde3eb] card-elevated overflow-hidden",children:[e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{className:"bg-[#f7f9fc] border-b border-[#dde3eb]",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-3 text-left text-[10px] font-body font-semibold text-[#5a6578] uppercase tracking-wider",children:"Quiz"}),e.jsx("th",{className:"px-6 py-3 text-left text-[10px] font-body font-semibold text-[#5a6578] uppercase tracking-wider",children:"Subject"}),e.jsx("th",{className:"px-6 py-3 text-left text-[10px] font-body font-semibold text-[#5a6578] uppercase tracking-wider",children:"Type"}),e.jsx("th",{className:"px-6 py-3 text-left text-[10px] font-body font-semibold text-[#5a6578] uppercase tracking-wider",children:"Score"}),e.jsx("th",{className:"px-6 py-3 text-left text-[10px] font-body font-semibold text-[#5a6578] uppercase tracking-wider",children:"Date"}),e.jsx("th",{className:"px-6 py-3 text-left text-[10px] font-body font-semibold text-[#5a6578] uppercase tracking-wider",children:"Action"})]})}),e.jsx("tbody",{children:z.map(t=>e.jsxs("tr",{className:"border-b border-[#edf1f7] hover:bg-[#f7f9fc] transition-colors",children:[e.jsx("td",{className:"px-6 py-4",children:e.jsx("p",{className:"font-body font-semibold text-[#0a1628] text-sm",children:t.title})}),e.jsx("td",{className:"px-6 py-4",children:e.jsx("span",{className:"text-sm text-[#5a6578] font-body",children:t.subject})}),e.jsx("td",{className:"px-6 py-4",children:e.jsx("span",{className:"px-2.5 py-1 bg-[#edf1f7] text-[#5a6578] text-xs font-body font-semibold rounded-md capitalize",children:t.type})}),e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:`px-2.5 py-1 rounded-md text-sm font-body font-semibold ${L(t.score)}`,children:[t.score,"%"]}),e.jsxs("span",{className:"text-xs text-slate-500 font-body",children:["(",t.score,"/",t.total,")"]})]})}),e.jsx("td",{className:"px-6 py-4",children:e.jsx("span",{className:"text-sm text-[#5a6578] font-body",children:t.date})}),e.jsx("td",{className:"px-6 py-4",children:e.jsx(S,{variant:"outline",size:"sm",className:"rounded-lg",children:"Review"})})]},t.id))})]}),z.length===0&&e.jsxs("div",{className:"text-center py-12",children:[e.jsx(K,{size:40,className:"text-[#d1cec6] mx-auto mb-3"}),e.jsx("p",{className:"text-[#5a6578] font-body",children:"No quizzes found with current filters"}),e.jsx("p",{className:"text-xs text-slate-500 font-body mt-1",children:"Try adjusting your filters"})]})]})]})]})};export{je as default}; diff --git a/assets/GradesPage-Bi5pcR2x.js b/assets/GradesPage-Bi5pcR2x.js new file mode 100644 index 0000000000000000000000000000000000000000..0ef7bd40e0ca8772a6051aa7cb30f5ec0b48154b --- /dev/null +++ b/assets/GradesPage-Bi5pcR2x.js @@ -0,0 +1,2 @@ +import{r as i,j as e}from"./vendor-react-Dexh7fmo.js";import{B as v}from"./button-BP5cklmU.js";import{u as H,g as V}from"./index-CmBdDSkw.js";import{g as W,S as P}from"./subjects-wOHUanD9.js";import{C as Y}from"./calendar-CP-HCx1y.js";import{D as J}from"./download-DMZBRA1T.js";import{A as K}from"./award-COlS18fi.js";import{T as $}from"./target-BCguvjbb.js";import{T as E}from"./trending-up-6u76yy2e.js";import{F as R}from"./funnel-BHtkrar1.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./chart-column-DzJCKCOe.js";const be=()=>{const{currentUser:c,userProfile:w}=H(),[o,N]=i.useState("all"),[m,M]=i.useState("all"),[Q,y]=i.useState(!0),[h,D]=i.useState(null),F=w?.grade,S=W(F),_=new Set(S);i.useEffect(()=>{(async()=>{if(c){y(!0);try{const s=await V(c.uid);D(s)}catch(s){console.error("Failed to load progress for grades:",s)}finally{y(!1)}}})()},[c]);const k=h?.quizAttempts||[],U=h?.totalQuizzesCompleted||0,g=h?.averageScore||0,L=g>0?Math.min(g/25,4).toFixed(2):"0.00",O={"gen-math":"indigo","stats-prob":"violet","pre-calc":"fuchsia","basic-calc":"purple"},A={indigo:{dot:"bg-indigo-500",bar:"bg-indigo-500"},violet:{dot:"bg-violet-500",bar:"bg-violet-500"},fuchsia:{dot:"bg-fuchsia-500",bar:"bg-fuchsia-500"},purple:{dot:"bg-purple-500",bar:"bg-purple-500"},slate:{dot:"bg-slate-500",bar:"bg-slate-500"}},f=P.reduce((t,s)=>(t[s.id]={label:s.name,color:O[s.id]||"slate"},t),{}),d=P.filter(t=>_.has(t.id)).map(t=>t.name),T=Object.entries(h?.subjects||{}).filter(([t])=>_.has(t)).map(([t,s])=>{const r=f[t]||{label:t,color:"slate"},a=k.filter(x=>x.quizId?.startsWith(t)),n=a.length>0?Math.round(a.reduce((x,b)=>x+b.score,0)/a.length):Math.round(s.progress);return{subject:r.label,average:n,quizzes:a.length||s.completedModules,color:r.color}}),I=S.map(t=>{const s=f[t]||{label:t,color:"slate"};return{subject:s.label,average:0,quizzes:0,color:s.color}}),z=T.length>0?T:I,C=k.slice().sort((t,s)=>new Date(s.completedAt).getTime()-new Date(t.completedAt).getTime()).slice(0,10).map((t,s)=>{const a=Object.entries(f).find(([n])=>t.quizId?.startsWith(n))?.[1]?.label||"General";return{id:s+1,title:t.quizId?.replace(/-/g," ").replace(/\b\w/g,n=>n.toUpperCase())||`Quiz ${s+1}`,subject:a,score:t.score,date:t.completedAt instanceof Date?t.completedAt.toISOString().split("T")[0]:new Date(t.completedAt).toISOString().split("T")[0],type:t.quizId?.includes("practice")?"practice":"module",status:t.score>=80?"Excellent":t.score>=60?"Passing":"Needs Review"}}).filter(t=>d.includes(t.subject)),u=C.filter(t=>{if(!d.includes(t.subject))return!1;const s=o==="all"||t.subject===o,r=m==="all"||t.type===m;return s&&r});i.useEffect(()=>{o!=="all"&&(d.includes(o)||N("all"))},[d,o]);const B=()=>{const t=l=>{const j=String(l??"");return/[",\n]/.test(j)?`"${j.replace(/"/g,'""')}"`:j},s=[],r=w?.displayName||c?.displayName||c?.email||"Student",a=new Date().toISOString().split("T")[0];s.push("Grade Report"),s.push(`Student,${t(r)}`),s.push(`Export Date,${t(a)}`),s.push(`Subject Filter,${t(o)}`),s.push(`Type Filter,${t(m)}`),s.push(""),s.push("Subject Performance"),s.push("Subject,Average Score"),z.forEach(l=>{s.push([t(l.subject),t(l.average)].join(","))}),s.push(""),s.push("Recent Quizzes"),s.push("Title,Subject,Score,Date,Type,Status"),u.length===0?s.push("No quiz data available for the selected filters"):u.forEach(l=>{s.push([t(l.title),t(l.subject),t(l.score),t(l.date),t(l.type),t(l.status)].join(","))});const n=s.join(` +`),x=new Blob([n],{type:"text/csv;charset=utf-8;"}),b=window.URL.createObjectURL(x),p=document.createElement("a"),G=r.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").toLowerCase()||"student";p.href=b,p.setAttribute("download",`grade-report-${G}-${a}.csv`),document.body.appendChild(p),p.click(),document.body.removeChild(p),window.URL.revokeObjectURL(b)};return Q?e.jsx("div",{className:"p-8 flex justify-center items-center h-full",children:e.jsx("div",{className:"w-10 h-10 border-4 border-indigo-500 border-t-transparent rounded-full animate-spin"})}):e.jsxs("div",{className:"p-4 sm:p-6 lg:p-8 space-y-8 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4 bg-white p-6 rounded-[2rem] shadow-[0_8px_30px_-12px_rgba(0,0,0,0.06)] border border-slate-50",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-display font-black text-slate-800 tracking-tight",children:"Assessment"}),e.jsx("p",{className:"text-slate-400 font-bold mt-1 text-[13px]",children:"Review your performance across subjects"})]}),e.jsxs("div",{className:"flex gap-3 w-full sm:w-auto",children:[e.jsxs(v,{variant:"outline",className:"flex-1 sm:flex-none border-slate-200 text-slate-500 font-bold rounded-xl h-11 px-5 hover:bg-slate-50 hover:text-slate-700",children:[e.jsx(Y,{className:"w-4 h-4 mr-2 text-slate-400"}),"This Semester"]}),e.jsxs(v,{className:"flex-1 sm:flex-none bg-indigo-600 hover:bg-indigo-700 text-white font-bold rounded-xl h-11 px-5 shadow-[0_8px_20px_-8px_rgba(79,70,229,0.5)] hover:-translate-y-0.5 transition-all",onClick:B,children:[e.jsx(J,{className:"w-4 h-4 mr-2"}),"Report"]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"bg-white rounded-[2rem] border border-slate-100 p-6 sm:p-8 shadow-[0_8px_24px_-10px_rgba(0,0,0,0.05)] relative overflow-hidden group hover:border-indigo-100 transition-colors",children:[e.jsx("div",{className:"absolute -right-8 -top-8 w-32 h-32 bg-indigo-50 rounded-full group-hover:scale-110 transition-transform duration-500"}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"w-14 h-14 bg-indigo-100 text-indigo-600 rounded-2xl flex items-center justify-center mb-6 shadow-sm",children:e.jsx(K,{className:"w-7 h-7"})}),e.jsx("p",{className:"text-slate-400 font-bold text-sm tracking-wide uppercase",children:"Overall GPA"}),e.jsx("div",{className:"flex items-end gap-2 mt-2",children:e.jsx("h3",{className:"text-4xl font-display font-black text-slate-800",children:L})})]})]}),e.jsxs("div",{className:"bg-white rounded-[2rem] border border-slate-100 p-6 sm:p-8 shadow-[0_8px_24px_-10px_rgba(0,0,0,0.05)] relative overflow-hidden group hover:border-emerald-100 transition-colors",children:[e.jsx("div",{className:"absolute -right-8 -top-8 w-32 h-32 bg-emerald-50 rounded-full group-hover:scale-110 transition-transform duration-500"}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"w-14 h-14 bg-emerald-100 text-emerald-600 rounded-2xl flex items-center justify-center mb-6 shadow-sm",children:e.jsx($,{className:"w-7 h-7"})}),e.jsx("p",{className:"text-slate-400 font-bold text-sm tracking-wide uppercase",children:"Average Score"}),e.jsx("div",{className:"flex items-end gap-2 mt-2",children:e.jsxs("h3",{className:"text-4xl font-display font-black text-slate-800",children:[g,"%"]})})]})]}),e.jsxs("div",{className:"bg-white rounded-[2rem] border border-slate-100 p-6 sm:p-8 shadow-[0_8px_24px_-10px_rgba(0,0,0,0.05)] relative overflow-hidden group hover:border-violet-100 transition-colors",children:[e.jsx("div",{className:"absolute -right-8 -top-8 w-32 h-32 bg-violet-50 rounded-full group-hover:scale-110 transition-transform duration-500"}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"w-14 h-14 bg-violet-100 text-violet-600 rounded-2xl flex items-center justify-center mb-6 shadow-sm",children:e.jsx(E,{className:"w-7 h-7"})}),e.jsx("p",{className:"text-slate-400 font-bold text-sm tracking-wide uppercase",children:"Quizzes Completed"}),e.jsx("div",{className:"flex items-end gap-2 mt-2",children:e.jsx("h3",{className:"text-4xl font-display font-black text-slate-800",children:U})})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[e.jsx("div",{className:"lg:col-span-2",children:e.jsxs("div",{className:"bg-white rounded-[2rem] border border-slate-100 shadow-[0_8px_30px_-12px_rgba(0,0,0,0.06)] overflow-hidden flex flex-col h-full",children:[e.jsxs("div",{className:"p-6 sm:p-8 border-b border-slate-50 flex flex-col sm:flex-row justify-between items-start sm:items-center gap-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-display font-black text-xl text-slate-800",children:"Recent Assessments"}),e.jsx("p",{className:"text-slate-400 font-bold text-[13px] mt-1",children:"Your latest quiz and practice results"})]}),e.jsxs("div",{className:"flex items-center gap-3 w-full sm:w-auto",children:[e.jsxs("div",{className:"relative flex-1 sm:flex-none",children:[e.jsxs("select",{value:o,onChange:t=>N(t.target.value),className:"appearance-none w-full pl-4 pr-10 py-2.5 border-none bg-slate-50 rounded-xl text-sm font-bold text-slate-600 focus:ring-2 focus:ring-indigo-500/30 transition-all cursor-pointer min-w-[140px] shadow-sm",children:[e.jsx("option",{value:"all",children:"All Subjects"}),d.map(t=>e.jsx("option",{value:t,children:t},t))]}),e.jsx(R,{className:"w-4 h-4 text-slate-400 absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none"})]}),e.jsxs("div",{className:"relative flex-1 sm:flex-none",children:[e.jsxs("select",{value:m,onChange:t=>M(t.target.value),className:"appearance-none w-full pl-4 pr-10 py-2.5 border-none bg-slate-50 rounded-xl text-sm font-bold text-slate-600 focus:ring-2 focus:ring-indigo-500/30 transition-all cursor-pointer min-w-[120px] shadow-sm",children:[e.jsx("option",{value:"all",children:"All Types"}),e.jsx("option",{value:"module",children:"Module Quiz"}),e.jsx("option",{value:"practice",children:"Practice"})]}),e.jsx(R,{className:"w-4 h-4 text-slate-400 absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none"})]})]})]}),e.jsx("div",{className:"overflow-x-auto flex-1 p-2",children:e.jsxs("table",{className:"w-full text-left border-separate border-spacing-y-2 px-4 sm:px-6 mb-4",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wider border-b border-transparent",children:"Assessment"}),e.jsx("th",{className:"px-4 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wider border-b border-transparent min-w-[120px]",children:"Subject"}),e.jsx("th",{className:"px-4 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wider border-b border-transparent",children:"Type"}),e.jsx("th",{className:"px-4 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wider text-right border-b border-transparent",children:"Score"})]})}),e.jsx("tbody",{children:u.length>0?u.map(t=>e.jsxs("tr",{className:"group hover:bg-slate-50/70 transition-colors",children:[e.jsxs("td",{className:"px-4 py-4 rounded-l-2xl",children:[e.jsx("p",{className:"text-[14px] font-bold text-slate-800",children:t.title}),e.jsx("p",{className:"text-[11px] font-bold text-slate-400 mt-1",children:t.date})]}),e.jsx("td",{className:"px-4 py-4",children:e.jsx("span",{className:"inline-flex flex-col gap-1 items-start",children:e.jsx("span",{className:"text-[13px] font-bold text-slate-600 truncate max-w-[140px] block",children:t.subject})})}),e.jsx("td",{className:"px-4 py-4",children:e.jsx("span",{className:`inline-flex items-center px-3 py-1.5 rounded-lg text-[11px] font-bold uppercase tracking-wide ${t.type==="practice"?"bg-emerald-100/50 text-emerald-600":"bg-indigo-100/50 text-indigo-600"}`,children:t.type==="practice"?"Practice":"Quiz"})}),e.jsx("td",{className:"px-4 py-4 text-right rounded-r-2xl",children:e.jsxs("span",{className:`inline-flex items-center px-3 py-1.5 rounded-xl text-[13px] font-black ${t.score>=80?"bg-emerald-100 text-emerald-700":t.score>=60?"bg-amber-100 text-amber-700":"bg-rose-100 text-rose-700"}`,children:[t.score,"%"]})})]},t.id)):e.jsx("tr",{children:e.jsx("td",{colSpan:4,className:"px-6 py-16 text-center",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("div",{className:"w-16 h-16 bg-slate-50 rounded-full flex items-center justify-center mb-4",children:e.jsx($,{className:"w-8 h-8 text-slate-300"})}),e.jsx("p",{className:"text-slate-500 font-bold text-sm",children:"No recent assessments match the selected filters."})]})})})})]})})]})}),e.jsxs("div",{className:"space-y-6 lg:space-y-8 flex flex-col",children:[e.jsxs("div",{className:"bg-white rounded-[2rem] border border-slate-100 p-6 sm:p-8 shadow-[0_8px_30px_-12px_rgba(0,0,0,0.06)]",children:[e.jsx("div",{className:"flex items-center justify-between mb-8",children:e.jsx("h3",{className:"font-display font-black text-lg text-slate-800",children:"Subject Performance"})}),e.jsx("div",{className:"space-y-7",children:z.map((t,s)=>{const r=A[t.color]||A.slate;return e.jsxs("div",{className:"group",children:[e.jsxs("div",{className:"flex justify-between items-end mb-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-[14px] font-bold text-slate-800 flex items-center gap-2",children:[e.jsx("span",{className:`w-2 h-2 rounded-full ${r.dot} group-hover:scale-125 transition-transform`}),t.subject]}),e.jsxs("p",{className:"text-[11px] text-slate-400 font-bold ml-4 mt-0.5",children:[t.quizzes," activities"]})]}),e.jsxs("span",{className:"text-[15px] font-black text-slate-800",children:[t.average,"%"]})]}),e.jsx("div",{className:"h-2.5 w-full bg-slate-100 rounded-full overflow-hidden shadow-inner",children:e.jsx("div",{className:`h-full rounded-full ${r.bar} shadow-sm relative overflow-hidden transition-all duration-1000`,style:{width:`${Math.max(t.average,5)}%`},children:e.jsx("div",{className:"absolute inset-0 bg-white/20 w-1/2 -skew-x-12 translate-x-[-100%] group-hover:animate-[shimmer_1.5s_ease-out]"})})})]},s)})})]}),e.jsxs("div",{className:"relative bg-gradient-to-br from-indigo-600 to-violet-700 rounded-[2rem] p-6 sm:p-8 shadow-[0_12px_30px_-10px_rgba(79,70,229,0.5)] text-white overflow-hidden group",children:[e.jsx("div",{className:"absolute top-0 right-0 w-48 h-48 bg-white/10 rounded-full blur-3xl -mt-10 -mr-10 group-hover:bg-white/20 transition-all duration-700 ease-in-out"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-32 h-32 bg-indigo-400/30 rounded-full blur-2xl -mb-10 -ml-10"}),e.jsxs("div",{className:"relative z-10",children:[e.jsx("div",{className:"w-12 h-12 bg-white/10 rounded-2xl flex items-center justify-center mb-5 backdrop-blur-sm border border-white/20 shadow-sm group-hover:scale-110 transition-transform",children:e.jsx(E,{className:"w-6 h-6 text-white"})}),e.jsx("h3",{className:"text-2xl font-display font-black tracking-tight mb-2 leading-tight",children:"Keep up the momentum!"}),e.jsxs("p",{className:"text-white/80 text-[13px] font-medium leading-relaxed mb-8 max-w-[90%]",children:["You've completed ",e.jsx("span",{className:"font-black text-white",children:C.length})," activities recently. Try a practice session to boost your lowest scores."]}),e.jsx(v,{className:"w-full bg-white text-indigo-600 hover:bg-slate-50 border-0 font-black h-12 rounded-xl shadow-[0_8px_16px_rgba(0,0,0,0.15)] hover:shadow-[0_8px_24px_rgba(0,0,0,0.2)] hover:-translate-y-0.5 transition-all",children:"Start Practice Session"})]})]})]})]})]})};export{be as default}; diff --git a/assets/HeroBanner-DgRlQubI.js b/assets/HeroBanner-BzMF9ktr.js similarity index 94% rename from assets/HeroBanner-DgRlQubI.js rename to assets/HeroBanner-BzMF9ktr.js index 01a938dc25fb1c11800794b68bb826f1fc4402f9..b716559d387ff160c28daea0efd31ef2f81f0b4d 100644 --- a/assets/HeroBanner-DgRlQubI.js +++ b/assets/HeroBanner-BzMF9ktr.js @@ -1,7 +1,7 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardAvatar-MX9hSo-6.js","assets/vendor-react-Dexh7fmo.js","assets/avatarData-DykDiQ_Y.js","assets/index-DGWrSMOK.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/index-CR2i2gnI.css"])))=>i.map(i=>d[i]); -import{c as x,m as t,Z as c,A as p,_ as b}from"./index-DGWrSMOK.js";import{j as e,r}from"./vendor-react-Dexh7fmo.js";import{B as h}from"./brain-DHmY5cbv.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardAvatar-2y_SuM8T.js","assets/vendor-react-Dexh7fmo.js","assets/avatarData-BW_TX0b4.js","assets/index-CmBdDSkw.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/index-CR2i2gnI.css"])))=>i.map(i=>d[i]); +import{c as x,m as t,Z as c,A as p,_ as b}from"./index-CmBdDSkw.js";import{j as e,r}from"./vendor-react-Dexh7fmo.js";import{B as h}from"./brain-DfMjTiNx.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const g=[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]],u=x("hand",g),v=r.lazy(()=>b(()=>import("./DashboardAvatar-MX9hSo-6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))),A=({userName:a="Student",userLevel:o=1,avatarLayers:l,onContinueLearning:n,showAssessmentTooltip:i,onOpenAssessment:d})=>{const m=()=>{const s=new Date().getHours();return s<12?"Good Morning":s<18?"Good Afternoon":"Good Evening"};return e.jsxs(t.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,ease:[.22,1,.36,1]},className:"relative w-full mt-0 rounded-[2rem] p-6 lg:p-8 bg-gradient-to-br from-white via-sky-50/50 to-white border border-slate-200/80 card-elevated-lg",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden rounded-[2rem] pointer-events-none",children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),e.jsx("div",{className:"absolute top-0 right-0 w-96 h-96 bg-sky-100/40 rounded-full blur-3xl -translate-y-1/2 translate-x-1/4"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-64 h-64 bg-rose-100/30 rounded-full blur-3xl translate-y-1/2 -translate-x-1/4"}),e.jsx("div",{className:"absolute inset-0 bg-dot-pattern opacity-40"})]}),e.jsx("div",{className:"relative z-10 flex min-h-[140px] lg:min-h-[160px] items-center justify-between gap-6 pb-0",children:e.jsxs("div",{className:"flex-1 min-w-0 pr-40 lg:pr-[280px] py-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("div",{className:"px-3 md:px-4 py-1.5 rounded-full bg-sky-100 border border-sky-200",children:e.jsxs("span",{className:"text-xs md:text-sm font-body font-bold text-sky-700",children:["Level ",o]})}),e.jsxs("div",{className:"px-3 md:px-4 py-1.5 rounded-full bg-rose-50 border border-rose-200",children:[e.jsx(c,{size:14,className:"inline -mt-0.5 text-rose-500 mr-1"}),e.jsx("span",{className:"text-xs md:text-sm font-body font-bold text-rose-700",children:"Active"})]})]}),e.jsxs("h1",{className:"text-xl md:text-2xl lg:text-3xl font-display font-black text-[#0a1628] mb-1.5 tracking-tight leading-[1.1]",children:[m(),", ",a,"! ",e.jsx(u,{size:20,className:"inline -mt-1 ml-1"})]}),e.jsx("p",{className:"text-slate-500 mb-1 text-xs md:text-sm font-body font-bold",children:"Today is a great day to move one step forward in math mastery."}),e.jsx("p",{className:"text-[11px] md:text-xs text-slate-400 font-body mb-4",children:"Focus on your next recommended lesson and keep your momentum."}),e.jsxs(t.button,{onClick:n,whileHover:{scale:1.03},whileTap:{scale:.97},className:"mt-2 bg-gradient-to-r from-purple-600 to-[#9956DE] text-white px-5 py-2 rounded-xl font-body font-bold text-sm shadow-lg shadow-purple-500/20 hover:shadow-purple-500/30 transition-all flex items-center gap-2 group",children:["Continue Learning",e.jsx(p,{size:14,className:"group-hover:translate-x-1 transition-transform"})]})]})}),i&&e.jsx(t.div,{initial:{opacity:0,scale:.9,x:10},animate:{opacity:1,scale:1,x:0},transition:{delay:.5,type:"spring"},onClick:d,className:"absolute hidden md:block right-[150px] lg:right-[250px] bottom-16 lg:bottom-20 z-30 cursor-pointer drop-shadow-lg group",children:e.jsxs("div",{className:"bg-white px-4 py-3 rounded-2xl rounded-br-sm border-2 border-amber-300 relative transition-all group-hover:bg-amber-50 group-hover:border-amber-400 group-hover:-translate-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-amber-500",children:e.jsx(h,{size:16})}),e.jsxs("p",{className:"text-xs lg:text-sm font-bold text-amber-900 leading-tight",children:["Don't forget to take the",e.jsx("br",{}),"Initial Assessment!"]})]}),e.jsx("div",{className:"absolute -right-2 bottom-0 w-4 h-4 bg-white border-2 border-transparent border-r-amber-300 border-b-amber-300 rotate-45 group-hover:bg-amber-50 group-hover:border-r-amber-400 group-hover:border-b-amber-400 transition-colors"})]})}),e.jsx("div",{className:"hidden md:block absolute right-0 lg:right-10 bottom-0 w-[150px] lg:w-[270px] pointer-events-none z-20",style:{clipPath:"inset(-100% -50% 0 -50%)"},children:e.jsx("div",{className:"relative w-full aspect-[4/5] translate-y-[21%] lg:translate-y-[19%] drop-shadow-2xl",children:e.jsx(r.Suspense,{fallback:e.jsx("div",{className:"w-full h-full scale-[1.25] lg:scale-[1.3] origin-bottom"}),children:e.jsx(v,{layers:l,className:"w-full h-full scale-[1.25] lg:scale-[1.3] origin-bottom"})})})})]})};export{A as default}; + */const g=[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]],u=x("hand",g),v=r.lazy(()=>b(()=>import("./DashboardAvatar-2y_SuM8T.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))),A=({userName:a="Student",userLevel:o=1,avatarLayers:l,onContinueLearning:n,showAssessmentTooltip:i,onOpenAssessment:d})=>{const m=()=>{const s=new Date().getHours();return s<12?"Good Morning":s<18?"Good Afternoon":"Good Evening"};return e.jsxs(t.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,ease:[.22,1,.36,1]},className:"relative w-full mt-0 rounded-[2rem] p-6 lg:p-8 bg-gradient-to-br from-white via-sky-50/50 to-white border border-slate-200/80 card-elevated-lg",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden rounded-[2rem] pointer-events-none",children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),e.jsx("div",{className:"absolute top-0 right-0 w-96 h-96 bg-sky-100/40 rounded-full blur-3xl -translate-y-1/2 translate-x-1/4"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-64 h-64 bg-rose-100/30 rounded-full blur-3xl translate-y-1/2 -translate-x-1/4"}),e.jsx("div",{className:"absolute inset-0 bg-dot-pattern opacity-40"})]}),e.jsx("div",{className:"relative z-10 flex min-h-[140px] lg:min-h-[160px] items-center justify-between gap-6 pb-0",children:e.jsxs("div",{className:"flex-1 min-w-0 pr-40 lg:pr-[280px] py-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("div",{className:"px-3 md:px-4 py-1.5 rounded-full bg-sky-100 border border-sky-200",children:e.jsxs("span",{className:"text-xs md:text-sm font-body font-bold text-sky-700",children:["Level ",o]})}),e.jsxs("div",{className:"px-3 md:px-4 py-1.5 rounded-full bg-rose-50 border border-rose-200",children:[e.jsx(c,{size:14,className:"inline -mt-0.5 text-rose-500 mr-1"}),e.jsx("span",{className:"text-xs md:text-sm font-body font-bold text-rose-700",children:"Active"})]})]}),e.jsxs("h1",{className:"text-xl md:text-2xl lg:text-3xl font-display font-black text-[#0a1628] mb-1.5 tracking-tight leading-[1.1]",children:[m(),", ",a,"! ",e.jsx(u,{size:20,className:"inline -mt-1 ml-1"})]}),e.jsx("p",{className:"text-slate-500 mb-1 text-xs md:text-sm font-body font-bold",children:"Today is a great day to move one step forward in math mastery."}),e.jsx("p",{className:"text-[11px] md:text-xs text-slate-400 font-body mb-4",children:"Focus on your next recommended lesson and keep your momentum."}),e.jsxs(t.button,{onClick:n,whileHover:{scale:1.03},whileTap:{scale:.97},className:"mt-2 bg-gradient-to-r from-purple-600 to-[#9956DE] text-white px-5 py-2 rounded-xl font-body font-bold text-sm shadow-lg shadow-purple-500/20 hover:shadow-purple-500/30 transition-all flex items-center gap-2 group",children:["Continue Learning",e.jsx(p,{size:14,className:"group-hover:translate-x-1 transition-transform"})]})]})}),i&&e.jsx(t.div,{initial:{opacity:0,scale:.9,x:10},animate:{opacity:1,scale:1,x:0},transition:{delay:.5,type:"spring"},onClick:d,className:"absolute hidden md:block right-[150px] lg:right-[250px] bottom-16 lg:bottom-20 z-30 cursor-pointer drop-shadow-lg group",children:e.jsxs("div",{className:"bg-white px-4 py-3 rounded-2xl rounded-br-sm border-2 border-amber-300 relative transition-all group-hover:bg-amber-50 group-hover:border-amber-400 group-hover:-translate-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-amber-500",children:e.jsx(h,{size:16})}),e.jsxs("p",{className:"text-xs lg:text-sm font-bold text-amber-900 leading-tight",children:["Don't forget to take the",e.jsx("br",{}),"Initial Assessment!"]})]}),e.jsx("div",{className:"absolute -right-2 bottom-0 w-4 h-4 bg-white border-2 border-transparent border-r-amber-300 border-b-amber-300 rotate-45 group-hover:bg-amber-50 group-hover:border-r-amber-400 group-hover:border-b-amber-400 transition-colors"})]})}),e.jsx("div",{className:"hidden md:block absolute right-0 lg:right-10 bottom-0 w-[150px] lg:w-[270px] pointer-events-none z-20",style:{clipPath:"inset(-100% -50% 0 -50%)"},children:e.jsx("div",{className:"relative w-full aspect-[4/5] translate-y-[21%] lg:translate-y-[19%] drop-shadow-2xl",children:e.jsx(r.Suspense,{fallback:e.jsx("div",{className:"w-full h-full scale-[1.25] lg:scale-[1.3] origin-bottom"}),children:e.jsx(v,{layers:l,className:"w-full h-full scale-[1.25] lg:scale-[1.3] origin-bottom"})})})})]})};export{A as default}; diff --git a/assets/LeaderboardPage-C97hWKsZ.js b/assets/LeaderboardPage-DIZVn39b.js similarity index 97% rename from assets/LeaderboardPage-C97hWKsZ.js rename to assets/LeaderboardPage-DIZVn39b.js index 7238da8873da6e462236725de77577fd4ea5d0fc..3c2bb285d9b935078350839fb8c1d0f01199ed9b 100644 --- a/assets/LeaderboardPage-C97hWKsZ.js +++ b/assets/LeaderboardPage-DIZVn39b.js @@ -1,4 +1,4 @@ -import{r as o,j as e}from"./vendor-react-Dexh7fmo.js";import{c as O,E as R,e as W,m as d,F as A,l as X,u as $,G as H}from"./index-DGWrSMOK.js";import{X as U}from"./x-Bj25rnWX.js";import{B as y}from"./book-open-B5Xvd1JL.js";import{T as B}from"./target-7Gevl8jn.js";import{A as k}from"./award-DpLN2BvV.js";import{C as q}from"./clock-qHFbMxrB.js";import{T as v}from"./trophy-73YPSH67.js";import{T as P}from"./trending-up-B2MPUPwk.js";import{L as M}from"./loader-circle-BUf2fYcT.js";import{S as G}from"./star-DqP0S0c5.js";import{U as L}from"./user-Br5UzORP.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** +import{r as o,j as e}from"./vendor-react-Dexh7fmo.js";import{c as O,E as R,e as W,m as d,F as A,l as X,u as $,G as H}from"./index-CmBdDSkw.js";import{X as U}from"./x-BDSBB3q9.js";import{B as y}from"./book-open-BH_yilLK.js";import{T as B}from"./target-BCguvjbb.js";import{A as k}from"./award-COlS18fi.js";import{C as q}from"./clock-jSWTKlqH.js";import{T as v}from"./trophy-DrL6Ph2J.js";import{T as P}from"./trending-up-6u76yy2e.js";import{L as M}from"./loader-circle-BfAbw6jC.js";import{S as G}from"./star-B7mp4xEi.js";import{U as L}from"./user-C4mm1EOG.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/LearningPath-CTKb6bQc.js b/assets/LearningPath-LYxnZA3A.js similarity index 82% rename from assets/LearningPath-CTKb6bQc.js rename to assets/LearningPath-LYxnZA3A.js index 2946e16de03bf6d3d06cf16c8f575a0be14f9d53..6fb17e74f5ba8033c25270d36082e061270506c3 100644 --- a/assets/LearningPath-CTKb6bQc.js +++ b/assets/LearningPath-LYxnZA3A.js @@ -1 +1 @@ -import{r as p,c as h,j as t}from"./vendor-react-Dexh7fmo.js";import{u as S,o as k,p as v,g as w,A as C}from"./index-DGWrSMOK.js";import{g as L,s as M}from"./subjects-DDYtJwQO.js";import{M as A}from"./ModuleFolderCard-BGJM_1PJ.js";import{B as E}from"./book-open-B5Xvd1JL.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./trending-up-B2MPUPwk.js";import"./chart-column-CJzwyNMx.js";import"./clock-qHFbMxrB.js";const H=({onNavigateToModules:c,atRiskSubjects:g=[],priorityTopics:d=[]})=>{const{userProfile:i}=S(),[x,f]=p.useState(null),b=i?.grade,j=L(b),m=M.filter(e=>j.includes(e.id)),l=m.find(e=>e.id==="gen-math")??m[0],a=h.useMemo(()=>{const e=d.length>0?d:g.map(s=>k(s)).filter(s=>s!==null),r=new Set;return e.filter(s=>r.has(s)?!1:(r.add(s),!0))},[d,g]),P=h.useMemo(()=>{const e=l?.modules??[];if(a.length===0)return e;const r=new Map(a.map((s,o)=>[v[s],o]));return[...e].sort((s,o)=>{const n=r.get(s.id)??Number.POSITIVE_INFINITY,N=r.get(o.id)??Number.POSITIVE_INFINITY;return n-N})},[l?.modules,a]);p.useEffect(()=>{i?.uid&&w(i.uid).then(f).catch(console.error)},[i?.uid]);const u=P.slice(0,4).map(e=>{const o=x?.subjects?.[l.id]?.modulesProgress?.[e.id]?.lessonsCompleted?.length||0,n=e.lessons.length>0?Math.round(o/e.lessons.length*100):0;return{...e,progress:n,status:n===100?"Completed":n>0?"In Progress":"Not Started"}}),I=u.some(e=>e.progress>0)?"Continue Learning":"Start Learning";return t.jsxs("div",{children:[t.jsxs("div",{className:"flex justify-between items-center mb-6 px-1",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:t.jsx(E,{size:20,strokeWidth:2.5})}),t.jsx("h2",{className:"font-display font-black text-[24px] text-slate-800 tracking-tight",children:I})]}),t.jsxs("button",{onClick:()=>c?.(),className:"text-primary font-bold text-sm flex items-center gap-1 hover:gap-2 transition-all bg-primary/10 px-4 py-2 rounded-xl hover:bg-primary/20",children:["View All ",t.jsx(C,{size:16})]})]}),t.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 xl:grid-cols-4 gap-6",children:u.map((e,r)=>t.jsx(A,{module:e,index:r,onClick:()=>c?.(e.id),isAtRisk:a.length>0,badgeLabel:e.status!=="Not Started"?e.status:void 0},e.id))})]})};export{H as default}; +import{r as p,c as h,j as t}from"./vendor-react-Dexh7fmo.js";import{u as S,o as k,p as v,g as w,A as C}from"./index-CmBdDSkw.js";import{g as L,s as M}from"./subjects-wOHUanD9.js";import{M as A}from"./ModuleFolderCard-BSQZpGub.js";import{B as E}from"./book-open-BH_yilLK.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./trending-up-6u76yy2e.js";import"./chart-column-DzJCKCOe.js";import"./clock-jSWTKlqH.js";const H=({onNavigateToModules:c,atRiskSubjects:g=[],priorityTopics:d=[]})=>{const{userProfile:i}=S(),[x,f]=p.useState(null),b=i?.grade,j=L(b),m=M.filter(e=>j.includes(e.id)),l=m.find(e=>e.id==="gen-math")??m[0],a=h.useMemo(()=>{const e=d.length>0?d:g.map(s=>k(s)).filter(s=>s!==null),r=new Set;return e.filter(s=>r.has(s)?!1:(r.add(s),!0))},[d,g]),P=h.useMemo(()=>{const e=l?.modules??[];if(a.length===0)return e;const r=new Map(a.map((s,o)=>[v[s],o]));return[...e].sort((s,o)=>{const n=r.get(s.id)??Number.POSITIVE_INFINITY,N=r.get(o.id)??Number.POSITIVE_INFINITY;return n-N})},[l?.modules,a]);p.useEffect(()=>{i?.uid&&w(i.uid).then(f).catch(console.error)},[i?.uid]);const u=P.slice(0,4).map(e=>{const o=x?.subjects?.[l.id]?.modulesProgress?.[e.id]?.lessonsCompleted?.length||0,n=e.lessons.length>0?Math.round(o/e.lessons.length*100):0;return{...e,progress:n,status:n===100?"Completed":n>0?"In Progress":"Not Started"}}),I=u.some(e=>e.progress>0)?"Continue Learning":"Start Learning";return t.jsxs("div",{children:[t.jsxs("div",{className:"flex justify-between items-center mb-6 px-1",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:"w-10 h-10 rounded-[14px] bg-indigo-50 border border-indigo-100 flex items-center justify-center text-indigo-500 shadow-inner",children:t.jsx(E,{size:20,strokeWidth:2.5})}),t.jsx("h2",{className:"font-display font-black text-[24px] text-slate-800 tracking-tight",children:I})]}),t.jsxs("button",{onClick:()=>c?.(),className:"text-primary font-bold text-sm flex items-center gap-1 hover:gap-2 transition-all bg-primary/10 px-4 py-2 rounded-xl hover:bg-primary/20",children:["View All ",t.jsx(C,{size:16})]})]}),t.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 xl:grid-cols-3 gap-6",children:u.map((e,r)=>t.jsx(A,{module:e,index:r,onClick:()=>c?.(e.id),isAtRisk:a.length>0,badgeLabel:e.status!=="Not Started"?e.status:void 0},e.id))})]})};export{H as default}; diff --git a/assets/LoginPage-BTBes4zQ.js b/assets/LoginPage-DTFoLFv7.js similarity index 96% rename from assets/LoginPage-BTBes4zQ.js rename to assets/LoginPage-DTFoLFv7.js index 768a7e583109ea5d31707c1bf042ef6dfd907ca3..2e3b0b002718364f7a9900d237b7131bcddb2907 100644 --- a/assets/LoginPage-BTBes4zQ.js +++ b/assets/LoginPage-DTFoLFv7.js @@ -1 +1 @@ -import{r as s,j as e}from"./vendor-react-Dexh7fmo.js";import{B as Me}from"./button-DWdPuxDU.js";import{I as D}from"./input-DBkKXOmF.js";import{m as r,A as te,s as se,a as Ee,b as ae}from"./index-DGWrSMOK.js";import{S as Te}from"./sparkles-DxmNHQEo.js";import{B as Re}from"./brain-DHmY5cbv.js";import{T as Ce}from"./trending-up-B2MPUPwk.js";import{A as Ie}from"./award-DpLN2BvV.js";import{U as re}from"./users-BRS21lR4.js";import{G as ie}from"./graduation-cap-Cr-ek4Bs.js";import{B as oe}from"./book-open-B5Xvd1JL.js";import{M as Le}from"./mail-D-r4ZWDN.js";import{L as le}from"./lock-C6XEepuP.js";import{E as De}from"./eye-off-DCr0gD8u.js";import{E as Be}from"./eye-pSTVqBYO.js";import{S as ze}from"./shield-check-B-VFrdlh.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const ne="/assets/shader-bg-DA7bEbBA.mp4",qe=[{id:"length",label:"At least 8 characters",test:i=>i.length>=8},{id:"upper-lower",label:"Contains uppercase and lowercase letters",test:i=>/[A-Z]/.test(i)&&/[a-z]/.test(i)},{id:"number",label:"Contains at least one number",test:i=>/\d/.test(i)},{id:"special",label:"Contains at least one special character",test:i=>/[^A-Za-z0-9]/.test(i)}],B="Use at least 8 characters with uppercase, lowercase, number, and special character.",Oe=i=>{const c=typeof i=="object"&&i!==null?i:null,o=i instanceof Error?i.message:"";if(c?.code&&typeof c.code=="string")return{code:c.code.toLowerCase(),message:o};const d=o.match(/auth\/[a-z-]+/i);return{code:d?d[0].toLowerCase():"",message:o}},_e=i=>i.replace(/^Firebase:\s*/i,"").replace(/\s*\(auth\/[a-z-]+\)\.?/i,"").trim(),ce=(i,c)=>{const{code:o,message:d}=Oe(i),h=_e(d);return o==="auth/invalid-credential"||o==="auth/wrong-password"||o==="auth/user-not-found"?"Invalid email or password. Please check your credentials and try again.":o==="auth/email-already-in-use"?"This email is already registered. Please sign in instead.":o==="auth/weak-password"||o==="auth/password-does-not-meet-requirements"?h?`Password does not meet signup requirements. ${h}`:`Password does not meet signup requirements. ${B}`:o==="auth/too-many-requests"?"Access to this account has been temporarily disabled due to many failed login attempts. You can immediately restore it by resetting your password or you can try again later.":o==="auth/network-request-failed"?"Network error. Please check your internet connection and try again.":o.startsWith("auth/")?h||c:d.includes("Firebase:")||d.includes("auth/")?c:d||c},ut=()=>{const i=["Grade 11","Grade 12"],c={"Grade 11":["STEM A","STEM B","ABM A","HUMSS A"],"Grade 12":["STEM A","STEM B","ABM A","HUMSS A"]},o={teacher:["Mathematics","Science","English","Technology","Humanities"]},[d,h]=s.useState(""),[b,z]=s.useState(""),[A,de]=s.useState(!1),[l,q]=s.useState(!1),[M,me]=s.useState(""),[n,O]=s.useState("student"),[f,ue]=s.useState("Grade 11"),[w,_]=s.useState(c["Grade 11"][0]),[g,G]=s.useState("Mathematics"),[V,x]=s.useState(!1),[v,u]=s.useState(null),[pe,xe]=s.useState(!1),[ye,he]=s.useState(!1),[E,fe]=s.useState(16),[F,U]=s.useState("primary"),[$,T]=s.useState(0),R=s.useRef(null),C=s.useRef(null),N=pe&&ye,j=s.useRef("primary"),k=s.useRef(0),S=s.useRef(!1),W=1.1,H=.34,Y=t=>{const a=Math.max(0,Math.min(1,t));Math.abs(k.current-a)<.02||(k.current=a,T(a))},Z=t=>{!Number.isFinite(t)||t<=0||Math.abs(E-t)>.05&&fe(t)},I=s.useMemo(()=>qe.map(t=>({...t,met:t.test(b)})),[b]),be=s.useMemo(()=>I.every(t=>t.met),[I]),J=s.useMemo(()=>{if(!l||!v)return!1;const t=v.toLowerCase();return t.includes("password requirements not met")||t.includes("password does not meet")},[v,l]),ge=()=>{const t=R.current?.duration;t&&Number.isFinite(t)&&t>0&&Z(t)},ve=()=>{const t=C.current?.duration;t&&Number.isFinite(t)&&t>0&&Z(t)};s.useEffect(()=>{if(!N)return;const t=R.current,a=C.current;if(!t||!a)return;let m=!1,p=0;j.current="primary",U("primary"),S.current=!1,k.current=0,T(0),t.loop=!1,a.loop=!1,t.currentTime=0,a.currentTime=0,a.pause(),t.play().catch(()=>{});const P=()=>{if(m)return;const y=j.current==="primary"?t:a,K=j.current==="primary"?a:t,Pe=Number.isFinite(y.duration)&&y.duration>0?y.duration:E,L=Math.max(Pe-y.currentTime,0);if(L<=W){S.current||(S.current=!0,K.currentTime=0,K.play().catch(()=>{}));const Ae=1-L/W;if(Y(Ae),L<=.03||y.ended){y.pause(),y.currentTime=0;const ee=j.current==="primary"?"secondary":"primary";j.current=ee,U(ee),S.current=!1,k.current=0,T(0)}}else Y(0);p=window.requestAnimationFrame(P)};return p=window.requestAnimationFrame(P),()=>{m=!0,p&&window.cancelAnimationFrame(p)}},[E,N]);const Q=N?H*(1-$):0,X=N?H*$:0,je=F==="primary"?Q:X,we=F==="secondary"?Q:X;s.useEffect(()=>{n==="teacher"&&!o.teacher.includes(g)&&G(o.teacher[0])},[g,n]),s.useEffect(()=>{const t=c[f]||[];t.length>0&&!t.includes(w)&&_(t[0])},[f,w]);const Ne=[{label:"Student",role:"student",email:"teststudent@school.edu",password:"TestPass123!",icon:ie,color:"sky"},{label:"Teacher",role:"teacher",email:"testteacher@school.edu",password:"TestPass123!",icon:oe,color:"emerald"},{label:"Admin",role:"admin",email:"testadmin@school.edu",password:"TestPass123!",icon:ze,color:"rose"}],ke=async(t,a,m)=>{u(null),x(!0),h(t),z(a),O(m),q(!1);try{se(m),await ae(t,a)}catch(p){u(ce(p,"Demo sign-in failed. Please try again.")),x(!1)}},Se=async t=>{t.preventDefault(),u(null),x(!0);try{if(l){if(!M.trim()){u("Please enter your name"),x(!1);return}if(n==="student"&&!f){u("Please select a grade level"),x(!1);return}if(n!=="student"&&!g){u("Please select a department"),x(!1);return}if(n==="admin"){u("Admin account creation is restricted. Please contact an existing administrator."),x(!1);return}if(!be){u(`Password does not meet signup requirements. ${B}`),x(!1);return}se(n),await Ee(d,b,M,n,n==="student"?{grade:f,section:w}:{department:g})}else await ae(d,b)}catch(a){const m=l?`Sign-up failed. ${B}`:"Sign-in failed. Please check your credentials and try again.";u(ce(a,m)),x(!1)}};return e.jsxs("div",{className:"h-screen w-full flex items-center justify-center px-6 overflow-hidden relative",style:{background:"linear-gradient(135deg, #f0f9ff 0%, #f8fafc 30%, #fff1f2 60%, #f0f9ff 100%)"},children:[e.jsx("video",{ref:R,autoPlay:!0,muted:!0,playsInline:!0,preload:"auto",onCanPlay:()=>xe(!0),onLoadedMetadata:ge,className:"absolute inset-0 w-full h-full object-cover transition-opacity duration-150",style:{opacity:je},src:ne}),e.jsx("video",{ref:C,autoPlay:!0,muted:!0,playsInline:!0,preload:"auto",onCanPlay:()=>he(!0),onLoadedMetadata:ve,className:"absolute inset-0 w-full h-full object-cover transition-opacity duration-150",style:{opacity:we},src:ne}),e.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(ellipse at 30% 50%, rgba(240,249,255,0.2) 0%, rgba(248,250,252,0.5) 50%, rgba(255,241,242,0.4) 80%, rgba(248,250,252,0.85) 100%)"}}),e.jsx("div",{className:"absolute top-[10%] left-[-10%] w-[60%] h-[60%] rounded-full blur-[140px] pointer-events-none mix-blend-multiply",style:{background:"radial-gradient(circle, rgba(168,85,247,0.3) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute bottom-[-10%] right-[-10%] w-[70%] h-[70%] rounded-full blur-[160px] pointer-events-none mix-blend-multiply",style:{background:"radial-gradient(circle, rgba(236,72,153,0.25) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute top-[40%] left-[40%] w-[40%] h-[40%] rounded-full blur-[120px] pointer-events-none mix-blend-screen",style:{background:"radial-gradient(circle, rgba(56,189,248,0.2) 0%, transparent 70%)"}}),e.jsx("div",{className:"relative z-10 w-full max-w-6xl mx-auto",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-12 items-center",children:[e.jsxs(r.div,{initial:{opacity:0,x:-40},animate:{opacity:1,x:0},transition:{duration:.8,ease:[.22,1,.36,1]},className:"flex flex-col justify-center space-y-8",children:[e.jsxs(r.div,{className:"flex items-center gap-2.5",children:[e.jsx(r.div,{className:"relative flex items-center justify-center drop-shadow-md",children:e.jsx("img",{src:"/mathpulse_logo.png",alt:"MathPulse AI Logo",className:"w-16 h-16 object-contain flex-shrink-0"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-display font-black tracking-tight text-slate-900 bg-clip-text text-transparent bg-gradient-to-r from-purple-600 via-pink-600 to-sky-500",children:"MathPulse"}),e.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5",children:[e.jsx(Te,{size:12,className:"text-rose-500"}),e.jsx("span",{className:"text-xs text-slate-500 font-body font-medium tracking-wide",children:"Powered by Machine Learning"})]})]})]}),e.jsxs(r.div,{className:"space-y-5",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.2,duration:.8},children:[e.jsxs("h2",{className:"text-4xl lg:text-5xl xl:text-[3.4rem] font-display font-extrabold leading-[1.1] tracking-tight text-slate-900",children:["Transform Your",e.jsx("br",{}),e.jsx("span",{className:"bg-gradient-to-r from-sky-600 via-cyan-500 to-sky-500 bg-clip-text text-transparent",children:"Math Journey"})]}),e.jsx("p",{className:"text-base text-slate-500 leading-relaxed max-w-md font-body",children:"AI-powered predictive system designed to identify at-risk students and provide personalized learning recommendations."})]}),e.jsx("div",{className:"grid grid-cols-3 gap-3",children:[{icon:Re,label:"AI Predictions",desc:"Smart detection",color:"sky"},{icon:Ce,label:"Analytics",desc:"Real-time data",color:"rose"},{icon:Ie,label:"Gamified",desc:"Learn & earn",color:"emerald"}].map((t,a)=>{const m=t.icon,p={sky:"border-sky-200/60 hover:border-sky-300",rose:"border-rose-200/60 hover:border-rose-300",emerald:"border-emerald-200/60 hover:border-emerald-300"},P={sky:"text-sky-600",rose:"text-rose-500",emerald:"text-emerald-600"},y={sky:"bg-sky-100",rose:"bg-rose-100",emerald:"bg-emerald-100"};return e.jsxs(r.div,{className:`bg-white/80 backdrop-blur-xl border ${p[t.color]} rounded-xl p-4 transition-all cursor-pointer group shadow-md shadow-slate-900/[0.04]`,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.5+a*.1},whileHover:{scale:1.03,y:-4},children:[e.jsx("div",{className:`w-9 h-9 rounded-lg ${y[t.color]} flex items-center justify-center mb-3`,children:e.jsx(m,{size:18,className:P[t.color]})}),e.jsx("h3",{className:"text-sm font-display font-semibold text-slate-800 mb-0.5",children:t.label}),e.jsx("p",{className:"text-xs text-slate-400 font-body",children:t.desc})]},a)})})]}),e.jsx(r.div,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8,delay:.15,ease:[.22,1,.36,1]},className:"relative flex justify-center lg:justify-end",children:e.jsxs("div",{className:"bg-white/85 backdrop-blur-2xl border border-slate-200/60 rounded-3xl p-7 w-full max-w-md relative overflow-hidden shadow-[0_20px_60px_-15px_rgba(168,85,247,0.15)]",children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-[3px] bg-gradient-to-r from-purple-500 via-pink-500 to-sky-500"}),e.jsx("div",{className:"absolute -top-40 left-1/2 -translate-x-1/2 w-80 h-80 bg-gradient-to-br from-purple-400/20 to-pink-400/20 rounded-full blur-[60px] pointer-events-none"}),e.jsxs("div",{className:"text-center mb-6 relative",children:[e.jsx(r.h3,{className:"text-2xl font-display font-bold text-slate-900 mb-2",initial:{opacity:0},animate:{opacity:1},transition:{delay:.4},children:l?"Create Account":"Welcome Back"}),e.jsx(r.p,{className:"text-sm text-slate-500 font-body",initial:{opacity:0},animate:{opacity:1},transition:{delay:.5},children:l?"Begin your learning journey":"Sign in to continue learning"})]}),e.jsxs("form",{onSubmit:Se,className:"space-y-4 mb-5 relative",children:[v&&!J&&e.jsx(r.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},className:"bg-rose-50 border border-rose-200 text-rose-600 px-4 py-3 rounded-lg text-sm font-body",children:v}),l&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Full Name"}),e.jsxs("div",{className:"relative",children:[e.jsx(re,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx(D,{type:"text",placeholder:"Your Name",value:M,onChange:t=>me(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border-slate-200/80 text-slate-900 placeholder:text-slate-400 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all",required:!0})]})]}),l&&e.jsxs(r.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.45},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Account Type"}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:[{role:"student",label:"Student"},{role:"teacher",label:"Teacher"}].map(t=>{const a=n===t.role;return e.jsx("button",{type:"button",onClick:()=>O(t.role),className:`rounded-lg border px-3 py-2 text-xs font-body font-semibold transition-all ${a?"border-sky-400 bg-sky-50 text-sky-700":"border-slate-200 bg-slate-50 text-slate-500 hover:border-slate-300"}`,children:t.label},t.role)})})]}),l&&n==="student"&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Grade Level"}),e.jsxs("div",{className:"relative",children:[e.jsx(ie,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx("select",{value:f,onChange:t=>ue(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border border-slate-200/80 text-slate-900 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all appearance-none",required:!0,children:i.map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),l&&n==="student"&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Section"}),e.jsxs("div",{className:"relative",children:[e.jsx(re,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx("select",{value:w,onChange:t=>_(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border border-slate-200/80 text-slate-900 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all appearance-none",required:!0,children:(c[f]||[]).map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),l&&n!=="student"&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Department"}),e.jsxs("div",{className:"relative",children:[e.jsx(oe,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx("select",{value:g,onChange:t=>G(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border border-slate-200/80 text-slate-900 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all appearance-none",required:!0,children:o.teacher.map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),e.jsxs(r.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.5},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Email Address"}),e.jsxs("div",{className:"relative",children:[e.jsx(Le,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx(D,{type:"email",placeholder:"your.email@school.edu",value:d,onChange:t=>h(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border-slate-200/80 text-slate-900 placeholder:text-slate-400 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all",required:!0})]})]}),e.jsxs(r.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.6},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Password"}),e.jsxs("div",{className:"relative",children:[e.jsx(le,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx(D,{type:A?"text":"password",placeholder:"••••••••",value:b,onChange:t=>z(t.target.value),className:"w-full pl-11 pr-11 py-3 rounded-lg bg-slate-100/70 border-slate-200/80 text-slate-900 placeholder:text-slate-400 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all",required:!0,minLength:l?8:6}),e.jsx(r.button,{type:"button",onClick:()=>de(!A),className:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 transition-colors",whileTap:{scale:.9},children:A?e.jsx(De,{size:16}):e.jsx(Be,{size:16})})]}),l&&e.jsxs("div",{className:"mt-2 rounded-lg border border-sky-100/80 bg-sky-50/70 px-3 py-2",children:[e.jsx("p",{className:"text-[11px] font-body font-semibold uppercase tracking-wider text-slate-600",children:"Password requirements"}),e.jsx("ul",{className:"mt-2 space-y-1",children:I.map(t=>e.jsxs("li",{className:`flex items-center gap-2 text-[11px] font-body ${t.met?"text-emerald-700":"text-slate-500"}`,children:[e.jsx("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${t.met?"bg-emerald-500":"bg-slate-300"}`}),e.jsx("span",{children:t.label})]},t.id))}),J&&e.jsx("p",{className:"mt-2 text-[11px] font-body font-semibold text-rose-600",children:"Password does not meet signup requirements."})]})]}),e.jsx(r.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.7},children:e.jsxs(Me,{type:"submit",disabled:V,className:"w-full bg-gradient-to-r from-purple-600 to-pink-500 hover:from-purple-500 hover:to-pink-400 text-white font-body font-semibold py-3 rounded-xl shadow-lg shadow-purple-600/25 hover:shadow-pink-500/35 hover:scale-[1.02] transition-all text-sm group relative overflow-hidden disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(r.span,{className:"absolute inset-0 bg-gradient-to-r from-white/0 via-white/15 to-white/0",animate:{x:["-100%","100%"]},transition:{duration:3,repeat:1/0,repeatDelay:2}}),e.jsxs("span",{className:"relative flex items-center justify-center gap-2",children:[V?"Please wait...":l?"Create Account":"Sign In",e.jsx(te,{size:16,className:"group-hover:translate-x-1 transition-transform"})]})]})}),e.jsx("div",{className:"text-center",children:e.jsx("button",{type:"button",onClick:()=>{q(!l),u(null)},className:"text-sm text-slate-400 hover:text-sky-500 font-body font-medium transition-colors",children:l?"Already have an account? Sign in":"Don't have an account? Create one"})})]}),!l&&e.jsxs(r.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.85},className:"mb-4 relative",children:[e.jsxs("div",{className:"relative flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"flex-1 h-px bg-slate-200"}),e.jsx("span",{className:"text-[10px] font-body font-semibold text-slate-400 uppercase tracking-widest",children:"Quick Demo Access"}),e.jsx("div",{className:"flex-1 h-px bg-slate-200"})]}),e.jsx("div",{className:"flex flex-col gap-2",children:Ne.map(t=>{const a=t.icon,m={sky:"bg-sky-100",emerald:"bg-emerald-100",rose:"bg-rose-100"},p={sky:"text-sky-600",emerald:"text-emerald-600",rose:"text-rose-500"};return e.jsxs(r.button,{type:"button",onClick:()=>ke(t.email,t.password,t.role),className:"group flex items-center gap-3 w-full px-4 py-2.5 rounded-lg bg-slate-50/80 border border-slate-200/70 hover:border-sky-300 hover:bg-sky-50/80 hover:shadow-sm transition-all text-left",whileHover:{scale:1.01},whileTap:{scale:.99},children:[e.jsx("div",{className:`w-8 h-8 rounded-md flex items-center justify-center shrink-0 ${m[t.color]}`,children:e.jsx(a,{size:15,className:p[t.color]})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-xs font-body font-semibold text-slate-700 group-hover:text-sky-600 transition-colors",children:[t.label," Account"]}),e.jsx("p",{className:"text-[10px] text-slate-400 font-body truncate",children:t.email})]}),e.jsx(te,{size:14,className:"text-slate-300 group-hover:text-sky-500 group-hover:translate-x-0.5 transition-all shrink-0"})]},t.label)})})]}),e.jsxs(r.p,{className:"text-xs text-slate-400 text-center mt-4 font-body relative",initial:{opacity:0},animate:{opacity:1},transition:{delay:1},children:[e.jsx(le,{size:10,className:"inline mr-1 -mt-0.5"})," Your data is encrypted and secure"]})]})})]})})]})};export{ut as default}; +import{r as s,j as e}from"./vendor-react-Dexh7fmo.js";import{B as Me}from"./button-BP5cklmU.js";import{I as D}from"./input-DBkKXOmF.js";import{m as r,A as te,s as se,a as Ee,b as ae}from"./index-CmBdDSkw.js";import{S as Te}from"./sparkles-D6B_TX7M.js";import{B as Re}from"./brain-DfMjTiNx.js";import{T as Ce}from"./trending-up-6u76yy2e.js";import{A as Ie}from"./award-COlS18fi.js";import{U as re}from"./users-CdMqBLwG.js";import{G as ie}from"./graduation-cap-BxtuU7H1.js";import{B as oe}from"./book-open-BH_yilLK.js";import{M as Le}from"./mail-BuupduAm.js";import{L as le}from"./lock-Dt6Po_Oi.js";import{E as De}from"./eye-off-D800Xx6k.js";import{E as Be}from"./eye-DyGZzCgK.js";import{S as ze}from"./shield-check-CnzWVIYd.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const ne="/assets/shader-bg-DA7bEbBA.mp4",qe=[{id:"length",label:"At least 8 characters",test:i=>i.length>=8},{id:"upper-lower",label:"Contains uppercase and lowercase letters",test:i=>/[A-Z]/.test(i)&&/[a-z]/.test(i)},{id:"number",label:"Contains at least one number",test:i=>/\d/.test(i)},{id:"special",label:"Contains at least one special character",test:i=>/[^A-Za-z0-9]/.test(i)}],B="Use at least 8 characters with uppercase, lowercase, number, and special character.",Oe=i=>{const c=typeof i=="object"&&i!==null?i:null,o=i instanceof Error?i.message:"";if(c?.code&&typeof c.code=="string")return{code:c.code.toLowerCase(),message:o};const d=o.match(/auth\/[a-z-]+/i);return{code:d?d[0].toLowerCase():"",message:o}},_e=i=>i.replace(/^Firebase:\s*/i,"").replace(/\s*\(auth\/[a-z-]+\)\.?/i,"").trim(),ce=(i,c)=>{const{code:o,message:d}=Oe(i),h=_e(d);return o==="auth/invalid-credential"||o==="auth/wrong-password"||o==="auth/user-not-found"?"Invalid email or password. Please check your credentials and try again.":o==="auth/email-already-in-use"?"This email is already registered. Please sign in instead.":o==="auth/weak-password"||o==="auth/password-does-not-meet-requirements"?h?`Password does not meet signup requirements. ${h}`:`Password does not meet signup requirements. ${B}`:o==="auth/too-many-requests"?"Access to this account has been temporarily disabled due to many failed login attempts. You can immediately restore it by resetting your password or you can try again later.":o==="auth/network-request-failed"?"Network error. Please check your internet connection and try again.":o.startsWith("auth/")?h||c:d.includes("Firebase:")||d.includes("auth/")?c:d||c},ut=()=>{const i=["Grade 11","Grade 12"],c={"Grade 11":["STEM A","STEM B","ABM A","HUMSS A"],"Grade 12":["STEM A","STEM B","ABM A","HUMSS A"]},o={teacher:["Mathematics","Science","English","Technology","Humanities"]},[d,h]=s.useState(""),[b,z]=s.useState(""),[A,de]=s.useState(!1),[l,q]=s.useState(!1),[M,me]=s.useState(""),[n,O]=s.useState("student"),[f,ue]=s.useState("Grade 11"),[w,_]=s.useState(c["Grade 11"][0]),[g,G]=s.useState("Mathematics"),[V,x]=s.useState(!1),[v,u]=s.useState(null),[pe,xe]=s.useState(!1),[ye,he]=s.useState(!1),[E,fe]=s.useState(16),[F,U]=s.useState("primary"),[$,T]=s.useState(0),R=s.useRef(null),C=s.useRef(null),N=pe&&ye,j=s.useRef("primary"),k=s.useRef(0),S=s.useRef(!1),W=1.1,H=.34,Y=t=>{const a=Math.max(0,Math.min(1,t));Math.abs(k.current-a)<.02||(k.current=a,T(a))},Z=t=>{!Number.isFinite(t)||t<=0||Math.abs(E-t)>.05&&fe(t)},I=s.useMemo(()=>qe.map(t=>({...t,met:t.test(b)})),[b]),be=s.useMemo(()=>I.every(t=>t.met),[I]),J=s.useMemo(()=>{if(!l||!v)return!1;const t=v.toLowerCase();return t.includes("password requirements not met")||t.includes("password does not meet")},[v,l]),ge=()=>{const t=R.current?.duration;t&&Number.isFinite(t)&&t>0&&Z(t)},ve=()=>{const t=C.current?.duration;t&&Number.isFinite(t)&&t>0&&Z(t)};s.useEffect(()=>{if(!N)return;const t=R.current,a=C.current;if(!t||!a)return;let m=!1,p=0;j.current="primary",U("primary"),S.current=!1,k.current=0,T(0),t.loop=!1,a.loop=!1,t.currentTime=0,a.currentTime=0,a.pause(),t.play().catch(()=>{});const P=()=>{if(m)return;const y=j.current==="primary"?t:a,K=j.current==="primary"?a:t,Pe=Number.isFinite(y.duration)&&y.duration>0?y.duration:E,L=Math.max(Pe-y.currentTime,0);if(L<=W){S.current||(S.current=!0,K.currentTime=0,K.play().catch(()=>{}));const Ae=1-L/W;if(Y(Ae),L<=.03||y.ended){y.pause(),y.currentTime=0;const ee=j.current==="primary"?"secondary":"primary";j.current=ee,U(ee),S.current=!1,k.current=0,T(0)}}else Y(0);p=window.requestAnimationFrame(P)};return p=window.requestAnimationFrame(P),()=>{m=!0,p&&window.cancelAnimationFrame(p)}},[E,N]);const Q=N?H*(1-$):0,X=N?H*$:0,je=F==="primary"?Q:X,we=F==="secondary"?Q:X;s.useEffect(()=>{n==="teacher"&&!o.teacher.includes(g)&&G(o.teacher[0])},[g,n]),s.useEffect(()=>{const t=c[f]||[];t.length>0&&!t.includes(w)&&_(t[0])},[f,w]);const Ne=[{label:"Student",role:"student",email:"teststudent@school.edu",password:"TestPass123!",icon:ie,color:"sky"},{label:"Teacher",role:"teacher",email:"testteacher@school.edu",password:"TestPass123!",icon:oe,color:"emerald"},{label:"Admin",role:"admin",email:"testadmin@school.edu",password:"TestPass123!",icon:ze,color:"rose"}],ke=async(t,a,m)=>{u(null),x(!0),h(t),z(a),O(m),q(!1);try{se(m),await ae(t,a)}catch(p){u(ce(p,"Demo sign-in failed. Please try again.")),x(!1)}},Se=async t=>{t.preventDefault(),u(null),x(!0);try{if(l){if(!M.trim()){u("Please enter your name"),x(!1);return}if(n==="student"&&!f){u("Please select a grade level"),x(!1);return}if(n!=="student"&&!g){u("Please select a department"),x(!1);return}if(n==="admin"){u("Admin account creation is restricted. Please contact an existing administrator."),x(!1);return}if(!be){u(`Password does not meet signup requirements. ${B}`),x(!1);return}se(n),await Ee(d,b,M,n,n==="student"?{grade:f,section:w}:{department:g})}else await ae(d,b)}catch(a){const m=l?`Sign-up failed. ${B}`:"Sign-in failed. Please check your credentials and try again.";u(ce(a,m)),x(!1)}};return e.jsxs("div",{className:"h-screen w-full flex items-center justify-center px-6 overflow-hidden relative",style:{background:"linear-gradient(135deg, #f0f9ff 0%, #f8fafc 30%, #fff1f2 60%, #f0f9ff 100%)"},children:[e.jsx("video",{ref:R,autoPlay:!0,muted:!0,playsInline:!0,preload:"auto",onCanPlay:()=>xe(!0),onLoadedMetadata:ge,className:"absolute inset-0 w-full h-full object-cover transition-opacity duration-150",style:{opacity:je},src:ne}),e.jsx("video",{ref:C,autoPlay:!0,muted:!0,playsInline:!0,preload:"auto",onCanPlay:()=>he(!0),onLoadedMetadata:ve,className:"absolute inset-0 w-full h-full object-cover transition-opacity duration-150",style:{opacity:we},src:ne}),e.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(ellipse at 30% 50%, rgba(240,249,255,0.2) 0%, rgba(248,250,252,0.5) 50%, rgba(255,241,242,0.4) 80%, rgba(248,250,252,0.85) 100%)"}}),e.jsx("div",{className:"absolute top-[10%] left-[-10%] w-[60%] h-[60%] rounded-full blur-[140px] pointer-events-none mix-blend-multiply",style:{background:"radial-gradient(circle, rgba(168,85,247,0.3) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute bottom-[-10%] right-[-10%] w-[70%] h-[70%] rounded-full blur-[160px] pointer-events-none mix-blend-multiply",style:{background:"radial-gradient(circle, rgba(236,72,153,0.25) 0%, transparent 70%)"}}),e.jsx("div",{className:"absolute top-[40%] left-[40%] w-[40%] h-[40%] rounded-full blur-[120px] pointer-events-none mix-blend-screen",style:{background:"radial-gradient(circle, rgba(56,189,248,0.2) 0%, transparent 70%)"}}),e.jsx("div",{className:"relative z-10 w-full max-w-6xl mx-auto",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-12 items-center",children:[e.jsxs(r.div,{initial:{opacity:0,x:-40},animate:{opacity:1,x:0},transition:{duration:.8,ease:[.22,1,.36,1]},className:"flex flex-col justify-center space-y-8",children:[e.jsxs(r.div,{className:"flex items-center gap-2.5",children:[e.jsx(r.div,{className:"relative flex items-center justify-center drop-shadow-md",children:e.jsx("img",{src:"/mathpulse_logo.png",alt:"MathPulse AI Logo",className:"w-16 h-16 object-contain flex-shrink-0"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-display font-black tracking-tight text-slate-900 bg-clip-text text-transparent bg-gradient-to-r from-purple-600 via-pink-600 to-sky-500",children:"MathPulse"}),e.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5",children:[e.jsx(Te,{size:12,className:"text-rose-500"}),e.jsx("span",{className:"text-xs text-slate-500 font-body font-medium tracking-wide",children:"Powered by Machine Learning"})]})]})]}),e.jsxs(r.div,{className:"space-y-5",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.2,duration:.8},children:[e.jsxs("h2",{className:"text-4xl lg:text-5xl xl:text-[3.4rem] font-display font-extrabold leading-[1.1] tracking-tight text-slate-900",children:["Transform Your",e.jsx("br",{}),e.jsx("span",{className:"bg-gradient-to-r from-sky-600 via-cyan-500 to-sky-500 bg-clip-text text-transparent",children:"Math Journey"})]}),e.jsx("p",{className:"text-base text-slate-500 leading-relaxed max-w-md font-body",children:"AI-powered predictive system designed to identify at-risk students and provide personalized learning recommendations."})]}),e.jsx("div",{className:"grid grid-cols-3 gap-3",children:[{icon:Re,label:"AI Predictions",desc:"Smart detection",color:"sky"},{icon:Ce,label:"Analytics",desc:"Real-time data",color:"rose"},{icon:Ie,label:"Gamified",desc:"Learn & earn",color:"emerald"}].map((t,a)=>{const m=t.icon,p={sky:"border-sky-200/60 hover:border-sky-300",rose:"border-rose-200/60 hover:border-rose-300",emerald:"border-emerald-200/60 hover:border-emerald-300"},P={sky:"text-sky-600",rose:"text-rose-500",emerald:"text-emerald-600"},y={sky:"bg-sky-100",rose:"bg-rose-100",emerald:"bg-emerald-100"};return e.jsxs(r.div,{className:`bg-white/80 backdrop-blur-xl border ${p[t.color]} rounded-xl p-4 transition-all cursor-pointer group shadow-md shadow-slate-900/[0.04]`,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.5+a*.1},whileHover:{scale:1.03,y:-4},children:[e.jsx("div",{className:`w-9 h-9 rounded-lg ${y[t.color]} flex items-center justify-center mb-3`,children:e.jsx(m,{size:18,className:P[t.color]})}),e.jsx("h3",{className:"text-sm font-display font-semibold text-slate-800 mb-0.5",children:t.label}),e.jsx("p",{className:"text-xs text-slate-400 font-body",children:t.desc})]},a)})})]}),e.jsx(r.div,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8,delay:.15,ease:[.22,1,.36,1]},className:"relative flex justify-center lg:justify-end",children:e.jsxs("div",{className:"bg-white/85 backdrop-blur-2xl border border-slate-200/60 rounded-3xl p-7 w-full max-w-md relative overflow-hidden shadow-[0_20px_60px_-15px_rgba(168,85,247,0.15)]",children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-[3px] bg-gradient-to-r from-purple-500 via-pink-500 to-sky-500"}),e.jsx("div",{className:"absolute -top-40 left-1/2 -translate-x-1/2 w-80 h-80 bg-gradient-to-br from-purple-400/20 to-pink-400/20 rounded-full blur-[60px] pointer-events-none"}),e.jsxs("div",{className:"text-center mb-6 relative",children:[e.jsx(r.h3,{className:"text-2xl font-display font-bold text-slate-900 mb-2",initial:{opacity:0},animate:{opacity:1},transition:{delay:.4},children:l?"Create Account":"Welcome Back"}),e.jsx(r.p,{className:"text-sm text-slate-500 font-body",initial:{opacity:0},animate:{opacity:1},transition:{delay:.5},children:l?"Begin your learning journey":"Sign in to continue learning"})]}),e.jsxs("form",{onSubmit:Se,className:"space-y-4 mb-5 relative",children:[v&&!J&&e.jsx(r.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},className:"bg-rose-50 border border-rose-200 text-rose-600 px-4 py-3 rounded-lg text-sm font-body",children:v}),l&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Full Name"}),e.jsxs("div",{className:"relative",children:[e.jsx(re,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx(D,{type:"text",placeholder:"Your Name",value:M,onChange:t=>me(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border-slate-200/80 text-slate-900 placeholder:text-slate-400 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all",required:!0})]})]}),l&&e.jsxs(r.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.45},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Account Type"}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:[{role:"student",label:"Student"},{role:"teacher",label:"Teacher"}].map(t=>{const a=n===t.role;return e.jsx("button",{type:"button",onClick:()=>O(t.role),className:`rounded-lg border px-3 py-2 text-xs font-body font-semibold transition-all ${a?"border-sky-400 bg-sky-50 text-sky-700":"border-slate-200 bg-slate-50 text-slate-500 hover:border-slate-300"}`,children:t.label},t.role)})})]}),l&&n==="student"&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Grade Level"}),e.jsxs("div",{className:"relative",children:[e.jsx(ie,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx("select",{value:f,onChange:t=>ue(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border border-slate-200/80 text-slate-900 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all appearance-none",required:!0,children:i.map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),l&&n==="student"&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Section"}),e.jsxs("div",{className:"relative",children:[e.jsx(re,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx("select",{value:w,onChange:t=>_(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border border-slate-200/80 text-slate-900 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all appearance-none",required:!0,children:(c[f]||[]).map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),l&&n!=="student"&&e.jsxs(r.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Department"}),e.jsxs("div",{className:"relative",children:[e.jsx(oe,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx("select",{value:g,onChange:t=>G(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border border-slate-200/80 text-slate-900 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all appearance-none",required:!0,children:o.teacher.map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),e.jsxs(r.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.5},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Email Address"}),e.jsxs("div",{className:"relative",children:[e.jsx(Le,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx(D,{type:"email",placeholder:"your.email@school.edu",value:d,onChange:t=>h(t.target.value),className:"w-full pl-11 pr-4 py-3 rounded-lg bg-slate-100/70 border-slate-200/80 text-slate-900 placeholder:text-slate-400 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all",required:!0})]})]}),e.jsxs(r.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.6},children:[e.jsx("label",{className:"block text-xs font-body font-semibold text-slate-500 mb-2 uppercase tracking-wider",children:"Password"}),e.jsxs("div",{className:"relative",children:[e.jsx(le,{size:16,className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"}),e.jsx(D,{type:A?"text":"password",placeholder:"••••••••",value:b,onChange:t=>z(t.target.value),className:"w-full pl-11 pr-11 py-3 rounded-lg bg-slate-100/70 border-slate-200/80 text-slate-900 placeholder:text-slate-400 focus:border-sky-400 focus:ring-2 focus:ring-sky-400/20 focus:bg-white text-sm font-body transition-all",required:!0,minLength:l?8:6}),e.jsx(r.button,{type:"button",onClick:()=>de(!A),className:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 transition-colors",whileTap:{scale:.9},children:A?e.jsx(De,{size:16}):e.jsx(Be,{size:16})})]}),l&&e.jsxs("div",{className:"mt-2 rounded-lg border border-sky-100/80 bg-sky-50/70 px-3 py-2",children:[e.jsx("p",{className:"text-[11px] font-body font-semibold uppercase tracking-wider text-slate-600",children:"Password requirements"}),e.jsx("ul",{className:"mt-2 space-y-1",children:I.map(t=>e.jsxs("li",{className:`flex items-center gap-2 text-[11px] font-body ${t.met?"text-emerald-700":"text-slate-500"}`,children:[e.jsx("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${t.met?"bg-emerald-500":"bg-slate-300"}`}),e.jsx("span",{children:t.label})]},t.id))}),J&&e.jsx("p",{className:"mt-2 text-[11px] font-body font-semibold text-rose-600",children:"Password does not meet signup requirements."})]})]}),e.jsx(r.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.7},children:e.jsxs(Me,{type:"submit",disabled:V,className:"w-full bg-gradient-to-r from-purple-600 to-pink-500 hover:from-purple-500 hover:to-pink-400 text-white font-body font-semibold py-3 rounded-xl shadow-lg shadow-purple-600/25 hover:shadow-pink-500/35 hover:scale-[1.02] transition-all text-sm group relative overflow-hidden disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(r.span,{className:"absolute inset-0 bg-gradient-to-r from-white/0 via-white/15 to-white/0",animate:{x:["-100%","100%"]},transition:{duration:3,repeat:1/0,repeatDelay:2}}),e.jsxs("span",{className:"relative flex items-center justify-center gap-2",children:[V?"Please wait...":l?"Create Account":"Sign In",e.jsx(te,{size:16,className:"group-hover:translate-x-1 transition-transform"})]})]})}),e.jsx("div",{className:"text-center",children:e.jsx("button",{type:"button",onClick:()=>{q(!l),u(null)},className:"text-sm text-slate-400 hover:text-sky-500 font-body font-medium transition-colors",children:l?"Already have an account? Sign in":"Don't have an account? Create one"})})]}),!l&&e.jsxs(r.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.85},className:"mb-4 relative",children:[e.jsxs("div",{className:"relative flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"flex-1 h-px bg-slate-200"}),e.jsx("span",{className:"text-[10px] font-body font-semibold text-slate-400 uppercase tracking-widest",children:"Quick Demo Access"}),e.jsx("div",{className:"flex-1 h-px bg-slate-200"})]}),e.jsx("div",{className:"flex flex-col gap-2",children:Ne.map(t=>{const a=t.icon,m={sky:"bg-sky-100",emerald:"bg-emerald-100",rose:"bg-rose-100"},p={sky:"text-sky-600",emerald:"text-emerald-600",rose:"text-rose-500"};return e.jsxs(r.button,{type:"button",onClick:()=>ke(t.email,t.password,t.role),className:"group flex items-center gap-3 w-full px-4 py-2.5 rounded-lg bg-slate-50/80 border border-slate-200/70 hover:border-sky-300 hover:bg-sky-50/80 hover:shadow-sm transition-all text-left",whileHover:{scale:1.01},whileTap:{scale:.99},children:[e.jsx("div",{className:`w-8 h-8 rounded-md flex items-center justify-center shrink-0 ${m[t.color]}`,children:e.jsx(a,{size:15,className:p[t.color]})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-xs font-body font-semibold text-slate-700 group-hover:text-sky-600 transition-colors",children:[t.label," Account"]}),e.jsx("p",{className:"text-[10px] text-slate-400 font-body truncate",children:t.email})]}),e.jsx(te,{size:14,className:"text-slate-300 group-hover:text-sky-500 group-hover:translate-x-0.5 transition-all shrink-0"})]},t.label)})})]}),e.jsxs(r.p,{className:"text-xs text-slate-400 text-center mt-4 font-body relative",initial:{opacity:0},animate:{opacity:1},transition:{delay:1},children:[e.jsx(le,{size:10,className:"inline mr-1 -mt-0.5"})," Your data is encrypted and secure"]})]})})]})})]})};export{ut as default}; diff --git a/assets/LogoutActionButton-D-8gok3U.js b/assets/LogoutActionButton-TpO-by05.js similarity index 94% rename from assets/LogoutActionButton-D-8gok3U.js rename to assets/LogoutActionButton-TpO-by05.js index cf86eb9f91f0f5ea050d5f5acb8affc4d6a69907..c6a6682493aa718d3ff352c599076c6f7b2f4f79 100644 --- a/assets/LogoutActionButton-D-8gok3U.js +++ b/assets/LogoutActionButton-TpO-by05.js @@ -1,4 +1,4 @@ -import{c as a,m as s}from"./index-DGWrSMOK.js";import{j as e}from"./vendor-react-Dexh7fmo.js";import{c as n}from"./utils-BQQgILNW.js";import{L as i}from"./log-out-DYYu4gFF.js";/** +import{c as a,m as s}from"./index-CmBdDSkw.js";import{j as e}from"./vendor-react-Dexh7fmo.js";import{c as n}from"./utils-BQQgILNW.js";import{L as i}from"./log-out-QZHYEhcR.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/MathAnswerInput-Bx58557t.js b/assets/MathAnswerInput-DOzNwadV.js similarity index 98% rename from assets/MathAnswerInput-Bx58557t.js rename to assets/MathAnswerInput-DOzNwadV.js index 1e868a30208ff35174182fbadd8af49576bd83e7..764096accb2582410f67bb7a73b896f4272726d8 100644 --- a/assets/MathAnswerInput-Bx58557t.js +++ b/assets/MathAnswerInput-DOzNwadV.js @@ -1 +1 @@ -import{r as c,c as y,j as e}from"./vendor-react-Dexh7fmo.js";import{C as P}from"./index-DGWrSMOK.js";const N={0:"⁰",1:"¹",2:"²",3:"³",4:"⁴",5:"⁵",6:"⁶",7:"⁷",8:"⁸",9:"⁹"};function S(i){let t=i;return t=t.replace(/sin⁻¹/g,"sin-1"),t=t.replace(/cos⁻¹/g,"cos-1"),t=t.replace(/tan⁻¹/g,"tan-1"),t=t.replace(/⁻¹/g,"-1"),t=t.replace(/²/g,"2"),t=t.replace(/³/g,"3"),t=t.replace(/[⁰¹⁴⁵⁶⁷⁸⁹]/g,d=>`${{"⁰":"0","¹":"1","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9"}[d]??d}`),t=t.replace(/√/g,"√"),t=t.replace(/π/g,"π"),t=t.replace(/<(?!\/?(?:sup|sub)\b)[^>]*>/gi,""),t}const R=({value:i,onChange:t,placeholder:d,onCalculatorOpen:h,onSubmit:f})=>{const[b,g]=c.useState(!1),[m,j]=c.useState(null),[w,v]=c.useState({top:0,left:0}),p=c.useRef(null),x=c.useRef(!1),s=c.useCallback(n=>{const o=p.current;if(!o){t(i+n);return}const l=o.selectionStart??i.length,u=o.selectionEnd??i.length,D=i.slice(0,l)+n+i.slice(u);t(D),setTimeout(()=>{o.setSelectionRange(l+n.length,l+n.length),o.focus()},0)},[i,t]),C=c.useCallback(n=>{const o=n.key;if(o==="Enter"){n.preventDefault(),f?.();return}if(o==="^"){x.current=!0,n.preventDefault();return}if(x.current){if(o==="-"){s("⁻"),n.preventDefault();return}if(/^[0-9]$/.test(o)&&N[o]){s(N[o]),x.current=!1,n.preventDefault();return}x.current=!1}if(o==="Tab"&&m!==null){s(m),j(null),n.preventDefault();return}setTimeout(()=>{const l=p.current?.value??i;if(l.endsWith("pi"))t(l.slice(0,-2)+"π"),j(null);else if(l.endsWith("sqrt"))t(l.slice(0,-4)+"√");else if(l.endsWith("sin-1")||l.endsWith("sin^-1")){const u=l.endsWith("sin^-1")?6:5;t(l.slice(0,-u)+"sin⁻¹")}else if(l.endsWith("cos-1")||l.endsWith("cos^-1")){const u=l.endsWith("cos^-1")?6:5;t(l.slice(0,-u)+"cos⁻¹")}else if(l.endsWith("tan-1")||l.endsWith("tan^-1")){const u=l.endsWith("tan^-1")?6:5;t(l.slice(0,-u)+"tan⁻¹")}},0)},[i,t,m,s,f]),a=c.useCallback(()=>{if(p.current){const n=p.current.getBoundingClientRect();v({top:Math.max(20,n.bottom-280),left:Math.max(10,n.left-240)})}},[]),E=c.useCallback(()=>{a(),g(!0)},[a]);y.useEffect(()=>{const n=setTimeout(()=>{a(),g(!0)},50);return()=>clearTimeout(n)},[a]),y.useEffect(()=>{if(b)return window.addEventListener("resize",a),window.addEventListener("scroll",a,!0),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0)}},[b,a]);const T=c.useCallback(()=>{},[]),k=S(i),W=k!==i&&i.length>0,r="bg-slate-100 hover:bg-slate-200 text-[#0a1628] text-sm px-2 py-1 rounded-lg transition-colors";return e.jsxs("div",{className:"relative",children:[b&&e.jsxs("div",{className:"fixed z-[60] bg-white border border-slate-200 rounded-xl shadow-xl px-3 py-3 flex flex-col gap-3 w-[220px] pointer-events-auto",style:{top:w.top,left:w.left},onMouseDown:n=>n.preventDefault(),children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Powers"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",className:r,title:"Square",onClick:()=>s("²"),children:"x²"}),e.jsx("button",{type:"button",className:r,title:"Cube",onClick:()=>s("³"),children:"x³"}),e.jsx("button",{type:"button",className:r,title:"Power",onClick:()=>s("^"),children:"xⁿ"}),e.jsx("button",{type:"button",className:r,title:"Inverse",onClick:()=>s("⁻¹"),children:"x⁻¹"}),e.jsx("button",{type:"button",className:r,title:"Square root",onClick:()=>s("√("),children:"√"}),e.jsx("button",{type:"button",className:r,title:"Cube root",onClick:()=>s("∛("),children:"∛"})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Inverse Trig"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",className:r,title:"Inverse sine",onClick:()=>s("sin⁻¹("),children:"sin⁻¹"}),e.jsx("button",{type:"button",className:r,title:"Inverse cosine",onClick:()=>s("cos⁻¹("),children:"cos⁻¹"}),e.jsx("button",{type:"button",className:r,title:"Inverse tangent",onClick:()=>s("tan⁻¹("),children:"tan⁻¹"})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Symbols"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",className:r,title:"Pi",onClick:()=>s("π"),children:"π"}),e.jsx("button",{type:"button",className:r,title:"Euler's number",onClick:()=>s("e"),children:"e"}),e.jsx("button",{type:"button",className:r,title:"Infinity",onClick:()=>s("∞"),children:"∞"}),e.jsx("button",{type:"button",className:r,title:"Plus-minus",onClick:()=>s("±"),children:"±"}),e.jsx("button",{type:"button",className:r,title:"Approximately",onClick:()=>s("≈"),children:"≈"}),e.jsx("button",{type:"button",className:r,title:"Degree",onClick:()=>s("°"),children:"°"})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Other"}),e.jsxs("div",{className:"flex gap-1 items-center",children:[e.jsx("button",{type:"button",className:r,title:"Fraction",onClick:()=>s("(/)"),children:"a/b"}),e.jsx("div",{className:"ml-auto",children:e.jsxs("button",{type:"button",className:"bg-sky-600 hover:bg-rose-500 text-white text-xs px-3 py-1 rounded-lg flex items-center gap-1",onClick:()=>h?.(),children:[e.jsx(P,{size:12}),"Use Calc"]})})]})]})]}),e.jsx("input",{ref:p,id:"math-answer-input",name:"math-answer-input","aria-label":"Math answer input",type:"text",value:i,onChange:n=>t(n.target.value),onKeyDown:C,onFocus:E,onBlur:T,placeholder:d||"Type your answer... use ^ for powers e.g. x^2 for x²",className:"w-full bg-white border border-slate-200 focus:border-sky-500 rounded-xl px-4 py-3 text-[#0a1628] font-mono text-base outline-none transition-colors"}),W&&e.jsx("div",{className:"text-rose-300 text-sm font-mono mt-1",dangerouslySetInnerHTML:{__html:k}})]})};export{R as M}; +import{r as c,c as y,j as e}from"./vendor-react-Dexh7fmo.js";import{C as P}from"./index-CmBdDSkw.js";const N={0:"⁰",1:"¹",2:"²",3:"³",4:"⁴",5:"⁵",6:"⁶",7:"⁷",8:"⁸",9:"⁹"};function S(i){let t=i;return t=t.replace(/sin⁻¹/g,"sin-1"),t=t.replace(/cos⁻¹/g,"cos-1"),t=t.replace(/tan⁻¹/g,"tan-1"),t=t.replace(/⁻¹/g,"-1"),t=t.replace(/²/g,"2"),t=t.replace(/³/g,"3"),t=t.replace(/[⁰¹⁴⁵⁶⁷⁸⁹]/g,d=>`${{"⁰":"0","¹":"1","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9"}[d]??d}`),t=t.replace(/√/g,"√"),t=t.replace(/π/g,"π"),t=t.replace(/<(?!\/?(?:sup|sub)\b)[^>]*>/gi,""),t}const R=({value:i,onChange:t,placeholder:d,onCalculatorOpen:h,onSubmit:f})=>{const[b,g]=c.useState(!1),[m,j]=c.useState(null),[w,v]=c.useState({top:0,left:0}),p=c.useRef(null),x=c.useRef(!1),s=c.useCallback(n=>{const o=p.current;if(!o){t(i+n);return}const l=o.selectionStart??i.length,u=o.selectionEnd??i.length,D=i.slice(0,l)+n+i.slice(u);t(D),setTimeout(()=>{o.setSelectionRange(l+n.length,l+n.length),o.focus()},0)},[i,t]),C=c.useCallback(n=>{const o=n.key;if(o==="Enter"){n.preventDefault(),f?.();return}if(o==="^"){x.current=!0,n.preventDefault();return}if(x.current){if(o==="-"){s("⁻"),n.preventDefault();return}if(/^[0-9]$/.test(o)&&N[o]){s(N[o]),x.current=!1,n.preventDefault();return}x.current=!1}if(o==="Tab"&&m!==null){s(m),j(null),n.preventDefault();return}setTimeout(()=>{const l=p.current?.value??i;if(l.endsWith("pi"))t(l.slice(0,-2)+"π"),j(null);else if(l.endsWith("sqrt"))t(l.slice(0,-4)+"√");else if(l.endsWith("sin-1")||l.endsWith("sin^-1")){const u=l.endsWith("sin^-1")?6:5;t(l.slice(0,-u)+"sin⁻¹")}else if(l.endsWith("cos-1")||l.endsWith("cos^-1")){const u=l.endsWith("cos^-1")?6:5;t(l.slice(0,-u)+"cos⁻¹")}else if(l.endsWith("tan-1")||l.endsWith("tan^-1")){const u=l.endsWith("tan^-1")?6:5;t(l.slice(0,-u)+"tan⁻¹")}},0)},[i,t,m,s,f]),a=c.useCallback(()=>{if(p.current){const n=p.current.getBoundingClientRect();v({top:Math.max(20,n.bottom-280),left:Math.max(10,n.left-240)})}},[]),E=c.useCallback(()=>{a(),g(!0)},[a]);y.useEffect(()=>{const n=setTimeout(()=>{a(),g(!0)},50);return()=>clearTimeout(n)},[a]),y.useEffect(()=>{if(b)return window.addEventListener("resize",a),window.addEventListener("scroll",a,!0),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0)}},[b,a]);const T=c.useCallback(()=>{},[]),k=S(i),W=k!==i&&i.length>0,r="bg-slate-100 hover:bg-slate-200 text-[#0a1628] text-sm px-2 py-1 rounded-lg transition-colors";return e.jsxs("div",{className:"relative",children:[b&&e.jsxs("div",{className:"fixed z-[60] bg-white border border-slate-200 rounded-xl shadow-xl px-3 py-3 flex flex-col gap-3 w-[220px] pointer-events-auto",style:{top:w.top,left:w.left},onMouseDown:n=>n.preventDefault(),children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Powers"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",className:r,title:"Square",onClick:()=>s("²"),children:"x²"}),e.jsx("button",{type:"button",className:r,title:"Cube",onClick:()=>s("³"),children:"x³"}),e.jsx("button",{type:"button",className:r,title:"Power",onClick:()=>s("^"),children:"xⁿ"}),e.jsx("button",{type:"button",className:r,title:"Inverse",onClick:()=>s("⁻¹"),children:"x⁻¹"}),e.jsx("button",{type:"button",className:r,title:"Square root",onClick:()=>s("√("),children:"√"}),e.jsx("button",{type:"button",className:r,title:"Cube root",onClick:()=>s("∛("),children:"∛"})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Inverse Trig"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",className:r,title:"Inverse sine",onClick:()=>s("sin⁻¹("),children:"sin⁻¹"}),e.jsx("button",{type:"button",className:r,title:"Inverse cosine",onClick:()=>s("cos⁻¹("),children:"cos⁻¹"}),e.jsx("button",{type:"button",className:r,title:"Inverse tangent",onClick:()=>s("tan⁻¹("),children:"tan⁻¹"})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Symbols"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",className:r,title:"Pi",onClick:()=>s("π"),children:"π"}),e.jsx("button",{type:"button",className:r,title:"Euler's number",onClick:()=>s("e"),children:"e"}),e.jsx("button",{type:"button",className:r,title:"Infinity",onClick:()=>s("∞"),children:"∞"}),e.jsx("button",{type:"button",className:r,title:"Plus-minus",onClick:()=>s("±"),children:"±"}),e.jsx("button",{type:"button",className:r,title:"Approximately",onClick:()=>s("≈"),children:"≈"}),e.jsx("button",{type:"button",className:r,title:"Degree",onClick:()=>s("°"),children:"°"})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[10px] text-[#5a6578] uppercase tracking-wider mb-0.5 block",children:"Other"}),e.jsxs("div",{className:"flex gap-1 items-center",children:[e.jsx("button",{type:"button",className:r,title:"Fraction",onClick:()=>s("(/)"),children:"a/b"}),e.jsx("div",{className:"ml-auto",children:e.jsxs("button",{type:"button",className:"bg-sky-600 hover:bg-rose-500 text-white text-xs px-3 py-1 rounded-lg flex items-center gap-1",onClick:()=>h?.(),children:[e.jsx(P,{size:12}),"Use Calc"]})})]})]})]}),e.jsx("input",{ref:p,id:"math-answer-input",name:"math-answer-input","aria-label":"Math answer input",type:"text",value:i,onChange:n=>t(n.target.value),onKeyDown:C,onFocus:E,onBlur:T,placeholder:d||"Type your answer... use ^ for powers e.g. x^2 for x²",className:"w-full bg-white border border-slate-200 focus:border-sky-500 rounded-xl px-4 py-3 text-[#0a1628] font-mono text-base outline-none transition-colors"}),W&&e.jsx("div",{className:"text-rose-300 text-sm font-mono mt-1",dangerouslySetInnerHTML:{__html:k}})]})};export{R as M}; diff --git a/assets/ModuleFolderCard-BGJM_1PJ.js b/assets/ModuleFolderCard-BSQZpGub.js similarity index 96% rename from assets/ModuleFolderCard-BGJM_1PJ.js rename to assets/ModuleFolderCard-BSQZpGub.js index 88309786389903710138ce367d0a2dad8bc9ea72..295ae4a8d82705082a95bb6b81ed2adde0bf8281 100644 --- a/assets/ModuleFolderCard-BGJM_1PJ.js +++ b/assets/ModuleFolderCard-BSQZpGub.js @@ -1 +1 @@ -import{j as e}from"./vendor-react-Dexh7fmo.js";import{m as d,T as n}from"./index-DGWrSMOK.js";import{B as x}from"./book-open-B5Xvd1JL.js";import{C as h}from"./clock-qHFbMxrB.js";const r=[{bg:"bg-[#9956DE]",tab:"bg-[#8248c2]",shadow:"shadow-[#9956DE]/30"},{bg:"bg-[#1FA7E1]",tab:"bg-[#198abf]",shadow:"shadow-[#1FA7E1]/30"},{bg:"bg-[#FFB356]",tab:"bg-[#e09841]",shadow:"shadow-[#FFB356]/30"},{bg:"bg-[#FB96BB]",tab:"bg-[#de7b9f]",shadow:"shadow-[#FB96BB]/30"}],g=({module:s,index:l,onClick:o,isAtRisk:i,badgeLabel:t})=>{const a=r[l%r.length];return e.jsxs(d.button,{whileHover:{y:-8},onClick:o,className:"relative text-left rounded-[1.4rem] overflow-visible min-h-[290px] bg-transparent group w-full",children:[e.jsx("div",{className:`absolute top-0 left-4 h-7 w-32 rounded-t-xl shadow-sm transition-colors duration-300 ${a.tab}`}),e.jsxs("div",{className:`relative mt-6 rounded-[1.4rem] p-6 transition-all duration-300 overflow-hidden flex flex-col h-[calc(100%-24px)] ${a.bg} shadow-[0_18px_30px_-20px_rgba(0,0,0,0.45)] group-hover:shadow-[0_24px_40px_-15px_rgba(0,0,0,0.5)]`,children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 mix-blend-overlay bg-white/40"}),e.jsx("div",{className:"absolute -bottom-8 right-[-20%] w-48 h-48 bg-white opacity-10 rounded-full transition-transform duration-500 group-hover:scale-110"}),e.jsx("div",{className:"absolute bottom-4 right-12 w-32 h-32 bg-white opacity-10 rounded-full transition-transform duration-500 group-hover:scale-110 delay-75"}),e.jsxs("div",{className:"relative z-10 flex-1 flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-white/20 text-white text-[10px] font-black uppercase tracking-wider backdrop-blur-sm shadow-sm border border-white/10",children:"General Mathematics"}),(t||s.status==="Locked")&&e.jsx("span",{className:"px-2.5 py-1 rounded-full bg-black/30 text-white/90 text-[10px] font-black uppercase tracking-wider backdrop-blur-sm",children:t||"Locked"})]}),e.jsx("h3",{className:"text-2xl md:text-[22px] font-display font-black text-white leading-[1.1] mb-2 drop-shadow-sm pr-4 line-clamp-2",children:s.title}),e.jsx("p",{className:"text-white/85 text-sm line-clamp-2 mb-6 font-medium leading-relaxed pr-2",children:s.subtitle||s.description||"Master this module to unlock the next level of your mathematical journey."}),e.jsxs("div",{className:"mt-auto",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-white/20 rounded-xl text-white font-bold text-[13px] backdrop-blur-sm shadow-sm border border-white/10",children:[e.jsx(x,{size:14,className:"opacity-90"})," ",s.totalLessons||s.lessons?.length||0," lessons"]}),e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-white/20 rounded-xl text-white font-bold text-[13px] backdrop-blur-sm shadow-sm border border-white/10",children:[e.jsx(h,{size:14,className:"opacity-90"})," ",s.totalQuizzes||s.quizzes?.length||0," quizzes"]})]}),e.jsxs("div",{className:"flex justify-between text-white font-bold text-[13px] mb-1.5 drop-shadow-sm",children:[e.jsx("span",{children:"Progress"}),e.jsxs("span",{children:[s.progress>0?s.progress:0,"%"]})]}),e.jsx("div",{className:"w-full h-2.5 rounded-full bg-black/20 overflow-hidden shadow-inner flex-shrink-0",children:e.jsx("div",{className:"h-full bg-white rounded-full transition-all duration-1000 ease-out",style:{width:`${s.progress>0?s.progress:0}%`}})})]}),i&&e.jsxs("div",{className:"absolute -top-3 -right-2 bg-rose-500 text-white px-3 py-1.5 rounded-full text-[11px] font-black uppercase tracking-wider flex items-center gap-1.5 shadow-lg border border-rose-400 animate-pulse",children:[e.jsx(n,{size:12,strokeWidth:3})," Review"]})]})]})]})};export{g as M}; +import{j as e}from"./vendor-react-Dexh7fmo.js";import{m as d,T as n}from"./index-CmBdDSkw.js";import{B as x}from"./book-open-BH_yilLK.js";import{C as h}from"./clock-jSWTKlqH.js";const r=[{bg:"bg-[#9956DE]",tab:"bg-[#8248c2]",shadow:"shadow-[#9956DE]/30"},{bg:"bg-[#1FA7E1]",tab:"bg-[#198abf]",shadow:"shadow-[#1FA7E1]/30"},{bg:"bg-[#FFB356]",tab:"bg-[#e09841]",shadow:"shadow-[#FFB356]/30"},{bg:"bg-[#FB96BB]",tab:"bg-[#de7b9f]",shadow:"shadow-[#FB96BB]/30"}],g=({module:s,index:l,onClick:o,isAtRisk:i,badgeLabel:t})=>{const a=r[l%r.length];return e.jsxs(d.button,{whileHover:{y:-8},onClick:o,className:"relative text-left rounded-[1.4rem] overflow-visible min-h-[290px] bg-transparent group w-full",children:[e.jsx("div",{className:`absolute top-0 left-4 h-7 w-32 rounded-t-xl shadow-sm transition-colors duration-300 ${a.tab}`}),e.jsxs("div",{className:`relative mt-6 rounded-[1.4rem] p-6 transition-all duration-300 overflow-hidden flex flex-col h-[calc(100%-24px)] ${a.bg} shadow-[0_18px_30px_-20px_rgba(0,0,0,0.45)] group-hover:shadow-[0_24px_40px_-15px_rgba(0,0,0,0.5)]`,children:[e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 mix-blend-overlay bg-white/40"}),e.jsx("div",{className:"absolute -bottom-8 right-[-20%] w-48 h-48 bg-white opacity-10 rounded-full transition-transform duration-500 group-hover:scale-110"}),e.jsx("div",{className:"absolute bottom-4 right-12 w-32 h-32 bg-white opacity-10 rounded-full transition-transform duration-500 group-hover:scale-110 delay-75"}),e.jsxs("div",{className:"relative z-10 flex-1 flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-white/20 text-white text-[10px] font-black uppercase tracking-wider backdrop-blur-sm shadow-sm border border-white/10",children:"General Mathematics"}),(t||s.status==="Locked")&&e.jsx("span",{className:"px-2.5 py-1 rounded-full bg-black/30 text-white/90 text-[10px] font-black uppercase tracking-wider backdrop-blur-sm",children:t||"Locked"})]}),e.jsx("h3",{className:"text-2xl md:text-[22px] font-display font-black text-white leading-[1.1] mb-2 drop-shadow-sm pr-4 line-clamp-2",children:s.title}),e.jsx("p",{className:"text-white/85 text-sm line-clamp-2 mb-6 font-medium leading-relaxed pr-2",children:s.subtitle||s.description||"Master this module to unlock the next level of your mathematical journey."}),e.jsxs("div",{className:"mt-auto",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-white/20 rounded-xl text-white font-bold text-[13px] backdrop-blur-sm shadow-sm border border-white/10",children:[e.jsx(x,{size:14,className:"opacity-90"})," ",s.totalLessons||s.lessons?.length||0," lessons"]}),e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-white/20 rounded-xl text-white font-bold text-[13px] backdrop-blur-sm shadow-sm border border-white/10",children:[e.jsx(h,{size:14,className:"opacity-90"})," ",s.totalQuizzes||s.quizzes?.length||0," quizzes"]})]}),e.jsxs("div",{className:"flex justify-between text-white font-bold text-[13px] mb-1.5 drop-shadow-sm",children:[e.jsx("span",{children:"Progress"}),e.jsxs("span",{children:[s.progress>0?s.progress:0,"%"]})]}),e.jsx("div",{className:"w-full h-2.5 rounded-full bg-black/20 overflow-hidden shadow-inner flex-shrink-0",children:e.jsx("div",{className:"h-full bg-white rounded-full transition-all duration-1000 ease-out",style:{width:`${s.progress>0?s.progress:0}%`}})})]}),i&&e.jsxs("div",{className:"absolute -top-3 -right-2 bg-rose-500 text-white px-3 py-1.5 rounded-full text-[11px] font-black uppercase tracking-wider flex items-center gap-1.5 shadow-lg border border-rose-400 animate-pulse",children:[e.jsx(n,{size:12,strokeWidth:3})," Review"]})]})]})]})};export{g as M}; diff --git a/assets/ModulesPage-C8056uyx.js b/assets/ModulesPage-D7B9Sp71.js similarity index 98% rename from assets/ModulesPage-C8056uyx.js rename to assets/ModulesPage-D7B9Sp71.js index 4b70fc3ca283dcd99a35477b40302ce0b14a7fc6..6cd50033100333768138e20f2b19f45506703c8a 100644 --- a/assets/ModulesPage-C8056uyx.js +++ b/assets/ModulesPage-D7B9Sp71.js @@ -1,4 +1,4 @@ -import{r as o,j as e,c as He}from"./vendor-react-Dexh7fmo.js";import{M as je}from"./ModuleFolderCard-BGJM_1PJ.js";import{B as K}from"./button-DWdPuxDU.js";import{I as Xe}from"./input-DBkKXOmF.js";import{c as R,m as h,Z as re,F as oe,e as ee,A as Ae,C as ue,u as Ce,q as Ye,r as Ue,v as Te,w as Ke,x as Je,g as et,o as tt,p as st,T as at,y as it}from"./index-DGWrSMOK.js";import{T as te}from"./trophy-73YPSH67.js";import{S as ve}from"./sparkles-DxmNHQEo.js";import{T as X}from"./target-7Gevl8jn.js";import{A as ce}from"./award-DpLN2BvV.js";import{S as Se}from"./star-DqP0S0c5.js";import{C as pe}from"./check-BONc3QkK.js";import{X as Y}from"./x-Bj25rnWX.js";import{C as nt}from"./circle-help-BOZYr6oH.js";import{a as ze,s as le,g as rt}from"./subjects-DDYtJwQO.js";import{T as fe}from"./trending-up-B2MPUPwk.js";import{B as U}from"./book-open-B5Xvd1JL.js";import{L as Me,c as ot,a as lt}from"./quizService-BkrCeM05.js";import{C as ne}from"./circle-check-big-mv2CRLCE.js";import{L as De}from"./lock-C6XEepuP.js";import{C as J}from"./clock-qHFbMxrB.js";import Pe from"./confetti.module-C94ZD2ww.js";import{triggerQuizSubmitted as ct}from"./automationService-1THdsq3v.js";import dt from"./ScientificCalculator-BP-XvW_h.js";import{M as xt}from"./MathAnswerInput-Bx58557t.js";import Ie from"./SupplementalBanner-COM6ABNZ.js";import{P as mt}from"./pen-line-CX1xh2Q2.js";import{C as ht}from"./chevron-right-DxXkA9aZ.js";import{S as pt}from"./search-O5gEqRZi.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./chart-column-CJzwyNMx.js";import"./apiService-BuaHZ1Ho.js";import"./chevron-up-BJyzaJs7.js";import"./brain-DHmY5cbv.js";/** +import{r as o,j as e,c as He}from"./vendor-react-Dexh7fmo.js";import{M as je}from"./ModuleFolderCard-BSQZpGub.js";import{B as K}from"./button-BP5cklmU.js";import{I as Xe}from"./input-DBkKXOmF.js";import{c as R,m as h,Z as re,F as oe,e as ee,A as Ae,C as ue,u as Ce,q as Ye,r as Ue,v as Te,w as Ke,x as Je,g as et,o as tt,p as st,T as at,y as it}from"./index-CmBdDSkw.js";import{T as te}from"./trophy-DrL6Ph2J.js";import{S as ve}from"./sparkles-D6B_TX7M.js";import{T as X}from"./target-BCguvjbb.js";import{A as ce}from"./award-COlS18fi.js";import{S as Se}from"./star-B7mp4xEi.js";import{C as pe}from"./check-D1XVAVXL.js";import{X as Y}from"./x-BDSBB3q9.js";import{C as nt}from"./circle-help-CCtzJ5sC.js";import{a as ze,s as le,g as rt}from"./subjects-wOHUanD9.js";import{T as fe}from"./trending-up-6u76yy2e.js";import{B as U}from"./book-open-BH_yilLK.js";import{L as Me,c as ot,a as lt}from"./quizService-YBJVdiN1.js";import{C as ne}from"./circle-check-big-C_XnLpga.js";import{L as De}from"./lock-Dt6Po_Oi.js";import{C as J}from"./clock-jSWTKlqH.js";import Pe from"./confetti.module-C94ZD2ww.js";import{triggerQuizSubmitted as ct}from"./automationService-IMphlGK7.js";import dt from"./ScientificCalculator-B0rqpddr.js";import{M as xt}from"./MathAnswerInput-DOzNwadV.js";import Ie from"./SupplementalBanner-CaXzjH7M.js";import{P as mt}from"./pen-line-CBic_SY8.js";import{C as ht}from"./chevron-right-BSCyuP_x.js";import{S as pt}from"./search-zqCwfHe1.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./chart-column-DzJCKCOe.js";import"./apiService-ZZIWaV70.js";import"./chevron-up-CwQX0CFg.js";import"./brain-DfMjTiNx.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/NotificationCenter-l7IdH4wu.js b/assets/NotificationCenter-Djp-U1R4.js similarity index 92% rename from assets/NotificationCenter-l7IdH4wu.js rename to assets/NotificationCenter-Djp-U1R4.js index 12c57c38fa9a15080ad31fd01cf03ecb870749c1..18e9d9c01838eaee0072b09b2812e248a0d28b36 100644 --- a/assets/NotificationCenter-l7IdH4wu.js +++ b/assets/NotificationCenter-Djp-U1R4.js @@ -1 +1 @@ -import{r as m,j as e}from"./vendor-react-Dexh7fmo.js";import{u as w,m as o,e as A,n as C,h as z,i as M}from"./index-DGWrSMOK.js";import{B as h}from"./bell-DeNrtKrI.js";import{C as E}from"./check-check-BDU3hkDf.js";import{X as R}from"./x-Bj25rnWX.js";import{B as T}from"./book-open-B5Xvd1JL.js";import{M as $}from"./message-square-DIXhbelM.js";import{C as B}from"./circle-alert-D8UKyVHS.js";import{T as H}from"./trophy-73YPSH67.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const W=({userRole:S="student"})=>{const{currentUser:l}=w(),[u,x]=m.useState(!1),[r,f]=m.useState([]),[D,p]=m.useState(!1);m.useEffect(()=>{(async()=>{if(l){p(!0);try{const N=(await C(l.uid,20)).map(s=>{let n="info";s.type==="achievement"?n="achievement":s.type==="risk_alert"||s.type==="reminder"?n="alert":s.type==="message"?n="message":n="info";const v=s.createdAt instanceof Date?s.createdAt:new Date(s.createdAt),k=Date.now()-v.getTime(),i=Math.floor(k/6e4);let d;return i<1?d="Just now":i<60?d=`${i} min ago`:i<1440?d=`${Math.floor(i/60)} hours ago`:d=`${Math.floor(i/1440)} days ago`,{id:s.id,type:n,title:s.title,message:s.message,time:d,read:s.read}});f(N)}catch(a){console.error("Error loading notifications:",a)}finally{p(!1)}}})()},[l]);const c=r.filter(t=>!t.read).length,b=()=>{f(r.map(t=>({...t,read:!0}))),l&&z(l.uid).catch(t=>console.error("Error marking all as read:",t))},g=t=>{f(r.map(a=>a.id===t?{...a,read:!0}:a)),M(t).catch(a=>console.error("Error marking as read:",a))},y=t=>{switch(t){case"achievement":return H;case"alert":return B;case"message":return $;case"info":return T;default:return h}},j=t=>{switch(t){case"achievement":return"bg-rose-500/10 text-rose-600";case"alert":return"bg-red-500/10 text-red-600";case"message":return"bg-sky-500/10 text-sky-600";case"info":return"bg-emerald-500/10 text-emerald-600";default:return"bg-[#edf1f7] text-[#5a6578]"}};return e.jsxs("div",{className:"relative",children:[e.jsxs(o.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:()=>x(!u),className:"relative p-3 bg-[#edf1f7] rounded-xl text-[#5a6578] hover:bg-[#dde3eb] transition-colors",children:[e.jsx(h,{size:20}),c>0&&e.jsx(o.span,{initial:{scale:0},animate:{scale:1},className:"absolute -top-1 -right-1 w-5 h-5 bg-sky-600 text-white text-xs font-bold rounded-full flex items-center justify-center",children:c})]}),e.jsx(A,{children:u&&e.jsxs("div",{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>x(!1)}),e.jsxs(o.div,{initial:{opacity:0,y:-10,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-10,scale:.95},transition:{duration:.2},className:"absolute right-0 top-full mt-2 w-96 bg-[#f7f9fc] rounded-xl shadow-2xl border border-[#dde3eb] z-50 overflow-hidden",children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex items-center justify-between bg-gradient-to-r from-sky-600 to-sky-500",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-display font-bold text-white",children:"Notifications"}),e.jsx("p",{className:"text-xs text-sky-100 mt-0.5",children:c>0?`${c} unread`:"All caught up!"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[c>0&&e.jsx(o.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:b,className:"text-xs text-sky-400 hover:text-sky-300 font-bold",children:e.jsx(E,{size:18})}),e.jsx(o.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:()=>x(!1),className:"text-slate-500 hover:text-sky-700",children:e.jsx(R,{size:18})})]})]}),e.jsx("div",{className:"max-h-96 overflow-y-auto",children:r.length===0?e.jsxs("div",{className:"p-8 text-center",children:[e.jsx(h,{size:48,className:"text-[#d1cec6] mx-auto mb-3"}),e.jsx("p",{className:"text-[#5a6578] text-sm font-body",children:"No notifications yet"})]}):e.jsx("div",{children:r.map(t=>{const a=y(t.type);return e.jsx(o.div,{whileHover:{backgroundColor:"rgba(241, 245, 249, 0.5)"},onClick:()=>g(t.id),className:`p-4 border-b border-[#dde3eb] cursor-pointer transition-colors ${t.read?"":"bg-sky-50/40"}`,children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:`w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0 ${j(t.type)}`,children:e.jsx(a,{size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-1",children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628] line-clamp-1 font-body",children:t.title}),!t.read&&e.jsx("span",{className:"w-2 h-2 bg-sky-600 rounded-full flex-shrink-0 mt-1.5"})]}),e.jsx("p",{className:"text-xs text-[#5a6578] mb-2 line-clamp-2 font-body",children:t.message}),e.jsx("p",{className:"text-xs text-slate-500",children:t.time})]})]})},t.id)})})}),r.length>0&&e.jsx("div",{className:"p-3 border-t border-[#dde3eb] text-center bg-[#edf1f7]",children:e.jsx("button",{className:"text-xs text-sky-600 hover:text-sky-700 font-bold font-body",children:"View All Notifications"})})]})]},"notification-panel")})]})};export{W as default}; +import{r as m,j as e}from"./vendor-react-Dexh7fmo.js";import{u as w,m as o,e as A,n as C,h as z,i as M}from"./index-CmBdDSkw.js";import{B as h}from"./bell-B1VXtbbh.js";import{C as E}from"./check-check-TbgWzZ22.js";import{X as R}from"./x-BDSBB3q9.js";import{B as T}from"./book-open-BH_yilLK.js";import{M as $}from"./message-square-BxgAV6zJ.js";import{C as B}from"./circle-alert-DWP6udG1.js";import{T as H}from"./trophy-DrL6Ph2J.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const W=({userRole:S="student"})=>{const{currentUser:l}=w(),[u,x]=m.useState(!1),[r,f]=m.useState([]),[D,p]=m.useState(!1);m.useEffect(()=>{(async()=>{if(l){p(!0);try{const N=(await C(l.uid,20)).map(s=>{let n="info";s.type==="achievement"?n="achievement":s.type==="risk_alert"||s.type==="reminder"?n="alert":s.type==="message"?n="message":n="info";const v=s.createdAt instanceof Date?s.createdAt:new Date(s.createdAt),k=Date.now()-v.getTime(),i=Math.floor(k/6e4);let d;return i<1?d="Just now":i<60?d=`${i} min ago`:i<1440?d=`${Math.floor(i/60)} hours ago`:d=`${Math.floor(i/1440)} days ago`,{id:s.id,type:n,title:s.title,message:s.message,time:d,read:s.read}});f(N)}catch(a){console.error("Error loading notifications:",a)}finally{p(!1)}}})()},[l]);const c=r.filter(t=>!t.read).length,b=()=>{f(r.map(t=>({...t,read:!0}))),l&&z(l.uid).catch(t=>console.error("Error marking all as read:",t))},g=t=>{f(r.map(a=>a.id===t?{...a,read:!0}:a)),M(t).catch(a=>console.error("Error marking as read:",a))},y=t=>{switch(t){case"achievement":return H;case"alert":return B;case"message":return $;case"info":return T;default:return h}},j=t=>{switch(t){case"achievement":return"bg-rose-500/10 text-rose-600";case"alert":return"bg-red-500/10 text-red-600";case"message":return"bg-sky-500/10 text-sky-600";case"info":return"bg-emerald-500/10 text-emerald-600";default:return"bg-[#edf1f7] text-[#5a6578]"}};return e.jsxs("div",{className:"relative",children:[e.jsxs(o.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:()=>x(!u),className:"relative p-3 bg-[#edf1f7] rounded-xl text-[#5a6578] hover:bg-[#dde3eb] transition-colors",children:[e.jsx(h,{size:20}),c>0&&e.jsx(o.span,{initial:{scale:0},animate:{scale:1},className:"absolute -top-1 -right-1 w-5 h-5 bg-sky-600 text-white text-xs font-bold rounded-full flex items-center justify-center",children:c})]}),e.jsx(A,{children:u&&e.jsxs("div",{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>x(!1)}),e.jsxs(o.div,{initial:{opacity:0,y:-10,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-10,scale:.95},transition:{duration:.2},className:"absolute right-0 top-full mt-2 w-96 bg-[#f7f9fc] rounded-xl shadow-2xl border border-[#dde3eb] z-50 overflow-hidden",children:[e.jsxs("div",{className:"p-4 border-b border-[#dde3eb] flex items-center justify-between bg-gradient-to-r from-sky-600 to-sky-500",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-display font-bold text-white",children:"Notifications"}),e.jsx("p",{className:"text-xs text-sky-100 mt-0.5",children:c>0?`${c} unread`:"All caught up!"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[c>0&&e.jsx(o.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:b,className:"text-xs text-sky-400 hover:text-sky-300 font-bold",children:e.jsx(E,{size:18})}),e.jsx(o.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:()=>x(!1),className:"text-slate-500 hover:text-sky-700",children:e.jsx(R,{size:18})})]})]}),e.jsx("div",{className:"max-h-96 overflow-y-auto",children:r.length===0?e.jsxs("div",{className:"p-8 text-center",children:[e.jsx(h,{size:48,className:"text-[#d1cec6] mx-auto mb-3"}),e.jsx("p",{className:"text-[#5a6578] text-sm font-body",children:"No notifications yet"})]}):e.jsx("div",{children:r.map(t=>{const a=y(t.type);return e.jsx(o.div,{whileHover:{backgroundColor:"rgba(241, 245, 249, 0.5)"},onClick:()=>g(t.id),className:`p-4 border-b border-[#dde3eb] cursor-pointer transition-colors ${t.read?"":"bg-sky-50/40"}`,children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:`w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0 ${j(t.type)}`,children:e.jsx(a,{size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-1",children:[e.jsx("h4",{className:"text-sm font-bold text-[#0a1628] line-clamp-1 font-body",children:t.title}),!t.read&&e.jsx("span",{className:"w-2 h-2 bg-sky-600 rounded-full flex-shrink-0 mt-1.5"})]}),e.jsx("p",{className:"text-xs text-[#5a6578] mb-2 line-clamp-2 font-body",children:t.message}),e.jsx("p",{className:"text-xs text-slate-500",children:t.time})]})]})},t.id)})})}),r.length>0&&e.jsx("div",{className:"p-3 border-t border-[#dde3eb] text-center bg-[#edf1f7]",children:e.jsx("button",{className:"text-xs text-sky-600 hover:text-sky-700 font-bold font-body",children:"View All Notifications"})})]})]},"notification-panel")})]})};export{W as default}; diff --git a/assets/ProfileModal-CvubwvbT.js b/assets/ProfileModal-CnV-otvQ.js similarity index 96% rename from assets/ProfileModal-CvubwvbT.js rename to assets/ProfileModal-CnV-otvQ.js index 6f9aa22f4a9b5c3f7ceb7a5f07e88e14374c5b36..0b99f4a1b52724499a6039def848995cbf1884b3 100644 --- a/assets/ProfileModal-CvubwvbT.js +++ b/assets/ProfileModal-CnV-otvQ.js @@ -1,4 +1,4 @@ -import{r,j as e}from"./vendor-react-Dexh7fmo.js";import{B as c}from"./button-DWdPuxDU.js";import{I as l}from"./input-DBkKXOmF.js";import{c as u,e as P,m as k,G as A,L as B}from"./index-DGWrSMOK.js";import{C as R}from"./CompositeAvatar-CphZ-OWw.js";import{X as D}from"./x-Bj25rnWX.js";import{U as f}from"./users-BRS21lR4.js";import{M as F}from"./mail-D-r4ZWDN.js";import{A as b}from"./award-DpLN2BvV.js";import{B as w}from"./book-open-B5Xvd1JL.js";import{C as U}from"./calendar-19p2TrVX.js";import{G as _}from"./globe-CA6LY_zw.js";import{S as T}from"./save-B5SCmCsP.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./avatarData-DykDiQ_Y.js";/** +import{r,j as e}from"./vendor-react-Dexh7fmo.js";import{B as c}from"./button-BP5cklmU.js";import{I as l}from"./input-DBkKXOmF.js";import{c as u,e as P,m as k,G as A,N as B}from"./index-CmBdDSkw.js";import{C as R}from"./CompositeAvatar-DSWWcDP7.js";import{X as D}from"./x-BDSBB3q9.js";import{U as f}from"./users-CdMqBLwG.js";import{M as F}from"./mail-BuupduAm.js";import{A as b}from"./award-COlS18fi.js";import{B as w}from"./book-open-BH_yilLK.js";import{C as U}from"./calendar-CP-HCx1y.js";import{G as _}from"./globe-ZtrF4mgA.js";import{S as T}from"./save-XQRYdTi9.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./avatarData-BW_TX0b4.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/QuizBattlePage-BhgM4TWz.js b/assets/QuizBattlePage-C-kQ0NH9.js similarity index 59% rename from assets/QuizBattlePage-BhgM4TWz.js rename to assets/QuizBattlePage-C-kQ0NH9.js index 719517ca8085ccd5379d533cd0442608c0549a3a..8f583ff1452f0e8b73168a664bbe31a9377271e8 100644 --- a/assets/QuizBattlePage-BhgM4TWz.js +++ b/assets/QuizBattlePage-C-kQ0NH9.js @@ -1,37 +1,37 @@ -import{c as oe,m as b,d as qe,H as Se,I as $e,J as E,u as sa,_ as ra,M as na,B as et,l as oa}from"./index-DGWrSMOK.js";import{r as d,j as e}from"./vendor-react-Dexh7fmo.js";import{c as u}from"./utils-BQQgILNW.js";import{C as ia}from"./CompositeAvatar-CphZ-OWw.js";import{g as la,s as da}from"./subjects-DDYtJwQO.js";import{d as ca,b as ua,w as _t,o as Tt,l as nt,h as ot,q as it,e as lt}from"./vendor-firebase-firestore-CkuVbeP5.js";import{Y as R,Z as Pt,$ as qt,a0 as ve,a1 as ma}from"./vendor-firebase-core-DQ-pMjxd.js";import{B as _}from"./button-DWdPuxDU.js";import{T as xa,a as he}from"./tabs-BJVl1n4R.js";import{S as be,a as fe,b as ge,c as we,d as L}from"./select-CH9gS87N.js";import{I as pa}from"./input-DBkKXOmF.js";import{S as St}from"./switch-DbjIWZtF.js";import{S as re,C as It}from"./skeleton-DgVR4gS7.js";import{S as Re}from"./swords-Bn50CmyM.js";import{S as Fe}from"./star-DqP0S0c5.js";import{U as _e}from"./users-BRS21lR4.js";import{T as tt}from"./trophy-73YPSH67.js";import{T as zt}from"./target-7Gevl8jn.js";import{S as At}from"./sparkles-DxmNHQEo.js";import{C as De}from"./chevron-right-DxXkA9aZ.js";import{C as Ct}from"./check-BONc3QkK.js";import{L as at}from"./loader-circle-BUf2fYcT.js";import{S as ha}from"./shield-check-B-VFrdlh.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./clsx-B-dksMZM.js";import"./avatarData-DykDiQ_Y.js";import"./trending-up-B2MPUPwk.js";import"./chart-column-CJzwyNMx.js";import"./vendor-radix-B-ht8aK0.js";import"./chevron-up-BJyzaJs7.js";/** +import{c as oe,m as b,d as qe,H as Se,I as $e,J as E,u as sa,_ as ra,M as na,B as et,l as oa}from"./index-CmBdDSkw.js";import{r as d,j as e}from"./vendor-react-Dexh7fmo.js";import{c as u}from"./utils-BQQgILNW.js";import{C as ia}from"./CompositeAvatar-DSWWcDP7.js";import{g as la,s as da}from"./subjects-wOHUanD9.js";import{d as ca,b as ua,w as _t,o as Tt,l as nt,h as ot,q as it,e as lt}from"./vendor-firebase-firestore-CkuVbeP5.js";import{Y as R,Z as Pt,$ as qt,a0 as ve,a1 as ma}from"./vendor-firebase-core-DQ-pMjxd.js";import{B as _}from"./button-BP5cklmU.js";import{c as xa,d as pa}from"./vendor-radix-CxzAJozq.js";import{S as he,a as be,b as fe,c as ge,d as L}from"./select-D13dsNiO.js";import{I as ha}from"./input-DBkKXOmF.js";import{S as St}from"./switch-CISoEIXM.js";import{S as re,C as It}from"./skeleton-CTGly9ab.js";import{S as Re}from"./swords-CJyIL97F.js";import{S as Fe}from"./star-B7mp4xEi.js";import{U as _e}from"./users-CdMqBLwG.js";import{T as tt}from"./trophy-DrL6Ph2J.js";import{T as zt}from"./target-BCguvjbb.js";import{S as At}from"./sparkles-D6B_TX7M.js";import{C as De}from"./chevron-right-BSCyuP_x.js";import{C as Ct}from"./check-D1XVAVXL.js";import{L as at}from"./loader-circle-BfAbw6jC.js";import{S as ba}from"./shield-check-CnzWVIYd.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./clsx-B-dksMZM.js";import"./avatarData-BW_TX0b4.js";import"./trending-up-6u76yy2e.js";import"./chart-column-DzJCKCOe.js";import"./chevron-up-CwQX0CFg.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ba=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]],Bt=oe("clock-3",ba);/** + */const fa=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]],Bt=oe("clock-3",fa);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const fa=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],Mt=oe("history",fa);/** + */const ga=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],Mt=oe("history",ga);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ga=[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]],wa=oe("maximize",ga);/** + */const wa=[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]],va=oe("maximize",wa);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const va=[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]],ya=oe("minimize",va);/** + */const ya=[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]],ja=oe("minimize",ya);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ja=[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]],ka=oe("pause",ja);/** + */const ka=[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]],Na=oe("pause",ka);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Na=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],_a=oe("volume-2",Na);/** + */const _a=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],Sa=oe("volume-2",_a);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Sa=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]],Ia=oe("volume-x",Sa),za="/assets/quiz_battle_avatar-yi62KvvC.png",Te=({width:a,x:s,delay:r,duration:c})=>{const l=["#9956DE","#7274ED","#1FA7E1","#6ED1CF","#75D06A","#FFB356","#FF8B8B","#FB96BB"],i=l[Math.floor(Math.random()*l.length)],w=Math.floor(Math.random()*10)+1;return e.jsx(b.div,{style:{"--x":`${s}`,"--width":`${a}`,"--aspect-ratio":`${w}`,"--background":`linear-gradient(${i}cc, transparent)`},className:"absolute left-[var(--x)] top-0 [aspect-ratio:1/var(--aspect-ratio)] [background:var(--background)] [width:var(--width)]",initial:{y:"100cqmax",x:"-50%"},animate:{y:"-100%",x:"-50%"},transition:{duration:c,delay:r,repeat:Number.POSITIVE_INFINITY,ease:"linear"}})},Et=({children:a,perspective:s=100,className:r,beamsPerSide:c=6,beamSize:l=4,beamDelayMax:i=1.5,beamDelayMin:w=0,beamDuration:S=4,gridColor:y="rgba(100, 116, 139, 0.08)",...k})=>{const h=d.useCallback(()=>{const A=[],ie=Math.floor(100/l)/c;for(let le=0;leh(),[h]),v=d.useMemo(()=>h(),[h]),x=d.useMemo(()=>h(),[h]),j=d.useMemo(()=>h(),[h]);return e.jsxs("div",{className:u("relative w-full h-full",r),...k,children:[e.jsxs("div",{style:{"--perspective":`${s}px`,"--grid-color":y,"--beam-size":`${l}%`},className:"pointer-events-none absolute inset-0 overflow-hidden [clip-path:inset(0)] [container-type:size] [perspective:var(--perspective)] [transform-style:preserve-3d] -z-10 bg-[#42389d]",children:[e.jsx("div",{className:"absolute [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [transform-origin:50%_0%] [transform:rotateX(-90deg)] [width:100cqi]",children:B.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`top-${D}`))}),e.jsx("div",{className:"absolute top-full [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [transform-origin:50%_0%] [transform:rotateX(-90deg)] [width:100cqi]",children:x.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`bottom-${D}`))}),e.jsx("div",{className:"absolute left-0 top-0 [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [transform-origin:0%_0%] [transform:rotate(90deg)_rotateX(-90deg)] [width:100cqh]",children:j.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`left-${D}`))}),e.jsx("div",{className:"absolute right-0 top-0 [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [width:100cqh] [transform-origin:100%_0%] [transform:rotate(-90deg)_rotateX(-90deg)]",children:v.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`right-${D}`))})]}),e.jsx("div",{className:"relative z-10 w-full h-full",children:a})]})},Aa=15e3,Ca="mathpulse.quizBattle.local",Rt="".toLowerCase()==="true",Oe=typeof window<"u",Qe=()=>Oe&&!1,ct=()=>{const a=$e.currentUser?.uid;return a||"local-student"},Qt=a=>`${Ca}.${a}`,Ie=a=>{const s={stats:ye(a),history:[],queueStatus:"idle"};if(!Oe)return s;try{const r=window.localStorage.getItem(Qt(a));if(!r)return s;const c=JSON.parse(r),l=Array.isArray(c.history)?c.history.map(w=>dt(w.matchId||"local-match",w)):[];return{stats:c.stats?{...ye(a),...c.stats,userId:a,updatedAt:Le(c.stats.updatedAt)}:ye(a),history:l,queueStatus:c.queueStatus==="queued"||c.queueStatus==="matched"?c.queueStatus:"idle"}}catch(r){return console.error("Error reading local Quiz Battle fallback store:",r),s}},Lt=(a,s)=>{if(Oe)try{window.localStorage.setItem(Qt(a),JSON.stringify(s))}catch(r){console.error("Error writing local Quiz Battle fallback store:",r)}},$t=a=>{const s=a||{},r=typeof s.code=="string"?s.code:"";return r?r.startsWith("functions/")?r.replace("functions/",""):r:""},X=a=>{if(!Qe())return!1;const s=$t(a);if(["internal","not-found","unavailable","deadline-exceeded"].includes(s))return!0;const r=a||{},c=(typeof r.message=="string"?r.message:a instanceof Error?a.message:"").toLowerCase();return c?c.includes("cors policy")||c.includes("no access-control-allow-origin")||c.includes("failed to fetch")||c.includes("network error")||c.includes("err_failed"):!1},Pe=(a,s)=>Math.floor(Math.random()*(s-a+1))+a,Ba=(a,s)=>{const r=Math.max(3,a),c=s==="easy"?0:s==="medium"?1:s==="hard"?2:1,l=Pe(Math.max(0,r-3-c),r),i=Pe(Math.max(0,r-4+c),r),w=Math.min(r,Math.max(0,l)),S=Math.min(r,Math.max(0,i)),y=Math.max(0,Math.min(100,w/r*100+Pe(-8,6))),k=Pe(1800,6200);return{scoreFor:w,scoreAgainst:S,accuracy:y,averageResponseMs:k}},Ma=a=>{const s=ct(),r=Ie(s),c=`local-bot-${Date.now()}-${Math.random().toString(16).slice(2,8)}`,l=Ba(a.rounds,a.botDifficulty),i=l.scoreFor>l.scoreAgainst?"win":l.scoreFor0?k/y*100:0,averageAccuracy:y>0?(r.stats.averageAccuracy*r.stats.matchesPlayed+l.accuracy)/y:l.accuracy,averageResponseMs:y>0?Math.round((r.stats.averageResponseMs*r.stats.matchesPlayed+l.averageResponseMs)/y):l.averageResponseMs,currentStreak:v,bestStreak:x,favoriteTopicId:a.topicId,leaderboardScore:r.stats.leaderboardScore+S.xpEarned,updatedAt:w};return Lt(s,{stats:j,history:[S,...r.history].slice(0,50),queueStatus:"idle"}),{success:!0,matchId:c,status:"ready",botDifficulty:a.botDifficulty}},Ot=a=>{const s=ct(),r=Ie(s);Lt(s,{...r,queueStatus:a})},Ea=()=>Math.random().toString(36).slice(2,8).toUpperCase(),ut=a=>{const s=ct();return{roomId:`local-room-${Date.now()}`,roomCode:a||Ea(),ownerStudentId:s,participantIds:[s],participantCount:1,status:"waiting",subjectId:"gen-math",topicId:"functions",difficulty:"medium",rounds:5,timePerQuestionSec:30,isOwner:!0}},Ht=()=>Oe&&!!$e.currentUser?.uid&&!!Se,Wt=(a,s,r)=>`quizBattlePresence/${a}/${s}/${r}`,Ra=async(a,s)=>{if(!Ht()||!s.trim()||!Se)return;const r=$e.currentUser?.uid;if(!r)return;const c=Pt(Se,Wt(a,s,r));try{await qt(c,{studentId:r,scope:a,resourceId:s,online:!0,heartbeatAt:ve(),updatedAt:ve()}),await ma(c).update({online:!1,updatedAt:ve(),disconnectedAt:ve()})}catch(l){console.warn("Realtime presence connect failed:",l)}},Fa=async(a,s)=>{if(!Ht()||!s.trim()||!Se)return;const r=$e.currentUser?.uid;if(!r)return;const c=Pt(Se,Wt(a,s,r));try{await qt(c,{studentId:r,scope:a,resourceId:s,online:!1,updatedAt:ve(),disconnectedAt:ve()})}catch(l){console.warn("Realtime presence disconnect failed:",l)}},q=(a,s)=>{const r=`Unable to continue while ${a}. Please try again.`;if(s instanceof Error&&s.message.startsWith("Timed out while"))return s.message;const c=s||{},l=$t(s),i=typeof c.message=="string"?c.message.trim():"";return l==="unauthenticated"?"Your session has expired. Sign in again before starting a battle.":l==="permission-denied"?"Only student accounts can access Quiz Battle matchmaking.":l==="invalid-argument"?i||"Battle setup is invalid. Review the selected options and try again.":l==="already-exists"?i||"This room is already full. Try another room code.":l==="failed-precondition"?i||"Battle state changed. Please refresh and continue.":l==="unavailable"||l==="internal"||l==="not-found"||l==="deadline-exceeded"?/question generation temporarily unavailable/i.test(i)?i:"Quiz Battle service is temporarily unavailable. Please retry in a moment.":r},F=async(a,s,r=Aa)=>{let c;try{return await Promise.race([s,new Promise((l,i)=>{c=setTimeout(()=>{i(new Error(`Timed out while ${a}. Please try again.`))},r)})])}finally{c&&clearTimeout(c)}},Le=a=>{if(!a)return new Date;if(a instanceof Date)return a;if(typeof a=="string"){const s=Date.parse(a);return Number.isNaN(s)?new Date:new Date(s)}if(typeof a=="number")return new Date(a);if(typeof a=="object"){const s=a;if(typeof s.toDate=="function")return s.toDate();if(typeof s.seconds=="number")return new Date(s.seconds*1e3)}return new Date},Da=()=>({mode:"online",subjectId:"gen-math",topicId:"",difficulty:"medium",rounds:5,timePerQuestionSec:30,queueType:"public_matchmaking",botDifficulty:"medium",adaptiveBot:!1}),Ta=a=>{const s=[];return a.subjectId.trim()||s.push({field:"subjectId",message:"Choose a category before starting."}),a.topicId.trim()||s.push({field:"topicId",message:"Choose a strand or topic before starting."}),(a.rounds<3||a.rounds>20)&&s.push({field:"rounds",message:"Questions must be between 3 and 20."}),(a.timePerQuestionSec<10||a.timePerQuestionSec>180)&&s.push({field:"timePerQuestionSec",message:"Timer must be between 10s and 180s."}),a.mode==="bot"&&a.queueType!=="public_matchmaking"&&s.push({field:"queueType",message:"Bot battles use instant start and do not support private room mode."}),s},ye=a=>({userId:a,matchesPlayed:0,wins:0,losses:0,draws:0,winRate:0,averageAccuracy:0,averageResponseMs:0,bestStreak:0,currentStreak:0,favoriteTopicId:void 0,leaderboardScore:0,updatedAt:new Date}),Pa=async a=>{try{const s=ca(qe,"studentBattleStats",a),r=await ua(s),c=Qe()?Ie(a).stats:null;if(!r.exists())return c&&c.matchesPlayed>0?c:ye(a);const l=r.data(),i={...ye(a),...l,userId:a,updatedAt:Le(l.updatedAt)};return c&&c.matchesPlayed>i.matchesPlayed?c:i}catch(s){if(console.error("Error loading battle stats:",s),Qe()){const r=Ie(a).stats;if(r.matchesPlayed>0)return r}return ye(a)}},dt=(a,s)=>({matchId:s.matchId||a,mode:s.mode||"online",status:s.status||"completed",subjectId:s.subjectId||"gen-math",topicId:s.topicId||"unknown-topic",difficulty:s.difficulty||"medium",rounds:s.rounds||0,timePerQuestionSec:s.timePerQuestionSec||0,scoreFor:s.scoreFor||0,scoreAgainst:s.scoreAgainst||0,outcome:s.outcome||"draw",accuracy:s.accuracy||0,averageResponseMs:s.averageResponseMs||0,bestStreak:s.bestStreak||0,xpEarned:s.xpEarned||0,opponentName:s.opponentName||"Unknown opponent",opponentType:s.opponentType||"student",createdAt:Le(s.createdAt),endedAt:Le(s.endedAt)}),qa=async(a,s={})=>{const r=s.limitCount||25,c=Qe()?Ie(a).history:[],l=w=>w.filter(y=>!(s.mode&&s.mode!=="all"&&y.mode!==s.mode||s.subjectId&&y.subjectId!==s.subjectId||s.startDate&&y.endedAts.endDate)).sort((y,k)=>k.endedAt.getTime()-y.endedAt.getTime()).slice(0,r),i=w=>{if(c.length===0)return l(w);const S=new Map;return[...c,...w].forEach(y=>{S.set(y.matchId,y)}),l(Array.from(S.values()))};try{const w=[_t("studentId","==",a),Tt("endedAt","desc"),nt(r)],y=(await ot(it(lt(qe,"quizBattleHistory"),...w))).docs.map(k=>dt(k.id,k.data()));return i(y)}catch(w){try{const y=(await ot(it(lt(qe,"quizBattleHistory"),_t("studentId","==",a),nt(r)))).docs.map(k=>dt(k.id,k.data())).sort((k,h)=>h.endedAt.getTime()-k.endedAt.getTime());return i(y)}catch(S){return console.error("Error loading battle history:",w,S),l(c)}}},Qa=async a=>{const s=R(E,"quizBattleJoinQueue");try{return(await F("joining Quiz Battle matchmaking queue",s({setup:a}))).data}catch(r){if(X(r))return Ot("queued"),{success:!0,status:"queued",queueEntryId:`local-queue-${Date.now()}`};throw new Error(q("joining Quiz Battle matchmaking queue",r))}},La=async()=>{const a=R(E,"quizBattleLeaveQueue");try{return(await F("leaving Quiz Battle matchmaking queue",a({}))).data}catch(s){if(X(s))return Ot("idle"),{success:!0,status:"idle"};throw new Error(q("leaving Quiz Battle matchmaking queue",s))}},$a=async a=>{const s=R(E,"quizBattleCreatePrivateRoom");try{return(await F("creating Quiz Battle private room",s({setup:a}))).data}catch(r){if(X(r))return{success:!0,room:ut()};throw new Error(q("creating Quiz Battle private room",r))}},Oa=async a=>{const s=R(E,"quizBattleJoinPrivateRoom");try{return(await F("joining Quiz Battle private room",s({roomCode:a}),2e4)).data}catch(r){if(X(r))return{success:!0,room:ut(a.trim().toUpperCase()||void 0)};throw new Error(q("joining Quiz Battle private room",r))}},Ha=async a=>{const s=R(E,"quizBattleGetPrivateRoomState");try{return(await F("loading Quiz Battle private room state",s(a),2e4)).data}catch(r){if(X(r))return{success:!0,room:ut(a.roomCode?.trim().toUpperCase()||void 0)};throw new Error(q("loading Quiz Battle private room state",r))}},Wa=async(a={})=>{const s=R(E,"quizBattleLeavePrivateRoom");try{return(await F("leaving Quiz Battle private room",s(a),2e4)).data}catch(r){if(X(r))return{success:!0,status:"idle"};throw new Error(q("leaving Quiz Battle private room",r))}},Ft=async()=>{const a=R(E,"quizBattleResumeSession");try{return(await F("resuming Quiz Battle session",a({}),2e4)).data}catch(s){if(X(s))return{success:!0,sessionType:"idle"};throw new Error(q("resuming Quiz Battle session",s))}},Va=async(a,s)=>{if(!s.trim())return;const r=R(E,"quizBattleHeartbeat");await Ra(a,s);try{await F("sending Quiz Battle heartbeat",r({scope:a,resourceId:s}),12e3)}catch(c){if(!X(c))throw new Error(q("sending Quiz Battle heartbeat",c))}},Ua=async a=>{const s=R(E,"quizBattleCreateBotMatch");try{return(await F("starting Quiz Battle bot match",s({setup:a}))).data}catch(r){if(X(r))return Ma(a);throw new Error(q("starting Quiz Battle bot match",r))}},Ga=async a=>{const s=R(E,"quizBattleGetGenerationAudit");return(await F("verifying Quiz Battle generation metadata",s({matchId:a}),2e4)).data},G=async a=>{const s=R(E,"quizBattleStartMatch");try{const c=(await F("starting Quiz Battle match",s({matchId:a}),2e4)).data.match;if(c.mode==="online")try{const l=await Ga(a);if(console.info("[QUIZ_BATTLE_GENERATION_AUDIT]",l),Rt&&!l.isAiSource)throw new Error(`Quiz Battle generation audit failed: expected AI source, got "${l.questionSetSource||"unknown"}".`)}catch(l){if(l instanceof Error&&l.message.startsWith("Quiz Battle generation audit failed"))throw l;if(console.warn("Quiz Battle generation audit unavailable:",l),Rt)throw new Error("Unable to verify Quiz Battle generation metadata. Please retry in a moment.")}return c}catch(r){throw new Error(q("starting Quiz Battle match",r))}},st=async a=>{const s=R(E,"quizBattleGetMatchState");try{return(await F("loading Quiz Battle match state",s({matchId:a}),2e4)).data.match}catch(r){throw new Error(q("loading Quiz Battle match state",r))}},Za=async a=>{const s=R(E,"quizBattleSubmitAnswer");try{return(await F("submitting Quiz Battle answer",s({...a,idempotencyKey:a.idempotencyKey||`client-${Date.now()}-${Math.random().toString(16).slice(2,8)}`}),2e4)).data}catch(r){throw new Error(q("submitting Quiz Battle answer",r))}},Ya=async a=>{const s=R(E,"quizBattleRequestRematch");try{return(await F("creating Quiz Battle rematch",s({matchId:a}),2e4)).data}catch(r){throw new Error(q("creating Quiz Battle rematch",r))}},Xa=async(a=20)=>{try{const s=it(lt(qe,"studentBattleLeaderboard"),Tt("leaderboardScore","desc"),nt(a));return(await ot(s)).docs.map((c,l)=>{const i=c.data();return{userId:i.userId||c.id,displayName:i.displayName||"Student",photo:i.photo,rank:i.rank||l+1,leaderboardScore:i.leaderboardScore||0,winRate:i.winRate||0,bestStreak:i.bestStreak||0}})}catch(s){return console.error("Error loading Quiz Battle leaderboard:",s),[]}};function H({className:a,...s}){return e.jsx("div",{"data-slot":"card",className:u("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",a),...s})}function Z({className:a,...s}){return e.jsx("div",{"data-slot":"card-header",className:u("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...s})}function Y({className:a,...s}){return e.jsx("h4",{"data-slot":"card-title",className:u("leading-none",a),...s})}function ee({className:a,...s}){return e.jsx("p",{"data-slot":"card-description",className:u("text-muted-foreground",a),...s})}function ne({className:a,...s}){return e.jsx("div",{"data-slot":"card-content",className:u("px-6 [&:last-child]:pb-6",a),...s})}const rt={width:1280,height:720},Ka=({viewportHeight:a})=>e.jsx("div",{className:"absolute inset-0 pointer-events-none z-[50] overflow-hidden flex justify-between bg-slate-900/40 backdrop-blur-sm",children:[...Array(40)].map((s,r)=>e.jsx(b.div,{className:"absolute w-0.5 h-16 bg-blue-300/40 rounded-full",style:{left:`${Math.random()*100}%`,top:"-10%"},animate:{y:[0,a*1.2]},transition:{duration:.6+Math.random()*.4,repeat:1/0,ease:"linear",delay:Math.random()*2}},r))}),Ja=({viewportHeight:a,viewportWidth:s})=>{const r=["#10b981","#8b5cf6","#0ea5e9","#f43f5e","#f59e0b"];return e.jsx("div",{className:"absolute inset-0 pointer-events-none z-[50] overflow-hidden",children:[...Array(60)].map((c,l)=>e.jsx(b.div,{className:"absolute bottom-[-10%] w-3 h-5 rounded-sm shadow-md",style:{left:`${20+Math.random()*60}%`,backgroundColor:r[l%r.length]},animate:{y:[0,-a*(.6+Math.random()*.4),a*.5],x:[0,(Math.random()-.5)*s*.8],rotate:[0,Math.random()*720]},transition:{duration:3+Math.random()*2,repeat:1/0,ease:"easeInOut",delay:Math.random()*1.5}},l))})},P="border border-border bg-card text-card-foreground shadow-sm dark:border-[#2b3140] dark:bg-[#181d27] dark:text-[#f5f7fb] dark:shadow-[0_12px_24px_rgba(0,0,0,0.22)]",es=a=>a<=0?"--":`${(a/1e3).toFixed(2)}s`,ts=a=>a==="win"?"Win":a==="loss"?"Loss":"Draw",as=(a,s,r)=>Math.max(s,Math.min(r,a)),ss=a=>{const s=Math.floor(a/60),r=a%60;return`${s}:${String(r).padStart(2,"0")}`},rs=a=>{const s=a.trim().split(/\s+/).filter(Boolean).slice(0,2);return s.length===0?"ST":s.map(r=>r[0]?.toUpperCase()||"").join("")},Dt=(a,s)=>a?a.eventType==="round_started"?`Round ${a.roundNumber} started.`:a.eventType==="answer_locked"?a.lockedByStudentId&&s&&a.lockedByStudentId===s?`Round ${a.roundNumber}: your answer is locked.`:`Round ${a.roundNumber}: opponent answer locked.`:a.eventType==="round_result"?`Round ${a.roundNumber} resolved.`:"Match completed.":null,Ts=()=>{const{userProfile:a,userRole:s}=sa(),r=a,[c,l]=d.useState("hub"),[i,w]=d.useState(Da),[S,y]=d.useState([]),[k,h]=d.useState({status:"idle"}),[B,v]=d.useState(!1),[x,j]=d.useState(null),[A,D]=d.useState(""),[ie,le]=d.useState(null),[ze,te]=d.useState(0),[de,Vt]=d.useState(()=>typeof window>"u"?!0:window.localStorage.getItem("quiz_battle_sound_enabled")!=="0"),[mt,I]=d.useState("connected"),[ce,Ut]=d.useState("all"),[xt,He]=d.useState(!0),[W,We]=d.useState(null),[Ve,Ue]=d.useState([]),[Gt,pt]=d.useState(!1),[ht,Zt]=d.useState([]),[Ae,Yt]=d.useState("alias"),[Ge,Xt]=d.useState(!1),[n,N]=d.useState(null),[ue,V]=d.useState(null),[$,je]=d.useState(!1),[M,ke]=d.useState(0),[O,U]=d.useState(!1),[C,Ze]=d.useState(!1),[Ye,Kt]=d.useState(!1),[Xe,Jt]=d.useState(rt),[Ce,me]=d.useState(null),bt=d.useRef(""),Ke=d.useRef(null),xe=d.useRef(null),K=d.useRef(0),ft=d.useRef(""),Ne=d.useRef(0),Je=!1,J=d.useMemo(()=>{const t=la(r?.grade);return da.filter(o=>t.includes(o.id))},[r?.grade]),ea=d.useMemo(()=>(J.find(o=>o.id===i.subjectId)?.modules||[]).map(o=>({value:o.id,label:o.title})),[J,i.subjectId]),ae=d.useCallback(t=>{if(!de||typeof window>"u")return;const o=window.AudioContext||window.webkitAudioContext;if(o)try{const p=new o,m=p.createOscillator(),g=p.createGain(),f={tick:{frequency:740,duration:.06,type:"triangle",volume:.035},lock:{frequency:520,duration:.08,type:"square",volume:.04},result:{frequency:660,duration:.1,type:"sine",volume:.045},win:{frequency:920,duration:.18,type:"triangle",volume:.05},loss:{frequency:240,duration:.16,type:"sawtooth",volume:.045}}[t],z=p.currentTime;m.type=f.type,m.frequency.setValueAtTime(f.frequency,z),g.gain.setValueAtTime(1e-4,z),g.gain.exponentialRampToValueAtTime(f.volume,z+.015),g.gain.exponentialRampToValueAtTime(1e-4,z+f.duration),m.connect(g),g.connect(p.destination),m.start(z),m.stop(z+f.duration+.02),window.setTimeout(()=>{p.close()},Math.ceil((f.duration+.06)*1e3))}catch(p){console.debug("Battle tone playback skipped:",p)}},[de]),gt=d.useCallback(async t=>{if(!(!t||typeof window>"u"))try{await window.navigator.clipboard.writeText(t),le(t),window.setTimeout(()=>{le(o=>o===t?null:o)},1600)}catch{h({status:"error",message:"Unable to copy room code automatically. Please copy it manually."})}},[]),wt=d.useCallback(()=>{},[Je]),pe=d.useCallback(async()=>{if(!r?.uid)return null;const[t,o]=await Promise.all([Pa(r.uid),qa(r.uid,{mode:ce,limitCount:8})]);return{stats:t,history:o}},[ce,r?.uid]);d.useEffect(()=>{if(J.length===0)return;const o=J.some(g=>g.id===i.subjectId)?i.subjectId:J[0].id,p=J.find(g=>g.id===o),m=p?.modules?.[0]?.id||"";w(g=>{const T=p?.modules?.some(f=>f.id===g.topicId)?g.topicId:m;return g.subjectId===o&&g.topicId===T?g:{...g,subjectId:o,topicId:T}})},[J,i.subjectId]),d.useEffect(()=>{if(!r?.uid){We(null),Ue([]),He(!1);return}let t=!0;return He(!0),(async()=>{const p=await pe();t&&(p&&(We(p.stats),Ue(p.history)),He(!1))})(),()=>{t=!1}},[pe,r?.uid]);const Be=d.useMemo(()=>ce==="all"?Ve:Ve.filter(t=>t.mode===ce),[Ve,ce]),vt=d.useMemo(()=>ht.map((t,o)=>{const p=t.rank||o+1,m=t.userId===r?.uid,g=`Student-${t.userId.slice(-4).toUpperCase()}`,T=Ae==="full"?t.displayName:Ae==="initials"?rs(t.displayName):g,f=Math.floor(t.leaderboardScore/25)*25,z=Ge||m?`${t.leaderboardScore} pts`:`${f}-${f+24} pts`;return{...t,rank:p,isSelf:m,displayName:T,scoreLabel:z}}),[ht,Ae,Ge,r?.uid]);d.useEffect(()=>{if(c!=="leaderboard"&&c!=="hub")return;let t=!0;return pt(!0),(async()=>{const p=await Xa(20);t&&(Zt(p),pt(!1))})(),()=>{t=!1}},[c]);const Me=d.useCallback(async()=>{if(r?.uid)try{const t=await Ft();if(t.sessionType==="match"&&t.match){let o=t.match;if(t.match.mode==="bot"&&t.match.status==="ready")try{o=await G(t.match.matchId),Ne.current=0}catch(p){const m=p;v(!1),j(null),N(null),l("setup"),I(typeof window<"u"&&window.navigator.onLine?"connected":"disconnected"),h({status:"error",message:m?.message||"Unable to resume bot battle. Please start a new match."});return}v(!1),j(t.room||null),N(o),l("battle"),I("connected");return}if(t.sessionType==="room"&&t.room){v(!1),j(t.room),N(o=>o?.mode==="bot"?o:null),I("connected");return}if(t.sessionType==="queue"){v(!0),j(null),N(o=>o?.mode==="bot"?o:null),I("connected");return}v(!1),j(null),N(o=>o?.mode==="bot"?o:null),I("connected")}catch(t){console.warn("Quiz Battle session resume failed:",t),I("reconnecting")}},[r?.uid]);d.useEffect(()=>{r?.uid&&Me()},[r?.uid,Me]),d.useEffect(()=>{typeof window>"u"||window.localStorage.setItem("quiz_battle_sound_enabled",de?"1":"0")},[de]),d.useEffect(()=>{if(typeof window>"u")return;const t=()=>{const o=window.innerWidth,p=window.innerHeight;Jt({width:Number.isFinite(o)&&o>0?o:rt.width,height:Number.isFinite(p)&&p>0?p:rt.height})};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[]),d.useEffect(()=>{if(typeof document>"u")return;const t=()=>{Kt(!!document.fullscreenElement)};return t(),document.addEventListener("fullscreenchange",t),()=>{document.removeEventListener("fullscreenchange",t)}},[]),d.useEffect(()=>{if(!(B||x&&(x.status==="waiting"||x.status==="ready"))){te(0);return}const t=window.setInterval(()=>{te(o=>o+1)},1e3);return()=>{window.clearInterval(t)}},[B,x?.status,x?.roomId]),d.useEffect(()=>{if(typeof window>"u")return;I(window.navigator.onLine?"connected":"disconnected");const t=()=>{I("reconnecting"),Me()},o=()=>{I("disconnected")};return window.addEventListener("online",t),window.addEventListener("offline",o),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",o)}},[Me]),d.useEffect(()=>{const t=n?.mode==="online"&&(n.status==="ready"||n.status==="in_progress"),o=n?.mode==="bot"&&n.status==="ready",p=!!(x&&(x.status==="waiting"||x.status==="ready"));if(o||(Ne.current=0),!B&&!p&&!t&&!o||C)return;let m=!1;const g=async()=>{try{if(n?.mode==="bot"&&n.status==="ready"){const f=await G(n.matchId);if(m)return;N(f),I("connected"),Ne.current=0,f.status==="in_progress"&&h({status:"queued",message:"Practice bot match started."});return}if(n?.mode==="online"){if(n.status==="ready"){const z=await G(n.matchId);if(m)return;N(z),I("connected"),z.status==="in_progress"&&h({status:"queued",message:"Match started. Round timer is live."});return}const f=await st(n.matchId);if(m)return;N(f),f.status==="completed"&&(v(!1),j(null)),I("connected");return}if(x?.roomId){const f=await Ha({roomId:x.roomId});if(m)return;if(j(f.room),f.match){const z=await G(f.match.matchId);if(m)return;N(z),j(f.room),v(!1),l("battle"),I("connected"),h({status:"queued",message:z.status==="ready"?"Opponent connected. Waiting for synchronized start...":"Private room match started."})}return}if(B){const f=await Ft();if(m)return;if(f.sessionType==="match"&&f.match){const z=await G(f.match.matchId);if(m)return;N(z),j(f.room||null),v(!1),l("battle"),I("connected"),h({status:"queued",message:"Opponent found. Preparing synchronized start..."});return}if(f.sessionType==="room"&&f.room){v(!1),j(f.room),I("connected");return}I("connected")}}catch(f){if(!m){if(console.warn("Quiz Battle sync poll failed:",f),n?.mode==="bot"&&n.status==="ready"&&(Ne.current+=1,Ne.current>=3)){const z=f;v(!1),j(null),N(null),l("setup"),h({status:"error",message:z?.message||"Unable to start bot battle. Please try again."}),I("disconnected");return}I("reconnecting")}}};g();const T=window.setInterval(()=>{g()},3e3);return()=>{m=!0,window.clearInterval(T)}},[n?.matchId,n?.mode,n?.status,x?.roomId,x?.status,C,B]);const se=d.useMemo(()=>n?.mode==="online"&&(n.status==="ready"||n.status==="in_progress")?{scope:"match",resourceId:n.matchId}:x&&(x.status==="waiting"||x.status==="ready")?{scope:"room",resourceId:x.roomId}:B&&r?.uid?{scope:"queue",resourceId:r.uid}:null,[n,x,B,r?.uid]);d.useEffect(()=>{if(!se)return;let t=!1;const o=async()=>{try{await Va(se.scope,se.resourceId),t||I("connected")}catch(m){t||(console.warn("Quiz Battle heartbeat failed:",m),I("reconnecting"))}};o();const p=window.setInterval(()=>{o()},8e3);return()=>{t=!0,window.clearInterval(p),Fa(se.scope,se.resourceId)}},[se?.scope,se?.resourceId]),d.useEffect(()=>{if(!n||n.status!=="in_progress"){U(!1),xe.current=null,K.current=0;return}xe.current=null,K.current=0;const t=n.roundDeadlineAtMs?Math.max(0,Math.ceil((n.roundDeadlineAtMs-Date.now())/1e3)):n.timePerQuestionSec;ke(t),V(null),U(!1)},[n?.matchId,n?.status,n?.currentRound,n?.timePerQuestionSec]),d.useEffect(()=>{C&&(!n||n.status!=="in_progress")&&Ze(!1)},[n?.matchId,n?.status,C]),d.useEffect(()=>{const t=n?.lifecycle;if(!t?.eventType)return;const o=`${t.eventType}:${t.sequence}`;bt.current!==o&&(bt.current=o,t.eventType==="answer_locked"?ae("lock"):t.eventType==="round_result"&&ae("result"))},[n?.lifecycle?.eventType,n?.lifecycle?.sequence,ae]),d.useEffect(()=>{!n||n.status!=="completed"||ft.current!==n.matchId&&(ft.current=n.matchId,ae(n.outcome==="loss"?"loss":"win"),n.outcome==="win"&&ra(()=>import("./confetti.module-C94ZD2ww.js"),[]).then(t=>{t.default({particleCount:110,spread:78,origin:{y:.62},ticks:160})}).catch(()=>{}))},[n?.matchId,n?.status,n?.outcome,ae]),d.useEffect(()=>{if(!n||n.status!=="in_progress"||O||$||C){Ke.current=null;return}M<=3&&M>0&&Ke.current!==M&&(Ke.current=M,ae("tick"))},[n?.status,M,O,$,C,ae]);const Ee=d.useCallback(async t=>{if(!n||n.status!=="in_progress"||O||C)return;je(!0);const o=window.setTimeout(()=>{je(!1),h({status:"error",message:"Submission took too long. Syncing latest match state now..."}),st(n.matchId).then(p=>{N(p),p.status==="completed"&&(v(!1),j(null))}).catch(()=>{})},12e3);try{const p=n.roundDeadlineAtMs?as(n.timePerQuestionSec*1e3-Math.max(0,n.roundDeadlineAtMs-Date.now()),0,n.timePerQuestionSec*1e3):Math.max(0,(n.timePerQuestionSec-M)*1e3),m=await Za({matchId:n.matchId,roundNumber:n.currentRound,selectedOptionIndex:t,responseMs:p});xe.current=null,K.current=0,N(m.match),me(m.roundResult),V(null),m.match.mode==="online"&&m.match.status==="in_progress"&&!m.roundResult&&(U(!0),h({status:"queued",message:"Answer locked. Waiting for opponent to finish the round..."})),m.match.status==="completed"&&(v(!1),j(null),pe(),h({status:"queued",message:m.completion?`Match finished (${m.completion.outcome.toUpperCase()}) +${m.completion.xpEarned} XP`:"Match finished. Results saved."}))}catch(p){const g=p?.message||"Unable to submit answer right now. Please try again.";if(t===null||g.includes("Round timer elapsed")||g.includes("Expected round")||g.includes("Match is not currently active"))try{const f=await st(n.matchId),z=f.currentRound!==n.currentRound;if(N(f),V(null),U(!1),z||f.status==="completed"?(xe.current=null,K.current=0):t===null&&(K.current=Date.now()+3e3),f.status==="completed"){v(!1),j(null),pe(),h({status:"queued",message:"Match finished. Results synchronized."});return}h({status:"queued",message:"Round timed out. Synced to the latest battle state."});return}catch{}t===null&&(K.current=Date.now()+3e3),h({status:"error",message:g})}finally{window.clearTimeout(o),je(!1)}},[n,C,pe,O,M]);d.useEffect(()=>{if(!n||n.status!=="in_progress"||C||$||O)return;const t=n.roundDeadlineAtMs?Math.max(0,Math.ceil((n.roundDeadlineAtMs-Date.now())/1e3)):M;if(n.roundDeadlineAtMs&&t!==M&&ke(t),ue===null?t<=1:t<=0){if(xe.current===n.currentRound&&Date.now(){n.roundDeadlineAtMs?ke(Math.max(0,Math.ceil((n.roundDeadlineAtMs-Date.now())/1e3))):ke(m=>Math.max(0,m-1))},1e3);return()=>{window.clearTimeout(p)}},[n,$,C,O,M,ue,Ee]);const yt=d.useCallback(async()=>{if(!(!n||n.mode!=="bot")){je(!0),h({status:"validating"});try{const t=await Ya(n.matchId),o=await G(t.matchId);N(o),j(null),v(!1),me(null),V(null),U(!1),l("battle"),h({status:"queued",message:`Rematch ready (${t.botDifficulty}). Good luck!`})}catch(t){h({status:"error",message:t?.message||"Unable to start rematch right now."})}finally{je(!1)}}},[n]);if(s!=="student")return e.jsx("div",{className:"px-4 sm:px-6 xl:px-10 py-6 sm:py-8",children:e.jsx(H,{className:u(P,"max-w-2xl"),children:e.jsxs(Z,{children:[e.jsx(Y,{children:"Quiz Battle is student-only"}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#aab3c7]",children:"Your account role does not have access to this module."})]})})});const jt=t=>{y([]),h({status:"idle"}),Ze(!1),v(!1),j(null),D(""),N(null),me(null),V(null),U(!1),w(o=>({...o,mode:t,queueType:t==="online"?o.queueType:"public_matchmaking"})),te(0),l("setup")},kt=async()=>{h({status:"validating"});try{x?.roomId?await Wa({roomId:x.roomId}):await La(),v(!1),j(null),N(t=>!t||t.mode!=="online"?t:t.status==="ready"||t.status==="cancelled"?null:t),D(""),te(0),h({status:"queued",message:x?.roomId?"Private room cancelled.":"Left matchmaking queue."})}catch(t){h({status:"error",message:t?.message||"Unable to cancel this online session right now. Please try again."})}},ta=async()=>{h({status:"validating"});const t=Ta(i);if(t.length>0){y(t),h({status:"error",message:"Fix the highlighted setup fields before starting."});return}y([]);try{if(i.mode==="online"){if(i.queueType==="private_room"){const g=A.trim().toUpperCase(),T=g?await Oa(g):await $a(i);if(v(!1),j(T.room),D(""),T.match){const f=await G(T.match.matchId);N(f),me(null),V(null),U(!1),l("battle"),h({status:"queued",message:f.status==="ready"?`Room ${T.room.roomCode} linked. Waiting for synchronized start...`:"Private room match started."});return}N(null),h({status:"queued",message:g?"Joined private room. Waiting for opponent...":"Private room created. Share code:"});return}const m=await Qa(i);if(m.status==="matched"&&m.matchId){const g=await G(m.matchId);v(!1),j(null),N(g),me(null),V(null),U(!1),l("battle"),h({status:"queued",message:"Opponent found. Preparing synchronized start..."});return}v(!0),j(null),N(null),te(0),h({status:"queued",message:"Joined matchmaking queue. Waiting for an opponent..."});return}const o=await Ua(i),p=await G(o.matchId);v(!1),j(null),N(p),me(null),V(null),U(!1),ke(p.timePerQuestionSec),l("battle"),h({status:"queued",message:`Bot match ${o.matchId.slice(0,8)} live (${o.botDifficulty}).`}),pe().then(m=>{m&&(We(m.stats),Ue(m.history))})}catch(o){v(!1),h({status:"error",message:o?.message||"Unable to start battle. Please try again."})}},Q=t=>S.find(o=>o.field===t)?.message;W?.winRate;const Nt=!!(i.mode==="online"&&x&&(x.status==="waiting"||x.status==="ready")&&(!n||n.status!=="completed")),aa=!!(B||x&&(x.status==="waiting"||x.status==="ready")&&(!n||n.status==="ready"||n.status==="cancelled"));return n&&(n.status==="in_progress"||n.status==="completed")?e.jsxs("div",{className:"fixed inset-0 z-[100] bg-[#0B0F19] text-white flex flex-col overflow-hidden",children:[n.status==="completed"&&n.outcome==="win"&&e.jsx(Ja,{viewportHeight:Xe.height,viewportWidth:Xe.width}),n.status==="completed"&&n.outcome==="loss"&&e.jsx(Ka,{viewportHeight:Xe.height}),e.jsx("div",{className:"absolute inset-0 z-0 opacity-40",children:e.jsx(Et,{children:e.jsx("div",{className:"h-full w-full"})})}),C&&e.jsx("div",{className:"absolute inset-0 z-[110] bg-black/60 backdrop-blur-md flex items-center justify-center",children:e.jsxs(H,{className:"w-full max-w-sm border-border/50 bg-[#181d27] shadow-[0_20px_50px_rgba(0,0,0,0.5)]",children:[e.jsxs(Z,{className:"text-center",children:[e.jsx(Y,{className:"text-3xl font-black text-white",children:"PAUSED"}),e.jsx(ee,{className:"text-base text-muted-foreground mt-2",children:n.mode==="online"?"Online match - timer continues in the background! Hurry!":"Bot match - round timer frozen."})]}),e.jsxs(ne,{className:"flex flex-col gap-3",children:[e.jsx(_,{variant:"default",size:"lg",className:"w-full text-lg h-12",onClick:wt,children:"Resume Match"}),e.jsx(_,{variant:"outline",size:"lg",className:"w-full text-lg h-12 border-rose-500/20 text-rose-500 hover:bg-rose-500/10",onClick:()=>{Ze(!1),N(null),j(null),v(!1),h({status:"idle"}),l("setup")},children:"Leave Match"})]})]})}),e.jsxs("div",{className:"relative z-10 flex flex-col h-full w-full max-w-[1400px] mx-auto px-4 md:px-8 py-4",children:[e.jsxs("header",{className:"flex items-center justify-between shrink-0 h-16",children:[e.jsxs("div",{className:"flex items-center gap-3 md:gap-5",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 rounded-xl bg-primary/20 ring-1 ring-primary/40 shadow-[0_0_15px_rgba(158,143,255,0.4)]",children:e.jsx(Re,{className:"h-6 w-6 text-primary"})}),e.jsx("div",{className:"hidden sm:flex items-center gap-2 px-4 py-2 rounded-full bg-amber-500/10 border border-amber-500/30 text-amber-400 font-black text-sm tracking-wide shadow-[0_0_10px_rgba(245,158,11,0.2)]",children:"🔥 3 Streak"}),e.jsx("div",{className:"hidden md:flex items-center gap-2 px-4 py-2 rounded-full bg-violet-500/10 border border-violet-500/30 text-violet-400 font-black text-sm tracking-wide shadow-[0_0_10px_rgba(139,92,246,0.2)]",children:"✨ 1.5x XP"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(_,{variant:"outline",size:"icon",className:"h-12 w-12 rounded-full border-white/20 bg-black/20 hover:bg-white/10 text-white",onClick:()=>{typeof document>"u"||(document.fullscreenElement?document.exitFullscreen().catch(t=>{console.warn("Fullscreen mode unavailable or blocked by browser (exit):",t)}):document.documentElement.requestFullscreen().catch(t=>{console.warn("Fullscreen mode unavailable or blocked by browser (enter):",t)}))},"aria-label":Ye?"Exit fullscreen mode":"Enter fullscreen mode",title:Ye?"Exit fullscreen mode":"Enter fullscreen mode",children:Ye?e.jsx(ya,{className:"h-5 w-5"}):e.jsx(wa,{className:"h-5 w-5"})}),e.jsx(_,{variant:"outline",size:"icon",className:u("h-12 w-12 rounded-full border-white/20 text-white","bg-black/10 opacity-50 cursor-not-allowed"),onClick:wt,disabled:!Je,"aria-label":"Design pause unavailable",title:"Design pause unavailable",children:e.jsx(na,{className:"h-5 w-5"})})]})]}),n.status==="in_progress"?e.jsx("div",{className:"shrink-0 w-full max-w-4xl mx-auto h-2 bg-white/10 rounded-full overflow-hidden mt-6 mb-4",children:e.jsx(b.div,{className:"h-full",animate:{width:`${Math.max(0,M/n.timePerQuestionSec*100)}%`,backgroundColor:M>Math.floor(n.timePerQuestionSec/2)?"#10b981":M>3?"#f59e0b":"#ef4444"},transition:{duration:1,ease:"linear"}})}):e.jsx("div",{className:"shrink-0 h-6 md:h-10 w-full"}),e.jsx("div",{className:"flex-1 flex flex-col justify-center items-center gap-6 md:gap-10 w-full min-h-0 overflow-y-auto pb-48 z-20",style:{scrollbarWidth:"none"},children:n.status==="completed"?e.jsxs(b.div,{initial:{opacity:0,scale:.8,y:20},animate:{opacity:1,scale:1,y:0},className:"w-full max-w-2xl bg-black/60 backdrop-blur-2xl border border-white/20 shadow-[0_30px_80px_rgba(0,0,0,0.8)] rounded-[2.5rem] p-8 md:p-12 text-center",children:[e.jsx("h2",{className:u("text-5xl font-black uppercase tracking-widest drop-shadow-lg mb-4",n.outcome==="win"?"text-emerald-400":n.outcome==="loss"?"text-rose-400":"text-amber-400"),children:n.outcome==="win"?"VICTORY!":n.outcome==="loss"?"DEFEAT":"DRAW MATCH"}),e.jsxs("p",{className:"text-white/80 font-bold text-xl mb-8 uppercase tracking-widest",children:["Final Score: ",n.scoreFor," - ",n.scoreAgainst]}),e.jsxs("div",{className:"bg-white/10 rounded-2xl p-6 mb-10 border border-white/10 flex items-center justify-center gap-4",children:[e.jsx(Fe,{className:"text-amber-400 h-8 w-8"}),e.jsxs("span",{className:"text-white font-black text-2xl",children:["+",n.xpEarned||0," XP EARNED"]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsx(_,{size:"lg",onClick:()=>{j(null),v(!1),l("setup")},className:"h-16 px-8 rounded-2xl text-lg font-black bg-white/10 hover:bg-white/20 text-white border-2 border-white/20",children:"START NEW MATCH"}),n.mode==="bot"&&e.jsx(_,{size:"lg",onClick:()=>void yt(),disabled:$,className:"h-16 px-8 rounded-2xl text-lg font-black bg-violet-600 hover:bg-violet-500 text-white border-b-4 border-violet-800 active:border-b-0 active:translate-y-[4px]",children:"REMATCH"})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative bg-[#1e2536] border border-white/10 shadow-[0_20px_60px_rgba(0,0,0,0.4)] rounded-[2rem] p-8 md:p-12 w-full max-w-4xl text-center flex flex-col items-center",children:[e.jsxs("div",{className:"absolute -top-4 bg-[#2f3547] border border-white/10 text-white/80 px-5 py-1.5 rounded-full text-base font-black shadow-lg uppercase tracking-wider",children:[n.currentRound," / ",n.totalRounds]}),e.jsx("p",{className:"text-2xl sm:text-3xl md:text-5xl text-white font-extrabold leading-tight tracking-tight mt-2 min-h-[80px] flex items-center justify-center",children:n.currentQuestion?.prompt})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 md:gap-6 w-full max-w-4xl px-4",children:n.currentQuestion?.choices.map((t,o)=>{const p=ue===o,m=$||O,g=["bg-emerald-500 hover:bg-emerald-400 active:bg-emerald-600 text-emerald-950 border-emerald-400 shadow-[0_8px_0_rgba(5,150,105,1)]","bg-violet-500 hover:bg-violet-400 active:bg-violet-600 text-white border-violet-400 shadow-[0_8px_0_rgba(109,40,217,1)]","bg-sky-500 hover:bg-sky-400 active:bg-sky-600 text-white border-sky-400 shadow-[0_8px_0_rgba(2,132,199,1)]","bg-rose-500 hover:bg-rose-400 active:bg-rose-600 text-white border-rose-400 shadow-[0_8px_0_rgba(225,29,72,1)]"];return e.jsx(b.button,{whileTap:{y:8,scale:.98},whileHover:{scale:1.02},disabled:m||C,onClick:()=>void Ee(o),className:u("relative h-24 md:h-32 rounded-3xl font-black text-xl md:text-3xl px-6 md:px-8 border-t-[3px] flex items-center justify-center text-center transition-all disabled:opacity-50 disabled:cursor-not-allowed",g[o],p?"ring-[6px] ring-white ring-offset-[6px] ring-offset-[#0B0F19]":""),children:t},o)})})]})}),e.jsxs("div",{className:"absolute bottom-0 left-0 right-0 w-full xl:max-w-[1400px] mx-auto px-4 md:px-8 shrink-0 h-32 md:h-40 flex justify-between items-end pb-4 pointer-events-none z-30",children:[e.jsxs("div",{className:"flex items-end gap-3 sm:gap-6 relative pointer-events-auto",children:[e.jsx("div",{className:"relative w-28 h-28 md:w-36 md:h-36 overflow-hidden rounded-t-[40px]",children:e.jsx(ia,{layers:r?.avatarLayers||{},className:"w-full h-full object-contain origin-bottom scale-110 -mb-2"})}),e.jsxs("div",{className:"bg-black/40 backdrop-blur-xl border border-white/20 rounded-2xl px-5 py-3 shadow-[0_8px_30px_rgba(0,0,0,0.5)] flex flex-col mb-4 max-w-[200px] md:max-w-[250px]",children:[e.jsx("span",{className:"text-white font-black text-lg truncate tracking-wide",children:r?.name||"Player"}),e.jsxs("span",{className:"text-sm text-white/50 font-bold uppercase tracking-wider",children:["Level ",r?.level||1]})]})]}),e.jsxs("div",{className:"flex items-end gap-3 sm:gap-6 relative flex-row-reverse pointer-events-auto",children:[e.jsx("div",{className:"relative w-28 h-28 md:w-36 md:h-36 bg-[#1a2030] overflow-hidden rounded-t-[40px] flex items-end justify-center border-t-4 border-slate-700/50 shadow-inner",children:n.mode==="bot"?e.jsx(et,{className:"h-16 w-16 md:h-20 md:w-20 text-rose-400 mb-6 drop-shadow-xl",strokeWidth:1.5}):e.jsx(_e,{className:"h-16 w-16 md:h-20 md:w-20 text-slate-500 mb-6 drop-shadow-xl",strokeWidth:1.5})}),e.jsxs("div",{className:"bg-black/40 backdrop-blur-xl border border-white/20 rounded-2xl px-5 py-3 shadow-[0_8px_30px_rgba(0,0,0,0.5)] flex flex-col mb-4 text-right max-w-[200px] md:max-w-[250px]",children:[e.jsx("span",{className:"text-white font-black text-lg truncate tracking-wide",children:n.opponentName||"Anonymous"}),e.jsx("span",{className:"text-sm text-rose-400 font-bold uppercase tracking-wider",children:n.mode==="bot"?"System Bot":"Challenger"})]})]})]})]})]}):e.jsx(Et,{className:"-mx-3 lg:-mx-4 -mt-3 lg:-mt-4 -mb-8 px-4 sm:px-6 xl:px-10 py-6 sm:py-8 min-h-[calc(100vh-3.5rem)] !w-auto overflow-hidden relative",children:e.jsx("div",{className:"h-full flex flex-col max-w-[1400px] mx-auto w-full",children:e.jsx(b.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.24,ease:[.22,1,.36,1]},className:"space-y-3 lg:space-y-4",children:e.jsxs(xa,{value:c,onValueChange:t=>l(t),children:[e.jsx(he,{value:"hub",className:"mt-0 outline-none",children:e.jsx(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-5",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_300px] xl:grid-cols-[1fr_320px] gap-6 sm:gap-8 lg:gap-10",children:[e.jsxs("div",{className:"space-y-3 lg:space-y-4",children:[e.jsxs("div",{className:"relative select-none isolate bg-indigo-600 rounded-[2rem] shadow-[0_20px_45px_-15px_rgba(0,0,0,0.3)] shrink-0",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 pointer-events-none z-0 rounded-[2rem]"}),e.jsx("div",{className:"absolute inset-0 opacity-10 pointer-events-none rounded-[2rem] overflow-hidden",style:{backgroundImage:"repeating-linear-gradient(0deg, transparent, transparent 39px, #ffffff 39px, #ffffff 40px), repeating-linear-gradient(90deg, transparent, transparent 39px, #ffffff 39px, #ffffff 40px)"}}),e.jsx("div",{className:"absolute top-0 right-0 w-[400px] h-[400px] bg-sky-500/20 blur-[100px] rounded-full pointer-events-none"}),e.jsxs("div",{className:"relative z-10 flex flex-col md:flex-row items-center justify-between p-6 lg:p-8 h-full min-h-[140px] lg:min-h-[160px]",children:[e.jsx("div",{className:"flex-1 space-y-3 w-full pr-0 md:pr-[240px] lg:pr-[280px]",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"flex items-center gap-3 text-3xl sm:text-4xl lg:text-[46px] font-black tracking-tight text-white mb-2 sm:mb-4",children:[e.jsx(Re,{className:"h-8 w-8 sm:h-10 sm:w-10 lg:h-12 lg:w-12 text-[#d1abff]",strokeWidth:2.5}),"Quiz Battle"]}),e.jsx("p",{className:"text-base sm:text-lg lg:text-xl text-white mt-1.5 sm:mt-2 max-w-2xl leading-relaxed",children:"Timed student duels with synchronized rounds, instant feedback, and progression rewards."}),e.jsxs("p",{className:"text-xs lg:text-sm font-semibold uppercase tracking-[0.15em] text-[#8a7fbc] mt-3",children:["Connection: ",e.jsx("span",{className:mt==="connected"?"text-emerald-400":"text-amber-400",children:mt})]})]})}),e.jsx("div",{className:"hidden md:block absolute right-[-5px] lg:right-[-15px] top-0 lg:top-[5px] w-[200px] lg:w-[260px] shrink-0 pointer-events-none z-20",children:e.jsx(b.img,{src:za,alt:"Mascot",className:"w-full h-full object-contain",animate:{y:[0,-24,0],rotate:[-3,3,-3]},transition:{duration:4,repeat:1/0,ease:"easeInOut"}})})]})]}),e.jsxs("div",{className:"pt-4 lg:pt-6",children:[e.jsxs("h2",{className:"flex items-center gap-2 pb-4 text-xl lg:text-2xl font-black tracking-wide uppercase text-white drop-shadow-[0_0_12px_rgba(255,255,255,0.4)]",children:[e.jsx(Re,{className:"h-6 w-6 lg:h-8 lg:w-8 text-amber-400 drop-shadow-[0_0_8px_rgba(251,191,36,0.9)]"})," BATTLE MODES"]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 lg:gap-6 relative z-10 w-full mb-2",children:[e.jsxs(b.button,{type:"button",onClick:()=>jt("online"),whileHover:{scale:1.025},whileTap:{scale:.98},transition:{type:"spring",stiffness:400,damping:15},className:"w-full h-[205px] sm:h-[245px] lg:h-[265px] bg-[#8A3FD3] rounded-[22px] border-none relative text-left shadow-[0_8px_30px_rgba(138,63,211,0.2)] hover:shadow-[0_12px_45px_rgba(138,63,211,0.4)] block flex-col group",children:[e.jsx("div",{className:"absolute inset-0 rounded-[22px] shadow-[inset_0_6px_15px_rgba(255,255,255,0.4)] pointer-events-none z-40"}),e.jsxs("div",{className:"absolute top-4 -left-4 z-20 w-[100px] h-[40px] opacity-100",children:[e.jsx("svg",{viewBox:"0 0 100 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"w-full h-full block drop-shadow-md",children:e.jsx("path",{d:"M0 0 H94 Q100 0 100 6 V34 Q100 40 94 40 H0 L14 20 Z",fill:"#b91c1c"})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-end pr-3 font-black text-[13px] text-white tracking-[0.3px] opacity-100",style:{fontFamily:"'Nunito', sans-serif"},children:"VS Player"})]}),e.jsxs("div",{className:"rounded-[22px] overflow-hidden relative isolate h-full flex flex-col justify-end",children:[e.jsx("div",{className:"absolute top-0 -left-[150%] w-[100%] h-full bg-gradient-to-r from-transparent via-white/40 to-transparent -skew-x-12 z-50 pointer-events-none transition-all duration-0 group-hover:duration-[800ms] ease-in-out group-hover:left-[150%]"}),e.jsxs("div",{className:"flex-1 w-full flex items-end justify-center relative pt-2 pointer-events-none",children:[e.jsx("div",{className:"absolute bottom-0 left-0 w-full h-[70px] sm:h-[95px] bg-[#662AA8] rounded-[50%_50%_0_0/100%_100%_0_0] scale-[1.05] z-0"}),e.jsxs("div",{className:"relative z-10 flex items-center justify-center mb-[2px] h-[120px] sm:h-[140px] w-full",children:[e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"h-[120%] sm:h-[125%] object-contain relative z-20 origin-bottom right-[-15px] drop-shadow-[0_12px_15px_rgba(0,0,0,0.3)]",animate:{y:[0,-5,0]},transition:{duration:4,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"relative z-30 flex flex-col items-center mx-[-20px] scale-[1.1]",animate:{scale:[1.1,1.15,1.1]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},children:e.jsxs("span",{className:"font-black italic text-[40px] text-gray-200 tracking-tighter leading-none drop-shadow-[-2px_3px_0px_rgba(0,0,0,0.8)]",style:{WebkitTextStroke:"1.5px #666"},children:[e.jsx("span",{className:"text-gray-300",children:"V"}),e.jsx("span",{className:"text-gray-400",children:"S"})]})}),e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"h-[120%] sm:h-[125%] object-contain relative z-10 scale-x-[-1] origin-bottom left-[-20px] drop-shadow-[0_12px_15px_rgba(0,0,0,0.3)]",animate:{y:[0,-4,0]},transition:{duration:4,repeat:1/0,ease:"easeInOut",delay:.4}})]})]}),e.jsx("div",{className:"relative z-10 w-full px-5 py-3 sm:py-4 text-center bg-[#662AA8]",children:e.jsx("p",{className:"text-[13px] font-bold text-white leading-[1.45]",style:{fontFamily:"'Nunito', sans-serif"},children:"Queue or room-code match with another student."})})]})]}),e.jsxs(b.button,{type:"button",onClick:()=>jt("bot"),whileHover:{scale:1.025},whileTap:{scale:.98},transition:{type:"spring",stiffness:400,damping:15},className:"w-full h-[205px] sm:h-[245px] lg:h-[265px] bg-[#1FA7E1] rounded-[22px] border-none relative text-left shadow-[0_8px_30px_rgba(31,167,225,0.2)] hover:shadow-[0_12px_45px_rgba(31,167,225,0.4)] block flex-col group",children:[e.jsx("div",{className:"absolute inset-0 rounded-[22px] shadow-[inset_0_6px_15px_rgba(255,255,255,0.4)] pointer-events-none z-40"}),e.jsxs("div",{className:"absolute top-4 -left-4 z-20 w-[100px] h-[40px] opacity-100",children:[e.jsx("svg",{viewBox:"0 0 100 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"w-full h-full block drop-shadow-md",children:e.jsx("path",{d:"M0 0 H94 Q100 0 100 6 V34 Q100 40 94 40 H0 L14 20 Z",fill:"#b91c1c"})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-end pr-3 font-black text-[13px] text-white tracking-[0.3px] opacity-100",style:{fontFamily:"'Nunito', sans-serif"},children:"VS Bot"})]}),e.jsxs("div",{className:"rounded-[22px] overflow-hidden relative isolate h-full flex flex-col justify-end",children:[e.jsx("div",{className:"absolute top-0 -left-[150%] w-[100%] h-full bg-gradient-to-r from-transparent via-white/40 to-transparent -skew-x-12 z-50 pointer-events-none transition-all duration-0 group-hover:duration-[800ms] ease-in-out group-hover:left-[150%]"}),e.jsxs("div",{className:"flex-1 w-full flex items-end justify-center relative pt-2 pointer-events-none",children:[e.jsx("div",{className:"absolute bottom-0 left-0 w-full h-[70px] sm:h-[95px] bg-[#127DA6] rounded-[50%_50%_0_0/100%_100%_0_0] scale-[1.05] z-0"}),e.jsxs("div",{className:"relative z-10 flex items-end justify-center mb-[2px] h-[125px] sm:h-[145px] w-full",children:[e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"absolute opacity-40 blur-[1px] h-full object-contain origin-bottom -translate-x-[45px] sm:-translate-x-[60px] scale-[0.80] sm:scale-[0.85]",animate:{y:[0,-3,0]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut",delay:.3}}),e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"absolute opacity-40 blur-[1px] h-full object-contain origin-bottom translate-x-[45px] sm:translate-x-[60px] scale-[0.80] sm:scale-[0.85]",animate:{y:[0,-3,0]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut",delay:.6}}),e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"VS Bot",className:"relative opacity-100 scale-100 h-[105%] sm:h-[115%] object-contain drop-shadow-[0_15px_15px_rgba(0,0,0,0.3)] z-20 origin-bottom",animate:{y:[0,-5,0]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut"}})]})]}),e.jsx("div",{className:"relative z-10 w-full px-5 py-3 sm:py-4 text-center bg-[#127DA6]",children:e.jsx("p",{className:"text-[13px] font-bold text-white leading-[1.45]",style:{fontFamily:"'Nunito', sans-serif"},children:"Instant solo duel with selectable bot difficulty."})})]})]})]})]})]}),e.jsxs("div",{className:"space-y-3 lg:space-y-4 flex flex-col h-full justify-between",children:[e.jsx("div",{onClick:()=>l("leaderboard"),className:"relative w-full h-[155px] sm:h-[165px] cursor-pointer group flex items-end justify-center overflow-visible mt-1 mb-2 scale-[0.75] origin-bottom sm:scale-[0.80] lg:scale-[0.85] lg:origin-center",children:e.jsxs(b.div,{className:"relative w-full h-full flex flex-col items-center justify-end",whileHover:{scale:1.03},whileTap:{scale:.98},children:[e.jsxs("div",{className:"absolute top-[1px] sm:-top-[30px] w-full flex justify-center items-end px-2 z-0",children:[e.jsx(Fe,{strokeWidth:0,fill:"currentColor",className:"w-[35px] h-[35px] text-[#fde047] -rotate-[15deg] -mr-3 mb-1 z-0 drop-shadow-[0_0_15px_rgba(253,224,71,0.6)]"}),e.jsx(b.div,{animate:{y:[-4,4,-4]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},className:"z-10 relative",children:e.jsx(Fe,{strokeWidth:0,fill:"currentColor",className:"w-[60px] h-[60px] text-[#fcd34d] drop-shadow-[0_0_25px_rgba(252,211,77,0.9)]"})}),e.jsx(Fe,{strokeWidth:0,fill:"currentColor",className:"w-[35px] h-[35px] text-[#fde047] rotate-[15deg] -ml-3 mb-1 z-0 drop-shadow-[0_0_15px_rgba(253,224,71,0.6)]"})]}),e.jsx("div",{className:`absolute inset-x-0 bottom-[40px] top-0 z-10 flex flex-col items-center justify-end - filter drop-shadow-[0px_3px_0px_white] drop-shadow-[0px_-3px_0px_white] drop-shadow-[3px_0px_0px_white] drop-shadow-[-3px_0px_0px_white] drop-shadow-[2px_2px_0px_white] drop-shadow-[-2px_-2px_0px_white] drop-shadow-[2px_-2px_0px_white] drop-shadow-[-2px_2px_0px_white]`,children:e.jsxs("div",{className:"flex items-end justify-center z-20 relative px-4",children:[e.jsxs("div",{className:"flex flex-col items-center w-[65px] relative",children:[e.jsx("div",{className:"w-full h-[14px] bg-[#d24b4b] rounded-[2px] relative z-10 -mb-[1px]"}),e.jsxs("div",{className:"w-[85%] h-[50px] bg-[#fe5c5c] rounded-b-[2px] flex flex-col justify-center items-center gap-1.5 pb-1.5",children:[e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"}),e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"})]})]}),e.jsxs("div",{className:"flex flex-col items-center w-[75px] -mx-[4px] z-20 relative",children:[e.jsx("div",{className:"w-full h-[18px] bg-[#f2812d] rounded-[2px] relative z-10 -mb-[1px]"}),e.jsxs("div",{className:"w-[85%] h-[75px] bg-[#fa9746] rounded-b-[2px] flex flex-col justify-start items-center pt-4 gap-1.5",children:[e.jsx("div",{className:"w-9 h-1.5 bg-white rounded-full opacity-95"}),e.jsx("div",{className:"w-9 h-1.5 bg-white rounded-full opacity-95"})]})]}),e.jsxs("div",{className:"flex flex-col items-center w-[65px] relative",children:[e.jsx("div",{className:"w-full h-[14px] bg-[#d24b4b] rounded-[2px] relative z-10 -mb-[1px]"}),e.jsxs("div",{className:"w-[85%] h-[50px] bg-[#fe5c5c] rounded-b-[2px] flex flex-col justify-center items-center gap-1.5 pb-1.5",children:[e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"}),e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"})]})]})]})}),e.jsx("div",{className:"absolute bottom-2 w-[110%] max-w-[280px] z-30 drop-shadow-2xl",children:e.jsxs("div",{className:"relative w-full h-[52px] flex justify-center items-center",children:[e.jsx("div",{className:"absolute -left-1 top-2 w-[55px] h-[40px] bg-[#8b0d0d] z-0",style:{clipPath:"polygon(100% 0, 100% 100%, 0 100%, 25% 50%, 0 0)"}}),e.jsx("div",{className:"absolute -right-1 top-2 w-[55px] h-[40px] bg-[#8b0d0d] z-0",style:{clipPath:"polygon(0 0, 0 100%, 100% 100%, 75% 50%, 100% 0)"}}),e.jsxs("div",{className:"absolute inset-x-6 top-0 bottom-0 bg-[#b61515] shadow-[inset_0_2px_4px_rgba(255,255,255,0.1),_inset_0_-4px_4px_rgba(0,0,0,0.2)] z-10 flex flex-col items-center justify-center",children:[e.jsx("h3",{className:"text-lg sm:text-xl font-black text-white tracking-widest leading-none drop-shadow-md",style:{fontFamily:"'Nunito', sans-serif"},children:"Hall of Fame"}),e.jsx("span",{className:"text-[9px] sm:text-[10px] font-bold text-white/90 tracking-widest mt-0.5",children:"View Page >"})]})]})})]})}),e.jsxs("div",{className:"relative w-full bg-[#3b3a82] dark:bg-[#2b2b5f] rounded-[24px] overflow-hidden flex flex-col shadow-[0_8px_30px_rgba(59,58,130,0.3)]",children:[e.jsxs("div",{className:"flex flex-row items-end justify-between px-5 pt-4 pb-2 relative z-10",children:[e.jsx("h3",{className:"text-[18px] font-black text-white tracking-wide leading-none drop-shadow-md",style:{fontFamily:"'Nunito', sans-serif"},children:"My Stats"}),e.jsx(_,{variant:"link",className:"text-white/80 hover:text-white p-0 h-auto font-semibold text-[13px] tracking-wide",onClick:()=>l("stats"),children:"View Stats >"})]}),e.jsxs("div",{className:"relative z-10 w-full overflow-hidden pb-4",children:[e.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-6 bg-gradient-to-r from-[#3b3a82] to-transparent z-20 pointer-events-none dark:from-[#2b2b5f]"}),e.jsx("div",{className:"absolute right-0 top-0 bottom-0 w-6 bg-gradient-to-l from-[#3b3a82] to-transparent z-20 pointer-events-none dark:from-[#2b2b5f]"}),e.jsx(b.div,{className:"flex w-max pl-3",animate:{x:["0%","-50%"]},transition:{ease:"linear",duration:15,repeat:1/0},children:[0,1].map(t=>e.jsxs("div",{className:"flex gap-2.5 pr-2.5",children:[e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#f0eaff] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#d6ccf5]",children:[e.jsx(tt,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#a06aec]/10 -rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"🏆"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsxs("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#8f5ae2] leading-none tracking-tight",children:[Math.round(W?.winRate||0)," %"]}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#baa4df] uppercase tracking-wider leading-none",children:"Win Rate"})]})]}),e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#e1f5f7] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#b0e6eb]",children:[e.jsx(zt,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#35a8bc]/10 rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"🎯"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsx("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#319ab4] leading-none tracking-tight",children:W?.matchesPlayed||0}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#7eafbe] uppercase tracking-wider leading-none",children:"Matches"})]})]}),e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#fef5e7] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#f6ebd2]",children:[e.jsx(Bt,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#e87a42]/10 -rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"⏱️"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsxs("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#db734b] leading-none tracking-tight",children:[W?.averageResponseMs?(W.averageResponseMs/1e3).toFixed(1):0,"s"]}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#d2a893] uppercase tracking-wider leading-none whitespace-nowrap",children:"Response"})]})]}),e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#fdeceb] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#fbd3d3]",children:[e.jsx(At,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#df655a]/10 rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"✨"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsx("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#d05c54] leading-none tracking-tight",children:r?.currentXP||0}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#dd9a9a] uppercase tracking-wider leading-none whitespace-nowrap",children:"Total XP"})]})]})]},t))})]})]}),e.jsxs(H,{className:u(P,"rounded-[18px] flex flex-col min-h-[200px]"),children:[e.jsxs(Z,{className:"pb-0 pt-3 px-4 flex flex-row items-center justify-between",children:[e.jsxs(Y,{className:"text-[14px] font-black flex items-center gap-2 text-[#2e2b5e] dark:text-[#f5f7fb]",children:[e.jsx(Mt,{className:"h-[16px] w-[16px] text-[#2e2b5e] dark:text-[#9e8fff]"})," Match History"]}),e.jsx(_,{variant:"link",size:"sm",className:"h-auto p-0 text-[12px] font-semibold text-muted-foreground dark:text-[#95a0bb] hover:text-primary transition-colors",onClick:()=>l("history"),children:"View All"})]}),e.jsxs(ne,{className:"space-y-1.5 px-4 pt-1 pb-3 overflow-y-auto",children:[e.jsx("div",{className:"text-[11px] text-muted-foreground dark:text-[#8b95ad] mb-1.5 leading-relaxed",children:"Your recent student battles only."}),xt?e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"h-10 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-10 w-full rounded-xl bg-muted dark:bg-[#2a3143]"})]}):Be.length===0?e.jsx("p",{className:"text-xs text-center text-muted-foreground dark:text-[#a8b2c9] py-2",children:"No battle history yet."}):Be.slice(0,3).map(t=>{const o=t.outcome==="win",p=t.outcome==="loss",m=t.opponentName.split(" ").map(g=>g[0]).join("").substring(0,2).toUpperCase()||"OP";return e.jsxs("div",{className:"group relative overflow-hidden rounded-[14px] border border-muted-foreground/15 bg-white dark:bg-[#11151d] dark:border-[#2f3547] p-2 shadow-sm transition-all hover:scale-[1.01] hover:shadow-md",children:[e.jsx("div",{className:u("absolute inset-y-0 right-0 w-[55%] pointer-events-none opacity-[0.2] dark:opacity-[0.25] mix-blend-multiply dark:mix-blend-screen transition-all",o?"bg-gradient-to-l from-emerald-500 via-emerald-500/40 to-transparent":p?"bg-gradient-to-l from-rose-500 via-rose-500/40 to-transparent":"bg-gradient-to-l from-amber-400 via-amber-400/40 to-transparent")}),e.jsxs("div",{className:"flex items-center gap-2.5 relative z-10 w-full",children:[e.jsx("div",{className:u("w-9 h-9 rounded-full flex items-center justify-center font-black text-[12px] tracking-wide text-white flex-shrink-0 shadow-inner",o?"bg-[#34d399] dark:bg-[#15803d]":p?"bg-[#fb7185] dark:bg-[#be123c]":"bg-[#fbbf24] dark:bg-[#b45309]"),children:m}),e.jsxs("div",{className:"flex-grow min-w-0 flex flex-col justify-center",children:[e.jsxs("p",{className:"text-[13px] font-extrabold text-[#36326e] dark:text-[#e4e7f1] truncate leading-tight",children:["vs ",t.opponentName]}),e.jsxs("p",{className:"text-[10px] font-bold text-muted-foreground/60 dark:text-[#7f88a3] truncate flex items-center gap-1 mt-0.5",children:[t.subjectId," ",e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/30"})," ",t.difficulty||"Medium"," ",e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/30"})," ",t.rounds||"5"," rnds"]})]}),e.jsxs("div",{className:"text-right flex flex-col items-end justify-center pl-2 flex-shrink-0",children:[e.jsxs("p",{className:"tabular-nums text-[16px] leading-[1.1] font-black text-[#2e2b5e] dark:text-[#f5f7fb] tracking-tighter",children:[t.scoreFor,e.jsx("span",{className:"text-muted-foreground/40 mx-[1px]",children:"-"}),t.scoreAgainst]}),e.jsx("p",{className:u("text-[9px] font-black uppercase tracking-[0.1em]",o?"text-emerald-500 dark:text-emerald-400":p?"text-rose-500 dark:text-rose-400":"text-amber-500 dark:text-amber-400"),children:t.outcome})]})]})]},t.matchId)})]})]})]})]})},"hub")}),e.jsx(he,{value:"setup",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"w-full space-y-6",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 shadow-lg",i.mode==="online"?"border-purple-500/20 shadow-[0_0_40px_-10px_rgba(138,63,211,0.2)]":"border-sky-500/20 shadow-[0_0_40px_-10px_rgba(31,167,225,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:u("pointer-events-none absolute inset-0 bg-gradient-to-r",i.mode==="online"?"from-purple-500/20 via-fuchsia-500/10 to-purple-600/5 dark:from-purple-500/20 dark:via-fuchsia-500/10 dark:to-purple-900/10":"from-sky-500/20 via-cyan-500/10 to-sky-600/5 dark:from-sky-500/20 dark:via-cyan-500/10 dark:to-sky-900/10")}),e.jsx(b.div,{className:u("pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full blur-3xl",i.mode==="online"?"bg-purple-400/20":"bg-sky-400/20"),animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:5,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:u("pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full blur-2xl",i.mode==="online"?"bg-fuchsia-400/30":"bg-cyan-400/30"),animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:4,repeat:1/0,ease:"easeInOut",delay:1.5}}),e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAiLz4KPHBhdGggZD0iTTAgMEgxdjFIMHoiIGZpbGw9IiM2MzY2ZjEiIGZpbGwtb3BhY2l0eT0iMC4wNSIvPgo8L3N2Zz4=')] opacity-30 dark:opacity-10 mix-blend-overlay"}),e.jsxs("div",{className:"relative p-6 sm:p-8 md:px-10 flex items-center gap-5 sm:gap-8 z-10",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:u("h-12 w-12 sm:h-14 sm:w-14 p-0 rounded-full hover:scale-105 transition-all backdrop-blur-md shadow-lg shrink-0 flex items-center justify-center group",i.mode==="online"?"bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 border border-purple-500/30":"bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 border border-sky-500/30"),children:e.jsx(De,{className:u("h-6 w-6 sm:h-8 sm:w-8 rotate-180 transition-transform group-hover:-translate-x-0.5",i.mode==="online"?"text-purple-800 dark:text-purple-300":"text-sky-800 dark:text-sky-300")})}),e.jsxs("div",{children:[e.jsxs("h2",{className:u("flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br drop-shadow-sm",i.mode==="online"?"from-purple-600 to-fuchsia-500 dark:from-purple-300 dark:to-fuchsia-200":"from-sky-600 to-cyan-500 dark:from-sky-300 dark:to-cyan-200"),children:[e.jsx(b.div,{animate:{y:[-3,3,-3]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},className:u("p-2 rounded-2xl shadow-inner border",i.mode==="online"?"bg-purple-100 dark:bg-purple-900/50 border-purple-200 dark:border-purple-700/50":"bg-sky-100 dark:bg-sky-900/50 border-sky-200 dark:border-sky-700/50"),children:i.mode==="online"?e.jsx(_e,{className:"h-8 w-8 text-purple-600 dark:text-purple-400 drop-shadow-[0_0_8px_rgba(138,63,211,0.5)]"}):e.jsx(et,{className:"h-8 w-8 text-sky-600 dark:text-sky-400 drop-shadow-[0_0_8px_rgba(31,167,225,0.5)]"})}),i.mode==="online"?"1v1 Online":"1v1 vs Bot"]}),e.jsx("p",{className:u("text-[10px] sm:text-[12px] font-black uppercase tracking-[0.2em] mt-1.5 drop-shadow-sm",i.mode==="online"?"text-purple-600/80 dark:text-purple-400/80":"text-sky-600/80 dark:text-sky-400/80"),children:i.mode==="online"?"CHALLENGE YOUR SCHOOLMATES AND PROVE YOUR SKILLS.":"CHALLENGE THE AI AND SHARPEN YOUR SKILLS."})]})]})]}),e.jsx("div",{className:"rounded-[24px] border border-white/40 bg-white/85 dark:border-white/10 dark:bg-black/80 backdrop-blur-xl p-5 sm:p-7 shadow-xl",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 lg:gap-10",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Category"}),e.jsxs(be,{value:i.subjectId,onValueChange:t=>w(o=>({...o,subjectId:t})),children:[e.jsx(fe,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("subjectId")&&"border-rose-400"),children:e.jsx(ge,{placeholder:"Select category"})}),e.jsx(we,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:J.map(t=>e.jsx(L,{value:t.id,className:"rounded-lg",children:t.title},t.id))})]}),Q("subjectId")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("subjectId")})]}),e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Strand / Topic Group"}),e.jsxs(be,{value:i.topicId,onValueChange:t=>w(o=>({...o,topicId:t})),children:[e.jsx(fe,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("topicId")&&"border-rose-400"),children:e.jsx(ge,{placeholder:"Select topic group"})}),e.jsx(we,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:ea.map(t=>e.jsx(L,{value:t.value,className:"rounded-lg",children:t.label},t.value))})]}),Q("topicId")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("topicId")})]}),e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:i.mode==="online"?"Difficulty":"Bot Difficulty"}),e.jsxs(be,{value:i.mode==="bot"?i.adaptiveBot?"adaptive":i.botDifficulty:i.difficulty,onValueChange:t=>w(o=>o.mode==="bot"?{...o,botDifficulty:t,adaptiveBot:t==="adaptive"}:{...o,difficulty:t}),children:[e.jsx(fe,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50"),children:e.jsx(ge,{})}),e.jsxs(we,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:[e.jsx(L,{value:"easy",className:"rounded-lg",children:"Easy"}),e.jsx(L,{value:"medium",className:"rounded-lg",children:"Medium"}),e.jsx(L,{value:"hard",className:"rounded-lg",children:"Hard"}),i.mode==="bot"&&e.jsx(L,{value:"adaptive",className:"rounded-lg",children:"Adaptive"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[10px] sm:text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Questions"}),e.jsxs(be,{value:String(i.rounds),onValueChange:t=>w(o=>({...o,rounds:Number(t)})),children:[e.jsx(fe,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("rounds")&&"border-rose-400"),children:e.jsx(ge,{})}),e.jsx(we,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:[3,5,7,10,12,15].map(t=>e.jsx(L,{value:String(t),className:"rounded-lg",children:t},t))})]}),Q("rounds")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("rounds")})]}),e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[10px] sm:text-[11px] font-black uppercase tracking-[0.12em] ml-1 line-clamp-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Time / Q"}),e.jsxs(be,{value:String(i.timePerQuestionSec),onValueChange:t=>w(o=>({...o,timePerQuestionSec:Number(t)})),children:[e.jsx(fe,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("timePerQuestionSec")&&"border-rose-400"),children:e.jsx(ge,{})}),e.jsx(we,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:[15,20,30,45,60,90].map(t=>e.jsxs(L,{value:String(t),className:"rounded-lg",children:[t," sec"]},t))})]}),Q("timePerQuestionSec")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("timePerQuestionSec")})]})]})]}),e.jsxs("div",{className:"flex flex-col justify-between space-y-6",children:[e.jsxs("div",{className:"space-y-5",children:[i.mode==="online"&&e.jsxs("div",{className:"space-y-3 rounded-2xl border border-[#8A3FD3]/20 bg-[#8A3FD3]/5 dark:border-[#8A3FD3]/20 p-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-[11px] font-black uppercase tracking-[0.12em] text-[#8A3FD3] dark:text-[#a35ceb] ml-1",children:"Online Match Type"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:[{value:"public_matchmaking",label:"Public Queue"},{value:"private_room",label:"Private Room"}].map(t=>e.jsx(_,{type:"button",variant:i.queueType===t.value?"default":"outline",className:u("rounded-xl h-11 transition-all border-none font-bold text-xs",i.queueType===t.value?"bg-[#8A3FD3] hover:bg-[#7b35c0] text-white shadow-md shadow-[#8A3FD3]/30":"bg-white/50 hover:bg-white/80 dark:bg-black/30 dark:hover:bg-black/50 text-[#8A3FD3] dark:text-[#d3a8ff]"),onClick:()=>w(o=>({...o,queueType:t.value})),children:t.label},t.value))})]}),i.queueType==="private_room"&&e.jsxs(b.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},className:"pt-2 space-y-2",children:[e.jsx("label",{className:"text-[11px] font-black uppercase tracking-[0.12em] text-[#8A3FD3] dark:text-[#a35ceb] ml-1",children:"Room Code (optional)"}),e.jsx(pa,{value:A,onChange:t=>D(t.target.value.toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,6)),placeholder:"Leave blank to create a room",className:"rounded-xl h-12 text-center text-lg uppercase font-bold tracking-[0.25em] border-[#8A3FD3]/30 bg-white/80 dark:bg-black/50 dark:border-[#8A3FD3]/20 focus-visible:ring-[#8A3FD3]/50 shadow-inner",maxLength:6}),e.jsx("div",{className:"rounded-xl border border-[#8A3FD3]/30 bg-[#8A3FD3]/10 px-3 py-3 text-[12px] font-semibold text-[#6620a2] leading-snug dark:border-[#8A3FD3]/30 dark:bg-[#8A3FD3]/10 dark:text-[#d3a8ff]",children:"Enter a room code to join an existing battle, or leave it blank to create a new room and share your code."})]})]}),e.jsxs("label",{className:u("flex flex-col sm:flex-row sm:items-center justify-between rounded-[16px] border bg-white/50 p-4 transition-colors cursor-pointer shadow-sm dark:bg-black/50 group",i.mode==="online"?"border-[#8A3FD3]/20 hover:bg-[#8A3FD3]/5 dark:border-[#8A3FD3]/20 dark:hover:bg-[#8A3FD3]/10":"border-[#1FA7E1]/20 hover:bg-[#1FA7E1]/5 dark:border-[#1FA7E1]/20 dark:hover:bg-[#1FA7E1]/10"),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:u("h-11 w-11 rounded-full flex items-center justify-center group-hover:scale-110 transition-transform",i.mode==="online"?"bg-[#8A3FD3]/10 text-[#8A3FD3] dark:text-[#c48bfc]":"bg-[#1FA7E1]/10 text-[#1FA7E1] dark:text-[#7ad8ff]"),children:de?e.jsx(_a,{className:"h-5 w-5"}):e.jsx(Ia,{className:"h-5 w-5 opacity-60"})}),e.jsxs("div",{className:"mb-3 sm:mb-0",children:[e.jsx("p",{className:"text-sm font-bold text-slate-800 dark:text-slate-200",children:"Battle Sounds"}),e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:"Cues for countdowns and results."})]})]}),e.jsx(St,{checked:de,onCheckedChange:Vt})]})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs("div",{"aria-live":"polite",className:"min-h-[24px] text-sm font-medium",children:[k.status==="queued"&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:u("inline-flex items-center gap-1 text-[13px] font-bold px-3 py-1.5 rounded-lg",i.mode==="online"?"text-[#8A3FD3] bg-[#8A3FD3]/10":"text-[#1FA7E1] bg-[#1FA7E1]/10"),children:k.message}),i.mode==="online"&&i.queueType==="private_room"&&x?.roomCode&&e.jsxs(_,{type:"button",variant:"outline",className:u("h-8 rounded-full border-emerald-500/50 bg-emerald-50 px-4 text-xs font-black uppercase tracking-[0.16em] text-emerald-900 shadow-sm hover:bg-emerald-100 hover:scale-105 transition-all dark:border-emerald-500/40 dark:bg-emerald-500/10 dark:text-emerald-300 dark:hover:bg-emerald-500/20",ie===x.roomCode&&"scale-105 bg-emerald-200 dark:bg-emerald-500/30"),onClick:()=>void gt(x.roomCode),"aria-label":`Copy room code ${x.roomCode}`,children:[ie===x.roomCode?e.jsx(Ct,{className:"h-4 w-4"}):e.jsx(It,{className:"h-4 w-4"}),x.roomCode]}),(B||Nt)&&ze>0&&e.jsxs("span",{className:u("inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-bold animate-pulse",i.mode==="online"?"bg-[#8A3FD3]/10 text-[#8A3FD3]":"bg-[#1FA7E1]/10 text-[#1FA7E1]"),children:["Waiting ",ss(ze)]})]}),k.status==="error"&&e.jsx("span",{className:"inline-flex items-center gap-1.5 text-[13px] font-bold text-rose-600 dark:text-rose-400 bg-rose-50 dark:bg-rose-500/10 px-3 py-1.5 rounded-lg border border-rose-200 dark:border-rose-500/20",children:k.message}),k.status==="validating"&&e.jsxs("span",{className:u("inline-flex items-center gap-2 font-bold px-3 py-1.5 rounded-lg",i.mode==="online"?"text-[#8A3FD3] bg-[#8A3FD3]/10":"text-[#1FA7E1] bg-[#1FA7E1]/10"),children:[e.jsx(at,{className:"h-4 w-4 animate-spin"})," Validating..."]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[aa&&e.jsx(_,{type:"button",variant:"outline",onClick:kt,disabled:k.status==="validating",className:"rounded-xl h-14 flex-1 sm:flex-none border-slate-300 hover:bg-slate-100 dark:border-slate-700 dark:hover:bg-slate-800 font-bold px-6",children:x?"Cancel room":"Leave queue"}),e.jsx(_,{type:"button",onClick:ta,disabled:k.status==="validating"||B||Nt,className:u("rounded-xl h-14 flex-1 px-8 font-black uppercase tracking-wide text-sm shadow-xl hover:scale-[1.02] active:scale-95 transition-all text-white border-0",i.mode==="online"?"bg-[#8A3FD3] hover:bg-[#7b35c0] shadow-[#8A3FD3]/40":"bg-[#1FA7E1] hover:bg-[#1a95c9] shadow-[#1FA7E1]/40"),children:k.status==="validating"?e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(at,{className:"h-5 w-5 animate-spin"})," Starting..."]}):i.mode==="online"&&i.queueType==="private_room"?A.trim()?"Join Room":"Create Room":"Start Battle"})]})]})]})]})})]},"setup")}),e.jsx(he,{value:"battle",className:"mt-0 outline-none",children:e.jsx(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:n?e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center justify-between gap-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-2",children:[n.mode==="bot"?e.jsx(et,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}):e.jsx(_e,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"vs ",n.opponentName]}),e.jsxs("div",{className:"inline-flex items-center gap-2",children:[Je,e.jsxs("span",{className:"text-sm font-bold tabular-nums",children:[n.scoreFor," - ",n.scoreAgainst]})]})]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:n.status==="completed"?`Completed in ${n.totalRounds} rounds.`:n.status==="ready"?n.mode==="online"?"Waiting for both players to confirm and start together.":"Finalizing practice bot session start.":`Round ${n.currentRound} of ${n.totalRounds}${C?" (paused for design)":""}`}),Dt(n.lifecycle,r?.uid)&&e.jsx("p",{className:"text-xs font-medium text-muted-foreground dark:text-[#9aa4be]",children:Dt(n.lifecycle,r?.uid)})]}),e.jsxs(ne,{className:"space-y-4",children:[n.status==="ready"&&e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-4 dark:border-[#2f3547] dark:bg-[#11151d] flex flex-col gap-3",children:[e.jsx("p",{className:"text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:n.mode==="online"?"Waiting for both players to lock in start...":"Starting practice bot round..."}),e.jsx(_,{variant:"outline",size:"sm",className:"w-full text-rose-500 border-rose-200 hover:bg-rose-50 dark:border-rose-900 dark:hover:bg-rose-900/30",onClick:()=>{N(null),j(null),v(!1),h({status:"idle"}),l("setup")},children:"Force Cancel"})]}),n.status==="in_progress"&&n.currentQuestion&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rounded-xl border border-border bg-muted/40 p-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["Time left: ",e.jsxs("span",{className:"font-semibold tabular-nums",children:[M,"s"]}),C?" (paused)":""]}),C&&e.jsx("p",{className:"mt-1 text-[11px] font-medium text-amber-700 dark:text-amber-300",children:"Design pause keeps this battle screen static while you edit UI."})]}),e.jsx("p",{className:"text-lg font-bold text-foreground dark:text-[#f5f7fb]",children:n.currentQuestion.prompt}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:n.currentQuestion.choices.map((t,o)=>e.jsxs(_,{type:"button",variant:ue===o?"default":"outline",onClick:()=>V(o),disabled:$||O||C,className:u("h-auto min-h-[48px] justify-start text-left font-medium px-4 py-3 rounded-xl whitespace-normal",ue===o?"ring-2 ring-primary ring-offset-2 dark:ring-offset-[#0B0F19]":""),children:[e.jsxs("span",{className:"mr-2 font-semibold",children:[String.fromCharCode(65+o),"."]}),t]},o))}),e.jsx("div",{className:"flex justify-end",children:e.jsx(_,{type:"button",onClick:()=>void Ee(ue),disabled:$||O||C,className:"rounded-xl",children:C?e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(ka,{className:"h-4 w-4"})," Paused for design"]}):$?e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(at,{className:"h-4 w-4 animate-spin"})," Submitting..."]}):O?"Waiting for opponent...":"Lock Answer"})})]}),Ce&&e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("p",{className:"text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:["Last round: ",Ce.studentCorrect?"Correct":"Incorrect"," · ",n.mode==="bot"?"Bot":"Opponent"," ",Ce.botCorrect?"Correct":"Incorrect"]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["Correct option: ",String.fromCharCode(65+Ce.correctOptionIndex)]})]}),n.status==="completed"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:u("rounded-2xl border p-4",n.outcome==="win"?"border-emerald-300 bg-emerald-50 dark:border-emerald-400/40 dark:bg-emerald-900/20":n.outcome==="loss"?"border-rose-300 bg-rose-50 dark:border-rose-400/40 dark:bg-rose-900/20":"border-amber-300 bg-amber-50 dark:border-amber-400/40 dark:bg-amber-900/20"),children:[e.jsx("p",{className:"text-lg font-black tracking-wide text-foreground dark:text-[#ecf0fb]",children:n.outcome==="win"?"Victory!":n.outcome==="loss"?"Match Complete":"Draw Match"}),e.jsxs("p",{className:"mt-1 text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:["Final Score: ",n.scoreFor," - ",n.scoreAgainst]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["XP Earned: +",n.xpEarned||0]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(_,{type:"button",variant:"outline",onClick:()=>{j(null),v(!1),l("setup")},className:"rounded-xl",children:"Start New Match"}),n.mode==="bot"&&e.jsx(_,{type:"button",onClick:()=>void yt(),disabled:$,className:"rounded-xl",children:"Rematch"})]})]})]})]}):x?e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"Private Room Lobby"]}),e.jsxs(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:["Room ",x.roomCode," · ",x.participantCount,"/2 students connected."]})]}),e.jsx(ne,{className:"space-y-3",children:e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsx("p",{className:"text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:x.status==="ready"?"Opponent connected. Syncing start...":"Waiting for another student to join this room."}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["Share room code ",x.roomCode," with your classmate."]}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-end gap-2",children:[(x.status==="waiting"||x.status==="ready")&&e.jsx(_,{type:"button",variant:"outline",className:"h-8 rounded-lg",onClick:kt,disabled:k.status==="validating",children:"Cancel room"}),e.jsxs(_,{type:"button",variant:"outline",className:"h-8 rounded-lg",onClick:()=>void gt(x.roomCode),children:[ie===x.roomCode?e.jsx(Ct,{className:"h-4 w-4"}):e.jsx(It,{className:"h-4 w-4"}),ie===x.roomCode?"Copied":"Copy code"]})]})]})})]}):B?e.jsx(H,{className:u(P,"rounded-[18px]"),children:e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"Public Matchmaking"]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Searching for a student with the same setup..."})]})}):e.jsx(H,{className:u(P,"rounded-[18px]"),children:e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(Re,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"No active battle"]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Start from Setup to create a bot match, private room, or public queue session."})]})})},"battle")}),e.jsx(he,{value:"history",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 border-emerald-500/20 shadow-[0_0_40px_-10px_rgba(16,185,129,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-r from-emerald-500/20 via-teal-500/10 to-emerald-600/5 dark:from-emerald-500/20 dark:via-teal-500/10 dark:to-teal-900/10"}),e.jsx(b.div,{className:"pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full bg-emerald-400/20 blur-3xl",animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:4,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full bg-teal-400/20 blur-2xl",animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:3,repeat:1/0,ease:"easeInOut",delay:1}}),e.jsx("div",{className:"relative z-10 p-6 sm:p-8 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:"h-12 w-12 p-0 rounded-full bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 hover:scale-105 transition-all backdrop-blur-md border border-emerald-500/30 shadow-[0_0_15px_rgba(16,185,129,0.2)] shrink-0",children:e.jsx(De,{className:"h-6 w-6 rotate-180 text-emerald-800 dark:text-emerald-300"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br from-emerald-600 to-teal-500 dark:from-emerald-300 dark:to-teal-200 drop-shadow-sm",children:[e.jsx(b.div,{animate:{rotate:[-5,5,-5]},transition:{duration:4,repeat:1/0,ease:"easeInOut"},className:"bg-emerald-100 dark:bg-emerald-900/50 p-2 rounded-2xl shadow-inner border border-emerald-200 dark:border-emerald-700/50",children:e.jsx(Mt,{className:"h-8 w-8 text-emerald-600 dark:text-emerald-400 drop-shadow-[0_0_8px_rgba(16,185,129,0.5)]"})}),"Matches History"]}),e.jsx("p",{className:"text-sm font-bold text-emerald-800/80 dark:text-emerald-100/70 mt-2 tracking-wide uppercase",children:"Review your past duels and track your progress."})]})]})})]}),e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsx(Y,{className:"text-base",children:"Match History"}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Your recent student battles only."})]}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx("div",{className:"flex gap-2",children:[{value:"all",label:"All"},{value:"online",label:"Online"},{value:"bot",label:"Bot"}].map(t=>e.jsx(_,{type:"button",variant:ce===t.value?"default":"outline",onClick:()=>Ut(t.value),className:"rounded-xl h-8 px-3",children:t.label},t.value))}),xt?e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"})]}):Be.length===0?e.jsx("p",{className:"text-sm text-muted-foreground dark:text-[#a8b2c9]",children:"No matches in this filter yet."}):Be.map(t=>e.jsxs("div",{className:"rounded-xl border border-border bg-muted/40 px-3 py-2 flex items-center justify-between gap-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm font-semibold text-foreground dark:text-[#f5f7fb]",children:["vs ",t.opponentName]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#95a0bb] tabular-nums",children:[t.scoreFor,"-",t.scoreAgainst," · ",t.accuracy.toFixed(0),"% · +",t.xpEarned," XP"]})]}),e.jsx("span",{className:u("text-xs font-semibold rounded-full px-2.5 py-1 border",t.outcome==="win"?"text-emerald-700 border-emerald-200 bg-emerald-50 dark:text-emerald-300 dark:border-emerald-300/40 dark:bg-emerald-900/20":t.outcome==="loss"?"text-rose-700 border-rose-200 bg-rose-50 dark:text-rose-300 dark:border-rose-300/40 dark:bg-rose-900/20":"text-amber-700 border-amber-200 bg-amber-50 dark:text-amber-300 dark:border-amber-300/40 dark:bg-amber-900/20"),children:ts(t.outcome)})]},t.matchId))]})]})]},"history")}),e.jsx(he,{value:"stats",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 border-indigo-500/20 shadow-[0_0_40px_-10px_rgba(99,102,241,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-r from-indigo-500/20 via-purple-500/10 to-indigo-600/5 dark:from-indigo-500/20 dark:via-purple-500/10 dark:to-purple-900/10"}),e.jsx(b.div,{className:"pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full bg-indigo-400/20 blur-3xl",animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:5,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full bg-purple-400/20 blur-2xl",animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:4,repeat:1/0,ease:"easeInOut",delay:1.5}}),e.jsx("div",{className:"relative z-10 p-6 sm:p-8 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:"h-12 w-12 p-0 rounded-full bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 hover:scale-105 transition-all backdrop-blur-md border border-indigo-500/30 shadow-[0_0_15px_rgba(99,102,241,0.2)] shrink-0",children:e.jsx(De,{className:"h-6 w-6 rotate-180 text-indigo-800 dark:text-indigo-300"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br from-indigo-600 to-purple-500 dark:from-indigo-300 dark:to-purple-200 drop-shadow-sm",children:[e.jsx(b.div,{animate:{y:[-3,3,-3]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},className:"bg-indigo-100 dark:bg-indigo-900/50 p-2 rounded-2xl shadow-inner border border-indigo-200 dark:border-indigo-700/50",children:e.jsx(zt,{className:"h-8 w-8 text-indigo-600 dark:text-indigo-400 drop-shadow-[0_0_8px_rgba(99,102,241,0.5)]"})}),"My Statistics"]}),e.jsx("p",{className:"text-sm font-bold text-indigo-800/80 dark:text-indigo-100/70 mt-2 tracking-wide uppercase",children:"Analyzing your battlefield performance."})]})]})})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:[{label:"Wins",value:W?.wins??0,icon:tt},{label:"Current streak",value:W?.currentStreak??0,icon:At},{label:"Avg accuracy",value:`${(W?.averageAccuracy||0).toFixed(1)}%`,icon:ha},{label:"Avg response",value:es(W?.averageResponseMs||0),icon:Bt}].map(t=>e.jsx(H,{className:u(P,"rounded-[18px]"),children:e.jsxs(ne,{className:"pt-6",children:[e.jsx("p",{className:"text-xs text-muted-foreground dark:text-[#9da7bf]",children:t.label}),e.jsx("p",{className:"mt-1 tabular-nums text-2xl font-black text-foreground dark:text-[#f5f7fb]",children:t.value}),e.jsx(t.icon,{className:"mt-3 h-4 w-4 text-primary dark:text-[#9e8fff]"})]})},t.label))})]},"stats")}),e.jsx(he,{value:"leaderboard",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 border-amber-500/20 shadow-[0_0_40px_-10px_rgba(245,158,11,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-r from-amber-500/20 via-orange-500/10 to-amber-600/5 dark:from-amber-600/20 dark:via-orange-500/10 dark:to-orange-900/10"}),e.jsx(b.div,{className:"pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full bg-amber-400/20 blur-3xl",animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:4.5,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full bg-orange-400/20 blur-2xl",animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut",delay:.5}}),e.jsx("div",{className:"relative z-10 p-6 sm:p-8 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:"h-12 w-12 p-0 rounded-full bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 hover:scale-105 transition-all backdrop-blur-md border border-amber-500/30 shadow-[0_0_15px_rgba(245,158,11,0.2)] shrink-0",children:e.jsx(De,{className:"h-6 w-6 rotate-180 text-amber-800 dark:text-amber-300"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br from-amber-600 to-orange-500 dark:from-amber-300 dark:to-orange-200 drop-shadow-sm",children:[e.jsx(b.div,{animate:{scale:[1,1.1,1]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},className:"bg-amber-100 dark:bg-amber-900/50 p-2 rounded-2xl shadow-inner border border-amber-200 dark:border-amber-700/50",children:e.jsx(tt,{className:"h-8 w-8 text-amber-600 dark:text-amber-400 drop-shadow-[0_0_12px_rgba(245,158,11,0.6)]"})}),"Hall of Fame"]}),e.jsx("p",{className:"text-sm font-bold text-amber-800/80 dark:text-amber-100/70 mt-2 tracking-wide uppercase",children:"The top-ranked minds across the globe."})]})]})})]}),e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(oa,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"})," Hall of Fame"]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Student-only ranking using trusted backend aggregates."})]}),e.jsx(ne,{children:Gt?e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"})]}):vt.length===0?e.jsx("p",{className:"text-sm text-muted-foreground dark:text-[#a9b3ca]",children:"No leaderboard entries yet. Finish a battle to place on the board."}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-2",children:[e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-2.5 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground dark:text-[#98a2bc]",children:"Name display"}),e.jsxs(be,{value:Ae,onValueChange:t=>Yt(t),children:[e.jsx(fe,{className:"mt-1 h-8 rounded-lg",children:e.jsx(ge,{})}),e.jsxs(we,{children:[e.jsx(L,{value:"alias",children:"Alias"}),e.jsx(L,{value:"initials",children:"Initials"}),e.jsx(L,{value:"full",children:"Full name"})]})]})]}),e.jsxs("label",{className:"rounded-xl border border-border bg-muted/30 p-2.5 flex items-center justify-between gap-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground dark:text-[#98a2bc]",children:"Score detail"}),e.jsx("p",{className:"text-xs text-muted-foreground dark:text-[#98a2bc]",children:"Show exact score values"})]}),e.jsx(St,{checked:Ge,onCheckedChange:Xt})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground dark:text-[#95a0bb]",children:"Privacy mode keeps classmate identities and scores obfuscated by default while preserving your own exact rank and score."}),vt.map(t=>e.jsxs("div",{className:u("rounded-xl border bg-muted/30 px-3 py-2 flex items-center justify-between dark:bg-[#11151d]",t.isSelf?"border-primary/60 dark:border-[#8d7fff]":"border-border dark:border-[#2f3547]"),children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm font-semibold text-foreground dark:text-[#f5f7fb]",children:["#",t.rank," ",t.displayName,t.isSelf?" (You)":""]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#95a0bb]",children:["Win rate ",t.winRate.toFixed(1),"% · Best streak ",t.bestStreak]})]}),e.jsx("p",{className:"tabular-nums text-sm font-semibold text-foreground dark:text-[#f5f7fb]",children:t.scoreLabel})]},t.userId))]})})]})]},"leaderboard")})]})})})})};export{Ts as default}; + */const Ia=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]],za=oe("volume-x",Ia),Aa="/assets/quiz_battle_avatar-vvxcW_MO.png",Te=({width:a,x:s,delay:r,duration:c})=>{const l=["#9956DE","#7274ED","#1FA7E1","#6ED1CF","#75D06A","#FFB356","#FF8B8B","#FB96BB"],i=l[Math.floor(Math.random()*l.length)],w=Math.floor(Math.random()*10)+1;return e.jsx(b.div,{style:{"--x":`${s}`,"--width":`${a}`,"--aspect-ratio":`${w}`,"--background":`linear-gradient(${i}cc, transparent)`},className:"absolute left-[var(--x)] top-0 [aspect-ratio:1/var(--aspect-ratio)] [background:var(--background)] [width:var(--width)]",initial:{y:"100cqmax",x:"-50%"},animate:{y:"-100%",x:"-50%"},transition:{duration:c,delay:r,repeat:Number.POSITIVE_INFINITY,ease:"linear"}})},Et=({children:a,perspective:s=100,className:r,beamsPerSide:c=6,beamSize:l=4,beamDelayMax:i=1.5,beamDelayMin:w=0,beamDuration:S=4,gridColor:y="rgba(100, 116, 139, 0.08)",...k})=>{const h=d.useCallback(()=>{const A=[],ie=Math.floor(100/l)/c;for(let le=0;leh(),[h]),v=d.useMemo(()=>h(),[h]),x=d.useMemo(()=>h(),[h]),j=d.useMemo(()=>h(),[h]);return e.jsxs("div",{className:u("relative w-full h-full",r),...k,children:[e.jsxs("div",{style:{"--perspective":`${s}px`,"--grid-color":y,"--beam-size":`${l}%`},className:"pointer-events-none absolute inset-0 overflow-hidden [clip-path:inset(0)] [container-type:size] [perspective:var(--perspective)] [transform-style:preserve-3d] -z-10 bg-[#42389d]",children:[e.jsx("div",{className:"absolute [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [transform-origin:50%_0%] [transform:rotateX(-90deg)] [width:100cqi]",children:B.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`top-${D}`))}),e.jsx("div",{className:"absolute top-full [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [transform-origin:50%_0%] [transform:rotateX(-90deg)] [width:100cqi]",children:x.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`bottom-${D}`))}),e.jsx("div",{className:"absolute left-0 top-0 [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [transform-origin:0%_0%] [transform:rotate(90deg)_rotateX(-90deg)] [width:100cqh]",children:j.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`left-${D}`))}),e.jsx("div",{className:"absolute right-0 top-0 [transform-style:preserve-3d] [background-size:var(--beam-size)_var(--beam-size)] [background:linear-gradient(var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_-0.5px_/var(--beam-size)_var(--beam-size),linear-gradient(90deg,_var(--grid-color)_0_1px,_transparent_1px_var(--beam-size))_50%_50%_/var(--beam-size)_var(--beam-size)] [container-type:inline-size] [height:100cqmax] [width:100cqh] [transform-origin:100%_0%] [transform:rotate(-90deg)_rotateX(-90deg)]",children:v.map((A,D)=>e.jsx(Te,{width:`${l}%`,x:`${A.x*l}%`,delay:A.delay,duration:S},`right-${D}`))})]}),e.jsx("div",{className:"relative z-10 w-full h-full",children:a})]})},Ca=15e3,Ba="mathpulse.quizBattle.local",Rt="".toLowerCase()==="true",Oe=typeof window<"u",Qe=()=>Oe&&!1,ct=()=>{const a=$e.currentUser?.uid;return a||"local-student"},Qt=a=>`${Ba}.${a}`,Ie=a=>{const s={stats:ye(a),history:[],queueStatus:"idle"};if(!Oe)return s;try{const r=window.localStorage.getItem(Qt(a));if(!r)return s;const c=JSON.parse(r),l=Array.isArray(c.history)?c.history.map(w=>dt(w.matchId||"local-match",w)):[];return{stats:c.stats?{...ye(a),...c.stats,userId:a,updatedAt:Le(c.stats.updatedAt)}:ye(a),history:l,queueStatus:c.queueStatus==="queued"||c.queueStatus==="matched"?c.queueStatus:"idle"}}catch(r){return console.error("Error reading local Quiz Battle fallback store:",r),s}},Lt=(a,s)=>{if(Oe)try{window.localStorage.setItem(Qt(a),JSON.stringify(s))}catch(r){console.error("Error writing local Quiz Battle fallback store:",r)}},$t=a=>{const s=a||{},r=typeof s.code=="string"?s.code:"";return r?r.startsWith("functions/")?r.replace("functions/",""):r:""},X=a=>{if(!Qe())return!1;const s=$t(a);if(["internal","not-found","unavailable","deadline-exceeded"].includes(s))return!0;const r=a||{},c=(typeof r.message=="string"?r.message:a instanceof Error?a.message:"").toLowerCase();return c?c.includes("cors policy")||c.includes("no access-control-allow-origin")||c.includes("failed to fetch")||c.includes("network error")||c.includes("err_failed"):!1},Pe=(a,s)=>Math.floor(Math.random()*(s-a+1))+a,Ma=(a,s)=>{const r=Math.max(3,a),c=s==="easy"?0:s==="medium"?1:s==="hard"?2:1,l=Pe(Math.max(0,r-3-c),r),i=Pe(Math.max(0,r-4+c),r),w=Math.min(r,Math.max(0,l)),S=Math.min(r,Math.max(0,i)),y=Math.max(0,Math.min(100,w/r*100+Pe(-8,6))),k=Pe(1800,6200);return{scoreFor:w,scoreAgainst:S,accuracy:y,averageResponseMs:k}},Ea=a=>{const s=ct(),r=Ie(s),c=`local-bot-${Date.now()}-${Math.random().toString(16).slice(2,8)}`,l=Ma(a.rounds,a.botDifficulty),i=l.scoreFor>l.scoreAgainst?"win":l.scoreFor0?k/y*100:0,averageAccuracy:y>0?(r.stats.averageAccuracy*r.stats.matchesPlayed+l.accuracy)/y:l.accuracy,averageResponseMs:y>0?Math.round((r.stats.averageResponseMs*r.stats.matchesPlayed+l.averageResponseMs)/y):l.averageResponseMs,currentStreak:v,bestStreak:x,favoriteTopicId:a.topicId,leaderboardScore:r.stats.leaderboardScore+S.xpEarned,updatedAt:w};return Lt(s,{stats:j,history:[S,...r.history].slice(0,50),queueStatus:"idle"}),{success:!0,matchId:c,status:"ready",botDifficulty:a.botDifficulty}},Ot=a=>{const s=ct(),r=Ie(s);Lt(s,{...r,queueStatus:a})},Ra=()=>Math.random().toString(36).slice(2,8).toUpperCase(),ut=a=>{const s=ct();return{roomId:`local-room-${Date.now()}`,roomCode:a||Ra(),ownerStudentId:s,participantIds:[s],participantCount:1,status:"waiting",subjectId:"gen-math",topicId:"functions",difficulty:"medium",rounds:5,timePerQuestionSec:30,isOwner:!0}},Ht=()=>Oe&&!!$e.currentUser?.uid&&!!Se,Wt=(a,s,r)=>`quizBattlePresence/${a}/${s}/${r}`,Fa=async(a,s)=>{if(!Ht()||!s.trim()||!Se)return;const r=$e.currentUser?.uid;if(!r)return;const c=Pt(Se,Wt(a,s,r));try{await qt(c,{studentId:r,scope:a,resourceId:s,online:!0,heartbeatAt:ve(),updatedAt:ve()}),await ma(c).update({online:!1,updatedAt:ve(),disconnectedAt:ve()})}catch(l){console.warn("Realtime presence connect failed:",l)}},Da=async(a,s)=>{if(!Ht()||!s.trim()||!Se)return;const r=$e.currentUser?.uid;if(!r)return;const c=Pt(Se,Wt(a,s,r));try{await qt(c,{studentId:r,scope:a,resourceId:s,online:!1,updatedAt:ve(),disconnectedAt:ve()})}catch(l){console.warn("Realtime presence disconnect failed:",l)}},q=(a,s)=>{const r=`Unable to continue while ${a}. Please try again.`;if(s instanceof Error&&s.message.startsWith("Timed out while"))return s.message;const c=s||{},l=$t(s),i=typeof c.message=="string"?c.message.trim():"";return l==="unauthenticated"?"Your session has expired. Sign in again before starting a battle.":l==="permission-denied"?"Only student accounts can access Quiz Battle matchmaking.":l==="invalid-argument"?i||"Battle setup is invalid. Review the selected options and try again.":l==="already-exists"?i||"This room is already full. Try another room code.":l==="failed-precondition"?i||"Battle state changed. Please refresh and continue.":l==="unavailable"||l==="internal"||l==="not-found"||l==="deadline-exceeded"?/question generation temporarily unavailable/i.test(i)?i:"Quiz Battle service is temporarily unavailable. Please retry in a moment.":r},F=async(a,s,r=Ca)=>{let c;try{return await Promise.race([s,new Promise((l,i)=>{c=setTimeout(()=>{i(new Error(`Timed out while ${a}. Please try again.`))},r)})])}finally{c&&clearTimeout(c)}},Le=a=>{if(!a)return new Date;if(a instanceof Date)return a;if(typeof a=="string"){const s=Date.parse(a);return Number.isNaN(s)?new Date:new Date(s)}if(typeof a=="number")return new Date(a);if(typeof a=="object"){const s=a;if(typeof s.toDate=="function")return s.toDate();if(typeof s.seconds=="number")return new Date(s.seconds*1e3)}return new Date},Ta=()=>({mode:"online",subjectId:"gen-math",topicId:"",difficulty:"medium",rounds:5,timePerQuestionSec:30,queueType:"public_matchmaking",botDifficulty:"medium",adaptiveBot:!1}),Pa=a=>{const s=[];return a.subjectId.trim()||s.push({field:"subjectId",message:"Choose a category before starting."}),a.topicId.trim()||s.push({field:"topicId",message:"Choose a strand or topic before starting."}),(a.rounds<3||a.rounds>20)&&s.push({field:"rounds",message:"Questions must be between 3 and 20."}),(a.timePerQuestionSec<10||a.timePerQuestionSec>180)&&s.push({field:"timePerQuestionSec",message:"Timer must be between 10s and 180s."}),a.mode==="bot"&&a.queueType!=="public_matchmaking"&&s.push({field:"queueType",message:"Bot battles use instant start and do not support private room mode."}),s},ye=a=>({userId:a,matchesPlayed:0,wins:0,losses:0,draws:0,winRate:0,averageAccuracy:0,averageResponseMs:0,bestStreak:0,currentStreak:0,favoriteTopicId:void 0,leaderboardScore:0,updatedAt:new Date}),qa=async a=>{try{const s=ca(qe,"studentBattleStats",a),r=await ua(s),c=Qe()?Ie(a).stats:null;if(!r.exists())return c&&c.matchesPlayed>0?c:ye(a);const l=r.data(),i={...ye(a),...l,userId:a,updatedAt:Le(l.updatedAt)};return c&&c.matchesPlayed>i.matchesPlayed?c:i}catch(s){if(console.error("Error loading battle stats:",s),Qe()){const r=Ie(a).stats;if(r.matchesPlayed>0)return r}return ye(a)}},dt=(a,s)=>({matchId:s.matchId||a,mode:s.mode||"online",status:s.status||"completed",subjectId:s.subjectId||"gen-math",topicId:s.topicId||"unknown-topic",difficulty:s.difficulty||"medium",rounds:s.rounds||0,timePerQuestionSec:s.timePerQuestionSec||0,scoreFor:s.scoreFor||0,scoreAgainst:s.scoreAgainst||0,outcome:s.outcome||"draw",accuracy:s.accuracy||0,averageResponseMs:s.averageResponseMs||0,bestStreak:s.bestStreak||0,xpEarned:s.xpEarned||0,opponentName:s.opponentName||"Unknown opponent",opponentType:s.opponentType||"student",createdAt:Le(s.createdAt),endedAt:Le(s.endedAt)}),Qa=async(a,s={})=>{const r=s.limitCount||25,c=Qe()?Ie(a).history:[],l=w=>w.filter(y=>!(s.mode&&s.mode!=="all"&&y.mode!==s.mode||s.subjectId&&y.subjectId!==s.subjectId||s.startDate&&y.endedAts.endDate)).sort((y,k)=>k.endedAt.getTime()-y.endedAt.getTime()).slice(0,r),i=w=>{if(c.length===0)return l(w);const S=new Map;return[...c,...w].forEach(y=>{S.set(y.matchId,y)}),l(Array.from(S.values()))};try{const w=[_t("studentId","==",a),Tt("endedAt","desc"),nt(r)],y=(await ot(it(lt(qe,"quizBattleHistory"),...w))).docs.map(k=>dt(k.id,k.data()));return i(y)}catch(w){try{const y=(await ot(it(lt(qe,"quizBattleHistory"),_t("studentId","==",a),nt(r)))).docs.map(k=>dt(k.id,k.data())).sort((k,h)=>h.endedAt.getTime()-k.endedAt.getTime());return i(y)}catch(S){return console.error("Error loading battle history:",w,S),l(c)}}},La=async a=>{const s=R(E,"quizBattleJoinQueue");try{return(await F("joining Quiz Battle matchmaking queue",s({setup:a}))).data}catch(r){if(X(r))return Ot("queued"),{success:!0,status:"queued",queueEntryId:`local-queue-${Date.now()}`};throw new Error(q("joining Quiz Battle matchmaking queue",r))}},$a=async()=>{const a=R(E,"quizBattleLeaveQueue");try{return(await F("leaving Quiz Battle matchmaking queue",a({}))).data}catch(s){if(X(s))return Ot("idle"),{success:!0,status:"idle"};throw new Error(q("leaving Quiz Battle matchmaking queue",s))}},Oa=async a=>{const s=R(E,"quizBattleCreatePrivateRoom");try{return(await F("creating Quiz Battle private room",s({setup:a}))).data}catch(r){if(X(r))return{success:!0,room:ut()};throw new Error(q("creating Quiz Battle private room",r))}},Ha=async a=>{const s=R(E,"quizBattleJoinPrivateRoom");try{return(await F("joining Quiz Battle private room",s({roomCode:a}),2e4)).data}catch(r){if(X(r))return{success:!0,room:ut(a.trim().toUpperCase()||void 0)};throw new Error(q("joining Quiz Battle private room",r))}},Wa=async a=>{const s=R(E,"quizBattleGetPrivateRoomState");try{return(await F("loading Quiz Battle private room state",s(a),2e4)).data}catch(r){if(X(r))return{success:!0,room:ut(a.roomCode?.trim().toUpperCase()||void 0)};throw new Error(q("loading Quiz Battle private room state",r))}},Va=async(a={})=>{const s=R(E,"quizBattleLeavePrivateRoom");try{return(await F("leaving Quiz Battle private room",s(a),2e4)).data}catch(r){if(X(r))return{success:!0,status:"idle"};throw new Error(q("leaving Quiz Battle private room",r))}},Ft=async()=>{const a=R(E,"quizBattleResumeSession");try{return(await F("resuming Quiz Battle session",a({}),2e4)).data}catch(s){if(X(s))return{success:!0,sessionType:"idle"};throw new Error(q("resuming Quiz Battle session",s))}},Ua=async(a,s)=>{if(!s.trim())return;const r=R(E,"quizBattleHeartbeat");await Fa(a,s);try{await F("sending Quiz Battle heartbeat",r({scope:a,resourceId:s}),12e3)}catch(c){if(!X(c))throw new Error(q("sending Quiz Battle heartbeat",c))}},Ga=async a=>{const s=R(E,"quizBattleCreateBotMatch");try{return(await F("starting Quiz Battle bot match",s({setup:a}))).data}catch(r){if(X(r))return Ea(a);throw new Error(q("starting Quiz Battle bot match",r))}},Za=async a=>{const s=R(E,"quizBattleGetGenerationAudit");return(await F("verifying Quiz Battle generation metadata",s({matchId:a}),2e4)).data},G=async a=>{const s=R(E,"quizBattleStartMatch");try{const c=(await F("starting Quiz Battle match",s({matchId:a}),2e4)).data.match;if(c.mode==="online")try{const l=await Za(a);if(console.info("[QUIZ_BATTLE_GENERATION_AUDIT]",l),Rt&&!l.isAiSource)throw new Error(`Quiz Battle generation audit failed: expected AI source, got "${l.questionSetSource||"unknown"}".`)}catch(l){if(l instanceof Error&&l.message.startsWith("Quiz Battle generation audit failed"))throw l;if(console.warn("Quiz Battle generation audit unavailable:",l),Rt)throw new Error("Unable to verify Quiz Battle generation metadata. Please retry in a moment.")}return c}catch(r){throw new Error(q("starting Quiz Battle match",r))}},st=async a=>{const s=R(E,"quizBattleGetMatchState");try{return(await F("loading Quiz Battle match state",s({matchId:a}),2e4)).data.match}catch(r){throw new Error(q("loading Quiz Battle match state",r))}},Ya=async a=>{const s=R(E,"quizBattleSubmitAnswer");try{return(await F("submitting Quiz Battle answer",s({...a,idempotencyKey:a.idempotencyKey||`client-${Date.now()}-${Math.random().toString(16).slice(2,8)}`}),2e4)).data}catch(r){throw new Error(q("submitting Quiz Battle answer",r))}},Xa=async a=>{const s=R(E,"quizBattleRequestRematch");try{return(await F("creating Quiz Battle rematch",s({matchId:a}),2e4)).data}catch(r){throw new Error(q("creating Quiz Battle rematch",r))}},Ja=async(a=20)=>{try{const s=it(lt(qe,"studentBattleLeaderboard"),Tt("leaderboardScore","desc"),nt(a));return(await ot(s)).docs.map((c,l)=>{const i=c.data();return{userId:i.userId||c.id,displayName:i.displayName||"Student",photo:i.photo,rank:i.rank||l+1,leaderboardScore:i.leaderboardScore||0,winRate:i.winRate||0,bestStreak:i.bestStreak||0}})}catch(s){return console.error("Error loading Quiz Battle leaderboard:",s),[]}};function H({className:a,...s}){return e.jsx("div",{"data-slot":"card",className:u("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",a),...s})}function Z({className:a,...s}){return e.jsx("div",{"data-slot":"card-header",className:u("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...s})}function Y({className:a,...s}){return e.jsx("h4",{"data-slot":"card-title",className:u("leading-none",a),...s})}function ee({className:a,...s}){return e.jsx("p",{"data-slot":"card-description",className:u("text-muted-foreground",a),...s})}function ne({className:a,...s}){return e.jsx("div",{"data-slot":"card-content",className:u("px-6 [&:last-child]:pb-6",a),...s})}function Ka({className:a,...s}){return e.jsx(xa,{"data-slot":"tabs",className:u("flex flex-col gap-2",a),...s})}function we({className:a,...s}){return e.jsx(pa,{"data-slot":"tabs-content",className:u("flex-1 outline-none",a),...s})}const rt={width:1280,height:720},es=({viewportHeight:a})=>e.jsx("div",{className:"absolute inset-0 pointer-events-none z-[50] overflow-hidden flex justify-between bg-slate-900/40 backdrop-blur-sm",children:[...Array(40)].map((s,r)=>e.jsx(b.div,{className:"absolute w-0.5 h-16 bg-blue-300/40 rounded-full",style:{left:`${Math.random()*100}%`,top:"-10%"},animate:{y:[0,a*1.2]},transition:{duration:.6+Math.random()*.4,repeat:1/0,ease:"linear",delay:Math.random()*2}},r))}),ts=({viewportHeight:a,viewportWidth:s})=>{const r=["#10b981","#8b5cf6","#0ea5e9","#f43f5e","#f59e0b"];return e.jsx("div",{className:"absolute inset-0 pointer-events-none z-[50] overflow-hidden",children:[...Array(60)].map((c,l)=>e.jsx(b.div,{className:"absolute bottom-[-10%] w-3 h-5 rounded-sm shadow-md",style:{left:`${20+Math.random()*60}%`,backgroundColor:r[l%r.length]},animate:{y:[0,-a*(.6+Math.random()*.4),a*.5],x:[0,(Math.random()-.5)*s*.8],rotate:[0,Math.random()*720]},transition:{duration:3+Math.random()*2,repeat:1/0,ease:"easeInOut",delay:Math.random()*1.5}},l))})},P="border border-border bg-card text-card-foreground shadow-sm dark:border-[#2b3140] dark:bg-[#181d27] dark:text-[#f5f7fb] dark:shadow-[0_12px_24px_rgba(0,0,0,0.22)]",as=a=>a<=0?"--":`${(a/1e3).toFixed(2)}s`,ss=a=>a==="win"?"Win":a==="loss"?"Loss":"Draw",rs=(a,s,r)=>Math.max(s,Math.min(r,a)),ns=a=>{const s=Math.floor(a/60),r=a%60;return`${s}:${String(r).padStart(2,"0")}`},os=a=>{const s=a.trim().split(/\s+/).filter(Boolean).slice(0,2);return s.length===0?"ST":s.map(r=>r[0]?.toUpperCase()||"").join("")},Dt=(a,s)=>a?a.eventType==="round_started"?`Round ${a.roundNumber} started.`:a.eventType==="answer_locked"?a.lockedByStudentId&&s&&a.lockedByStudentId===s?`Round ${a.roundNumber}: your answer is locked.`:`Round ${a.roundNumber}: opponent answer locked.`:a.eventType==="round_result"?`Round ${a.roundNumber} resolved.`:"Match completed.":null,Ps=()=>{const{userProfile:a,userRole:s}=sa(),r=a,[c,l]=d.useState("hub"),[i,w]=d.useState(Ta),[S,y]=d.useState([]),[k,h]=d.useState({status:"idle"}),[B,v]=d.useState(!1),[x,j]=d.useState(null),[A,D]=d.useState(""),[ie,le]=d.useState(null),[ze,te]=d.useState(0),[de,Vt]=d.useState(()=>typeof window>"u"?!0:window.localStorage.getItem("quiz_battle_sound_enabled")!=="0"),[mt,I]=d.useState("connected"),[ce,Ut]=d.useState("all"),[xt,He]=d.useState(!0),[W,We]=d.useState(null),[Ve,Ue]=d.useState([]),[Gt,pt]=d.useState(!1),[ht,Zt]=d.useState([]),[Ae,Yt]=d.useState("alias"),[Ge,Xt]=d.useState(!1),[n,N]=d.useState(null),[ue,V]=d.useState(null),[$,je]=d.useState(!1),[M,ke]=d.useState(0),[O,U]=d.useState(!1),[C,Ze]=d.useState(!1),[Ye,Jt]=d.useState(!1),[Xe,Kt]=d.useState(rt),[Ce,me]=d.useState(null),bt=d.useRef(""),Je=d.useRef(null),xe=d.useRef(null),J=d.useRef(0),ft=d.useRef(""),Ne=d.useRef(0),Ke=!1,K=d.useMemo(()=>{const t=la(r?.grade);return da.filter(o=>t.includes(o.id))},[r?.grade]),ea=d.useMemo(()=>(K.find(o=>o.id===i.subjectId)?.modules||[]).map(o=>({value:o.id,label:o.title})),[K,i.subjectId]),ae=d.useCallback(t=>{if(!de||typeof window>"u")return;const o=window.AudioContext||window.webkitAudioContext;if(o)try{const p=new o,m=p.createOscillator(),g=p.createGain(),f={tick:{frequency:740,duration:.06,type:"triangle",volume:.035},lock:{frequency:520,duration:.08,type:"square",volume:.04},result:{frequency:660,duration:.1,type:"sine",volume:.045},win:{frequency:920,duration:.18,type:"triangle",volume:.05},loss:{frequency:240,duration:.16,type:"sawtooth",volume:.045}}[t],z=p.currentTime;m.type=f.type,m.frequency.setValueAtTime(f.frequency,z),g.gain.setValueAtTime(1e-4,z),g.gain.exponentialRampToValueAtTime(f.volume,z+.015),g.gain.exponentialRampToValueAtTime(1e-4,z+f.duration),m.connect(g),g.connect(p.destination),m.start(z),m.stop(z+f.duration+.02),window.setTimeout(()=>{p.close()},Math.ceil((f.duration+.06)*1e3))}catch(p){console.debug("Battle tone playback skipped:",p)}},[de]),gt=d.useCallback(async t=>{if(!(!t||typeof window>"u"))try{await window.navigator.clipboard.writeText(t),le(t),window.setTimeout(()=>{le(o=>o===t?null:o)},1600)}catch{h({status:"error",message:"Unable to copy room code automatically. Please copy it manually."})}},[]),wt=d.useCallback(()=>{},[Ke]),pe=d.useCallback(async()=>{if(!r?.uid)return null;const[t,o]=await Promise.all([qa(r.uid),Qa(r.uid,{mode:ce,limitCount:8})]);return{stats:t,history:o}},[ce,r?.uid]);d.useEffect(()=>{if(K.length===0)return;const o=K.some(g=>g.id===i.subjectId)?i.subjectId:K[0].id,p=K.find(g=>g.id===o),m=p?.modules?.[0]?.id||"";w(g=>{const T=p?.modules?.some(f=>f.id===g.topicId)?g.topicId:m;return g.subjectId===o&&g.topicId===T?g:{...g,subjectId:o,topicId:T}})},[K,i.subjectId]),d.useEffect(()=>{if(!r?.uid){We(null),Ue([]),He(!1);return}let t=!0;return He(!0),(async()=>{const p=await pe();t&&(p&&(We(p.stats),Ue(p.history)),He(!1))})(),()=>{t=!1}},[pe,r?.uid]);const Be=d.useMemo(()=>ce==="all"?Ve:Ve.filter(t=>t.mode===ce),[Ve,ce]),vt=d.useMemo(()=>ht.map((t,o)=>{const p=t.rank||o+1,m=t.userId===r?.uid,g=`Student-${t.userId.slice(-4).toUpperCase()}`,T=Ae==="full"?t.displayName:Ae==="initials"?os(t.displayName):g,f=Math.floor(t.leaderboardScore/25)*25,z=Ge||m?`${t.leaderboardScore} pts`:`${f}-${f+24} pts`;return{...t,rank:p,isSelf:m,displayName:T,scoreLabel:z}}),[ht,Ae,Ge,r?.uid]);d.useEffect(()=>{if(c!=="leaderboard"&&c!=="hub")return;let t=!0;return pt(!0),(async()=>{const p=await Ja(20);t&&(Zt(p),pt(!1))})(),()=>{t=!1}},[c]);const Me=d.useCallback(async()=>{if(r?.uid)try{const t=await Ft();if(t.sessionType==="match"&&t.match){let o=t.match;if(t.match.mode==="bot"&&t.match.status==="ready")try{o=await G(t.match.matchId),Ne.current=0}catch(p){const m=p;v(!1),j(null),N(null),l("setup"),I(typeof window<"u"&&window.navigator.onLine?"connected":"disconnected"),h({status:"error",message:m?.message||"Unable to resume bot battle. Please start a new match."});return}v(!1),j(t.room||null),N(o),l("battle"),I("connected");return}if(t.sessionType==="room"&&t.room){v(!1),j(t.room),N(o=>o?.mode==="bot"?o:null),I("connected");return}if(t.sessionType==="queue"){v(!0),j(null),N(o=>o?.mode==="bot"?o:null),I("connected");return}v(!1),j(null),N(o=>o?.mode==="bot"?o:null),I("connected")}catch(t){console.warn("Quiz Battle session resume failed:",t),I("reconnecting")}},[r?.uid]);d.useEffect(()=>{r?.uid&&Me()},[r?.uid,Me]),d.useEffect(()=>{typeof window>"u"||window.localStorage.setItem("quiz_battle_sound_enabled",de?"1":"0")},[de]),d.useEffect(()=>{if(typeof window>"u")return;const t=()=>{const o=window.innerWidth,p=window.innerHeight;Kt({width:Number.isFinite(o)&&o>0?o:rt.width,height:Number.isFinite(p)&&p>0?p:rt.height})};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[]),d.useEffect(()=>{if(typeof document>"u")return;const t=()=>{Jt(!!document.fullscreenElement)};return t(),document.addEventListener("fullscreenchange",t),()=>{document.removeEventListener("fullscreenchange",t)}},[]),d.useEffect(()=>{if(!(B||x&&(x.status==="waiting"||x.status==="ready"))){te(0);return}const t=window.setInterval(()=>{te(o=>o+1)},1e3);return()=>{window.clearInterval(t)}},[B,x?.status,x?.roomId]),d.useEffect(()=>{if(typeof window>"u")return;I(window.navigator.onLine?"connected":"disconnected");const t=()=>{I("reconnecting"),Me()},o=()=>{I("disconnected")};return window.addEventListener("online",t),window.addEventListener("offline",o),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",o)}},[Me]),d.useEffect(()=>{const t=n?.mode==="online"&&(n.status==="ready"||n.status==="in_progress"),o=n?.mode==="bot"&&n.status==="ready",p=!!(x&&(x.status==="waiting"||x.status==="ready"));if(o||(Ne.current=0),!B&&!p&&!t&&!o||C)return;let m=!1;const g=async()=>{try{if(n?.mode==="bot"&&n.status==="ready"){const f=await G(n.matchId);if(m)return;N(f),I("connected"),Ne.current=0,f.status==="in_progress"&&h({status:"queued",message:"Practice bot match started."});return}if(n?.mode==="online"){if(n.status==="ready"){const z=await G(n.matchId);if(m)return;N(z),I("connected"),z.status==="in_progress"&&h({status:"queued",message:"Match started. Round timer is live."});return}const f=await st(n.matchId);if(m)return;N(f),f.status==="completed"&&(v(!1),j(null)),I("connected");return}if(x?.roomId){const f=await Wa({roomId:x.roomId});if(m)return;if(j(f.room),f.match){const z=await G(f.match.matchId);if(m)return;N(z),j(f.room),v(!1),l("battle"),I("connected"),h({status:"queued",message:z.status==="ready"?"Opponent connected. Waiting for synchronized start...":"Private room match started."})}return}if(B){const f=await Ft();if(m)return;if(f.sessionType==="match"&&f.match){const z=await G(f.match.matchId);if(m)return;N(z),j(f.room||null),v(!1),l("battle"),I("connected"),h({status:"queued",message:"Opponent found. Preparing synchronized start..."});return}if(f.sessionType==="room"&&f.room){v(!1),j(f.room),I("connected");return}I("connected")}}catch(f){if(!m){if(console.warn("Quiz Battle sync poll failed:",f),n?.mode==="bot"&&n.status==="ready"&&(Ne.current+=1,Ne.current>=3)){const z=f;v(!1),j(null),N(null),l("setup"),h({status:"error",message:z?.message||"Unable to start bot battle. Please try again."}),I("disconnected");return}I("reconnecting")}}};g();const T=window.setInterval(()=>{g()},3e3);return()=>{m=!0,window.clearInterval(T)}},[n?.matchId,n?.mode,n?.status,x?.roomId,x?.status,C,B]);const se=d.useMemo(()=>n?.mode==="online"&&(n.status==="ready"||n.status==="in_progress")?{scope:"match",resourceId:n.matchId}:x&&(x.status==="waiting"||x.status==="ready")?{scope:"room",resourceId:x.roomId}:B&&r?.uid?{scope:"queue",resourceId:r.uid}:null,[n,x,B,r?.uid]);d.useEffect(()=>{if(!se)return;let t=!1;const o=async()=>{try{await Ua(se.scope,se.resourceId),t||I("connected")}catch(m){t||(console.warn("Quiz Battle heartbeat failed:",m),I("reconnecting"))}};o();const p=window.setInterval(()=>{o()},8e3);return()=>{t=!0,window.clearInterval(p),Da(se.scope,se.resourceId)}},[se?.scope,se?.resourceId]),d.useEffect(()=>{if(!n||n.status!=="in_progress"){U(!1),xe.current=null,J.current=0;return}xe.current=null,J.current=0;const t=n.roundDeadlineAtMs?Math.max(0,Math.ceil((n.roundDeadlineAtMs-Date.now())/1e3)):n.timePerQuestionSec;ke(t),V(null),U(!1)},[n?.matchId,n?.status,n?.currentRound,n?.timePerQuestionSec]),d.useEffect(()=>{C&&(!n||n.status!=="in_progress")&&Ze(!1)},[n?.matchId,n?.status,C]),d.useEffect(()=>{const t=n?.lifecycle;if(!t?.eventType)return;const o=`${t.eventType}:${t.sequence}`;bt.current!==o&&(bt.current=o,t.eventType==="answer_locked"?ae("lock"):t.eventType==="round_result"&&ae("result"))},[n?.lifecycle?.eventType,n?.lifecycle?.sequence,ae]),d.useEffect(()=>{!n||n.status!=="completed"||ft.current!==n.matchId&&(ft.current=n.matchId,ae(n.outcome==="loss"?"loss":"win"),n.outcome==="win"&&ra(()=>import("./confetti.module-C94ZD2ww.js"),[]).then(t=>{t.default({particleCount:110,spread:78,origin:{y:.62},ticks:160})}).catch(()=>{}))},[n?.matchId,n?.status,n?.outcome,ae]),d.useEffect(()=>{if(!n||n.status!=="in_progress"||O||$||C){Je.current=null;return}M<=3&&M>0&&Je.current!==M&&(Je.current=M,ae("tick"))},[n?.status,M,O,$,C,ae]);const Ee=d.useCallback(async t=>{if(!n||n.status!=="in_progress"||O||C)return;je(!0);const o=window.setTimeout(()=>{je(!1),h({status:"error",message:"Submission took too long. Syncing latest match state now..."}),st(n.matchId).then(p=>{N(p),p.status==="completed"&&(v(!1),j(null))}).catch(()=>{})},12e3);try{const p=n.roundDeadlineAtMs?rs(n.timePerQuestionSec*1e3-Math.max(0,n.roundDeadlineAtMs-Date.now()),0,n.timePerQuestionSec*1e3):Math.max(0,(n.timePerQuestionSec-M)*1e3),m=await Ya({matchId:n.matchId,roundNumber:n.currentRound,selectedOptionIndex:t,responseMs:p});xe.current=null,J.current=0,N(m.match),me(m.roundResult),V(null),m.match.mode==="online"&&m.match.status==="in_progress"&&!m.roundResult&&(U(!0),h({status:"queued",message:"Answer locked. Waiting for opponent to finish the round..."})),m.match.status==="completed"&&(v(!1),j(null),pe(),h({status:"queued",message:m.completion?`Match finished (${m.completion.outcome.toUpperCase()}) +${m.completion.xpEarned} XP`:"Match finished. Results saved."}))}catch(p){const g=p?.message||"Unable to submit answer right now. Please try again.";if(t===null||g.includes("Round timer elapsed")||g.includes("Expected round")||g.includes("Match is not currently active"))try{const f=await st(n.matchId),z=f.currentRound!==n.currentRound;if(N(f),V(null),U(!1),z||f.status==="completed"?(xe.current=null,J.current=0):t===null&&(J.current=Date.now()+3e3),f.status==="completed"){v(!1),j(null),pe(),h({status:"queued",message:"Match finished. Results synchronized."});return}h({status:"queued",message:"Round timed out. Synced to the latest battle state."});return}catch{}t===null&&(J.current=Date.now()+3e3),h({status:"error",message:g})}finally{window.clearTimeout(o),je(!1)}},[n,C,pe,O,M]);d.useEffect(()=>{if(!n||n.status!=="in_progress"||C||$||O)return;const t=n.roundDeadlineAtMs?Math.max(0,Math.ceil((n.roundDeadlineAtMs-Date.now())/1e3)):M;if(n.roundDeadlineAtMs&&t!==M&&ke(t),ue===null?t<=1:t<=0){if(xe.current===n.currentRound&&Date.now(){n.roundDeadlineAtMs?ke(Math.max(0,Math.ceil((n.roundDeadlineAtMs-Date.now())/1e3))):ke(m=>Math.max(0,m-1))},1e3);return()=>{window.clearTimeout(p)}},[n,$,C,O,M,ue,Ee]);const yt=d.useCallback(async()=>{if(!(!n||n.mode!=="bot")){je(!0),h({status:"validating"});try{const t=await Xa(n.matchId),o=await G(t.matchId);N(o),j(null),v(!1),me(null),V(null),U(!1),l("battle"),h({status:"queued",message:`Rematch ready (${t.botDifficulty}). Good luck!`})}catch(t){h({status:"error",message:t?.message||"Unable to start rematch right now."})}finally{je(!1)}}},[n]);if(s!=="student")return e.jsx("div",{className:"px-4 sm:px-6 xl:px-10 py-6 sm:py-8",children:e.jsx(H,{className:u(P,"max-w-2xl"),children:e.jsxs(Z,{children:[e.jsx(Y,{children:"Quiz Battle is student-only"}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#aab3c7]",children:"Your account role does not have access to this module."})]})})});const jt=t=>{y([]),h({status:"idle"}),Ze(!1),v(!1),j(null),D(""),N(null),me(null),V(null),U(!1),w(o=>({...o,mode:t,queueType:t==="online"?o.queueType:"public_matchmaking"})),te(0),l("setup")},kt=async()=>{h({status:"validating"});try{x?.roomId?await Va({roomId:x.roomId}):await $a(),v(!1),j(null),N(t=>!t||t.mode!=="online"?t:t.status==="ready"||t.status==="cancelled"?null:t),D(""),te(0),h({status:"queued",message:x?.roomId?"Private room cancelled.":"Left matchmaking queue."})}catch(t){h({status:"error",message:t?.message||"Unable to cancel this online session right now. Please try again."})}},ta=async()=>{h({status:"validating"});const t=Pa(i);if(t.length>0){y(t),h({status:"error",message:"Fix the highlighted setup fields before starting."});return}y([]);try{if(i.mode==="online"){if(i.queueType==="private_room"){const g=A.trim().toUpperCase(),T=g?await Ha(g):await Oa(i);if(v(!1),j(T.room),D(""),T.match){const f=await G(T.match.matchId);N(f),me(null),V(null),U(!1),l("battle"),h({status:"queued",message:f.status==="ready"?`Room ${T.room.roomCode} linked. Waiting for synchronized start...`:"Private room match started."});return}N(null),h({status:"queued",message:g?"Joined private room. Waiting for opponent...":"Private room created. Share code:"});return}const m=await La(i);if(m.status==="matched"&&m.matchId){const g=await G(m.matchId);v(!1),j(null),N(g),me(null),V(null),U(!1),l("battle"),h({status:"queued",message:"Opponent found. Preparing synchronized start..."});return}v(!0),j(null),N(null),te(0),h({status:"queued",message:"Joined matchmaking queue. Waiting for an opponent..."});return}const o=await Ga(i),p=await G(o.matchId);v(!1),j(null),N(p),me(null),V(null),U(!1),ke(p.timePerQuestionSec),l("battle"),h({status:"queued",message:`Bot match ${o.matchId.slice(0,8)} live (${o.botDifficulty}).`}),pe().then(m=>{m&&(We(m.stats),Ue(m.history))})}catch(o){v(!1),h({status:"error",message:o?.message||"Unable to start battle. Please try again."})}},Q=t=>S.find(o=>o.field===t)?.message;W?.winRate;const Nt=!!(i.mode==="online"&&x&&(x.status==="waiting"||x.status==="ready")&&(!n||n.status!=="completed")),aa=!!(B||x&&(x.status==="waiting"||x.status==="ready")&&(!n||n.status==="ready"||n.status==="cancelled"));return n&&(n.status==="in_progress"||n.status==="completed")?e.jsxs("div",{className:"fixed inset-0 z-[100] bg-[#0B0F19] text-white flex flex-col overflow-hidden",children:[n.status==="completed"&&n.outcome==="win"&&e.jsx(ts,{viewportHeight:Xe.height,viewportWidth:Xe.width}),n.status==="completed"&&n.outcome==="loss"&&e.jsx(es,{viewportHeight:Xe.height}),e.jsx("div",{className:"absolute inset-0 z-0 opacity-40",children:e.jsx(Et,{children:e.jsx("div",{className:"h-full w-full"})})}),C&&e.jsx("div",{className:"absolute inset-0 z-[110] bg-black/60 backdrop-blur-md flex items-center justify-center",children:e.jsxs(H,{className:"w-full max-w-sm border-border/50 bg-[#181d27] shadow-[0_20px_50px_rgba(0,0,0,0.5)]",children:[e.jsxs(Z,{className:"text-center",children:[e.jsx(Y,{className:"text-3xl font-black text-white",children:"PAUSED"}),e.jsx(ee,{className:"text-base text-muted-foreground mt-2",children:n.mode==="online"?"Online match - timer continues in the background! Hurry!":"Bot match - round timer frozen."})]}),e.jsxs(ne,{className:"flex flex-col gap-3",children:[e.jsx(_,{variant:"default",size:"lg",className:"w-full text-lg h-12",onClick:wt,children:"Resume Match"}),e.jsx(_,{variant:"outline",size:"lg",className:"w-full text-lg h-12 border-rose-500/20 text-rose-500 hover:bg-rose-500/10",onClick:()=>{Ze(!1),N(null),j(null),v(!1),h({status:"idle"}),l("setup")},children:"Leave Match"})]})]})}),e.jsxs("div",{className:"relative z-10 flex flex-col h-full w-full max-w-[1400px] mx-auto px-4 md:px-8 py-4",children:[e.jsxs("header",{className:"flex items-center justify-between shrink-0 h-16",children:[e.jsxs("div",{className:"flex items-center gap-3 md:gap-5",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 rounded-xl bg-primary/20 ring-1 ring-primary/40 shadow-[0_0_15px_rgba(158,143,255,0.4)]",children:e.jsx(Re,{className:"h-6 w-6 text-primary"})}),e.jsx("div",{className:"hidden sm:flex items-center gap-2 px-4 py-2 rounded-full bg-amber-500/10 border border-amber-500/30 text-amber-400 font-black text-sm tracking-wide shadow-[0_0_10px_rgba(245,158,11,0.2)]",children:"🔥 3 Streak"}),e.jsx("div",{className:"hidden md:flex items-center gap-2 px-4 py-2 rounded-full bg-violet-500/10 border border-violet-500/30 text-violet-400 font-black text-sm tracking-wide shadow-[0_0_10px_rgba(139,92,246,0.2)]",children:"✨ 1.5x XP"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(_,{variant:"outline",size:"icon",className:"h-12 w-12 rounded-full border-white/20 bg-black/20 hover:bg-white/10 text-white",onClick:()=>{typeof document>"u"||(document.fullscreenElement?document.exitFullscreen().catch(t=>{console.warn("Fullscreen mode unavailable or blocked by browser (exit):",t)}):document.documentElement.requestFullscreen().catch(t=>{console.warn("Fullscreen mode unavailable or blocked by browser (enter):",t)}))},"aria-label":Ye?"Exit fullscreen mode":"Enter fullscreen mode",title:Ye?"Exit fullscreen mode":"Enter fullscreen mode",children:Ye?e.jsx(ja,{className:"h-5 w-5"}):e.jsx(va,{className:"h-5 w-5"})}),e.jsx(_,{variant:"outline",size:"icon",className:u("h-12 w-12 rounded-full border-white/20 text-white","bg-black/10 opacity-50 cursor-not-allowed"),onClick:wt,disabled:!Ke,"aria-label":"Design pause unavailable",title:"Design pause unavailable",children:e.jsx(na,{className:"h-5 w-5"})})]})]}),n.status==="in_progress"?e.jsx("div",{className:"shrink-0 w-full max-w-4xl mx-auto h-2 bg-white/10 rounded-full overflow-hidden mt-6 mb-4",children:e.jsx(b.div,{className:"h-full",animate:{width:`${Math.max(0,M/n.timePerQuestionSec*100)}%`,backgroundColor:M>Math.floor(n.timePerQuestionSec/2)?"#10b981":M>3?"#f59e0b":"#ef4444"},transition:{duration:1,ease:"linear"}})}):e.jsx("div",{className:"shrink-0 h-6 md:h-10 w-full"}),e.jsx("div",{className:"flex-1 flex flex-col justify-center items-center gap-6 md:gap-10 w-full min-h-0 overflow-y-auto pb-48 z-20",style:{scrollbarWidth:"none"},children:n.status==="completed"?e.jsxs(b.div,{initial:{opacity:0,scale:.8,y:20},animate:{opacity:1,scale:1,y:0},className:"w-full max-w-2xl bg-black/60 backdrop-blur-2xl border border-white/20 shadow-[0_30px_80px_rgba(0,0,0,0.8)] rounded-[2.5rem] p-8 md:p-12 text-center",children:[e.jsx("h2",{className:u("text-5xl font-black uppercase tracking-widest drop-shadow-lg mb-4",n.outcome==="win"?"text-emerald-400":n.outcome==="loss"?"text-rose-400":"text-amber-400"),children:n.outcome==="win"?"VICTORY!":n.outcome==="loss"?"DEFEAT":"DRAW MATCH"}),e.jsxs("p",{className:"text-white/80 font-bold text-xl mb-8 uppercase tracking-widest",children:["Final Score: ",n.scoreFor," - ",n.scoreAgainst]}),e.jsxs("div",{className:"bg-white/10 rounded-2xl p-6 mb-10 border border-white/10 flex items-center justify-center gap-4",children:[e.jsx(Fe,{className:"text-amber-400 h-8 w-8"}),e.jsxs("span",{className:"text-white font-black text-2xl",children:["+",n.xpEarned||0," XP EARNED"]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsx(_,{size:"lg",onClick:()=>{j(null),v(!1),l("setup")},className:"h-16 px-8 rounded-2xl text-lg font-black bg-white/10 hover:bg-white/20 text-white border-2 border-white/20",children:"START NEW MATCH"}),n.mode==="bot"&&e.jsx(_,{size:"lg",onClick:()=>void yt(),disabled:$,className:"h-16 px-8 rounded-2xl text-lg font-black bg-violet-600 hover:bg-violet-500 text-white border-b-4 border-violet-800 active:border-b-0 active:translate-y-[4px]",children:"REMATCH"})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative bg-[#1e2536] border border-white/10 shadow-[0_20px_60px_rgba(0,0,0,0.4)] rounded-[2rem] p-8 md:p-12 w-full max-w-4xl text-center flex flex-col items-center",children:[e.jsxs("div",{className:"absolute -top-4 bg-[#2f3547] border border-white/10 text-white/80 px-5 py-1.5 rounded-full text-base font-black shadow-lg uppercase tracking-wider",children:[n.currentRound," / ",n.totalRounds]}),e.jsx("p",{className:"text-2xl sm:text-3xl md:text-5xl text-white font-extrabold leading-tight tracking-tight mt-2 min-h-[80px] flex items-center justify-center",children:n.currentQuestion?.prompt})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 md:gap-6 w-full max-w-4xl px-4",children:n.currentQuestion?.choices.map((t,o)=>{const p=ue===o,m=$||O,g=["bg-emerald-500 hover:bg-emerald-400 active:bg-emerald-600 text-emerald-950 border-emerald-400 shadow-[0_8px_0_rgba(5,150,105,1)]","bg-violet-500 hover:bg-violet-400 active:bg-violet-600 text-white border-violet-400 shadow-[0_8px_0_rgba(109,40,217,1)]","bg-sky-500 hover:bg-sky-400 active:bg-sky-600 text-white border-sky-400 shadow-[0_8px_0_rgba(2,132,199,1)]","bg-rose-500 hover:bg-rose-400 active:bg-rose-600 text-white border-rose-400 shadow-[0_8px_0_rgba(225,29,72,1)]"];return e.jsx(b.button,{whileTap:{y:8,scale:.98},whileHover:{scale:1.02},disabled:m||C,onClick:()=>void Ee(o),className:u("relative h-24 md:h-32 rounded-3xl font-black text-xl md:text-3xl px-6 md:px-8 border-t-[3px] flex items-center justify-center text-center transition-all disabled:opacity-50 disabled:cursor-not-allowed",g[o],p?"ring-[6px] ring-white ring-offset-[6px] ring-offset-[#0B0F19]":""),children:t},o)})})]})}),e.jsxs("div",{className:"absolute bottom-0 left-0 right-0 w-full xl:max-w-[1400px] mx-auto px-4 md:px-8 shrink-0 h-32 md:h-40 flex justify-between items-end pb-4 pointer-events-none z-30",children:[e.jsxs("div",{className:"flex items-end gap-3 sm:gap-6 relative pointer-events-auto",children:[e.jsx("div",{className:"relative w-28 h-28 md:w-36 md:h-36 overflow-hidden rounded-t-[40px]",children:e.jsx(ia,{layers:r?.avatarLayers||{},className:"w-full h-full object-contain origin-bottom scale-110 -mb-2"})}),e.jsxs("div",{className:"bg-black/40 backdrop-blur-xl border border-white/20 rounded-2xl px-5 py-3 shadow-[0_8px_30px_rgba(0,0,0,0.5)] flex flex-col mb-4 max-w-[200px] md:max-w-[250px]",children:[e.jsx("span",{className:"text-white font-black text-lg truncate tracking-wide",children:r?.name||"Player"}),e.jsxs("span",{className:"text-sm text-white/50 font-bold uppercase tracking-wider",children:["Level ",r?.level||1]})]})]}),e.jsxs("div",{className:"flex items-end gap-3 sm:gap-6 relative flex-row-reverse pointer-events-auto",children:[e.jsx("div",{className:"relative w-28 h-28 md:w-36 md:h-36 bg-[#1a2030] overflow-hidden rounded-t-[40px] flex items-end justify-center border-t-4 border-slate-700/50 shadow-inner",children:n.mode==="bot"?e.jsx(et,{className:"h-16 w-16 md:h-20 md:w-20 text-rose-400 mb-6 drop-shadow-xl",strokeWidth:1.5}):e.jsx(_e,{className:"h-16 w-16 md:h-20 md:w-20 text-slate-500 mb-6 drop-shadow-xl",strokeWidth:1.5})}),e.jsxs("div",{className:"bg-black/40 backdrop-blur-xl border border-white/20 rounded-2xl px-5 py-3 shadow-[0_8px_30px_rgba(0,0,0,0.5)] flex flex-col mb-4 text-right max-w-[200px] md:max-w-[250px]",children:[e.jsx("span",{className:"text-white font-black text-lg truncate tracking-wide",children:n.opponentName||"Anonymous"}),e.jsx("span",{className:"text-sm text-rose-400 font-bold uppercase tracking-wider",children:n.mode==="bot"?"System Bot":"Challenger"})]})]})]})]})]}):e.jsx(Et,{className:"-mx-3 lg:-mx-4 -mt-3 lg:-mt-4 -mb-8 px-4 sm:px-6 xl:px-10 py-6 sm:py-8 min-h-[calc(100vh-3.5rem)] !w-auto overflow-hidden relative",children:e.jsx("div",{className:"h-full flex flex-col max-w-[1400px] mx-auto w-full",children:e.jsx(b.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.24,ease:[.22,1,.36,1]},className:"space-y-3 lg:space-y-4",children:e.jsxs(Ka,{value:c,onValueChange:t=>l(t),children:[e.jsx(we,{value:"hub",className:"mt-0 outline-none",children:e.jsx(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-5",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_300px] xl:grid-cols-[1fr_320px] gap-6 sm:gap-8 lg:gap-10",children:[e.jsxs("div",{className:"space-y-3 lg:space-y-4",children:[e.jsxs("div",{className:"relative select-none isolate bg-indigo-600 rounded-[2rem] shadow-[0_20px_45px_-15px_rgba(0,0,0,0.3)] shrink-0",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 pointer-events-none z-0 rounded-[2rem]"}),e.jsx("div",{className:"absolute inset-0 opacity-10 pointer-events-none rounded-[2rem] overflow-hidden",style:{backgroundImage:"repeating-linear-gradient(0deg, transparent, transparent 39px, #ffffff 39px, #ffffff 40px), repeating-linear-gradient(90deg, transparent, transparent 39px, #ffffff 39px, #ffffff 40px)"}}),e.jsx("div",{className:"absolute top-0 right-0 w-[400px] h-[400px] bg-sky-500/20 blur-[100px] rounded-full pointer-events-none"}),e.jsxs("div",{className:"relative z-10 flex flex-col md:flex-row items-center justify-between p-6 lg:p-8 h-full min-h-[140px] lg:min-h-[160px]",children:[e.jsx("div",{className:"flex-1 space-y-3 w-full pr-0 md:pr-[240px] lg:pr-[280px]",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"flex items-center gap-3 text-3xl sm:text-4xl lg:text-[46px] font-black tracking-tight text-white mb-2 sm:mb-4",children:[e.jsx(Re,{className:"h-8 w-8 sm:h-10 sm:w-10 lg:h-12 lg:w-12 text-[#d1abff]",strokeWidth:2.5}),"Quiz Battle"]}),e.jsx("p",{className:"text-base sm:text-lg lg:text-xl text-white mt-1.5 sm:mt-2 max-w-2xl leading-relaxed",children:"Timed student duels with synchronized rounds, instant feedback, and progression rewards."}),e.jsxs("p",{className:"text-xs lg:text-sm font-semibold uppercase tracking-[0.15em] text-[#8a7fbc] mt-3",children:["Connection: ",e.jsx("span",{className:mt==="connected"?"text-emerald-400":"text-amber-400",children:mt})]})]})}),e.jsx("div",{className:"hidden md:block absolute right-[-5px] lg:right-[-15px] top-0 lg:top-[5px] w-[200px] lg:w-[260px] shrink-0 pointer-events-none z-20",children:e.jsx(b.img,{src:Aa,alt:"Mascot",className:"w-full h-full object-contain",animate:{y:[0,-24,0],rotate:[-3,3,-3]},transition:{duration:4,repeat:1/0,ease:"easeInOut"}})})]})]}),e.jsxs("div",{className:"pt-4 lg:pt-6",children:[e.jsxs("h2",{className:"flex items-center gap-2 pb-4 text-xl lg:text-2xl font-black tracking-wide uppercase text-white drop-shadow-[0_0_12px_rgba(255,255,255,0.4)]",children:[e.jsx(Re,{className:"h-6 w-6 lg:h-8 lg:w-8 text-amber-400 drop-shadow-[0_0_8px_rgba(251,191,36,0.9)]"})," BATTLE MODES"]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 lg:gap-6 relative z-10 w-full mb-2",children:[e.jsxs(b.button,{type:"button",onClick:()=>jt("online"),whileHover:{scale:1.025},whileTap:{scale:.98},transition:{type:"spring",stiffness:400,damping:15},className:"w-full h-[205px] sm:h-[245px] lg:h-[265px] bg-[#8A3FD3] rounded-[22px] border-none relative text-left shadow-[0_8px_30px_rgba(138,63,211,0.2)] hover:shadow-[0_12px_45px_rgba(138,63,211,0.4)] block flex-col group",children:[e.jsx("div",{className:"absolute inset-0 rounded-[22px] shadow-[inset_0_6px_15px_rgba(255,255,255,0.4)] pointer-events-none z-40"}),e.jsxs("div",{className:"absolute top-4 -left-4 z-20 w-[100px] h-[40px] opacity-100",children:[e.jsx("svg",{viewBox:"0 0 100 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"w-full h-full block drop-shadow-md",children:e.jsx("path",{d:"M0 0 H94 Q100 0 100 6 V34 Q100 40 94 40 H0 L14 20 Z",fill:"#b91c1c"})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-end pr-3 font-black text-[13px] text-white tracking-[0.3px] opacity-100",style:{fontFamily:"'Nunito', sans-serif"},children:"VS Player"})]}),e.jsxs("div",{className:"rounded-[22px] overflow-hidden relative isolate h-full flex flex-col justify-end",children:[e.jsx("div",{className:"absolute top-0 -left-[150%] w-[100%] h-full bg-gradient-to-r from-transparent via-white/40 to-transparent -skew-x-12 z-50 pointer-events-none transition-all duration-0 group-hover:duration-[800ms] ease-in-out group-hover:left-[150%]"}),e.jsxs("div",{className:"flex-1 w-full flex items-end justify-center relative pt-2 pointer-events-none",children:[e.jsx("div",{className:"absolute bottom-0 left-0 w-full h-[70px] sm:h-[95px] bg-[#662AA8] rounded-[50%_50%_0_0/100%_100%_0_0] scale-[1.05] z-0"}),e.jsxs("div",{className:"relative z-10 flex items-center justify-center mb-[2px] h-[120px] sm:h-[140px] w-full",children:[e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"h-[120%] sm:h-[125%] object-contain relative z-20 origin-bottom right-[-15px] drop-shadow-[0_12px_15px_rgba(0,0,0,0.3)]",animate:{y:[0,-5,0]},transition:{duration:4,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"relative z-30 flex flex-col items-center mx-[-20px] scale-[1.1]",animate:{scale:[1.1,1.15,1.1]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},children:e.jsxs("span",{className:"font-black italic text-[40px] text-gray-200 tracking-tighter leading-none drop-shadow-[-2px_3px_0px_rgba(0,0,0,0.8)]",style:{WebkitTextStroke:"1.5px #666"},children:[e.jsx("span",{className:"text-gray-300",children:"V"}),e.jsx("span",{className:"text-gray-400",children:"S"})]})}),e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"h-[120%] sm:h-[125%] object-contain relative z-10 scale-x-[-1] origin-bottom left-[-20px] drop-shadow-[0_12px_15px_rgba(0,0,0,0.3)]",animate:{y:[0,-4,0]},transition:{duration:4,repeat:1/0,ease:"easeInOut",delay:.4}})]})]}),e.jsx("div",{className:"relative z-10 w-full px-5 py-3 sm:py-4 text-center bg-[#662AA8]",children:e.jsx("p",{className:"text-[13px] font-bold text-white leading-[1.45]",style:{fontFamily:"'Nunito', sans-serif"},children:"Queue or room-code match with another student."})})]})]}),e.jsxs(b.button,{type:"button",onClick:()=>jt("bot"),whileHover:{scale:1.025},whileTap:{scale:.98},transition:{type:"spring",stiffness:400,damping:15},className:"w-full h-[205px] sm:h-[245px] lg:h-[265px] bg-[#1FA7E1] rounded-[22px] border-none relative text-left shadow-[0_8px_30px_rgba(31,167,225,0.2)] hover:shadow-[0_12px_45px_rgba(31,167,225,0.4)] block flex-col group",children:[e.jsx("div",{className:"absolute inset-0 rounded-[22px] shadow-[inset_0_6px_15px_rgba(255,255,255,0.4)] pointer-events-none z-40"}),e.jsxs("div",{className:"absolute top-4 -left-4 z-20 w-[100px] h-[40px] opacity-100",children:[e.jsx("svg",{viewBox:"0 0 100 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"w-full h-full block drop-shadow-md",children:e.jsx("path",{d:"M0 0 H94 Q100 0 100 6 V34 Q100 40 94 40 H0 L14 20 Z",fill:"#b91c1c"})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-end pr-3 font-black text-[13px] text-white tracking-[0.3px] opacity-100",style:{fontFamily:"'Nunito', sans-serif"},children:"VS Bot"})]}),e.jsxs("div",{className:"rounded-[22px] overflow-hidden relative isolate h-full flex flex-col justify-end",children:[e.jsx("div",{className:"absolute top-0 -left-[150%] w-[100%] h-full bg-gradient-to-r from-transparent via-white/40 to-transparent -skew-x-12 z-50 pointer-events-none transition-all duration-0 group-hover:duration-[800ms] ease-in-out group-hover:left-[150%]"}),e.jsxs("div",{className:"flex-1 w-full flex items-end justify-center relative pt-2 pointer-events-none",children:[e.jsx("div",{className:"absolute bottom-0 left-0 w-full h-[70px] sm:h-[95px] bg-[#127DA6] rounded-[50%_50%_0_0/100%_100%_0_0] scale-[1.05] z-0"}),e.jsxs("div",{className:"relative z-10 flex items-end justify-center mb-[2px] h-[125px] sm:h-[145px] w-full",children:[e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"absolute opacity-40 blur-[1px] h-full object-contain origin-bottom -translate-x-[45px] sm:-translate-x-[60px] scale-[0.80] sm:scale-[0.85]",animate:{y:[0,-3,0]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut",delay:.3}}),e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"",className:"absolute opacity-40 blur-[1px] h-full object-contain origin-bottom translate-x-[45px] sm:translate-x-[60px] scale-[0.80] sm:scale-[0.85]",animate:{y:[0,-3,0]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut",delay:.6}}),e.jsx(b.img,{src:"/avatar/avatar_icon.png",alt:"VS Bot",className:"relative opacity-100 scale-100 h-[105%] sm:h-[115%] object-contain drop-shadow-[0_15px_15px_rgba(0,0,0,0.3)] z-20 origin-bottom",animate:{y:[0,-5,0]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut"}})]})]}),e.jsx("div",{className:"relative z-10 w-full px-5 py-3 sm:py-4 text-center bg-[#127DA6]",children:e.jsx("p",{className:"text-[13px] font-bold text-white leading-[1.45]",style:{fontFamily:"'Nunito', sans-serif"},children:"Instant solo duel with selectable bot difficulty."})})]})]})]})]})]}),e.jsxs("div",{className:"space-y-3 lg:space-y-4 flex flex-col h-full justify-between",children:[e.jsx("div",{onClick:()=>l("leaderboard"),className:"relative w-full h-[155px] sm:h-[165px] cursor-pointer group flex items-end justify-center overflow-visible mt-1 mb-2 scale-[0.75] origin-bottom sm:scale-[0.80] lg:scale-[0.85] lg:origin-center",children:e.jsxs(b.div,{className:"relative w-full h-full flex flex-col items-center justify-end",whileHover:{scale:1.03},whileTap:{scale:.98},children:[e.jsxs("div",{className:"absolute top-[1px] sm:-top-[30px] w-full flex justify-center items-end px-2 z-0",children:[e.jsx(Fe,{strokeWidth:0,fill:"currentColor",className:"w-[35px] h-[35px] text-[#fde047] -rotate-[15deg] -mr-3 mb-1 z-0 drop-shadow-[0_0_15px_rgba(253,224,71,0.6)]"}),e.jsx(b.div,{animate:{y:[-4,4,-4]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},className:"z-10 relative",children:e.jsx(Fe,{strokeWidth:0,fill:"currentColor",className:"w-[60px] h-[60px] text-[#fcd34d] drop-shadow-[0_0_25px_rgba(252,211,77,0.9)]"})}),e.jsx(Fe,{strokeWidth:0,fill:"currentColor",className:"w-[35px] h-[35px] text-[#fde047] rotate-[15deg] -ml-3 mb-1 z-0 drop-shadow-[0_0_15px_rgba(253,224,71,0.6)]"})]}),e.jsx("div",{className:`absolute inset-x-0 bottom-[40px] top-0 z-10 flex flex-col items-center justify-end + filter drop-shadow-[0px_3px_0px_white] drop-shadow-[0px_-3px_0px_white] drop-shadow-[3px_0px_0px_white] drop-shadow-[-3px_0px_0px_white] drop-shadow-[2px_2px_0px_white] drop-shadow-[-2px_-2px_0px_white] drop-shadow-[2px_-2px_0px_white] drop-shadow-[-2px_2px_0px_white]`,children:e.jsxs("div",{className:"flex items-end justify-center z-20 relative px-4",children:[e.jsxs("div",{className:"flex flex-col items-center w-[65px] relative",children:[e.jsx("div",{className:"w-full h-[14px] bg-[#d24b4b] rounded-[2px] relative z-10 -mb-[1px]"}),e.jsxs("div",{className:"w-[85%] h-[50px] bg-[#fe5c5c] rounded-b-[2px] flex flex-col justify-center items-center gap-1.5 pb-1.5",children:[e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"}),e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"})]})]}),e.jsxs("div",{className:"flex flex-col items-center w-[75px] -mx-[4px] z-20 relative",children:[e.jsx("div",{className:"w-full h-[18px] bg-[#f2812d] rounded-[2px] relative z-10 -mb-[1px]"}),e.jsxs("div",{className:"w-[85%] h-[75px] bg-[#fa9746] rounded-b-[2px] flex flex-col justify-start items-center pt-4 gap-1.5",children:[e.jsx("div",{className:"w-9 h-1.5 bg-white rounded-full opacity-95"}),e.jsx("div",{className:"w-9 h-1.5 bg-white rounded-full opacity-95"})]})]}),e.jsxs("div",{className:"flex flex-col items-center w-[65px] relative",children:[e.jsx("div",{className:"w-full h-[14px] bg-[#d24b4b] rounded-[2px] relative z-10 -mb-[1px]"}),e.jsxs("div",{className:"w-[85%] h-[50px] bg-[#fe5c5c] rounded-b-[2px] flex flex-col justify-center items-center gap-1.5 pb-1.5",children:[e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"}),e.jsx("div",{className:"w-6 h-1.5 bg-white rounded-full opacity-95"})]})]})]})}),e.jsx("div",{className:"absolute bottom-2 w-[110%] max-w-[280px] z-30 drop-shadow-2xl",children:e.jsxs("div",{className:"relative w-full h-[52px] flex justify-center items-center",children:[e.jsx("div",{className:"absolute -left-1 top-2 w-[55px] h-[40px] bg-[#8b0d0d] z-0",style:{clipPath:"polygon(100% 0, 100% 100%, 0 100%, 25% 50%, 0 0)"}}),e.jsx("div",{className:"absolute -right-1 top-2 w-[55px] h-[40px] bg-[#8b0d0d] z-0",style:{clipPath:"polygon(0 0, 0 100%, 100% 100%, 75% 50%, 100% 0)"}}),e.jsxs("div",{className:"absolute inset-x-6 top-0 bottom-0 bg-[#b61515] shadow-[inset_0_2px_4px_rgba(255,255,255,0.1),_inset_0_-4px_4px_rgba(0,0,0,0.2)] z-10 flex flex-col items-center justify-center",children:[e.jsx("h3",{className:"text-lg sm:text-xl font-black text-white tracking-widest leading-none drop-shadow-md",style:{fontFamily:"'Nunito', sans-serif"},children:"Hall of Fame"}),e.jsx("span",{className:"text-[9px] sm:text-[10px] font-bold text-white/90 tracking-widest mt-0.5",children:"View Page >"})]})]})})]})}),e.jsxs("div",{className:"relative w-full bg-[#3b3a82] dark:bg-[#2b2b5f] rounded-[24px] overflow-hidden flex flex-col shadow-[0_8px_30px_rgba(59,58,130,0.3)]",children:[e.jsxs("div",{className:"flex flex-row items-end justify-between px-5 pt-4 pb-2 relative z-10",children:[e.jsx("h3",{className:"text-[18px] font-black text-white tracking-wide leading-none drop-shadow-md",style:{fontFamily:"'Nunito', sans-serif"},children:"My Stats"}),e.jsx(_,{variant:"link",className:"text-white/80 hover:text-white p-0 h-auto font-semibold text-[13px] tracking-wide",onClick:()=>l("stats"),children:"View Stats >"})]}),e.jsxs("div",{className:"relative z-10 w-full overflow-hidden pb-4",children:[e.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-6 bg-gradient-to-r from-[#3b3a82] to-transparent z-20 pointer-events-none dark:from-[#2b2b5f]"}),e.jsx("div",{className:"absolute right-0 top-0 bottom-0 w-6 bg-gradient-to-l from-[#3b3a82] to-transparent z-20 pointer-events-none dark:from-[#2b2b5f]"}),e.jsx(b.div,{className:"flex w-max pl-3",animate:{x:["0%","-50%"]},transition:{ease:"linear",duration:15,repeat:1/0},children:[0,1].map(t=>e.jsxs("div",{className:"flex gap-2.5 pr-2.5",children:[e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#f0eaff] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#d6ccf5]",children:[e.jsx(tt,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#a06aec]/10 -rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"🏆"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsxs("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#8f5ae2] leading-none tracking-tight",children:[Math.round(W?.winRate||0)," %"]}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#baa4df] uppercase tracking-wider leading-none",children:"Win Rate"})]})]}),e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#e1f5f7] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#b0e6eb]",children:[e.jsx(zt,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#35a8bc]/10 rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"🎯"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsx("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#319ab4] leading-none tracking-tight",children:W?.matchesPlayed||0}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#7eafbe] uppercase tracking-wider leading-none",children:"Matches"})]})]}),e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#fef5e7] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#f6ebd2]",children:[e.jsx(Bt,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#e87a42]/10 -rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"⏱️"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsxs("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#db734b] leading-none tracking-tight",children:[W?.averageResponseMs?(W.averageResponseMs/1e3).toFixed(1):0,"s"]}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#d2a893] uppercase tracking-wider leading-none whitespace-nowrap",children:"Response"})]})]}),e.jsxs("div",{className:"flex-none w-[60px] sm:w-[65px] lg:w-[70px] xl:w-[75px] aspect-square rounded-[12px] bg-[#fdeceb] p-1.5 flex flex-col justify-between relative overflow-hidden group shadow-sm dark:bg-[#fbd3d3]",children:[e.jsx(At,{className:"absolute -bottom-1 -right-2 w-6 h-6 sm:w-8 sm:h-8 text-[#df655a]/10 rotate-12 transition-transform group-hover:scale-110"}),e.jsx("span",{className:"text-[12px] drop-shadow-sm leading-none",children:"✨"}),e.jsxs("div",{className:"relative z-10 space-y-[1px]",children:[e.jsx("h4",{className:"text-[12px] sm:text-[14px] lg:text-[16px] font-black text-[#d05c54] leading-none tracking-tight",children:r?.currentXP||0}),e.jsx("p",{className:"text-[6px] lg:text-[7px] font-extrabold text-[#dd9a9a] uppercase tracking-wider leading-none whitespace-nowrap",children:"Total XP"})]})]})]},t))})]})]}),e.jsxs(H,{className:u(P,"rounded-[18px] flex flex-col min-h-[200px]"),children:[e.jsxs(Z,{className:"pb-0 pt-3 px-4 flex flex-row items-center justify-between",children:[e.jsxs(Y,{className:"text-[14px] font-black flex items-center gap-2 text-[#2e2b5e] dark:text-[#f5f7fb]",children:[e.jsx(Mt,{className:"h-[16px] w-[16px] text-[#2e2b5e] dark:text-[#9e8fff]"})," Match History"]}),e.jsx(_,{variant:"link",size:"sm",className:"h-auto p-0 text-[12px] font-semibold text-muted-foreground dark:text-[#95a0bb] hover:text-primary transition-colors",onClick:()=>l("history"),children:"View All"})]}),e.jsxs(ne,{className:"space-y-1.5 px-4 pt-1 pb-3 overflow-y-auto",children:[e.jsx("div",{className:"text-[11px] text-muted-foreground dark:text-[#8b95ad] mb-1.5 leading-relaxed",children:"Your recent student battles only."}),xt?e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"h-10 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-10 w-full rounded-xl bg-muted dark:bg-[#2a3143]"})]}):Be.length===0?e.jsx("p",{className:"text-xs text-center text-muted-foreground dark:text-[#a8b2c9] py-2",children:"No battle history yet."}):Be.slice(0,3).map(t=>{const o=t.outcome==="win",p=t.outcome==="loss",m=t.opponentName.split(" ").map(g=>g[0]).join("").substring(0,2).toUpperCase()||"OP";return e.jsxs("div",{className:"group relative overflow-hidden rounded-[14px] border border-muted-foreground/15 bg-white dark:bg-[#11151d] dark:border-[#2f3547] p-2 shadow-sm transition-all hover:scale-[1.01] hover:shadow-md",children:[e.jsx("div",{className:u("absolute inset-y-0 right-0 w-[55%] pointer-events-none opacity-[0.2] dark:opacity-[0.25] mix-blend-multiply dark:mix-blend-screen transition-all",o?"bg-gradient-to-l from-emerald-500 via-emerald-500/40 to-transparent":p?"bg-gradient-to-l from-rose-500 via-rose-500/40 to-transparent":"bg-gradient-to-l from-amber-400 via-amber-400/40 to-transparent")}),e.jsxs("div",{className:"flex items-center gap-2.5 relative z-10 w-full",children:[e.jsx("div",{className:u("w-9 h-9 rounded-full flex items-center justify-center font-black text-[12px] tracking-wide text-white flex-shrink-0 shadow-inner",o?"bg-[#34d399] dark:bg-[#15803d]":p?"bg-[#fb7185] dark:bg-[#be123c]":"bg-[#fbbf24] dark:bg-[#b45309]"),children:m}),e.jsxs("div",{className:"flex-grow min-w-0 flex flex-col justify-center",children:[e.jsxs("p",{className:"text-[13px] font-extrabold text-[#36326e] dark:text-[#e4e7f1] truncate leading-tight",children:["vs ",t.opponentName]}),e.jsxs("p",{className:"text-[10px] font-bold text-muted-foreground/60 dark:text-[#7f88a3] truncate flex items-center gap-1 mt-0.5",children:[t.subjectId," ",e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/30"})," ",t.difficulty||"Medium"," ",e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/30"})," ",t.rounds||"5"," rnds"]})]}),e.jsxs("div",{className:"text-right flex flex-col items-end justify-center pl-2 flex-shrink-0",children:[e.jsxs("p",{className:"tabular-nums text-[16px] leading-[1.1] font-black text-[#2e2b5e] dark:text-[#f5f7fb] tracking-tighter",children:[t.scoreFor,e.jsx("span",{className:"text-muted-foreground/40 mx-[1px]",children:"-"}),t.scoreAgainst]}),e.jsx("p",{className:u("text-[9px] font-black uppercase tracking-[0.1em]",o?"text-emerald-500 dark:text-emerald-400":p?"text-rose-500 dark:text-rose-400":"text-amber-500 dark:text-amber-400"),children:t.outcome})]})]})]},t.matchId)})]})]})]})]})},"hub")}),e.jsx(we,{value:"setup",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"w-full space-y-6",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 shadow-lg",i.mode==="online"?"border-purple-500/20 shadow-[0_0_40px_-10px_rgba(138,63,211,0.2)]":"border-sky-500/20 shadow-[0_0_40px_-10px_rgba(31,167,225,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:u("pointer-events-none absolute inset-0 bg-gradient-to-r",i.mode==="online"?"from-purple-500/20 via-fuchsia-500/10 to-purple-600/5 dark:from-purple-500/20 dark:via-fuchsia-500/10 dark:to-purple-900/10":"from-sky-500/20 via-cyan-500/10 to-sky-600/5 dark:from-sky-500/20 dark:via-cyan-500/10 dark:to-sky-900/10")}),e.jsx(b.div,{className:u("pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full blur-3xl",i.mode==="online"?"bg-purple-400/20":"bg-sky-400/20"),animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:5,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:u("pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full blur-2xl",i.mode==="online"?"bg-fuchsia-400/30":"bg-cyan-400/30"),animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:4,repeat:1/0,ease:"easeInOut",delay:1.5}}),e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAiLz4KPHBhdGggZD0iTTAgMEgxdjFIMHoiIGZpbGw9IiM2MzY2ZjEiIGZpbGwtb3BhY2l0eT0iMC4wNSIvPgo8L3N2Zz4=')] opacity-30 dark:opacity-10 mix-blend-overlay"}),e.jsxs("div",{className:"relative p-6 sm:p-8 md:px-10 flex items-center gap-5 sm:gap-8 z-10",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:u("h-12 w-12 sm:h-14 sm:w-14 p-0 rounded-full hover:scale-105 transition-all backdrop-blur-md shadow-lg shrink-0 flex items-center justify-center group",i.mode==="online"?"bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 border border-purple-500/30":"bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 border border-sky-500/30"),children:e.jsx(De,{className:u("h-6 w-6 sm:h-8 sm:w-8 rotate-180 transition-transform group-hover:-translate-x-0.5",i.mode==="online"?"text-purple-800 dark:text-purple-300":"text-sky-800 dark:text-sky-300")})}),e.jsxs("div",{children:[e.jsxs("h2",{className:u("flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br drop-shadow-sm",i.mode==="online"?"from-purple-600 to-fuchsia-500 dark:from-purple-300 dark:to-fuchsia-200":"from-sky-600 to-cyan-500 dark:from-sky-300 dark:to-cyan-200"),children:[e.jsx(b.div,{animate:{y:[-3,3,-3]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},className:u("p-2 rounded-2xl shadow-inner border",i.mode==="online"?"bg-purple-100 dark:bg-purple-900/50 border-purple-200 dark:border-purple-700/50":"bg-sky-100 dark:bg-sky-900/50 border-sky-200 dark:border-sky-700/50"),children:i.mode==="online"?e.jsx(_e,{className:"h-8 w-8 text-purple-600 dark:text-purple-400 drop-shadow-[0_0_8px_rgba(138,63,211,0.5)]"}):e.jsx(et,{className:"h-8 w-8 text-sky-600 dark:text-sky-400 drop-shadow-[0_0_8px_rgba(31,167,225,0.5)]"})}),i.mode==="online"?"1v1 Online":"1v1 vs Bot"]}),e.jsx("p",{className:u("text-[10px] sm:text-[12px] font-black uppercase tracking-[0.2em] mt-1.5 drop-shadow-sm",i.mode==="online"?"text-purple-600/80 dark:text-purple-400/80":"text-sky-600/80 dark:text-sky-400/80"),children:i.mode==="online"?"CHALLENGE YOUR SCHOOLMATES AND PROVE YOUR SKILLS.":"CHALLENGE THE AI AND SHARPEN YOUR SKILLS."})]})]})]}),e.jsx("div",{className:"rounded-[24px] border border-white/40 bg-white/85 dark:border-white/10 dark:bg-black/80 backdrop-blur-xl p-5 sm:p-7 shadow-xl",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 lg:gap-10",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Category"}),e.jsxs(he,{value:i.subjectId,onValueChange:t=>w(o=>({...o,subjectId:t})),children:[e.jsx(be,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("subjectId")&&"border-rose-400"),children:e.jsx(fe,{placeholder:"Select category"})}),e.jsx(ge,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:K.map(t=>e.jsx(L,{value:t.id,className:"rounded-lg",children:t.title},t.id))})]}),Q("subjectId")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("subjectId")})]}),e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Strand / Topic Group"}),e.jsxs(he,{value:i.topicId,onValueChange:t=>w(o=>({...o,topicId:t})),children:[e.jsx(be,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("topicId")&&"border-rose-400"),children:e.jsx(fe,{placeholder:"Select topic group"})}),e.jsx(ge,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:ea.map(t=>e.jsx(L,{value:t.value,className:"rounded-lg",children:t.label},t.value))})]}),Q("topicId")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("topicId")})]}),e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:i.mode==="online"?"Difficulty":"Bot Difficulty"}),e.jsxs(he,{value:i.mode==="bot"?i.adaptiveBot?"adaptive":i.botDifficulty:i.difficulty,onValueChange:t=>w(o=>o.mode==="bot"?{...o,botDifficulty:t,adaptiveBot:t==="adaptive"}:{...o,difficulty:t}),children:[e.jsx(be,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50"),children:e.jsx(fe,{})}),e.jsxs(ge,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:[e.jsx(L,{value:"easy",className:"rounded-lg",children:"Easy"}),e.jsx(L,{value:"medium",className:"rounded-lg",children:"Medium"}),e.jsx(L,{value:"hard",className:"rounded-lg",children:"Hard"}),i.mode==="bot"&&e.jsx(L,{value:"adaptive",className:"rounded-lg",children:"Adaptive"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[10px] sm:text-[11px] font-black uppercase tracking-[0.12em] ml-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Questions"}),e.jsxs(he,{value:String(i.rounds),onValueChange:t=>w(o=>({...o,rounds:Number(t)})),children:[e.jsx(be,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("rounds")&&"border-rose-400"),children:e.jsx(fe,{})}),e.jsx(ge,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:[3,5,7,10,12,15].map(t=>e.jsx(L,{value:String(t),className:"rounded-lg",children:t},t))})]}),Q("rounds")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("rounds")})]}),e.jsxs("div",{className:"space-y-1.5 group",children:[e.jsx("label",{className:u("text-[10px] sm:text-[11px] font-black uppercase tracking-[0.12em] ml-1 line-clamp-1",i.mode==="online"?"text-[#8A3FD3] dark:text-[#a35ceb]":"text-[#1FA7E1] dark:text-[#4bc1f2]"),children:"Time / Q"}),e.jsxs(he,{value:String(i.timePerQuestionSec),onValueChange:t=>w(o=>({...o,timePerQuestionSec:Number(t)})),children:[e.jsx(be,{className:u("rounded-xl h-11 border-white/20 bg-white/60 dark:bg-black/50 dark:border-white/10 transition-colors shadow-inner",i.mode==="online"?"hover:border-[#8A3FD3]/50":"hover:border-[#1FA7E1]/50",Q("timePerQuestionSec")&&"border-rose-400"),children:e.jsx(fe,{})}),e.jsx(ge,{className:"rounded-xl backdrop-blur-xl bg-white/90 dark:bg-[#1a1f2e]/90",children:[15,20,30,45,60,90].map(t=>e.jsxs(L,{value:String(t),className:"rounded-lg",children:[t," sec"]},t))})]}),Q("timePerQuestionSec")&&e.jsx("p",{className:"text-xs text-destructive dark:text-rose-300 ml-1",children:Q("timePerQuestionSec")})]})]})]}),e.jsxs("div",{className:"flex flex-col justify-between space-y-6",children:[e.jsxs("div",{className:"space-y-5",children:[i.mode==="online"&&e.jsxs("div",{className:"space-y-3 rounded-2xl border border-[#8A3FD3]/20 bg-[#8A3FD3]/5 dark:border-[#8A3FD3]/20 p-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-[11px] font-black uppercase tracking-[0.12em] text-[#8A3FD3] dark:text-[#a35ceb] ml-1",children:"Online Match Type"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:[{value:"public_matchmaking",label:"Public Queue"},{value:"private_room",label:"Private Room"}].map(t=>e.jsx(_,{type:"button",variant:i.queueType===t.value?"default":"outline",className:u("rounded-xl h-11 transition-all border-none font-bold text-xs",i.queueType===t.value?"bg-[#8A3FD3] hover:bg-[#7b35c0] text-white shadow-md shadow-[#8A3FD3]/30":"bg-white/50 hover:bg-white/80 dark:bg-black/30 dark:hover:bg-black/50 text-[#8A3FD3] dark:text-[#d3a8ff]"),onClick:()=>w(o=>({...o,queueType:t.value})),children:t.label},t.value))})]}),i.queueType==="private_room"&&e.jsxs(b.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},className:"pt-2 space-y-2",children:[e.jsx("label",{className:"text-[11px] font-black uppercase tracking-[0.12em] text-[#8A3FD3] dark:text-[#a35ceb] ml-1",children:"Room Code (optional)"}),e.jsx(ha,{value:A,onChange:t=>D(t.target.value.toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,6)),placeholder:"Leave blank to create a room",className:"rounded-xl h-12 text-center text-lg uppercase font-bold tracking-[0.25em] border-[#8A3FD3]/30 bg-white/80 dark:bg-black/50 dark:border-[#8A3FD3]/20 focus-visible:ring-[#8A3FD3]/50 shadow-inner",maxLength:6}),e.jsx("div",{className:"rounded-xl border border-[#8A3FD3]/30 bg-[#8A3FD3]/10 px-3 py-3 text-[12px] font-semibold text-[#6620a2] leading-snug dark:border-[#8A3FD3]/30 dark:bg-[#8A3FD3]/10 dark:text-[#d3a8ff]",children:"Enter a room code to join an existing battle, or leave it blank to create a new room and share your code."})]})]}),e.jsxs("label",{className:u("flex flex-col sm:flex-row sm:items-center justify-between rounded-[16px] border bg-white/50 p-4 transition-colors cursor-pointer shadow-sm dark:bg-black/50 group",i.mode==="online"?"border-[#8A3FD3]/20 hover:bg-[#8A3FD3]/5 dark:border-[#8A3FD3]/20 dark:hover:bg-[#8A3FD3]/10":"border-[#1FA7E1]/20 hover:bg-[#1FA7E1]/5 dark:border-[#1FA7E1]/20 dark:hover:bg-[#1FA7E1]/10"),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:u("h-11 w-11 rounded-full flex items-center justify-center group-hover:scale-110 transition-transform",i.mode==="online"?"bg-[#8A3FD3]/10 text-[#8A3FD3] dark:text-[#c48bfc]":"bg-[#1FA7E1]/10 text-[#1FA7E1] dark:text-[#7ad8ff]"),children:de?e.jsx(Sa,{className:"h-5 w-5"}):e.jsx(za,{className:"h-5 w-5 opacity-60"})}),e.jsxs("div",{className:"mb-3 sm:mb-0",children:[e.jsx("p",{className:"text-sm font-bold text-slate-800 dark:text-slate-200",children:"Battle Sounds"}),e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:"Cues for countdowns and results."})]})]}),e.jsx(St,{checked:de,onCheckedChange:Vt})]})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs("div",{"aria-live":"polite",className:"min-h-[24px] text-sm font-medium",children:[k.status==="queued"&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:u("inline-flex items-center gap-1 text-[13px] font-bold px-3 py-1.5 rounded-lg",i.mode==="online"?"text-[#8A3FD3] bg-[#8A3FD3]/10":"text-[#1FA7E1] bg-[#1FA7E1]/10"),children:k.message}),i.mode==="online"&&i.queueType==="private_room"&&x?.roomCode&&e.jsxs(_,{type:"button",variant:"outline",className:u("h-8 rounded-full border-emerald-500/50 bg-emerald-50 px-4 text-xs font-black uppercase tracking-[0.16em] text-emerald-900 shadow-sm hover:bg-emerald-100 hover:scale-105 transition-all dark:border-emerald-500/40 dark:bg-emerald-500/10 dark:text-emerald-300 dark:hover:bg-emerald-500/20",ie===x.roomCode&&"scale-105 bg-emerald-200 dark:bg-emerald-500/30"),onClick:()=>void gt(x.roomCode),"aria-label":`Copy room code ${x.roomCode}`,children:[ie===x.roomCode?e.jsx(Ct,{className:"h-4 w-4"}):e.jsx(It,{className:"h-4 w-4"}),x.roomCode]}),(B||Nt)&&ze>0&&e.jsxs("span",{className:u("inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-bold animate-pulse",i.mode==="online"?"bg-[#8A3FD3]/10 text-[#8A3FD3]":"bg-[#1FA7E1]/10 text-[#1FA7E1]"),children:["Waiting ",ns(ze)]})]}),k.status==="error"&&e.jsx("span",{className:"inline-flex items-center gap-1.5 text-[13px] font-bold text-rose-600 dark:text-rose-400 bg-rose-50 dark:bg-rose-500/10 px-3 py-1.5 rounded-lg border border-rose-200 dark:border-rose-500/20",children:k.message}),k.status==="validating"&&e.jsxs("span",{className:u("inline-flex items-center gap-2 font-bold px-3 py-1.5 rounded-lg",i.mode==="online"?"text-[#8A3FD3] bg-[#8A3FD3]/10":"text-[#1FA7E1] bg-[#1FA7E1]/10"),children:[e.jsx(at,{className:"h-4 w-4 animate-spin"})," Validating..."]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[aa&&e.jsx(_,{type:"button",variant:"outline",onClick:kt,disabled:k.status==="validating",className:"rounded-xl h-14 flex-1 sm:flex-none border-slate-300 hover:bg-slate-100 dark:border-slate-700 dark:hover:bg-slate-800 font-bold px-6",children:x?"Cancel room":"Leave queue"}),e.jsx(_,{type:"button",onClick:ta,disabled:k.status==="validating"||B||Nt,className:u("rounded-xl h-14 flex-1 px-8 font-black uppercase tracking-wide text-sm shadow-xl hover:scale-[1.02] active:scale-95 transition-all text-white border-0",i.mode==="online"?"bg-[#8A3FD3] hover:bg-[#7b35c0] shadow-[#8A3FD3]/40":"bg-[#1FA7E1] hover:bg-[#1a95c9] shadow-[#1FA7E1]/40"),children:k.status==="validating"?e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(at,{className:"h-5 w-5 animate-spin"})," Starting..."]}):i.mode==="online"&&i.queueType==="private_room"?A.trim()?"Join Room":"Create Room":"Start Battle"})]})]})]})]})})]},"setup")}),e.jsx(we,{value:"battle",className:"mt-0 outline-none",children:e.jsx(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:n?e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center justify-between gap-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-2",children:[n.mode==="bot"?e.jsx(et,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}):e.jsx(_e,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"vs ",n.opponentName]}),e.jsxs("div",{className:"inline-flex items-center gap-2",children:[Ke,e.jsxs("span",{className:"text-sm font-bold tabular-nums",children:[n.scoreFor," - ",n.scoreAgainst]})]})]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:n.status==="completed"?`Completed in ${n.totalRounds} rounds.`:n.status==="ready"?n.mode==="online"?"Waiting for both players to confirm and start together.":"Finalizing practice bot session start.":`Round ${n.currentRound} of ${n.totalRounds}${C?" (paused for design)":""}`}),Dt(n.lifecycle,r?.uid)&&e.jsx("p",{className:"text-xs font-medium text-muted-foreground dark:text-[#9aa4be]",children:Dt(n.lifecycle,r?.uid)})]}),e.jsxs(ne,{className:"space-y-4",children:[n.status==="ready"&&e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-4 dark:border-[#2f3547] dark:bg-[#11151d] flex flex-col gap-3",children:[e.jsx("p",{className:"text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:n.mode==="online"?"Waiting for both players to lock in start...":"Starting practice bot round..."}),e.jsx(_,{variant:"outline",size:"sm",className:"w-full text-rose-500 border-rose-200 hover:bg-rose-50 dark:border-rose-900 dark:hover:bg-rose-900/30",onClick:()=>{N(null),j(null),v(!1),h({status:"idle"}),l("setup")},children:"Force Cancel"})]}),n.status==="in_progress"&&n.currentQuestion&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rounded-xl border border-border bg-muted/40 p-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["Time left: ",e.jsxs("span",{className:"font-semibold tabular-nums",children:[M,"s"]}),C?" (paused)":""]}),C&&e.jsx("p",{className:"mt-1 text-[11px] font-medium text-amber-700 dark:text-amber-300",children:"Design pause keeps this battle screen static while you edit UI."})]}),e.jsx("p",{className:"text-lg font-bold text-foreground dark:text-[#f5f7fb]",children:n.currentQuestion.prompt}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:n.currentQuestion.choices.map((t,o)=>e.jsxs(_,{type:"button",variant:ue===o?"default":"outline",onClick:()=>V(o),disabled:$||O||C,className:u("h-auto min-h-[48px] justify-start text-left font-medium px-4 py-3 rounded-xl whitespace-normal",ue===o?"ring-2 ring-primary ring-offset-2 dark:ring-offset-[#0B0F19]":""),children:[e.jsxs("span",{className:"mr-2 font-semibold",children:[String.fromCharCode(65+o),"."]}),t]},o))}),e.jsx("div",{className:"flex justify-end",children:e.jsx(_,{type:"button",onClick:()=>void Ee(ue),disabled:$||O||C,className:"rounded-xl",children:C?e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(Na,{className:"h-4 w-4"})," Paused for design"]}):$?e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(at,{className:"h-4 w-4 animate-spin"})," Submitting..."]}):O?"Waiting for opponent...":"Lock Answer"})})]}),Ce&&e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("p",{className:"text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:["Last round: ",Ce.studentCorrect?"Correct":"Incorrect"," · ",n.mode==="bot"?"Bot":"Opponent"," ",Ce.botCorrect?"Correct":"Incorrect"]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["Correct option: ",String.fromCharCode(65+Ce.correctOptionIndex)]})]}),n.status==="completed"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:u("rounded-2xl border p-4",n.outcome==="win"?"border-emerald-300 bg-emerald-50 dark:border-emerald-400/40 dark:bg-emerald-900/20":n.outcome==="loss"?"border-rose-300 bg-rose-50 dark:border-rose-400/40 dark:bg-rose-900/20":"border-amber-300 bg-amber-50 dark:border-amber-400/40 dark:bg-amber-900/20"),children:[e.jsx("p",{className:"text-lg font-black tracking-wide text-foreground dark:text-[#ecf0fb]",children:n.outcome==="win"?"Victory!":n.outcome==="loss"?"Match Complete":"Draw Match"}),e.jsxs("p",{className:"mt-1 text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:["Final Score: ",n.scoreFor," - ",n.scoreAgainst]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["XP Earned: +",n.xpEarned||0]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(_,{type:"button",variant:"outline",onClick:()=>{j(null),v(!1),l("setup")},className:"rounded-xl",children:"Start New Match"}),n.mode==="bot"&&e.jsx(_,{type:"button",onClick:()=>void yt(),disabled:$,className:"rounded-xl",children:"Rematch"})]})]})]})]}):x?e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"Private Room Lobby"]}),e.jsxs(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:["Room ",x.roomCode," · ",x.participantCount,"/2 students connected."]})]}),e.jsx(ne,{className:"space-y-3",children:e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsx("p",{className:"text-sm font-semibold text-foreground dark:text-[#ecf0fb]",children:x.status==="ready"?"Opponent connected. Syncing start...":"Waiting for another student to join this room."}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#9aa4be]",children:["Share room code ",x.roomCode," with your classmate."]}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-end gap-2",children:[(x.status==="waiting"||x.status==="ready")&&e.jsx(_,{type:"button",variant:"outline",className:"h-8 rounded-lg",onClick:kt,disabled:k.status==="validating",children:"Cancel room"}),e.jsxs(_,{type:"button",variant:"outline",className:"h-8 rounded-lg",onClick:()=>void gt(x.roomCode),children:[ie===x.roomCode?e.jsx(Ct,{className:"h-4 w-4"}):e.jsx(It,{className:"h-4 w-4"}),ie===x.roomCode?"Copied":"Copy code"]})]})]})})]}):B?e.jsx(H,{className:u(P,"rounded-[18px]"),children:e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"Public Matchmaking"]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Searching for a student with the same setup..."})]})}):e.jsx(H,{className:u(P,"rounded-[18px]"),children:e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(Re,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"}),"No active battle"]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Start from Setup to create a bot match, private room, or public queue session."})]})})},"battle")}),e.jsx(we,{value:"history",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 border-emerald-500/20 shadow-[0_0_40px_-10px_rgba(16,185,129,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-r from-emerald-500/20 via-teal-500/10 to-emerald-600/5 dark:from-emerald-500/20 dark:via-teal-500/10 dark:to-teal-900/10"}),e.jsx(b.div,{className:"pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full bg-emerald-400/20 blur-3xl",animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:4,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full bg-teal-400/20 blur-2xl",animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:3,repeat:1/0,ease:"easeInOut",delay:1}}),e.jsx("div",{className:"relative z-10 p-6 sm:p-8 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:"h-12 w-12 p-0 rounded-full bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 hover:scale-105 transition-all backdrop-blur-md border border-emerald-500/30 shadow-[0_0_15px_rgba(16,185,129,0.2)] shrink-0",children:e.jsx(De,{className:"h-6 w-6 rotate-180 text-emerald-800 dark:text-emerald-300"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br from-emerald-600 to-teal-500 dark:from-emerald-300 dark:to-teal-200 drop-shadow-sm",children:[e.jsx(b.div,{animate:{rotate:[-5,5,-5]},transition:{duration:4,repeat:1/0,ease:"easeInOut"},className:"bg-emerald-100 dark:bg-emerald-900/50 p-2 rounded-2xl shadow-inner border border-emerald-200 dark:border-emerald-700/50",children:e.jsx(Mt,{className:"h-8 w-8 text-emerald-600 dark:text-emerald-400 drop-shadow-[0_0_8px_rgba(16,185,129,0.5)]"})}),"Matches History"]}),e.jsx("p",{className:"text-sm font-bold text-emerald-800/80 dark:text-emerald-100/70 mt-2 tracking-wide uppercase",children:"Review your past duels and track your progress."})]})]})})]}),e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsx(Y,{className:"text-base",children:"Match History"}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Your recent student battles only."})]}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx("div",{className:"flex gap-2",children:[{value:"all",label:"All"},{value:"online",label:"Online"},{value:"bot",label:"Bot"}].map(t=>e.jsx(_,{type:"button",variant:ce===t.value?"default":"outline",onClick:()=>Ut(t.value),className:"rounded-xl h-8 px-3",children:t.label},t.value))}),xt?e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"})]}):Be.length===0?e.jsx("p",{className:"text-sm text-muted-foreground dark:text-[#a8b2c9]",children:"No matches in this filter yet."}):Be.map(t=>e.jsxs("div",{className:"rounded-xl border border-border bg-muted/40 px-3 py-2 flex items-center justify-between gap-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm font-semibold text-foreground dark:text-[#f5f7fb]",children:["vs ",t.opponentName]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#95a0bb] tabular-nums",children:[t.scoreFor,"-",t.scoreAgainst," · ",t.accuracy.toFixed(0),"% · +",t.xpEarned," XP"]})]}),e.jsx("span",{className:u("text-xs font-semibold rounded-full px-2.5 py-1 border",t.outcome==="win"?"text-emerald-700 border-emerald-200 bg-emerald-50 dark:text-emerald-300 dark:border-emerald-300/40 dark:bg-emerald-900/20":t.outcome==="loss"?"text-rose-700 border-rose-200 bg-rose-50 dark:text-rose-300 dark:border-rose-300/40 dark:bg-rose-900/20":"text-amber-700 border-amber-200 bg-amber-50 dark:text-amber-300 dark:border-amber-300/40 dark:bg-amber-900/20"),children:ss(t.outcome)})]},t.matchId))]})]})]},"history")}),e.jsx(we,{value:"stats",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 border-indigo-500/20 shadow-[0_0_40px_-10px_rgba(99,102,241,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-r from-indigo-500/20 via-purple-500/10 to-indigo-600/5 dark:from-indigo-500/20 dark:via-purple-500/10 dark:to-purple-900/10"}),e.jsx(b.div,{className:"pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full bg-indigo-400/20 blur-3xl",animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:5,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full bg-purple-400/20 blur-2xl",animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:4,repeat:1/0,ease:"easeInOut",delay:1.5}}),e.jsx("div",{className:"relative z-10 p-6 sm:p-8 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:"h-12 w-12 p-0 rounded-full bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 hover:scale-105 transition-all backdrop-blur-md border border-indigo-500/30 shadow-[0_0_15px_rgba(99,102,241,0.2)] shrink-0",children:e.jsx(De,{className:"h-6 w-6 rotate-180 text-indigo-800 dark:text-indigo-300"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br from-indigo-600 to-purple-500 dark:from-indigo-300 dark:to-purple-200 drop-shadow-sm",children:[e.jsx(b.div,{animate:{y:[-3,3,-3]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},className:"bg-indigo-100 dark:bg-indigo-900/50 p-2 rounded-2xl shadow-inner border border-indigo-200 dark:border-indigo-700/50",children:e.jsx(zt,{className:"h-8 w-8 text-indigo-600 dark:text-indigo-400 drop-shadow-[0_0_8px_rgba(99,102,241,0.5)]"})}),"My Statistics"]}),e.jsx("p",{className:"text-sm font-bold text-indigo-800/80 dark:text-indigo-100/70 mt-2 tracking-wide uppercase",children:"Analyzing your battlefield performance."})]})]})})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:[{label:"Wins",value:W?.wins??0,icon:tt},{label:"Current streak",value:W?.currentStreak??0,icon:At},{label:"Avg accuracy",value:`${(W?.averageAccuracy||0).toFixed(1)}%`,icon:ba},{label:"Avg response",value:as(W?.averageResponseMs||0),icon:Bt}].map(t=>e.jsx(H,{className:u(P,"rounded-[18px]"),children:e.jsxs(ne,{className:"pt-6",children:[e.jsx("p",{className:"text-xs text-muted-foreground dark:text-[#9da7bf]",children:t.label}),e.jsx("p",{className:"mt-1 tabular-nums text-2xl font-black text-foreground dark:text-[#f5f7fb]",children:t.value}),e.jsx(t.icon,{className:"mt-3 h-4 w-4 text-primary dark:text-[#9e8fff]"})]})},t.label))})]},"stats")}),e.jsx(we,{value:"leaderboard",className:"mt-0 outline-none",children:e.jsxs(b.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"space-y-4",children:[e.jsxs(b.div,{className:u(P,"relative overflow-hidden rounded-[24px] mb-6 border-amber-500/20 shadow-[0_0_40px_-10px_rgba(245,158,11,0.2)]"),whileHover:{scale:1.01},transition:{type:"spring",stiffness:300,damping:20},children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-r from-amber-500/20 via-orange-500/10 to-amber-600/5 dark:from-amber-600/20 dark:via-orange-500/10 dark:to-orange-900/10"}),e.jsx(b.div,{className:"pointer-events-none absolute -top-24 -right-24 h-64 w-64 rounded-full bg-amber-400/20 blur-3xl",animate:{scale:[1,1.2,1],opacity:[.3,.6,.3]},transition:{duration:4.5,repeat:1/0,ease:"easeInOut"}}),e.jsx(b.div,{className:"pointer-events-none absolute -bottom-12 -left-12 h-40 w-40 rounded-full bg-orange-400/20 blur-2xl",animate:{scale:[1,1.3,1],opacity:[.2,.5,.2]},transition:{duration:3.5,repeat:1/0,ease:"easeInOut",delay:.5}}),e.jsx("div",{className:"relative z-10 p-6 sm:p-8 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(_,{variant:"ghost",onClick:()=>l("hub"),className:"h-12 w-12 p-0 rounded-full bg-white/50 dark:bg-black/40 hover:bg-white/80 dark:hover:bg-black/60 hover:scale-105 transition-all backdrop-blur-md border border-amber-500/30 shadow-[0_0_15px_rgba(245,158,11,0.2)] shrink-0",children:e.jsx(De,{className:"h-6 w-6 rotate-180 text-amber-800 dark:text-amber-300"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"flex items-center gap-3 text-3xl sm:text-4xl font-black tracking-tight text-transparent bg-clip-text bg-gradient-to-br from-amber-600 to-orange-500 dark:from-amber-300 dark:to-orange-200 drop-shadow-sm",children:[e.jsx(b.div,{animate:{scale:[1,1.1,1]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},className:"bg-amber-100 dark:bg-amber-900/50 p-2 rounded-2xl shadow-inner border border-amber-200 dark:border-amber-700/50",children:e.jsx(tt,{className:"h-8 w-8 text-amber-600 dark:text-amber-400 drop-shadow-[0_0_12px_rgba(245,158,11,0.6)]"})}),"Hall of Fame"]}),e.jsx("p",{className:"text-sm font-bold text-amber-800/80 dark:text-amber-100/70 mt-2 tracking-wide uppercase",children:"The top-ranked minds across the globe."})]})]})})]}),e.jsxs(H,{className:u(P,"rounded-[18px]"),children:[e.jsxs(Z,{children:[e.jsxs(Y,{className:"text-base flex items-center gap-2",children:[e.jsx(oa,{className:"h-4 w-4 text-primary dark:text-[#9e8fff]"})," Hall of Fame"]}),e.jsx(ee,{className:"text-muted-foreground dark:text-[#b2bad0]",children:"Student-only ranking using trusted backend aggregates."})]}),e.jsx(ne,{children:Gt?e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"}),e.jsx(re,{className:"h-12 w-full rounded-xl bg-muted dark:bg-[#2a3143]"})]}):vt.length===0?e.jsx("p",{className:"text-sm text-muted-foreground dark:text-[#a9b3ca]",children:"No leaderboard entries yet. Finish a battle to place on the board."}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-2",children:[e.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-2.5 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground dark:text-[#98a2bc]",children:"Name display"}),e.jsxs(he,{value:Ae,onValueChange:t=>Yt(t),children:[e.jsx(be,{className:"mt-1 h-8 rounded-lg",children:e.jsx(fe,{})}),e.jsxs(ge,{children:[e.jsx(L,{value:"alias",children:"Alias"}),e.jsx(L,{value:"initials",children:"Initials"}),e.jsx(L,{value:"full",children:"Full name"})]})]})]}),e.jsxs("label",{className:"rounded-xl border border-border bg-muted/30 p-2.5 flex items-center justify-between gap-3 dark:border-[#2f3547] dark:bg-[#11151d]",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground dark:text-[#98a2bc]",children:"Score detail"}),e.jsx("p",{className:"text-xs text-muted-foreground dark:text-[#98a2bc]",children:"Show exact score values"})]}),e.jsx(St,{checked:Ge,onCheckedChange:Xt})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground dark:text-[#95a0bb]",children:"Privacy mode keeps classmate identities and scores obfuscated by default while preserving your own exact rank and score."}),vt.map(t=>e.jsxs("div",{className:u("rounded-xl border bg-muted/30 px-3 py-2 flex items-center justify-between dark:bg-[#11151d]",t.isSelf?"border-primary/60 dark:border-[#8d7fff]":"border-border dark:border-[#2f3547]"),children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm font-semibold text-foreground dark:text-[#f5f7fb]",children:["#",t.rank," ",t.displayName,t.isSelf?" (You)":""]}),e.jsxs("p",{className:"text-xs text-muted-foreground dark:text-[#95a0bb]",children:["Win rate ",t.winRate.toFixed(1),"% · Best streak ",t.bestStreak]})]}),e.jsx("p",{className:"tabular-nums text-sm font-semibold text-foreground dark:text-[#f5f7fb]",children:t.scoreLabel})]},t.userId))]})})]})]},"leaderboard")})]})})})})};export{Ps as default}; diff --git a/assets/RewardsModal-CtOcWG3R.js b/assets/RewardsModal-DbFwQSQa.js similarity index 94% rename from assets/RewardsModal-CtOcWG3R.js rename to assets/RewardsModal-DbFwQSQa.js index 00c2fbb507bcc133c9ce4ef17336ec1282c535a1..f695be7578341b816ff448677d5da74638d42f39 100644 --- a/assets/RewardsModal-CtOcWG3R.js +++ b/assets/RewardsModal-DbFwQSQa.js @@ -1 +1 @@ -import{j as e}from"./vendor-react-Dexh7fmo.js";import{X as h}from"./x-Bj25rnWX.js";import{l as o,F as d,Z as f}from"./index-DGWrSMOK.js";import{S as n}from"./star-DqP0S0c5.js";import{T as g}from"./trophy-73YPSH67.js";import{T as j}from"./target-7Gevl8jn.js";import{B as u}from"./book-open-B5Xvd1JL.js";import{A as N}from"./award-DpLN2BvV.js";import{C as v}from"./calendar-19p2TrVX.js";import{U as w}from"./users-BRS21lR4.js";import{T as y}from"./trending-up-B2MPUPwk.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const R=({isOpen:c,onClose:r,userLevel:t,currentXP:i,xpToNextLevel:a,totalXP:x,streak:m})=>{if(!c)return null;const b=[{id:"1",icon:n,title:"First Steps",description:"Complete your first video lesson",unlocked:!0,color:"text-[#9956DE]",bgColor:"bg-[#FB96BB]/20"},{id:"2",icon:g,title:"Quiz Master",description:"Score 100% on any quiz",unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"3",icon:d,title:"Week Warrior",description:"Maintain a 7-day login streak",progress:2,total:7,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"4",icon:j,title:"Practice Makes Perfect",description:"Complete 10 practice sets",progress:2,total:10,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"5",icon:u,title:"Knowledge Seeker",description:"Watch 20 video lessons",unlocked:!0,color:"text-[#1FA7E1]",bgColor:"bg-[#6ED1CF]/20"},{id:"6",icon:f,title:"Speed Learner",description:"Complete 5 lessons in one day",unlocked:!0,color:"text-[#FFB356]",bgColor:"bg-[#FFB356]/20"},{id:"7",icon:o,title:"Crown Achiever",description:"Reach Level 10",progress:4,total:10,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"8",icon:N,title:"XP Hunter",description:"Earn 1000 XP",unlocked:!0,color:"text-[#7274ED]",bgColor:"bg-[#7274ED]/15"},{id:"9",icon:v,title:"Dedicated Learner",description:"Maintain a 14-day streak",progress:2,total:14,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"10",icon:w,title:"Monthly Champion",description:"Maintain a 30-day streak",progress:2,total:30,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"}],p=[{activity:"Complete a video lesson",xp:50},{activity:"Complete exercises",xp:100},{activity:"Perfect quiz score",xp:150},{activity:"Finish a quiz",xp:75},{activity:"Daily login streak",xp:25}];return e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-8",children:[e.jsx("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:r}),e.jsxs("div",{className:"relative bg-[#f7f9fc] rounded-2xl shadow-2xl border border-[#dde3eb] w-full max-w-2xl max-h-[85vh] overflow-hidden",children:[e.jsxs("div",{className:"bg-gradient-to-r from-[#9956DE] via-[#7274ED] to-[#1FA7E1] p-6 text-white relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_14%_12%,rgba(251,150,187,0.35),transparent_42%),radial-gradient(circle_at_80%_80%,rgba(117,208,106,0.25),transparent_38%)]"}),e.jsxs("div",{className:"flex items-center justify-between mb-4 relative z-10",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-display font-bold",children:"Rewards & Achievements"}),e.jsx("p",{className:"text-white/90 text-sm font-body",children:"Track your learning progress and unlock badges"})]}),e.jsx("button",{onClick:r,className:"text-white/90 hover:text-white hover:bg-white/20 p-2 rounded-xl transition-colors",children:e.jsx(h,{size:24})})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 relative z-10",children:[e.jsxs("div",{className:"bg-white/15 backdrop-blur-sm rounded-xl p-4 border border-white/25",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(o,{size:18,className:"text-[#FFB356]"}),e.jsx("span",{className:"text-xs font-medium text-white/90 font-body",children:"Level"})]}),e.jsx("p",{className:"text-2xl font-bold",children:t})]}),e.jsxs("div",{className:"bg-white/15 backdrop-blur-sm rounded-xl p-4 border border-white/25",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(n,{size:18,className:"text-[#6ED1CF]"}),e.jsx("span",{className:"text-xs font-medium text-white/90 font-body",children:"Total XP"})]}),e.jsx("p",{className:"text-2xl font-bold",children:x.toLocaleString()})]}),e.jsxs("div",{className:"bg-white/15 backdrop-blur-sm rounded-xl p-4 border border-white/25",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(d,{size:18,className:"text-[#FF8B8B]"}),e.jsx("span",{className:"text-xs font-medium text-white/90 font-body",children:"Day Streak"})]}),e.jsxs("p",{className:"text-2xl font-bold",children:[m," days"]})]})]}),e.jsxs("div",{className:"mt-4 relative z-10",children:[e.jsxs("div",{className:"flex justify-between items-center mb-2",children:[e.jsxs("span",{className:"text-sm font-bold text-white font-body",children:["Level ",t]}),e.jsxs("span",{className:"text-sm font-bold text-white font-body",children:["Level ",t+1]})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"flex justify-between items-center mb-1",children:e.jsxs("span",{className:"text-xs text-white/90",children:[i," / ",a," XP"]})}),e.jsx("div",{className:"h-3 bg-white/20 rounded-full overflow-hidden border border-white/20",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-[#6ED1CF] via-[#75D06A] to-[#FFB356] rounded-full transition-all duration-500",style:{width:`${i/a*100}%`}})})]})]})]}),e.jsxs("div",{className:"p-6 overflow-y-auto max-h-[calc(85vh-280px)]",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h3",{className:"text-lg font-display font-bold text-[#0a1628] mb-4",children:"Achievements"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:b.map(s=>{const l=s.icon;return e.jsx("div",{className:`${s.unlocked?"bg-white border-[#9956DE]/25":"bg-[#edf1f7] border-[#dde3eb]"} border-2 rounded-xl p-4 transition-all ${s.unlocked?"shadow-md":"opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-12 h-12 ${s.bgColor} rounded-xl flex items-center justify-center flex-shrink-0`,children:e.jsx(l,{size:24,className:s.color})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h4",{className:`text-sm font-bold ${s.unlocked?"text-[#0a1628]":"text-slate-500"} font-body`,children:s.title}),s.unlocked&&e.jsx("span",{className:"px-2 py-0.5 bg-[#75D06A] text-white text-[9px] font-bold rounded-full",children:"Unlocked"})]}),e.jsx("p",{className:`text-xs ${s.unlocked?"text-[#5a6578]":"text-slate-500"} mb-2`,children:s.description}),s.progress!==void 0&&s.total!==void 0&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-center mb-1",children:[e.jsx("span",{className:"text-[10px] text-slate-500",children:"Progress"}),e.jsxs("span",{className:"text-[10px] font-bold text-[#5a6578]",children:[s.progress," / ",s.total]})]}),e.jsx("div",{className:"h-1.5 bg-[#dde3eb] rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-[#7274ED] to-[#1FA7E1] rounded-full transition-all",style:{width:`${s.progress/s.total*100}%`}})})]})]})]})},s.id)})})]}),e.jsxs("div",{className:"bg-white rounded-xl p-5 border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-8 h-8 bg-gradient-to-br from-[#7274ED] to-[#1FA7E1] rounded-lg flex items-center justify-center",children:e.jsx(y,{size:16,className:"text-white"})}),e.jsx("h3",{className:"text-base font-display font-bold text-[#0a1628]",children:"How to Earn XP"})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:p.map((s,l)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-1.5 h-1.5 bg-[#1FA7E1] rounded-full"}),e.jsxs("span",{className:"text-xs text-[#5a6578] font-body",children:[s.activity,":"]}),e.jsxs("span",{className:"text-xs font-bold text-[#7274ED]",children:["+",s.xp," XP"]})]},l))})]})]})]})]})};export{R as default}; +import{j as e}from"./vendor-react-Dexh7fmo.js";import{X as h}from"./x-BDSBB3q9.js";import{l as o,F as d,Z as f}from"./index-CmBdDSkw.js";import{S as n}from"./star-B7mp4xEi.js";import{T as g}from"./trophy-DrL6Ph2J.js";import{T as j}from"./target-BCguvjbb.js";import{B as u}from"./book-open-BH_yilLK.js";import{A as N}from"./award-COlS18fi.js";import{C as v}from"./calendar-CP-HCx1y.js";import{U as w}from"./users-CdMqBLwG.js";import{T as y}from"./trending-up-6u76yy2e.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const R=({isOpen:c,onClose:r,userLevel:t,currentXP:i,xpToNextLevel:a,totalXP:x,streak:m})=>{if(!c)return null;const b=[{id:"1",icon:n,title:"First Steps",description:"Complete your first video lesson",unlocked:!0,color:"text-[#9956DE]",bgColor:"bg-[#FB96BB]/20"},{id:"2",icon:g,title:"Quiz Master",description:"Score 100% on any quiz",unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"3",icon:d,title:"Week Warrior",description:"Maintain a 7-day login streak",progress:2,total:7,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"4",icon:j,title:"Practice Makes Perfect",description:"Complete 10 practice sets",progress:2,total:10,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"5",icon:u,title:"Knowledge Seeker",description:"Watch 20 video lessons",unlocked:!0,color:"text-[#1FA7E1]",bgColor:"bg-[#6ED1CF]/20"},{id:"6",icon:f,title:"Speed Learner",description:"Complete 5 lessons in one day",unlocked:!0,color:"text-[#FFB356]",bgColor:"bg-[#FFB356]/20"},{id:"7",icon:o,title:"Crown Achiever",description:"Reach Level 10",progress:4,total:10,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"8",icon:N,title:"XP Hunter",description:"Earn 1000 XP",unlocked:!0,color:"text-[#7274ED]",bgColor:"bg-[#7274ED]/15"},{id:"9",icon:v,title:"Dedicated Learner",description:"Maintain a 14-day streak",progress:2,total:14,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"},{id:"10",icon:w,title:"Monthly Champion",description:"Maintain a 30-day streak",progress:2,total:30,unlocked:!1,color:"text-slate-500",bgColor:"bg-slate-100"}],p=[{activity:"Complete a video lesson",xp:50},{activity:"Complete exercises",xp:100},{activity:"Perfect quiz score",xp:150},{activity:"Finish a quiz",xp:75},{activity:"Daily login streak",xp:25}];return e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-8",children:[e.jsx("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:r}),e.jsxs("div",{className:"relative bg-[#f7f9fc] rounded-2xl shadow-2xl border border-[#dde3eb] w-full max-w-2xl max-h-[85vh] overflow-hidden",children:[e.jsxs("div",{className:"bg-gradient-to-r from-[#9956DE] via-[#7274ED] to-[#1FA7E1] p-6 text-white relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_14%_12%,rgba(251,150,187,0.35),transparent_42%),radial-gradient(circle_at_80%_80%,rgba(117,208,106,0.25),transparent_38%)]"}),e.jsxs("div",{className:"flex items-center justify-between mb-4 relative z-10",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-display font-bold",children:"Rewards & Achievements"}),e.jsx("p",{className:"text-white/90 text-sm font-body",children:"Track your learning progress and unlock badges"})]}),e.jsx("button",{onClick:r,className:"text-white/90 hover:text-white hover:bg-white/20 p-2 rounded-xl transition-colors",children:e.jsx(h,{size:24})})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 relative z-10",children:[e.jsxs("div",{className:"bg-white/15 backdrop-blur-sm rounded-xl p-4 border border-white/25",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(o,{size:18,className:"text-[#FFB356]"}),e.jsx("span",{className:"text-xs font-medium text-white/90 font-body",children:"Level"})]}),e.jsx("p",{className:"text-2xl font-bold",children:t})]}),e.jsxs("div",{className:"bg-white/15 backdrop-blur-sm rounded-xl p-4 border border-white/25",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(n,{size:18,className:"text-[#6ED1CF]"}),e.jsx("span",{className:"text-xs font-medium text-white/90 font-body",children:"Total XP"})]}),e.jsx("p",{className:"text-2xl font-bold",children:x.toLocaleString()})]}),e.jsxs("div",{className:"bg-white/15 backdrop-blur-sm rounded-xl p-4 border border-white/25",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(d,{size:18,className:"text-[#FF8B8B]"}),e.jsx("span",{className:"text-xs font-medium text-white/90 font-body",children:"Day Streak"})]}),e.jsxs("p",{className:"text-2xl font-bold",children:[m," days"]})]})]}),e.jsxs("div",{className:"mt-4 relative z-10",children:[e.jsxs("div",{className:"flex justify-between items-center mb-2",children:[e.jsxs("span",{className:"text-sm font-bold text-white font-body",children:["Level ",t]}),e.jsxs("span",{className:"text-sm font-bold text-white font-body",children:["Level ",t+1]})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"flex justify-between items-center mb-1",children:e.jsxs("span",{className:"text-xs text-white/90",children:[i," / ",a," XP"]})}),e.jsx("div",{className:"h-3 bg-white/20 rounded-full overflow-hidden border border-white/20",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-[#6ED1CF] via-[#75D06A] to-[#FFB356] rounded-full transition-all duration-500",style:{width:`${i/a*100}%`}})})]})]})]}),e.jsxs("div",{className:"p-6 overflow-y-auto max-h-[calc(85vh-280px)]",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h3",{className:"text-lg font-display font-bold text-[#0a1628] mb-4",children:"Achievements"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:b.map(s=>{const l=s.icon;return e.jsx("div",{className:`${s.unlocked?"bg-white border-[#9956DE]/25":"bg-[#edf1f7] border-[#dde3eb]"} border-2 rounded-xl p-4 transition-all ${s.unlocked?"shadow-md":"opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-12 h-12 ${s.bgColor} rounded-xl flex items-center justify-center flex-shrink-0`,children:e.jsx(l,{size:24,className:s.color})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h4",{className:`text-sm font-bold ${s.unlocked?"text-[#0a1628]":"text-slate-500"} font-body`,children:s.title}),s.unlocked&&e.jsx("span",{className:"px-2 py-0.5 bg-[#75D06A] text-white text-[9px] font-bold rounded-full",children:"Unlocked"})]}),e.jsx("p",{className:`text-xs ${s.unlocked?"text-[#5a6578]":"text-slate-500"} mb-2`,children:s.description}),s.progress!==void 0&&s.total!==void 0&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-center mb-1",children:[e.jsx("span",{className:"text-[10px] text-slate-500",children:"Progress"}),e.jsxs("span",{className:"text-[10px] font-bold text-[#5a6578]",children:[s.progress," / ",s.total]})]}),e.jsx("div",{className:"h-1.5 bg-[#dde3eb] rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-[#7274ED] to-[#1FA7E1] rounded-full transition-all",style:{width:`${s.progress/s.total*100}%`}})})]})]})]})},s.id)})})]}),e.jsxs("div",{className:"bg-white rounded-xl p-5 border border-[#dde3eb]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("div",{className:"w-8 h-8 bg-gradient-to-br from-[#7274ED] to-[#1FA7E1] rounded-lg flex items-center justify-center",children:e.jsx(y,{size:16,className:"text-white"})}),e.jsx("h3",{className:"text-base font-display font-bold text-[#0a1628]",children:"How to Earn XP"})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:p.map((s,l)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-1.5 h-1.5 bg-[#1FA7E1] rounded-full"}),e.jsxs("span",{className:"text-xs text-[#5a6578] font-body",children:[s.activity,":"]}),e.jsxs("span",{className:"text-xs font-bold text-[#7274ED]",children:["+",s.xp," XP"]})]},l))})]})]})]})]})};export{R as default}; diff --git a/assets/RightSidebar--rSxCGQy.js b/assets/RightSidebar--rSxCGQy.js new file mode 100644 index 0000000000000000000000000000000000000000..951911a5cc460e76962d733496fb6f08fdcceccb --- /dev/null +++ b/assets/RightSidebar--rSxCGQy.js @@ -0,0 +1 @@ +import{r as h,j as e}from"./vendor-react-Dexh7fmo.js";import{e as g,m as r,Z as f,F as u,l as m}from"./index-CmBdDSkw.js";import{C as v}from"./circle-check-big-C_XnLpga.js";import{T as j,a as w,b as N}from"./tooltip-Bn7-0zmi.js";import{T as y}from"./trophy-DrL6Ph2J.js";import{C as p}from"./chevron-right-BSCyuP_x.js";import{S as C}from"./star-B7mp4xEi.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-radix-CxzAJozq.js";import"./utils-BQQgILNW.js";import"./clsx-B-dksMZM.js";const b=[{id:1,title:"Daily challenge",subtitle:"Do your plan before 09:00 AM",bgColor:"bg-[#6ED1CF]",orbColor:"bg-[#50B8B6]",avatars:["https://i.pravatar.cc/150?img=1","https://i.pravatar.cc/150?img=5","https://i.pravatar.cc/150?img=8"],extraCount:4,icon:e.jsx(f,{size:24,fill:"currentColor",className:"text-white"})},{id:2,title:"Weekend Warrior",subtitle:"Complete 3 modules this weekend",bgColor:"bg-[#FF8B8B]",orbColor:"bg-[#E06A6A]",avatars:["https://i.pravatar.cc/150?img=12","https://i.pravatar.cc/150?img=32"],extraCount:12,icon:e.jsx(u,{size:24,fill:"currentColor",className:"text-white"})},{id:3,title:"Speed Runner",subtitle:"Finish a quiz in under 5 mins",bgColor:"bg-[#75D06A]",orbColor:"bg-[#58B34D]",avatars:["https://i.pravatar.cc/150?img=44","https://i.pravatar.cc/150?img=55","https://i.pravatar.cc/150?img=68"],extraCount:8,icon:e.jsx(v,{size:24,className:"text-white"})}],k=(o=[])=>{const n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],i=new Date,l=i.getDay(),a=[];for(let t=0;t<7;t++){const s=new Date(i);s.setDate(i.getDate()-l+t);const c=t===l,d=`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`,x=o.includes(d);a.push({dayName:n[t],dateNumber:s.getDate(),isToday:c,hasDot:x})}return a},_=({streakHistory:o=[]})=>{const[n,i]=h.useState(0),l=k(o);h.useEffect(()=>{const t=setInterval(()=>{i(s=>(s+1)%b.length)},5e3);return()=>clearInterval(t)},[]);const a=b[n];return e.jsxs("div",{className:"bg-white rounded-[24px] p-4 shadow-sm border border-slate-100 flex flex-col gap-6 mt-4 relative overflow-hidden",children:[e.jsx("div",{className:"relative h-[170px] rounded-[-20px] rounded-2xl overflow-hidden cursor-pointer group",children:e.jsx(g,{mode:"wait",children:e.jsxs(r.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},transition:{duration:.3},className:`absolute inset-0 ${a.bgColor} p-5 flex flex-col justify-between overflow-hidden`,children:[e.jsxs("div",{className:"absolute top-4 right-4 flex gap-1 items-center z-20",children:[e.jsx("div",{className:"w-3 h-1.5 rounded-full bg-white/60"}),e.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-white/40"}),e.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-white/40"})]}),e.jsx("div",{className:`absolute -right-4 -top-8 w-36 h-36 rounded-full ${a.orbColor} opacity-90 blur-2xl group-hover:scale-110 transition-transform duration-700 pointer-events-none`}),e.jsx("div",{className:"absolute right-4 bottom-4 w-[52px] h-[52px] rounded-2xl rotate-12 bg-white/20 backdrop-blur-md shadow-sm border border-white/20 group-hover:rotate-45 group-hover:scale-110 transition-transform duration-700 flex items-center justify-center",children:a.icon}),e.jsxs("div",{className:"relative z-10 w-3/4",children:[e.jsx("h3",{className:"font-display font-bold text-[22px] text-white mb-1",children:a.title}),e.jsx("p",{className:"text-[13px] font-medium text-white/80 leading-snug",children:a.subtitle})]}),e.jsxs("div",{className:"flex items-center -space-x-2.5 relative z-10 mt-auto",children:[a.avatars.map((t,s)=>e.jsx("img",{src:t,alt:"User",className:"w-[34px] h-[34px] rounded-full border-2 border-transparent object-cover relative z-[3] z-[2] z-[1]",style:{borderColor:a.bgColor.replace("bg-[","").replace("]","")}},s)),e.jsxs("div",{className:"w-[34px] h-[34px] rounded-full border-2 text-[12px] font-bold flex items-center justify-center text-white relative z-0",style:{backgroundColor:"rgba(0,0,0,0.2)",borderColor:a.bgColor.replace("bg-[","").replace("]","")},children:["+",a.extraCount]})]})]},a.id)})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-display text-[15px] font-bold text-[#141b2d] mb-4 px-1",children:"Your streak"}),e.jsx("div",{className:"flex justify-between items-center gap-1.5 px-0.5",children:l.map((t,s)=>e.jsxs("div",{className:`flex flex-col items-center pt-2 pb-3 w-[46px] h-[72px] rounded-[24px] border ${t.isToday?"bg-[#12192b] text-white border-transparent shadow-[0_8px_16px_rgba(18,25,43,0.3)] transform -translate-y-1":"bg-white text-slate-400 border-slate-200/80 hover:border-slate-300"} transition-all duration-200 cursor-pointer`,children:[e.jsx("div",{className:"h-1.5 flex items-center justify-center mb-1.5",children:t.hasDot?e.jsx("div",{className:`w-[5px] h-[5px] rounded-full ${t.isToday?"bg-white":"bg-slate-300"}`}):e.jsx("div",{className:`text-[10px] ${t.isToday?"text-white/50":"text-slate-200"} font-bold`,children:"+"})}),e.jsx("span",{className:`text-[11px] font-bold mb-1 ${t.isToday?"text-slate-300":"text-slate-400/80"}`,children:t.dayName}),e.jsx("span",{className:`text-[15px] font-bold leading-none ${t.isToday?"text-white":"text-[#334155]"}`,children:t.dateNumber})]},s))})]})]})},X=({onOpenRewards:o,onOpenLeaderboard:n,onNavigateToModules:i,userLevel:l,currentXP:a,xpToNextLevel:t,streak:s,streakHistory:c=[]})=>{const d=a/t*100;return e.jsxs("div",{className:"space-y-2.5",children:[e.jsxs(r.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.1,duration:.4,ease:[.22,1,.36,1]},onClick:o,className:"rounded-2xl border border-[#9956DE]/25 cursor-pointer transition-all group relative overflow-hidden bg-gradient-to-br from-[#9956DE] via-[#7274ED] to-[#1FA7E1] hover:shadow-[0_16px_40px_rgba(114,116,237,0.28)] hover:-translate-y-0.5",children:[e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_18%_8%,rgba(251,150,187,0.32),transparent_42%),radial-gradient(circle_at_85%_84%,rgba(117,208,106,0.24),transparent_40%)]"}),e.jsxs("div",{className:"relative z-10 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"shrink-0 w-8 h-8 bg-white/20 rounded-xl flex items-center justify-center border border-white/35 backdrop-blur-sm",children:e.jsx(y,{size:14,className:"text-white"})}),e.jsxs("h3",{className:"font-display font-bold text-[13px] leading-tight text-white tracking-wide",children:["Rewards & ",e.jsx("br",{className:"hidden 2xl:block"})," Achievements"]})]}),e.jsx(p,{size:14,className:"shrink-0 text-white/80 group-hover:text-white group-hover:translate-x-0.5 transition-all"})]}),e.jsxs("div",{className:"flex items-center justify-between gap-1 mb-3 bg-white/10 p-1.5 rounded-xl border border-white/20 backdrop-blur-sm",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-body px-1 text-white",children:[e.jsx(m,{size:12,className:"text-[#FFB356]"}),e.jsxs("span",{className:"font-bold",children:["Lv ",l]})]}),e.jsx("div",{className:"w-px h-3 bg-white/35"}),e.jsxs(j,{children:[e.jsx(w,{asChild:!0,children:e.jsxs("button",{onClick:x=>{x.stopPropagation(),i?.()},className:"flex items-center gap-1.5 text-xs font-body px-1 text-white cursor-pointer transition-colors active:scale-95",children:[e.jsx(C,{size:12,className:"text-[#6ED1CF]"}),e.jsxs("span",{className:"font-bold whitespace-nowrap",children:[a," XP"]})]})}),e.jsx(N,{side:"top",className:"bg-slate-900 text-white border border-slate-700",children:"Review more lessons to earn more XP!"})]}),e.jsx("div",{className:"w-px h-3 bg-white/35"}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-body px-1 text-white",children:[e.jsx(u,{size:12,className:"text-[#FF8B8B]"}),e.jsxs("span",{className:"font-bold",children:[s,"d"]})]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-center mb-1.5",children:[e.jsxs("span",{className:"text-[11px] font-body text-white/90",children:["Next: Level ",l+1]}),e.jsxs("span",{className:"text-[11px] font-body font-semibold text-white",children:[Math.round(d),"%"]})]}),e.jsx("div",{className:"h-2 bg-white/25 rounded-full overflow-hidden border border-white/20",children:e.jsx(r.div,{initial:{width:0},animate:{width:`${d}%`},transition:{duration:1,ease:"easeOut"},className:"h-full bg-gradient-to-r from-[#6ED1CF] via-[#75D06A] to-[#FFB356] rounded-full"})})]})]})]}),e.jsx(r.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.2,duration:.4,ease:[.22,1,.36,1]},children:e.jsx(_,{streakHistory:c})}),e.jsxs(r.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.3,duration:.4,ease:[.22,1,.36,1]},onClick:n,className:"bg-white rounded-xl border border-slate-200/80 hover:shadow-md hover:border-amber-200/60 transition-all group overflow-hidden cursor-pointer",children:[e.jsxs("div",{className:"p-3 border-b border-slate-100 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-7 h-7 bg-amber-50 rounded-lg flex items-center justify-center border border-amber-200/60 transition-colors group-hover:bg-amber-100/50",children:e.jsx(m,{size:14,className:"text-amber-500"})}),e.jsx("h3",{className:"font-display font-bold text-sm text-[#0a1628]",children:"Leaderboards"})]}),e.jsx(p,{size:14,className:"text-slate-400 group-hover:translate-x-0.5 group-hover:text-amber-500 transition-transform"})]}),e.jsxs("div",{className:"pt-8 pb-3 px-2 bg-gradient-to-b from-slate-50/30 to-white flex items-end justify-center gap-1.5 min-h-[170px]",children:[e.jsxs("div",{className:"flex flex-col items-center relative z-10",children:[e.jsxs(r.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.5},className:"relative mb-2",children:[e.jsx("img",{src:"https://i.pravatar.cc/150?img=33",alt:"You",className:"w-10 h-10 rounded-full border-[3px] border-sky-400 z-10 relative object-cover shadow-sm bg-white"}),e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 bg-sky-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full z-20 shadow-sm",children:"2"})]}),e.jsxs(r.div,{initial:{height:0},animate:{height:"54px"},transition:{delay:.4,duration:.5,ease:"easeOut"},className:"w-[70px] bg-gradient-to-b from-slate-200 to-slate-100 rounded-t-xl rounded-b-md border-t-2 border-slate-50 flex items-center justify-center relative shadow-[inset_0_-4px_6px_rgba(0,0,0,0.05),0_4px_6px_rgba(0,0,0,0.05)]",children:[e.jsx("span",{className:"text-slate-400 font-black text-2xl opacity-40 translate-y-1",children:"2"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 bg-white/70 rounded-t-xl"})]}),e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("span",{className:"block text-[12px] font-bold text-[#0a1628]",children:"You"}),e.jsx("span",{className:"block text-[10px] text-sky-600 font-bold",children:"2.1k XP"})]})]}),e.jsxs("div",{className:"flex flex-col items-center relative z-20 -mx-2",children:[e.jsxs(r.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.7},className:"relative mb-2",children:[e.jsx("div",{className:"absolute -top-4 left-1/2 -translate-x-1/2 z-20",children:e.jsx(m,{size:22,className:"text-amber-400 drop-shadow-md mb-1",fill:"#fbbf24",strokeWidth:1.5})}),e.jsx("img",{src:"https://i.pravatar.cc/150?img=68",alt:"Alex",className:"w-[52px] h-[52px] rounded-full border-[3px] border-amber-400 z-10 relative object-cover shadow-md bg-white"}),e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 bg-amber-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full z-20 shadow-sm",children:"1"})]}),e.jsxs(r.div,{initial:{height:0},animate:{height:"74px"},transition:{delay:.6,duration:.5,ease:"easeOut"},className:"w-[78px] bg-gradient-to-b from-amber-100 to-amber-50 rounded-t-xl rounded-b-md border-t-2 border-amber-50 flex items-center justify-center relative shadow-[inset_0_-4px_8px_rgba(251,191,36,0.1),0_6px_8px_rgba(0,0,0,0.05)]",children:[e.jsx("span",{className:"text-amber-400 font-black text-3xl opacity-50 translate-y-1",children:"1"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 bg-white/80 rounded-t-xl"})]}),e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("span",{className:"block text-[13px] font-black text-[#0a1628]",children:"Alex M."}),e.jsx("span",{className:"block text-[11px] text-amber-600 font-bold",children:"2.4k XP"})]})]}),e.jsxs("div",{className:"flex flex-col items-center relative z-10",children:[e.jsxs(r.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.6},className:"relative mb-2",children:[e.jsx("img",{src:"https://i.pravatar.cc/150?img=47",alt:"Sarah",className:"w-10 h-10 rounded-full border-[3px] border-orange-400 z-10 relative object-cover shadow-sm bg-white"}),e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 bg-orange-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full z-20 shadow-sm",children:"3"})]}),e.jsxs(r.div,{initial:{height:0},animate:{height:"38px"},transition:{delay:.5,duration:.5,ease:"easeOut"},className:"w-[70px] bg-gradient-to-b from-orange-50 to-slate-50 rounded-t-xl rounded-b-md border-t-2 border-orange-100 flex items-center justify-center relative shadow-[inset_0_-4px_6px_rgba(249,115,22,0.05),0_4px_6px_rgba(0,0,0,0.02)]",children:[e.jsx("span",{className:"text-orange-400/60 font-black text-2xl opacity-60 translate-y-1",children:"3"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 bg-white/70 rounded-t-xl"})]}),e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("span",{className:"block text-[12px] font-bold text-[#0a1628]",children:"Sarah K."}),e.jsx("span",{className:"block text-[10px] text-orange-600 font-bold",children:"1.9k XP"})]})]})]})]})]})};export{X as default}; diff --git a/assets/RightSidebar-kfU04N_d.js b/assets/RightSidebar-kfU04N_d.js deleted file mode 100644 index c65ac0e37680734176b11a5169e554e258752ae8..0000000000000000000000000000000000000000 --- a/assets/RightSidebar-kfU04N_d.js +++ /dev/null @@ -1 +0,0 @@ -import{r as m,j as e}from"./vendor-react-Dexh7fmo.js";import{e as g,m as r,Z as f,F as p,l as x}from"./index-DGWrSMOK.js";import{C as v}from"./circle-check-big-mv2CRLCE.js";import{T as j,a as w,b as N}from"./tooltip-D9lDiW9U.js";import{T as y}from"./trophy-73YPSH67.js";import{C as h}from"./chevron-right-DxXkA9aZ.js";import{S as C}from"./star-DqP0S0c5.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-radix-B-ht8aK0.js";import"./utils-BQQgILNW.js";import"./clsx-B-dksMZM.js";const b=[{id:1,title:"Daily challenge",subtitle:"Do your plan before 09:00 AM",bgColor:"bg-[#6ED1CF]",orbColor:"bg-[#50B8B6]",avatars:["https://i.pravatar.cc/150?img=1","https://i.pravatar.cc/150?img=5","https://i.pravatar.cc/150?img=8"],extraCount:4,icon:e.jsx(f,{size:24,fill:"currentColor",className:"text-white"})},{id:2,title:"Weekend Warrior",subtitle:"Complete 3 modules this weekend",bgColor:"bg-[#FF8B8B]",orbColor:"bg-[#E06A6A]",avatars:["https://i.pravatar.cc/150?img=12","https://i.pravatar.cc/150?img=32"],extraCount:12,icon:e.jsx(p,{size:24,fill:"currentColor",className:"text-white"})},{id:3,title:"Speed Runner",subtitle:"Finish a quiz in under 5 mins",bgColor:"bg-[#75D06A]",orbColor:"bg-[#58B34D]",avatars:["https://i.pravatar.cc/150?img=44","https://i.pravatar.cc/150?img=55","https://i.pravatar.cc/150?img=68"],extraCount:8,icon:e.jsx(v,{size:24,className:"text-white"})}],_=(o=[])=>{const n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],i=new Date,l=i.getDay(),a=[];for(let t=0;t<7;t++){const s=new Date(i);s.setDate(i.getDate()-l+t);const c=t===l,d=`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`,u=o.includes(d);a.push({dayName:n[t],dateNumber:s.getDate(),isToday:c,hasDot:u})}return a},k=({streakHistory:o=[]})=>{const[n,i]=m.useState(0),l=_(o);m.useEffect(()=>{const t=setInterval(()=>{i(s=>(s+1)%b.length)},5e3);return()=>clearInterval(t)},[]);const a=b[n];return e.jsxs("div",{className:"bg-white rounded-[24px] p-4 shadow-sm border border-slate-100 flex flex-col gap-6 mt-4 relative overflow-hidden",children:[e.jsx("div",{className:"relative h-[170px] rounded-[-20px] rounded-2xl overflow-hidden cursor-pointer group",children:e.jsx(g,{mode:"wait",children:e.jsxs(r.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},transition:{duration:.3},className:`absolute inset-0 ${a.bgColor} p-5 flex flex-col justify-between overflow-hidden`,children:[e.jsxs("div",{className:"absolute top-4 right-4 flex gap-1 items-center z-20",children:[e.jsx("div",{className:"w-3 h-1.5 rounded-full bg-white/60"}),e.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-white/40"}),e.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-white/40"})]}),e.jsx("div",{className:`absolute -right-4 -top-8 w-36 h-36 rounded-full ${a.orbColor} opacity-90 blur-2xl group-hover:scale-110 transition-transform duration-700 pointer-events-none`}),e.jsx("div",{className:"absolute right-4 bottom-4 w-[52px] h-[52px] rounded-2xl rotate-12 bg-white/20 backdrop-blur-md shadow-sm border border-white/20 group-hover:rotate-45 group-hover:scale-110 transition-transform duration-700 flex items-center justify-center",children:a.icon}),e.jsxs("div",{className:"relative z-10 w-3/4",children:[e.jsx("h3",{className:"font-display font-bold text-[22px] text-white mb-1",children:a.title}),e.jsx("p",{className:"text-[13px] font-medium text-white/80 leading-snug",children:a.subtitle})]}),e.jsxs("div",{className:"flex items-center -space-x-2.5 relative z-10 mt-auto",children:[a.avatars.map((t,s)=>e.jsx("img",{src:t,alt:"User",className:"w-[34px] h-[34px] rounded-full border-2 border-transparent object-cover relative z-[3] z-[2] z-[1]",style:{borderColor:a.bgColor.replace("bg-[","").replace("]","")}},s)),e.jsxs("div",{className:"w-[34px] h-[34px] rounded-full border-2 text-[12px] font-bold flex items-center justify-center text-white relative z-0",style:{backgroundColor:"rgba(0,0,0,0.2)",borderColor:a.bgColor.replace("bg-[","").replace("]","")},children:["+",a.extraCount]})]})]},a.id)})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-display text-[15px] font-bold text-[#141b2d] mb-4 px-1",children:"Your streak"}),e.jsx("div",{className:"flex justify-between items-center gap-1.5 px-0.5",children:l.map((t,s)=>e.jsxs("div",{className:`flex flex-col items-center pt-2 pb-3 w-[46px] h-[72px] rounded-[24px] border ${t.isToday?"bg-[#12192b] text-white border-transparent shadow-[0_8px_16px_rgba(18,25,43,0.3)] transform -translate-y-1":"bg-white text-slate-400 border-slate-200/80 hover:border-slate-300"} transition-all duration-200 cursor-pointer`,children:[e.jsx("div",{className:"h-1.5 flex items-center justify-center mb-1.5",children:t.hasDot?e.jsx("div",{className:`w-[5px] h-[5px] rounded-full ${t.isToday?"bg-white":"bg-slate-300"}`}):e.jsx("div",{className:`text-[10px] ${t.isToday?"text-white/50":"text-slate-200"} font-bold`,children:"+"})}),e.jsx("span",{className:`text-[11px] font-bold mb-1 ${t.isToday?"text-slate-300":"text-slate-400/80"}`,children:t.dayName}),e.jsx("span",{className:`text-[15px] font-bold leading-none ${t.isToday?"text-white":"text-[#334155]"}`,children:t.dateNumber})]},s))})]})]})},X=({onOpenRewards:o,onOpenLeaderboard:n,onNavigateToModules:i,userLevel:l,currentXP:a,xpToNextLevel:t,streak:s,streakHistory:c=[]})=>{const d=a/t*100;return e.jsxs("div",{className:"space-y-2.5",children:[e.jsxs(r.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.1,duration:.4,ease:[.22,1,.36,1]},onClick:o,className:"rounded-2xl border border-[#9956DE]/25 cursor-pointer transition-all group relative overflow-hidden bg-gradient-to-br from-[#9956DE] via-[#7274ED] to-[#1FA7E1] hover:shadow-[0_16px_40px_rgba(114,116,237,0.28)] hover:-translate-y-0.5",children:[e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_18%_8%,rgba(251,150,187,0.32),transparent_42%),radial-gradient(circle_at_85%_84%,rgba(117,208,106,0.24),transparent_40%)]"}),e.jsxs("div",{className:"relative z-10 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-9 h-9 bg-white/20 rounded-xl flex items-center justify-center border border-white/35 backdrop-blur-sm",children:e.jsx(y,{size:16,className:"text-white"})}),e.jsx("h3",{className:"font-display font-bold text-sm text-white tracking-wide",children:"Rewards & Achievements"})]}),e.jsx(h,{size:16,className:"text-white/80 group-hover:text-white group-hover:translate-x-0.5 transition-all"})]}),e.jsxs("div",{className:"flex items-center gap-2.5 mb-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-body px-2 py-1 rounded-md bg-white/14 border border-white/25 text-white",children:[e.jsx(x,{size:12,className:"text-[#FFB356]"}),e.jsxs("span",{className:"font-bold",children:["Lv ",l]})]}),e.jsx("div",{className:"w-px h-3 bg-white/35"}),e.jsxs(j,{children:[e.jsx(w,{asChild:!0,children:e.jsxs("button",{onClick:i,className:"flex items-center gap-1.5 text-xs font-body px-2 py-1 rounded-md bg-white/14 border border-white/25 text-white cursor-pointer hover:bg-white/20 transition-colors active:scale-95",children:[e.jsx(C,{size:12,className:"text-[#6ED1CF]"}),e.jsxs("span",{className:"font-bold",children:[a," XP"]})]})}),e.jsx(N,{side:"top",className:"bg-slate-900 text-white border border-slate-700",children:"Review more lessons to earn more XP!"})]}),e.jsx("div",{className:"w-px h-3 bg-white/35"}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-body px-2 py-1 rounded-md bg-white/14 border border-white/25 text-white",children:[e.jsx(p,{size:12,className:"text-[#FF8B8B]"}),e.jsxs("span",{className:"font-bold",children:[s,"d"]})]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-center mb-1.5",children:[e.jsxs("span",{className:"text-[11px] font-body text-white/90",children:["Next: Level ",l+1]}),e.jsxs("span",{className:"text-[11px] font-body font-semibold text-white",children:[Math.round(d),"%"]})]}),e.jsx("div",{className:"h-2 bg-white/25 rounded-full overflow-hidden border border-white/20",children:e.jsx(r.div,{initial:{width:0},animate:{width:`${d}%`},transition:{duration:1,ease:"easeOut"},className:"h-full bg-gradient-to-r from-[#6ED1CF] via-[#75D06A] to-[#FFB356] rounded-full"})})]})]})]}),e.jsx(r.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.2,duration:.4,ease:[.22,1,.36,1]},children:e.jsx(k,{streakHistory:c})}),e.jsxs(r.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.3,duration:.4,ease:[.22,1,.36,1]},onClick:n,className:"bg-white rounded-xl border border-slate-200/80 hover:shadow-md hover:border-amber-200/60 transition-all group overflow-hidden cursor-pointer",children:[e.jsxs("div",{className:"p-3 border-b border-slate-100 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-7 h-7 bg-amber-50 rounded-lg flex items-center justify-center border border-amber-200/60 transition-colors group-hover:bg-amber-100/50",children:e.jsx(x,{size:14,className:"text-amber-500"})}),e.jsx("h3",{className:"font-display font-bold text-sm text-[#0a1628]",children:"Leaderboards"})]}),e.jsx(h,{size:14,className:"text-slate-400 group-hover:translate-x-0.5 group-hover:text-amber-500 transition-transform"})]}),e.jsxs("div",{className:"pt-8 pb-3 px-2 bg-gradient-to-b from-slate-50/30 to-white flex items-end justify-center gap-1.5 min-h-[170px]",children:[e.jsxs("div",{className:"flex flex-col items-center relative z-10",children:[e.jsxs(r.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.5},className:"relative mb-2",children:[e.jsx("img",{src:"https://i.pravatar.cc/150?img=33",alt:"You",className:"w-10 h-10 rounded-full border-[3px] border-sky-400 z-10 relative object-cover shadow-sm bg-white"}),e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 bg-sky-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full z-20 shadow-sm",children:"2"})]}),e.jsxs(r.div,{initial:{height:0},animate:{height:"54px"},transition:{delay:.4,duration:.5,ease:"easeOut"},className:"w-[70px] bg-gradient-to-b from-slate-200 to-slate-100 rounded-t-xl rounded-b-md border-t-2 border-slate-50 flex items-center justify-center relative shadow-[inset_0_-4px_6px_rgba(0,0,0,0.05),0_4px_6px_rgba(0,0,0,0.05)]",children:[e.jsx("span",{className:"text-slate-400 font-black text-2xl opacity-40 translate-y-1",children:"2"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 bg-white/70 rounded-t-xl"})]}),e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("span",{className:"block text-[12px] font-bold text-[#0a1628]",children:"You"}),e.jsx("span",{className:"block text-[10px] text-sky-600 font-bold",children:"2.1k XP"})]})]}),e.jsxs("div",{className:"flex flex-col items-center relative z-20 -mx-2",children:[e.jsxs(r.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.7},className:"relative mb-2",children:[e.jsx("div",{className:"absolute -top-4 left-1/2 -translate-x-1/2 z-20",children:e.jsx(x,{size:22,className:"text-amber-400 drop-shadow-md mb-1",fill:"#fbbf24",strokeWidth:1.5})}),e.jsx("img",{src:"https://i.pravatar.cc/150?img=68",alt:"Alex",className:"w-[52px] h-[52px] rounded-full border-[3px] border-amber-400 z-10 relative object-cover shadow-md bg-white"}),e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 bg-amber-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full z-20 shadow-sm",children:"1"})]}),e.jsxs(r.div,{initial:{height:0},animate:{height:"74px"},transition:{delay:.6,duration:.5,ease:"easeOut"},className:"w-[78px] bg-gradient-to-b from-amber-100 to-amber-50 rounded-t-xl rounded-b-md border-t-2 border-amber-50 flex items-center justify-center relative shadow-[inset_0_-4px_8px_rgba(251,191,36,0.1),0_6px_8px_rgba(0,0,0,0.05)]",children:[e.jsx("span",{className:"text-amber-400 font-black text-3xl opacity-50 translate-y-1",children:"1"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 bg-white/80 rounded-t-xl"})]}),e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("span",{className:"block text-[13px] font-black text-[#0a1628]",children:"Alex M."}),e.jsx("span",{className:"block text-[11px] text-amber-600 font-bold",children:"2.4k XP"})]})]}),e.jsxs("div",{className:"flex flex-col items-center relative z-10",children:[e.jsxs(r.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.6},className:"relative mb-2",children:[e.jsx("img",{src:"https://i.pravatar.cc/150?img=47",alt:"Sarah",className:"w-10 h-10 rounded-full border-[3px] border-orange-400 z-10 relative object-cover shadow-sm bg-white"}),e.jsx("div",{className:"absolute -bottom-2 left-1/2 -translate-x-1/2 bg-orange-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full z-20 shadow-sm",children:"3"})]}),e.jsxs(r.div,{initial:{height:0},animate:{height:"38px"},transition:{delay:.5,duration:.5,ease:"easeOut"},className:"w-[70px] bg-gradient-to-b from-orange-50 to-slate-50 rounded-t-xl rounded-b-md border-t-2 border-orange-100 flex items-center justify-center relative shadow-[inset_0_-4px_6px_rgba(249,115,22,0.05),0_4px_6px_rgba(0,0,0,0.02)]",children:[e.jsx("span",{className:"text-orange-400/60 font-black text-2xl opacity-60 translate-y-1",children:"3"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-1.5 bg-white/70 rounded-t-xl"})]}),e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("span",{className:"block text-[12px] font-bold text-[#0a1628]",children:"Sarah K."}),e.jsx("span",{className:"block text-[10px] text-orange-600 font-bold",children:"1.9k XP"})]})]})]})]})]})};export{X as default}; diff --git a/assets/ScientificCalculator-BP-XvW_h.js b/assets/ScientificCalculator-B0rqpddr.js similarity index 99% rename from assets/ScientificCalculator-BP-XvW_h.js rename to assets/ScientificCalculator-B0rqpddr.js index 1e1ff7444b06946744b89f624e5839ce708f96be..a8f687b627bfae5cd8675875655ada97903682ff 100644 --- a/assets/ScientificCalculator-BP-XvW_h.js +++ b/assets/ScientificCalculator-B0rqpddr.js @@ -1,4 +1,4 @@ -import{r as c,j as e}from"./vendor-react-Dexh7fmo.js";import{apiService as de}from"./apiService-BuaHZ1Ho.js";import{c as Z,e as U,m as ue}from"./index-DGWrSMOK.js";import{C as fe,a as pe}from"./chevron-up-BJyzaJs7.js";import{X as be}from"./x-Bj25rnWX.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** +import{r as c,j as e}from"./vendor-react-Dexh7fmo.js";import{apiService as de}from"./apiService-ZZIWaV70.js";import{c as Z,e as U,m as ue}from"./index-CmBdDSkw.js";import{C as fe,a as pe}from"./chevron-up-CwQX0CFg.js";import{X as be}from"./x-BDSBB3q9.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/SearchBar-DYN0WTzx.js b/assets/SearchBar-CzmZ03BX.js similarity index 93% rename from assets/SearchBar-DYN0WTzx.js rename to assets/SearchBar-CzmZ03BX.js index 068d061d41efdadf38da0e7f3620161642bb5cbc..4d2394c5546ac9355c1671261f4c4656c0d528e3 100644 --- a/assets/SearchBar-DYN0WTzx.js +++ b/assets/SearchBar-CzmZ03BX.js @@ -1 +1 @@ -import{r as o,j as e}from"./vendor-react-Dexh7fmo.js";import{S as m}from"./search-O5gEqRZi.js";import{m as n,e as C}from"./index-DGWrSMOK.js";import{X as k}from"./x-Bj25rnWX.js";import{C as S}from"./clock-qHFbMxrB.js";import{B as a}from"./book-open-B5Xvd1JL.js";import{T as c}from"./trending-up-B2MPUPwk.js";import{U as d}from"./users-BRS21lR4.js";import{G}from"./graduation-cap-Cr-ek4Bs.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const K=({placeholder:b="Search anything...",userRole:p="student",onSelect:y})=>{const[i,l]=o.useState(""),[g,r]=o.useState(!1),[x,f]=o.useState([]),u=o.useRef(null),v=()=>p==="student"?[{id:"1",type:"module",title:"General Mathematics",subtitle:"Grade 11 • Functions & Business Math",icon:a},{id:"2",type:"module",title:"Statistics & Probability",subtitle:"Grade 11 • Distributions & Testing",icon:a},{id:"3",type:"module",title:"Pre-Calculus",subtitle:"Grade 12 • Analytic Geometry & Trig",icon:a},{id:"4",type:"module",title:"Basic Calculus",subtitle:"Grade 12 • Limits & Derivatives",icon:a},{id:"5",type:"page",title:"AI Chat",subtitle:"Get help from AI tutor",icon:c},{id:"6",type:"page",title:"My Progress",subtitle:"View your achievements",icon:c}]:p==="teacher"?[{id:"1",type:"student",title:"Alex Johnson",subtitle:"Grade 11 • Level 12",icon:d},{id:"2",type:"student",title:"Sarah Williams",subtitle:"Grade 12 • Level 11",icon:d},{id:"3",type:"module",title:"Gen Math Quiz 5",subtitle:"12 submissions",icon:a},{id:"4",type:"page",title:"Analytics",subtitle:"Class performance overview",icon:c},{id:"5",type:"page",title:"Create Assignment",subtitle:"New homework or quiz",icon:a}]:[{id:"1",type:"teacher",title:"Prof. Anderson",subtitle:"48 students • Math Dept",icon:G},{id:"2",type:"student",title:"Alex Johnson",subtitle:"Top Performer • Level 12",icon:d},{id:"3",type:"page",title:"System Settings",subtitle:"Platform configuration",icon:c},{id:"4",type:"page",title:"Reports",subtitle:"Export analytics",icon:a},{id:"5",type:"page",title:"User Management",subtitle:"Manage accounts",icon:d}],w=["Functions and Relations","Normal Distribution","AI Chat"];o.useEffect(()=>{if(i.trim()){const s=v().filter(h=>h.title.toLowerCase().includes(i.toLowerCase())||h.subtitle?.toLowerCase().includes(i.toLowerCase()));f(s)}else f([])},[i]);const j=t=>{l(""),r(!1),y?.(t)},N=()=>{l(""),u.current?.focus()};return o.useEffect(()=>{const t=s=>{s.ctrlKey&&s.key.toLowerCase()==="k"&&(s.preventDefault(),u.current?.focus(),r(!0))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[]),e.jsxs("div",{className:"relative w-full max-w-xl",children:[e.jsxs("div",{className:"relative",children:[e.jsx(m,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx("input",{ref:u,id:"global-search",name:"global-search","aria-label":"Search anything",type:"text",value:i,onChange:t=>l(t.target.value),onFocus:()=>r(!0),placeholder:b,className:"w-full pl-11 pr-24 py-2.5 bg-white border border-[#dde3eb] rounded-lg text-[#0a1628] placeholder-[#a8a5b3] font-body text-sm focus:bg-white focus:border-sky-400 focus:ring-2 focus:ring-sky-400/15 focus:outline-none transition-all"}),e.jsxs("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[i&&e.jsx(n.button,{initial:{scale:0},animate:{scale:1},exit:{scale:0},whileHover:{scale:1.1},whileTap:{scale:.9},onClick:N,className:"p-1.5 text-slate-500 hover:text-[#5a6578] hover:bg-[#edf1f7] rounded-md transition-colors",children:e.jsx(k,{size:14})}),e.jsx("kbd",{className:"hidden sm:inline-flex px-2 py-0.5 text-[10px] font-body font-semibold text-slate-500 bg-[#edf1f7] border border-[#dde3eb] rounded-md",children:"Ctrl+K"})]})]}),e.jsx(C,{children:g&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>r(!1)}),e.jsx(n.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2},className:"absolute top-full left-0 right-0 mt-2 bg-white rounded-xl shadow-lg border border-[#dde3eb] z-50 overflow-hidden max-h-96 overflow-y-auto",children:i.trim()?x.length>0?e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"px-3 py-2 text-[10px] font-body font-semibold text-slate-500 uppercase tracking-wider",children:"Results"}),x.map(t=>{const s=t.icon||m;return e.jsxs(n.button,{whileHover:{backgroundColor:"rgba(248, 247, 244, 1)"},onClick:()=>j(t),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-left transition-colors",children:[e.jsx("div",{className:"w-9 h-9 bg-sky-500/10 rounded-lg flex items-center justify-center text-sky-600 flex-shrink-0",children:e.jsx(s,{size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"text-sm font-body font-semibold text-[#0a1628] truncate",children:t.title}),t.subtitle&&e.jsx("p",{className:"text-xs font-body text-[#5a6578] truncate",children:t.subtitle})]})]},t.id)})]}):e.jsxs("div",{className:"p-8 text-center",children:[e.jsx(m,{size:40,className:"text-[#d1cec6] mx-auto mb-3"}),e.jsx("p",{className:"text-[#5a6578] font-body text-sm",children:"No results found"}),e.jsx("p",{className:"text-slate-500 font-body text-xs mt-1",children:"Try a different search term"})]}):e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"px-3 py-2 text-[10px] font-body font-semibold text-slate-500 uppercase tracking-wider",children:"Recent Searches"}),w.map((t,s)=>e.jsxs(n.button,{whileHover:{backgroundColor:"rgba(248, 247, 244, 1)"},onClick:()=>l(t),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-left transition-colors",children:[e.jsx(S,{size:16,className:"text-slate-500 flex-shrink-0"}),e.jsx("span",{className:"text-sm font-body text-[#0a1628]",children:t})]},s))]})})]})})]})};export{K as default}; +import{r as o,j as e}from"./vendor-react-Dexh7fmo.js";import{S as m}from"./search-zqCwfHe1.js";import{m as n,e as C}from"./index-CmBdDSkw.js";import{X as k}from"./x-BDSBB3q9.js";import{C as S}from"./clock-jSWTKlqH.js";import{B as a}from"./book-open-BH_yilLK.js";import{T as c}from"./trending-up-6u76yy2e.js";import{U as d}from"./users-CdMqBLwG.js";import{G}from"./graduation-cap-BxtuU7H1.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const K=({placeholder:b="Search anything...",userRole:p="student",onSelect:y})=>{const[i,l]=o.useState(""),[g,r]=o.useState(!1),[x,f]=o.useState([]),u=o.useRef(null),v=()=>p==="student"?[{id:"1",type:"module",title:"General Mathematics",subtitle:"Grade 11 • Functions & Business Math",icon:a},{id:"2",type:"module",title:"Statistics & Probability",subtitle:"Grade 11 • Distributions & Testing",icon:a},{id:"3",type:"module",title:"Pre-Calculus",subtitle:"Grade 12 • Analytic Geometry & Trig",icon:a},{id:"4",type:"module",title:"Basic Calculus",subtitle:"Grade 12 • Limits & Derivatives",icon:a},{id:"5",type:"page",title:"AI Chat",subtitle:"Get help from AI tutor",icon:c},{id:"6",type:"page",title:"My Progress",subtitle:"View your achievements",icon:c}]:p==="teacher"?[{id:"1",type:"student",title:"Alex Johnson",subtitle:"Grade 11 • Level 12",icon:d},{id:"2",type:"student",title:"Sarah Williams",subtitle:"Grade 12 • Level 11",icon:d},{id:"3",type:"module",title:"Gen Math Quiz 5",subtitle:"12 submissions",icon:a},{id:"4",type:"page",title:"Analytics",subtitle:"Class performance overview",icon:c},{id:"5",type:"page",title:"Create Assignment",subtitle:"New homework or quiz",icon:a}]:[{id:"1",type:"teacher",title:"Prof. Anderson",subtitle:"48 students • Math Dept",icon:G},{id:"2",type:"student",title:"Alex Johnson",subtitle:"Top Performer • Level 12",icon:d},{id:"3",type:"page",title:"System Settings",subtitle:"Platform configuration",icon:c},{id:"4",type:"page",title:"Reports",subtitle:"Export analytics",icon:a},{id:"5",type:"page",title:"User Management",subtitle:"Manage accounts",icon:d}],w=["Functions and Relations","Normal Distribution","AI Chat"];o.useEffect(()=>{if(i.trim()){const s=v().filter(h=>h.title.toLowerCase().includes(i.toLowerCase())||h.subtitle?.toLowerCase().includes(i.toLowerCase()));f(s)}else f([])},[i]);const j=t=>{l(""),r(!1),y?.(t)},N=()=>{l(""),u.current?.focus()};return o.useEffect(()=>{const t=s=>{s.ctrlKey&&s.key.toLowerCase()==="k"&&(s.preventDefault(),u.current?.focus(),r(!0))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[]),e.jsxs("div",{className:"relative w-full max-w-xl",children:[e.jsxs("div",{className:"relative",children:[e.jsx(m,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-500",size:18}),e.jsx("input",{ref:u,id:"global-search",name:"global-search","aria-label":"Search anything",type:"text",value:i,onChange:t=>l(t.target.value),onFocus:()=>r(!0),placeholder:b,className:"w-full pl-11 pr-24 py-2.5 bg-white border border-[#dde3eb] rounded-lg text-[#0a1628] placeholder-[#a8a5b3] font-body text-sm focus:bg-white focus:border-sky-400 focus:ring-2 focus:ring-sky-400/15 focus:outline-none transition-all"}),e.jsxs("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[i&&e.jsx(n.button,{initial:{scale:0},animate:{scale:1},exit:{scale:0},whileHover:{scale:1.1},whileTap:{scale:.9},onClick:N,className:"p-1.5 text-slate-500 hover:text-[#5a6578] hover:bg-[#edf1f7] rounded-md transition-colors",children:e.jsx(k,{size:14})}),e.jsx("kbd",{className:"hidden sm:inline-flex px-2 py-0.5 text-[10px] font-body font-semibold text-slate-500 bg-[#edf1f7] border border-[#dde3eb] rounded-md",children:"Ctrl+K"})]})]}),e.jsx(C,{children:g&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>r(!1)}),e.jsx(n.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2},className:"absolute top-full left-0 right-0 mt-2 bg-white rounded-xl shadow-lg border border-[#dde3eb] z-50 overflow-hidden max-h-96 overflow-y-auto",children:i.trim()?x.length>0?e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"px-3 py-2 text-[10px] font-body font-semibold text-slate-500 uppercase tracking-wider",children:"Results"}),x.map(t=>{const s=t.icon||m;return e.jsxs(n.button,{whileHover:{backgroundColor:"rgba(248, 247, 244, 1)"},onClick:()=>j(t),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-left transition-colors",children:[e.jsx("div",{className:"w-9 h-9 bg-sky-500/10 rounded-lg flex items-center justify-center text-sky-600 flex-shrink-0",children:e.jsx(s,{size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"text-sm font-body font-semibold text-[#0a1628] truncate",children:t.title}),t.subtitle&&e.jsx("p",{className:"text-xs font-body text-[#5a6578] truncate",children:t.subtitle})]})]},t.id)})]}):e.jsxs("div",{className:"p-8 text-center",children:[e.jsx(m,{size:40,className:"text-[#d1cec6] mx-auto mb-3"}),e.jsx("p",{className:"text-[#5a6578] font-body text-sm",children:"No results found"}),e.jsx("p",{className:"text-slate-500 font-body text-xs mt-1",children:"Try a different search term"})]}):e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"px-3 py-2 text-[10px] font-body font-semibold text-slate-500 uppercase tracking-wider",children:"Recent Searches"}),w.map((t,s)=>e.jsxs(n.button,{whileHover:{backgroundColor:"rgba(248, 247, 244, 1)"},onClick:()=>l(t),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-left transition-colors",children:[e.jsx(S,{size:16,className:"text-slate-500 flex-shrink-0"}),e.jsx("span",{className:"text-sm font-body text-[#0a1628]",children:t})]},s))]})})]})})]})};export{K as default}; diff --git a/assets/SettingsModal-BFFZzSRx.js b/assets/SettingsModal-Ct0cXLCK.js similarity index 97% rename from assets/SettingsModal-BFFZzSRx.js rename to assets/SettingsModal-Ct0cXLCK.js index 613b2126bdecaaaea4a91b6b83c919b8dbc1b753..765241e3e97599118200adff300f34e9d9ac5985 100644 --- a/assets/SettingsModal-BFFZzSRx.js +++ b/assets/SettingsModal-Ct0cXLCK.js @@ -1,4 +1,4 @@ -import{r as i,j as e}from"./vendor-react-Dexh7fmo.js";import{c as ee,e as be,m as S,D as ue,t as c}from"./index-DGWrSMOK.js";import{B as x}from"./button-DWdPuxDU.js";import{I as l}from"./input-DBkKXOmF.js";import{S as m}from"./switch-DbjIWZtF.js";import W from"./ConfirmModal-B9CUrvQP.js";import{U as fe}from"./user-Br5UzORP.js";import{B as pe}from"./bell-DeNrtKrI.js";import{S as ye}from"./shield-Cin8984_.js";import{G as je}from"./globe-CA6LY_zw.js";import{D as Y}from"./download-DINpalm9.js";import{X as Z}from"./x-Bj25rnWX.js";import{L as ge}from"./lock-C6XEepuP.js";import{C as Ne}from"./clock-qHFbMxrB.js";import{T as ve}from"./trash-2-CBQVcuBL.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-radix-B-ht8aK0.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./log-out-DYYu4gFF.js";/** +import{r as i,j as e}from"./vendor-react-Dexh7fmo.js";import{c as ee,e as be,m as S,D as ue,t as c}from"./index-CmBdDSkw.js";import{B as x}from"./button-BP5cklmU.js";import{I as l}from"./input-DBkKXOmF.js";import{S as m}from"./switch-CISoEIXM.js";import W from"./ConfirmModal-BO6r5veY.js";import{U as fe}from"./user-C4mm1EOG.js";import{B as pe}from"./bell-B1VXtbbh.js";import{S as ye}from"./shield-B-mvw6Dl.js";import{G as je}from"./globe-ZtrF4mgA.js";import{D as Y}from"./download-DMZBRA1T.js";import{X as Z}from"./x-BDSBB3q9.js";import{L as ge}from"./lock-Dt6Po_Oi.js";import{C as Ne}from"./clock-jSWTKlqH.js";import{T as ve}from"./trash-2-BGLuKCox.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-radix-CxzAJozq.js";import"./clsx-B-dksMZM.js";import"./utils-BQQgILNW.js";import"./log-out-QZHYEhcR.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/Sidebar-BH3yU0R9.js b/assets/Sidebar-oxQVx2NC.js similarity index 88% rename from assets/Sidebar-BH3yU0R9.js rename to assets/Sidebar-oxQVx2NC.js index 3b526e9df5969b12cf050e3b16e9b357c64dd560..d0fed82d11c4be585163561f1633a7895cf0c5b4 100644 --- a/assets/Sidebar-BH3yU0R9.js +++ b/assets/Sidebar-oxQVx2NC.js @@ -1 +1 @@ -import{r as m,j as e}from"./vendor-react-Dexh7fmo.js";import{C as O,S,a as $,L as f}from"./LogoutActionButton-D-8gok3U.js";import{c as D}from"./utils-BQQgILNW.js";import{T as k,a as L,b as M}from"./tooltip-D9lDiW9U.js";import{m as c}from"./index-DGWrSMOK.js";import{X as G}from"./x-Bj25rnWX.js";import{C as P}from"./chevron-right-DxXkA9aZ.js";import{U as C}from"./users-BRS21lR4.js";import{B as u}from"./book-open-B5Xvd1JL.js";import{C as T}from"./chart-column-CJzwyNMx.js";import{S as U}from"./shield-Cin8984_.js";import{M as F}from"./message-square-DIXhbelM.js";import{G as Q}from"./graduation-cap-Cr-ek4Bs.js";import{S as W}from"./swords-Bn50CmyM.js";import{T as X}from"./trophy-73YPSH67.js";import{S as _}from"./shirt-C4Gsu12G.js";import"./log-out-DYYu4gFF.js";import"./clsx-B-dksMZM.js";import"./vendor-radix-B-ht8aK0.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const ge=({activeTab:b,setActiveTab:A,userRole:x="student",onOpenSettings:g,onLogout:j,sidebarCollapsed:o=!1,setSidebarCollapsed:v,mode:E="desktop",onRequestClose:y,forceCollapsed:i=!1})=>{const[z,h]=m.useState(!1),[w,t]=m.useState(null),n=E==="mobile",r=!i&&z,p=typeof g=="function",a=!n&&(i||o&&!r),l=a,H=!n&&!i;m.useEffect(()=>{i&&(h(!1),t(null))},[i]),m.useEffect(()=>{l||t(null)},[l]);const I=x==="admin"?[{label:"Management",items:[{icon:f,label:"Overview"},{icon:C,label:"User Management"},{icon:u,label:"Content"}]},{label:"Insights",items:[{icon:T,label:"Analytics"},{icon:U,label:"Audit Log"},{icon:S,label:"Settings"}]}]:x==="teacher"?[{label:"Teaching",items:[{icon:f,label:"Dashboard"},{icon:C,label:"My Students"},{icon:u,label:"Classes"}]},{label:"Insights",items:[{icon:T,label:"Analytics"}]}]:[{label:"Learn",items:[{icon:f,label:"Dashboard"},{icon:u,label:"Modules"},{icon:F,label:"AI Chat"}]},{label:"Progress",items:[{icon:Q,label:"Grades",displayLabel:"Assessment"},{icon:W,label:"Quiz Battle",displayLabel:"Quiz Battle"},{icon:X,label:"Leaderboard",displayLabel:"Leadership Board"}]},{label:"Customization",items:[{icon:_,label:"Avatar Studio",displayLabel:"Avatar Studio"}]}];return e.jsxs(c.aside,{initial:!1,animate:n?{width:280}:{width:a?80:280},transition:{type:"spring",stiffness:360,damping:34},onMouseEnter:()=>H&&o&&h(!0),onMouseLeave:()=>{h(!1),t(null)},className:D("h-full bg-[#f7f9fc] border border-[#dde3eb] shadow-sm flex flex-col",n?"rounded-2xl p-4":"rounded-3xl p-5"),children:[e.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[e.jsxs("div",{className:`mb-8 flex items-center ${a?"justify-center":"justify-between"}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:"/mathpulse_logo.png",alt:"MathPulse AI",className:"w-12 h-12 object-contain drop-shadow-md flex-shrink-0"}),(!a||r)&&e.jsx("div",{children:e.jsx("h2",{className:"text-base font-bold font-display text-[#0a1628] whitespace-nowrap",children:"MathPulse AI"})})]}),n&&y&&e.jsx("button",{onClick:y,className:"p-2 hover:bg-[#dde3eb] rounded-lg transition-colors text-[#5a6578]","aria-label":"Close navigation",children:e.jsx(G,{size:20})}),!n&&!i&&v&&(!o||r)&&e.jsx(c.button,{whileHover:{scale:1.1},whileTap:{scale:.95},onClick:()=>v(!o),className:"p-2 hover:bg-[#dde3eb] rounded-lg transition-colors text-[#5a6578]","aria-label":o?"Expand sidebar":"Collapse sidebar",title:o?"Expand sidebar":"Collapse sidebar",children:o?e.jsx(P,{size:20}):e.jsx(O,{size:20})})]}),e.jsx("nav",{className:"flex-1 min-h-0 overflow-y-auto space-y-5 pr-1",children:I.map((d,B)=>e.jsxs("div",{children:[a?e.jsx("div",{className:"px-4 mb-2 flex items-center gap-2",children:e.jsx("div",{className:"flex-1 h-[1px] bg-[#dde3eb]"})}):d.label&&e.jsx("p",{className:"px-4 mb-2 text-[10px] font-bold text-[#5a6578] uppercase tracking-widest",children:d.label}),e.jsx("div",{className:"space-y-1",children:d.items.map(s=>e.jsxs(k,{open:l&&w===s.label,children:[e.jsx(L,{asChild:!0,children:e.jsxs(c.button,{whileHover:{x:2},whileTap:{scale:.98},onMouseEnter:()=>{l&&t(s.label)},onMouseLeave:()=>{t(N=>N===s.label?null:N)},onFocus:()=>t(null),onClick:()=>A(s.label),className:`w-full flex items-center gap-3 px-4 py-3 rounded-2xl cursor-pointer transition-all duration-200 border whitespace-nowrap ${a?"justify-center":""} ${b===s.label?"bg-sky-50 border-sky-200 shadow-sm text-sky-700":"bg-transparent border-transparent text-[#5a6578] hover:bg-[#dde3eb] hover:border-[#dde3eb] hover:text-[#0a1628]"}`,children:[e.jsx(s.icon,{size:18,strokeWidth:b===s.label?2.5:2,className:"flex-shrink-0"}),(!a||r)&&e.jsx("span",{className:"font-body font-bold text-xs",children:s.displayLabel||s.label}),b===s.label&&(!a||r)&&e.jsx(c.div,{layoutId:"sidebar-active-indicator",className:"ml-auto w-2 h-2 rounded-full bg-sky-500",transition:{type:"spring",duration:.4}})]})}),l&&e.jsx(M,{side:"right",sideOffset:16,className:"font-bold text-xs",children:s.displayLabel||s.label})]},s.label))})]},B))})]}),e.jsxs("div",{className:"mt-4 space-y-2 border-t border-[#dde3eb] pt-4",children:[x!=="admin"?e.jsxs(k,{open:l&&w==="Settings",children:[e.jsx(L,{asChild:!0,children:e.jsxs(c.button,{whileHover:{x:2},whileTap:{scale:.98},onMouseEnter:()=>{l&&t("Settings")},onMouseLeave:()=>{t(d=>d==="Settings"?null:d)},onFocus:()=>t(null),className:`w-full flex items-center gap-3 px-4 py-3 rounded-2xl font-bold border transition-all duration-200 whitespace-nowrap ${a?"justify-center":""} ${b==="Settings"?"bg-sky-50 border-sky-200 text-sky-700 shadow-sm":p?"border-transparent text-[#5a6578] hover:bg-[#dde3eb] hover:border-[#dde3eb] hover:text-[#0a1628]":"border-transparent text-[#a0aec0] cursor-not-allowed opacity-60"}`,onClick:p?g:void 0,disabled:!p,"aria-disabled":!p,"aria-label":"Open settings",children:[e.jsx(S,{size:18,strokeWidth:2,className:"flex-shrink-0"}),(!a||r)&&e.jsx("span",{className:"font-body text-xs",children:"Settings"})]})}),l&&e.jsx(M,{side:"right",sideOffset:16,className:"font-bold text-xs",children:"Settings"})]}):null,j&&e.jsx("div",{className:"text-[#5a6578]",children:e.jsx($,{onClick:j,collapsed:a})})]})]})};export{ge as default}; +import{r as m,j as e}from"./vendor-react-Dexh7fmo.js";import{C as O,S,a as $,L as f}from"./LogoutActionButton-TpO-by05.js";import{c as D}from"./utils-BQQgILNW.js";import{T as k,a as L,b as M}from"./tooltip-Bn7-0zmi.js";import{m as c}from"./index-CmBdDSkw.js";import{X as G}from"./x-BDSBB3q9.js";import{C as P}from"./chevron-right-BSCyuP_x.js";import{U as C}from"./users-CdMqBLwG.js";import{B as u}from"./book-open-BH_yilLK.js";import{C as T}from"./chart-column-DzJCKCOe.js";import{S as U}from"./shield-B-mvw6Dl.js";import{M as F}from"./message-square-BxgAV6zJ.js";import{G as Q}from"./graduation-cap-BxtuU7H1.js";import{S as W}from"./swords-CJyIL97F.js";import{T as X}from"./trophy-DrL6Ph2J.js";import{S as _}from"./shirt-CHOJLYIJ.js";import"./log-out-QZHYEhcR.js";import"./clsx-B-dksMZM.js";import"./vendor-radix-CxzAJozq.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const ge=({activeTab:b,setActiveTab:A,userRole:x="student",onOpenSettings:g,onLogout:j,sidebarCollapsed:o=!1,setSidebarCollapsed:v,mode:E="desktop",onRequestClose:y,forceCollapsed:i=!1})=>{const[z,h]=m.useState(!1),[w,t]=m.useState(null),n=E==="mobile",r=!i&&z,p=typeof g=="function",a=!n&&(i||o&&!r),l=a,H=!n&&!i;m.useEffect(()=>{i&&(h(!1),t(null))},[i]),m.useEffect(()=>{l||t(null)},[l]);const I=x==="admin"?[{label:"Management",items:[{icon:f,label:"Overview"},{icon:C,label:"User Management"},{icon:u,label:"Content"}]},{label:"Insights",items:[{icon:T,label:"Analytics"},{icon:U,label:"Audit Log"},{icon:S,label:"Settings"}]}]:x==="teacher"?[{label:"Teaching",items:[{icon:f,label:"Dashboard"},{icon:C,label:"My Students"},{icon:u,label:"Classes"}]},{label:"Insights",items:[{icon:T,label:"Analytics"}]}]:[{label:"Learn",items:[{icon:f,label:"Dashboard"},{icon:u,label:"Modules"},{icon:F,label:"AI Chat"}]},{label:"Progress",items:[{icon:Q,label:"Grades",displayLabel:"Assessment"},{icon:W,label:"Quiz Battle",displayLabel:"Quiz Battle"},{icon:X,label:"Leaderboard",displayLabel:"Leadership Board"}]},{label:"Customization",items:[{icon:_,label:"Avatar Studio",displayLabel:"Avatar Studio"}]}];return e.jsxs(c.aside,{initial:!1,animate:n?{width:280}:{width:a?80:280},transition:{type:"spring",stiffness:360,damping:34},onMouseEnter:()=>H&&o&&h(!0),onMouseLeave:()=>{h(!1),t(null)},className:D("h-full bg-[#f7f9fc] border border-[#dde3eb] shadow-sm flex flex-col",n?"rounded-2xl p-4":"rounded-3xl p-5"),children:[e.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[e.jsxs("div",{className:`mb-8 flex items-center ${a?"justify-center":"justify-between"}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:"/mathpulse_logo.png",alt:"MathPulse AI",className:"w-12 h-12 object-contain drop-shadow-md flex-shrink-0"}),(!a||r)&&e.jsx("div",{children:e.jsx("h2",{className:"text-base font-bold font-display text-[#0a1628] whitespace-nowrap",children:"MathPulse AI"})})]}),n&&y&&e.jsx("button",{onClick:y,className:"p-2 hover:bg-[#dde3eb] rounded-lg transition-colors text-[#5a6578]","aria-label":"Close navigation",children:e.jsx(G,{size:20})}),!n&&!i&&v&&(!o||r)&&e.jsx(c.button,{whileHover:{scale:1.1},whileTap:{scale:.95},onClick:()=>v(!o),className:"p-2 hover:bg-[#dde3eb] rounded-lg transition-colors text-[#5a6578]","aria-label":o?"Expand sidebar":"Collapse sidebar",title:o?"Expand sidebar":"Collapse sidebar",children:o?e.jsx(P,{size:20}):e.jsx(O,{size:20})})]}),e.jsx("nav",{className:"flex-1 min-h-0 overflow-y-auto space-y-5 pr-1",children:I.map((d,B)=>e.jsxs("div",{children:[a?e.jsx("div",{className:"px-4 mb-2 flex items-center gap-2",children:e.jsx("div",{className:"flex-1 h-[1px] bg-[#dde3eb]"})}):d.label&&e.jsx("p",{className:"px-4 mb-2 text-[10px] font-bold text-[#5a6578] uppercase tracking-widest",children:d.label}),e.jsx("div",{className:"space-y-1",children:d.items.map(s=>e.jsxs(k,{open:l&&w===s.label,children:[e.jsx(L,{asChild:!0,children:e.jsxs(c.button,{whileHover:{x:2},whileTap:{scale:.98},onMouseEnter:()=>{l&&t(s.label)},onMouseLeave:()=>{t(N=>N===s.label?null:N)},onFocus:()=>t(null),onClick:()=>A(s.label),className:`w-full flex items-center gap-3 px-4 py-3 rounded-2xl cursor-pointer transition-all duration-200 border whitespace-nowrap ${a?"justify-center":""} ${b===s.label?"bg-sky-50 border-sky-200 shadow-sm text-sky-700":"bg-transparent border-transparent text-[#5a6578] hover:bg-[#dde3eb] hover:border-[#dde3eb] hover:text-[#0a1628]"}`,children:[e.jsx(s.icon,{size:18,strokeWidth:b===s.label?2.5:2,className:"flex-shrink-0"}),(!a||r)&&e.jsx("span",{className:"font-body font-bold text-xs",children:s.displayLabel||s.label}),b===s.label&&(!a||r)&&e.jsx(c.div,{layoutId:"sidebar-active-indicator",className:"ml-auto w-2 h-2 rounded-full bg-sky-500",transition:{type:"spring",duration:.4}})]})}),l&&e.jsx(M,{side:"right",sideOffset:16,className:"font-bold text-xs",children:s.displayLabel||s.label})]},s.label))})]},B))})]}),e.jsxs("div",{className:"mt-4 space-y-2 border-t border-[#dde3eb] pt-4",children:[x!=="admin"?e.jsxs(k,{open:l&&w==="Settings",children:[e.jsx(L,{asChild:!0,children:e.jsxs(c.button,{whileHover:{x:2},whileTap:{scale:.98},onMouseEnter:()=>{l&&t("Settings")},onMouseLeave:()=>{t(d=>d==="Settings"?null:d)},onFocus:()=>t(null),className:`w-full flex items-center gap-3 px-4 py-3 rounded-2xl font-bold border transition-all duration-200 whitespace-nowrap ${a?"justify-center":""} ${b==="Settings"?"bg-sky-50 border-sky-200 text-sky-700 shadow-sm":p?"border-transparent text-[#5a6578] hover:bg-[#dde3eb] hover:border-[#dde3eb] hover:text-[#0a1628]":"border-transparent text-[#a0aec0] cursor-not-allowed opacity-60"}`,onClick:p?g:void 0,disabled:!p,"aria-disabled":!p,"aria-label":"Open settings",children:[e.jsx(S,{size:18,strokeWidth:2,className:"flex-shrink-0"}),(!a||r)&&e.jsx("span",{className:"font-body text-xs",children:"Settings"})]})}),l&&e.jsx(M,{side:"right",sideOffset:16,className:"font-bold text-xs",children:"Settings"})]}):null,j&&e.jsx("div",{className:"text-[#5a6578]",children:e.jsx($,{onClick:j,collapsed:a})})]})]})};export{ge as default}; diff --git a/assets/SupplementalBanner-COM6ABNZ.js b/assets/SupplementalBanner-CaXzjH7M.js similarity index 95% rename from assets/SupplementalBanner-COM6ABNZ.js rename to assets/SupplementalBanner-CaXzjH7M.js index 2addca55aef5b6105ffea479599f7978369862b2..821c9fe24ee4e7106fda1402f386701b4beb8abb 100644 --- a/assets/SupplementalBanner-COM6ABNZ.js +++ b/assets/SupplementalBanner-CaXzjH7M.js @@ -1 +1 @@ -import{j as e,r as y}from"./vendor-react-Dexh7fmo.js";import{e as j,m as p,T as h}from"./index-DGWrSMOK.js";import{X as v}from"./x-Bj25rnWX.js";import{S as w}from"./sparkles-DxmNHQEo.js";import{C as f}from"./chevron-right-DxXkA9aZ.js";import{B as g}from"./book-open-B5Xvd1JL.js";import{T as m}from"./trending-up-B2MPUPwk.js";import{B as x}from"./brain-DHmY5cbv.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const b={"General Mathematics":[{label:"Functions Deep Dive",description:"Interactive review of function types and graphs",icon:e.jsx(m,{size:14})},{label:"Business Math Basics",description:"Simple & compound interest practice",icon:e.jsx(g,{size:14})}],"Statistics and Probability":[{label:"Distribution Visualizer",description:"Explore normal distribution curves",icon:e.jsx(m,{size:14})},{label:"Hypothesis Practice",description:"Step-by-step hypothesis testing",icon:e.jsx(x,{size:14})}],"Pre-Calculus":[{label:"Conic Sections Explorer",description:"Visual parabola, ellipse, hyperbola tool",icon:e.jsx(m,{size:14})},{label:"Trig Identity Practice",description:"Identity verification drill set",icon:e.jsx(x,{size:14})}],"Basic Calculus":[{label:"Limits Visualizer",description:"Graphical approach to limits",icon:e.jsx(m,{size:14})},{label:"Derivative Rules Drill",description:"Practice chain rule & implicit diff",icon:e.jsx(x,{size:14})}]};function u(i){const s=i.toLowerCase();return s==="functions"||s.includes("function")||s==="businessmath"||s.includes("business")||s==="logic"||s.includes("reason")||s.includes("general")||s.includes("gen-math")||s.includes("gen math")?"General Mathematics":s.includes("stat")||s.includes("prob")?"Statistics and Probability":s.includes("pre-calc")||s.includes("pre calc")||s.includes("precalc")?"Pre-Calculus":s.includes("basic")||s.includes("calc")?"Basic Calculus":null}function N(i){const s=i.trim().toLowerCase();return s==="functions"?"Functions and Graphs":s==="businessmath"?"Business and Financial Mathematics":s==="logic"?"Logic and Reasoning":i}const k=({atRiskSubjects:i=[],onAction:s,onDismiss:n})=>{const[l,a]=y.useState(!1);if(l||i.length===0)return null;const r=()=>{a(!0),n?.()};return e.jsx(j,{children:!l&&e.jsx(p.div,{initial:{opacity:0,y:-10,height:0},animate:{opacity:1,y:0,height:"auto"},exit:{opacity:0,y:-10,height:0},className:"overflow-hidden",children:e.jsxs("div",{className:"relative bg-gradient-to-r from-sky-600 via-sky-500 to-sky-600 rounded-2xl p-5 text-white shadow-lg shadow-sky-500/20",children:[e.jsx("button",{onClick:r,className:"absolute top-3 right-3 w-7 h-7 bg-white/20 hover:bg-white/30 rounded-full flex items-center justify-center transition-colors",children:e.jsx(v,{size:14})}),e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-12 h-12 bg-white/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(w,{size:24})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-bold text-lg mb-1",children:"Supplemental Materials Available"}),e.jsx("p",{className:"text-sky-100 text-sm mb-3",children:"Based on your diagnostic assessment, we've identified topics that could use extra practice. Strengthening these areas will improve your overall performance."}),e.jsx("div",{className:"flex flex-wrap gap-2 mb-3",children:i.map(t=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-white/20 backdrop-blur-sm px-3 py-1 rounded-full text-xs font-semibold",children:[e.jsx(h,{size:12}),N(t)]},t))}),e.jsxs("button",{onClick:s,className:"inline-flex items-center gap-2 bg-white text-sky-600 font-bold text-sm px-4 py-2 rounded-xl hover:bg-sky-50 transition-colors",children:["Review Topics",e.jsx(f,{size:16})]})]})]})]})})})},C=({quizSubject:i,atRiskSubjects:s=[]})=>{const n=i?u(i):null;if(!s.some(r=>{const t=u(r);return t&&t===n})||!n)return null;const a=b[n]||[];return e.jsx(p.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},className:"mb-4 overflow-hidden",children:e.jsxs("div",{className:"bg-gradient-to-r from-rose-50 to-orange-50 border border-rose-200 rounded-xl p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[e.jsx(h,{size:14,className:"text-rose-600"}),e.jsxs("span",{className:"text-xs font-bold text-rose-800",children:["Supplemental Focus Area — ",n]})]}),e.jsx("p",{className:"text-xs text-rose-700 mb-2",children:"This topic was flagged in your diagnostic. Take your time and review the explanations carefully."}),a.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5",children:a.slice(0,2).map((r,t)=>e.jsxs("span",{className:"inline-flex items-center gap-1 bg-rose-100 text-rose-700 px-2 py-0.5 rounded-md text-xs font-medium",children:[r.icon,r.label]},t))})]})})},z=({quizSubject:i,quizScore:s=0,atRiskSubjects:n=[],onAction:l})=>{const a=i?u(i):null,r=n.some(c=>{const d=u(c);return d&&d===a});if(s>=70&&!r)return null;const t=a?b[a]||[]:[],o=s<70;return e.jsx(p.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.5},className:"mt-4",children:e.jsx("div",{className:`rounded-2xl p-4 border-2 ${o?"bg-orange-50 border-orange-200":"bg-sky-50 border-sky-200"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0 ${o?"bg-orange-500":"bg-sky-500"}`,children:e.jsx(g,{size:20,className:"text-white"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-display font-bold text-[#0a1628] text-sm mb-1",children:o?"Review Recommended":"Supplemental Materials"}),e.jsx("p",{className:"text-xs text-[#5a6578] mb-2",children:o?`You scored ${s}% on this quiz. We recommend reviewing the following resources to strengthen your understanding.`:"This topic was identified as an area for growth. Check out these additional resources."}),t.length>0&&e.jsx("div",{className:"space-y-1.5 mb-3",children:t.map((c,d)=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:`w-5 h-5 rounded flex items-center justify-center ${o?"bg-orange-100 text-orange-600":"bg-sky-100 text-sky-600"}`,children:c.icon}),e.jsx("span",{className:"font-medium text-[#0a1628]",children:c.label}),e.jsxs("span",{className:"text-slate-500",children:["— ",c.description]})]},d))}),l&&e.jsxs("button",{onClick:l,className:`inline-flex items-center gap-1.5 text-xs font-bold px-3 py-1.5 rounded-lg transition-colors ${o?"bg-orange-500 hover:bg-orange-600 text-white":"bg-sky-500 hover:bg-sky-600 text-white"}`,children:["Open Practice Center",e.jsx(f,{size:12})]})]})]})})})},I=i=>{switch(i.variant){case"compact":return e.jsx(C,{...i});case"results":return e.jsx(z,{...i});case"full":default:return e.jsx(k,{...i})}};export{I as default}; +import{j as e,r as y}from"./vendor-react-Dexh7fmo.js";import{e as j,m as p,T as h}from"./index-CmBdDSkw.js";import{X as v}from"./x-BDSBB3q9.js";import{S as w}from"./sparkles-D6B_TX7M.js";import{C as f}from"./chevron-right-BSCyuP_x.js";import{B as g}from"./book-open-BH_yilLK.js";import{T as m}from"./trending-up-6u76yy2e.js";import{B as x}from"./brain-DfMjTiNx.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const b={"General Mathematics":[{label:"Functions Deep Dive",description:"Interactive review of function types and graphs",icon:e.jsx(m,{size:14})},{label:"Business Math Basics",description:"Simple & compound interest practice",icon:e.jsx(g,{size:14})}],"Statistics and Probability":[{label:"Distribution Visualizer",description:"Explore normal distribution curves",icon:e.jsx(m,{size:14})},{label:"Hypothesis Practice",description:"Step-by-step hypothesis testing",icon:e.jsx(x,{size:14})}],"Pre-Calculus":[{label:"Conic Sections Explorer",description:"Visual parabola, ellipse, hyperbola tool",icon:e.jsx(m,{size:14})},{label:"Trig Identity Practice",description:"Identity verification drill set",icon:e.jsx(x,{size:14})}],"Basic Calculus":[{label:"Limits Visualizer",description:"Graphical approach to limits",icon:e.jsx(m,{size:14})},{label:"Derivative Rules Drill",description:"Practice chain rule & implicit diff",icon:e.jsx(x,{size:14})}]};function u(i){const s=i.toLowerCase();return s==="functions"||s.includes("function")||s==="businessmath"||s.includes("business")||s==="logic"||s.includes("reason")||s.includes("general")||s.includes("gen-math")||s.includes("gen math")?"General Mathematics":s.includes("stat")||s.includes("prob")?"Statistics and Probability":s.includes("pre-calc")||s.includes("pre calc")||s.includes("precalc")?"Pre-Calculus":s.includes("basic")||s.includes("calc")?"Basic Calculus":null}function N(i){const s=i.trim().toLowerCase();return s==="functions"?"Functions and Graphs":s==="businessmath"?"Business and Financial Mathematics":s==="logic"?"Logic and Reasoning":i}const k=({atRiskSubjects:i=[],onAction:s,onDismiss:n})=>{const[l,a]=y.useState(!1);if(l||i.length===0)return null;const r=()=>{a(!0),n?.()};return e.jsx(j,{children:!l&&e.jsx(p.div,{initial:{opacity:0,y:-10,height:0},animate:{opacity:1,y:0,height:"auto"},exit:{opacity:0,y:-10,height:0},className:"overflow-hidden",children:e.jsxs("div",{className:"relative bg-gradient-to-r from-sky-600 via-sky-500 to-sky-600 rounded-2xl p-5 text-white shadow-lg shadow-sky-500/20",children:[e.jsx("button",{onClick:r,className:"absolute top-3 right-3 w-7 h-7 bg-white/20 hover:bg-white/30 rounded-full flex items-center justify-center transition-colors",children:e.jsx(v,{size:14})}),e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-12 h-12 bg-white/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(w,{size:24})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-bold text-lg mb-1",children:"Supplemental Materials Available"}),e.jsx("p",{className:"text-sky-100 text-sm mb-3",children:"Based on your diagnostic assessment, we've identified topics that could use extra practice. Strengthening these areas will improve your overall performance."}),e.jsx("div",{className:"flex flex-wrap gap-2 mb-3",children:i.map(t=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-white/20 backdrop-blur-sm px-3 py-1 rounded-full text-xs font-semibold",children:[e.jsx(h,{size:12}),N(t)]},t))}),e.jsxs("button",{onClick:s,className:"inline-flex items-center gap-2 bg-white text-sky-600 font-bold text-sm px-4 py-2 rounded-xl hover:bg-sky-50 transition-colors",children:["Review Topics",e.jsx(f,{size:16})]})]})]})]})})})},C=({quizSubject:i,atRiskSubjects:s=[]})=>{const n=i?u(i):null;if(!s.some(r=>{const t=u(r);return t&&t===n})||!n)return null;const a=b[n]||[];return e.jsx(p.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},className:"mb-4 overflow-hidden",children:e.jsxs("div",{className:"bg-gradient-to-r from-rose-50 to-orange-50 border border-rose-200 rounded-xl p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[e.jsx(h,{size:14,className:"text-rose-600"}),e.jsxs("span",{className:"text-xs font-bold text-rose-800",children:["Supplemental Focus Area — ",n]})]}),e.jsx("p",{className:"text-xs text-rose-700 mb-2",children:"This topic was flagged in your diagnostic. Take your time and review the explanations carefully."}),a.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5",children:a.slice(0,2).map((r,t)=>e.jsxs("span",{className:"inline-flex items-center gap-1 bg-rose-100 text-rose-700 px-2 py-0.5 rounded-md text-xs font-medium",children:[r.icon,r.label]},t))})]})})},z=({quizSubject:i,quizScore:s=0,atRiskSubjects:n=[],onAction:l})=>{const a=i?u(i):null,r=n.some(c=>{const d=u(c);return d&&d===a});if(s>=70&&!r)return null;const t=a?b[a]||[]:[],o=s<70;return e.jsx(p.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.5},className:"mt-4",children:e.jsx("div",{className:`rounded-2xl p-4 border-2 ${o?"bg-orange-50 border-orange-200":"bg-sky-50 border-sky-200"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0 ${o?"bg-orange-500":"bg-sky-500"}`,children:e.jsx(g,{size:20,className:"text-white"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-display font-bold text-[#0a1628] text-sm mb-1",children:o?"Review Recommended":"Supplemental Materials"}),e.jsx("p",{className:"text-xs text-[#5a6578] mb-2",children:o?`You scored ${s}% on this quiz. We recommend reviewing the following resources to strengthen your understanding.`:"This topic was identified as an area for growth. Check out these additional resources."}),t.length>0&&e.jsx("div",{className:"space-y-1.5 mb-3",children:t.map((c,d)=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:`w-5 h-5 rounded flex items-center justify-center ${o?"bg-orange-100 text-orange-600":"bg-sky-100 text-sky-600"}`,children:c.icon}),e.jsx("span",{className:"font-medium text-[#0a1628]",children:c.label}),e.jsxs("span",{className:"text-slate-500",children:["— ",c.description]})]},d))}),l&&e.jsxs("button",{onClick:l,className:`inline-flex items-center gap-1.5 text-xs font-bold px-3 py-1.5 rounded-lg transition-colors ${o?"bg-orange-500 hover:bg-orange-600 text-white":"bg-sky-500 hover:bg-sky-600 text-white"}`,children:["Open Practice Center",e.jsx(f,{size:12})]})]})]})})})},I=i=>{switch(i.variant){case"compact":return e.jsx(C,{...i});case"results":return e.jsx(z,{...i});case"full":default:return e.jsx(k,{...i})}};export{I as default}; diff --git a/assets/TeacherDashboard-CtdIzfjb.js b/assets/TeacherDashboard-CXY2X8Up.js similarity index 99% rename from assets/TeacherDashboard-CtdIzfjb.js rename to assets/TeacherDashboard-CXY2X8Up.js index 19ab113eb81bcce218d428399c4a5652088a7514..c6db7a74cab25d7870c6b4d6ead7f8bd8b09a67a 100644 --- a/assets/TeacherDashboard-CtdIzfjb.js +++ b/assets/TeacherDashboard-CXY2X8Up.js @@ -1,4 +1,4 @@ -import{r as d,j as e,c as be}from"./vendor-react-Dexh7fmo.js";import{B as ve}from"./button-DWdPuxDU.js";import{I as Ue}from"./input-DBkKXOmF.js";import Vr from"./ConfirmModal-B9CUrvQP.js";import{C as St,L as Yr,S as Hr,a as Wr}from"./LogoutActionButton-D-8gok3U.js";import{c as lt,d as ke,e as rt,m as ce,Z as Ka,u as Rt,t as Y,C as Kr,T as yt,g as fa,f as Jr,h as Xr,B as Zr,i as en,M as tn}from"./index-DGWrSMOK.js";import{e as We,q as qe,l as Ja,w as Ve,h as Ze,o as sn,f as Xa,s as Je,d as Fe,u as Xe,b as pt,a as ze,c as an}from"./vendor-firebase-firestore-CkuVbeP5.js";import{apiService as pe,ApiError as Ds}from"./apiService-BuaHZ1Ho.js";import{G as $s}from"./graduation-cap-Cr-ek4Bs.js";import{X as Dt}from"./x-Bj25rnWX.js";import{B as Za}from"./brain-DHmY5cbv.js";import{B as es}from"./book-open-B5Xvd1JL.js";import{s as pa,f as rn,L as nn,d as on,a as ln,p as cn,b as dn}from"./quizService-BkrCeM05.js";import{L as Le}from"./loader-circle-BUf2fYcT.js";import{E as hs}from"./eye-pSTVqBYO.js";import{S as zt}from"./send-nCgvy9cZ.js";import{T as er}from"./trash-2-CBQVcuBL.js";import{C as Ss}from"./circle-alert-D8UKyVHS.js";import{M as ga}from"./minus-BjTBUAx2.js";import{P as $t}from"./plus-DVCmopn-.js";import{C as Ut}from"./check-BONc3QkK.js";import{F as Ps,I as qt,R as mn,D as un,a as xn,b as hn,c as fn,d as pn,T as gn,e as bn,f as vn,V as yn}from"./dialog-C0Vo-dln.js";import{C as jt}from"./chart-column-CJzwyNMx.js";import{C as jn,S as q}from"./skeleton-DgVR4gS7.js";import{D as Fs}from"./download-DINpalm9.js";import{S as Nn}from"./sparkles-DxmNHQEo.js";import{S as tr}from"./save-B5SCmCsP.js";import{T as Os}from"./trending-up-B2MPUPwk.js";import{U as Yt}from"./users-BRS21lR4.js";import{S as ts}from"./search-O5gEqRZi.js";import{C as Ht,a as nt}from"./chevron-up-BJyzaJs7.js";import{S as ba,g as wn,G as kn,s as va}from"./subjects-DDYtJwQO.js";import{C as sr}from"./circle-check-big-mv2CRLCE.js";import{E as Sn}from"./eye-off-DCr0gD8u.js";import{U as ya}from"./user-Br5UzORP.js";import{C as _t}from"./chevron-right-DxXkA9aZ.js";import{A as Cn}from"./award-DpLN2BvV.js";import ar from"./ChatMarkdown-BI4vbcO7.js";import{B as Wt}from"./bell-DeNrtKrI.js";import{C as Tn}from"./check-check-BDU3hkDf.js";import{C as rr}from"./clock-qHFbMxrB.js";import{M as In}from"./message-square-DIXhbelM.js";import{T as Ln}from"./trophy-73YPSH67.js";import{T as Mn}from"./target-7Gevl8jn.js";import{C as An}from"./calendar-19p2TrVX.js";import{g as En,i as _e,G as zn,a as fs,m as Dn,b as ot,T as $n,s as ps,f as ft,c as ja,L as Na,d as Pn,e as Fn,u as Rs,h as _s,j as On,k as Rn,l as _n,w as wa,n as nr,o as ss,p as Bn,q as Gn,r as Qn,B as Cs,t as Un,R as ka,v as Sa,C as qn}from"./generateCategoricalChart-CiUYzAvW.js";import{c as gt}from"./clsx-B-dksMZM.js";import{P as or}from"./pen-line-CX1xh2Q2.js";import"./vendor-radix-B-ht8aK0.js";import"./utils-BQQgILNW.js";import"./log-out-DYYu4gFF.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-markdown-C5ikSDMA.js";/** +import{r as d,j as e,c as be}from"./vendor-react-Dexh7fmo.js";import{B as ve}from"./button-BP5cklmU.js";import{I as Ue}from"./input-DBkKXOmF.js";import Vr from"./ConfirmModal-BO6r5veY.js";import{C as St,L as Yr,S as Hr,a as Wr}from"./LogoutActionButton-TpO-by05.js";import{c as lt,d as ke,e as rt,m as ce,Z as Ka,u as Rt,t as Y,C as Kr,T as yt,g as fa,f as Jr,h as Xr,B as Zr,i as en,M as tn}from"./index-CmBdDSkw.js";import{e as We,q as qe,l as Ja,w as Ve,h as Ze,o as sn,f as Xa,s as Je,d as Fe,u as Xe,b as pt,a as ze,c as an}from"./vendor-firebase-firestore-CkuVbeP5.js";import{apiService as pe,ApiError as Ds}from"./apiService-ZZIWaV70.js";import{G as $s}from"./graduation-cap-BxtuU7H1.js";import{X as Dt}from"./x-BDSBB3q9.js";import{B as Za}from"./brain-DfMjTiNx.js";import{B as es}from"./book-open-BH_yilLK.js";import{s as pa,f as rn,L as nn,d as on,a as ln,p as cn,b as dn}from"./quizService-YBJVdiN1.js";import{L as Le}from"./loader-circle-BfAbw6jC.js";import{E as hs}from"./eye-DyGZzCgK.js";import{S as zt}from"./send-OMGWblBc.js";import{T as er}from"./trash-2-BGLuKCox.js";import{C as Ss}from"./circle-alert-DWP6udG1.js";import{M as ga}from"./minus-8VjeOOlm.js";import{P as $t}from"./plus-Dip_RqNl.js";import{C as Ut}from"./check-D1XVAVXL.js";import{F as Ps,I as qt,R as mn,D as un,a as xn,b as hn,c as fn,d as pn,T as gn,e as bn,f as vn,V as yn}from"./dialog-IPw3v6ZK.js";import{C as jt}from"./chart-column-DzJCKCOe.js";import{C as jn,S as q}from"./skeleton-CTGly9ab.js";import{D as Fs}from"./download-DMZBRA1T.js";import{S as Nn}from"./sparkles-D6B_TX7M.js";import{S as tr}from"./save-XQRYdTi9.js";import{T as Os}from"./trending-up-6u76yy2e.js";import{U as Yt}from"./users-CdMqBLwG.js";import{S as ts}from"./search-zqCwfHe1.js";import{C as Ht,a as nt}from"./chevron-up-CwQX0CFg.js";import{S as ba,g as wn,G as kn,s as va}from"./subjects-wOHUanD9.js";import{C as sr}from"./circle-check-big-C_XnLpga.js";import{E as Sn}from"./eye-off-D800Xx6k.js";import{U as ya}from"./user-C4mm1EOG.js";import{C as _t}from"./chevron-right-BSCyuP_x.js";import{A as Cn}from"./award-COlS18fi.js";import ar from"./ChatMarkdown-XT9mMuBR.js";import{B as Wt}from"./bell-B1VXtbbh.js";import{C as Tn}from"./check-check-TbgWzZ22.js";import{C as rr}from"./clock-jSWTKlqH.js";import{M as In}from"./message-square-BxgAV6zJ.js";import{T as Ln}from"./trophy-DrL6Ph2J.js";import{T as Mn}from"./target-BCguvjbb.js";import{C as An}from"./calendar-CP-HCx1y.js";import{g as En,i as _e,G as zn,a as fs,m as Dn,b as ot,T as $n,s as ps,f as ft,c as ja,L as Na,d as Pn,e as Fn,u as Rs,h as _s,j as On,k as Rn,l as _n,w as wa,n as nr,o as ss,p as Bn,q as Gn,r as Qn,B as Cs,t as Un,R as ka,v as Sa,C as qn}from"./generateCategoricalChart-CiUYzAvW.js";import{c as gt}from"./clsx-B-dksMZM.js";import{P as or}from"./pen-line-CBic_SY8.js";import"./vendor-radix-CxzAJozq.js";import"./utils-BQQgILNW.js";import"./log-out-QZHYEhcR.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";import"./vendor-markdown-C5ikSDMA.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/XPNotification-DOZFX3ET.js b/assets/XPNotification-DeYNvFkJ.js similarity index 91% rename from assets/XPNotification-DOZFX3ET.js rename to assets/XPNotification-DeYNvFkJ.js index 89428b71faf07a7742d1e7cd6d6597724953bdb8..8686ce35711dc44f710e556f9a31dcd0dd616ba8 100644 --- a/assets/XPNotification-DOZFX3ET.js +++ b/assets/XPNotification-DeYNvFkJ.js @@ -1 +1 @@ -import{r as l,j as e}from"./vendor-react-Dexh7fmo.js";import{e as n,m as r}from"./index-DGWrSMOK.js";import{S as c}from"./star-DqP0S0c5.js";import{S as m}from"./sparkles-DxmNHQEo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const v=({xp:i,message:a,show:t,onComplete:s})=>(l.useEffect(()=>{if(t){const o=setTimeout(()=>{s()},3e3);return()=>clearTimeout(o)}},[t,s]),e.jsx(n,{children:t&&e.jsx(r.div,{initial:{opacity:0,y:-50,scale:.8},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-20,scale:.9},className:"fixed top-8 left-1/2 -translate-x-1/2 z-50",children:e.jsxs("div",{className:"bg-gradient-to-r from-rose-400 via-orange-500 to-rose-500 text-white px-6 py-4 rounded-2xl shadow-2xl border-2 border-rose-300 flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"w-10 h-10 bg-white/20 rounded-xl flex items-center justify-center",children:e.jsx(c,{size:20,className:"text-white",fill:"currentColor"})}),e.jsx(r.div,{className:"absolute -top-1 -right-1",animate:{rotate:[0,360]},transition:{duration:2,repeat:1/0,ease:"linear"},children:e.jsx(m,{size:16,className:"text-rose-200"})})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold",children:a}),e.jsxs("p",{className:"text-2xl font-black",children:["+",i," XP"]})]})]})})}));export{v as default}; +import{r as l,j as e}from"./vendor-react-Dexh7fmo.js";import{e as n,m as r}from"./index-CmBdDSkw.js";import{S as c}from"./star-B7mp4xEi.js";import{S as m}from"./sparkles-D6B_TX7M.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const v=({xp:i,message:a,show:t,onComplete:s})=>(l.useEffect(()=>{if(t){const o=setTimeout(()=>{s()},3e3);return()=>clearTimeout(o)}},[t,s]),e.jsx(n,{children:t&&e.jsx(r.div,{initial:{opacity:0,y:-50,scale:.8},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-20,scale:.9},className:"fixed top-8 left-1/2 -translate-x-1/2 z-50",children:e.jsxs("div",{className:"bg-gradient-to-r from-rose-400 via-orange-500 to-rose-500 text-white px-6 py-4 rounded-2xl shadow-2xl border-2 border-rose-300 flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"w-10 h-10 bg-white/20 rounded-xl flex items-center justify-center",children:e.jsx(c,{size:20,className:"text-white",fill:"currentColor"})}),e.jsx(r.div,{className:"absolute -top-1 -right-1",animate:{rotate:[0,360]},transition:{duration:2,repeat:1/0,ease:"linear"},children:e.jsx(m,{size:16,className:"text-rose-200"})})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold",children:a}),e.jsxs("p",{className:"text-2xl font-black",children:["+",i," XP"]})]})]})})}));export{v as default}; diff --git a/assets/apiService-BuaHZ1Ho.js b/assets/apiService-ZZIWaV70.js similarity index 99% rename from assets/apiService-BuaHZ1Ho.js rename to assets/apiService-ZZIWaV70.js index dc5e97534e77b98eab7f3fe41b8fd8415737bce4..a9c83fb23aedc580791cb0320ebb1e6b51494551 100644 --- a/assets/apiService-BuaHZ1Ho.js +++ b/assets/apiService-ZZIWaV70.js @@ -1,4 +1,4 @@ -import{I as C}from"./index-DGWrSMOK.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const z=3e4,ce=3,le=1e3;class E extends Error{status;statusText;endpoint;responseBody;retryable;requestId;constructor(t){super(`API Error ${t.status} (${t.statusText}) on ${t.endpoint}: ${t.responseBody}`),this.name="ApiError",this.status=t.status,this.statusText=t.statusText,this.endpoint=t.endpoint,this.responseBody=t.responseBody,this.retryable=t.retryable,this.requestId=t.requestId}}class N extends Error{endpoint;timeoutMs;constructor(t,r){super(`Request to ${t} timed out after ${r}ms`),this.name="ApiTimeoutError",this.endpoint=t,this.timeoutMs=r}}class W extends Error{endpoint;originalError;constructor(t,r){super(`Network error on ${t}: ${r.message}`),this.name="ApiNetworkError",this.endpoint=t,this.originalError=r}}class g extends Error{endpoint;details;constructor(t,r){super(`Validation error before calling ${t}: ${r}`),this.name="ApiValidationError",this.endpoint=t,this.details=r}}const me=new Set([408,429,500,502,503,504]);function fe(e){return me.has(e)}function K(e){const t=`[API ${e.level.toUpperCase()}] ${e.timestamp} ${e.method} ${e.endpoint}`;switch(e.level){case"error":console.error(t,e.message,e.details??"");break;case"warn":console.warn(t,e.message,e.details??"");break;default:console.info(t,e.message,e.details??"")}}function I(e,t,r,s){K({timestamp:new Date().toISOString(),level:"info",endpoint:e,method:t,message:r,details:s})}function Y(e,t,r,s){K({timestamp:new Date().toISOString(),level:"warn",endpoint:e,method:t,message:r,details:s})}function f(e,t,r,s){K({timestamp:new Date().toISOString(),level:"error",endpoint:e,method:t,message:r,details:s})}function pe(e,t,r=z){const s=new AbortController,a=setTimeout(()=>s.abort(),r);return{promise:fetch(e,{...t,signal:s.signal}).finally(()=>clearTimeout(a)),abort:()=>s.abort()}}let he=e=>new Promise(t=>setTimeout(t,e));function ee(e){return he(e)}function ge(e,t=le){const r=t*Math.pow(2,e),s=Math.random()*t;return Math.min(r+s,3e4)}async function te(e,t={},r={}){const{maxRetries:s=ce,timeoutMs:a=z,baseBackoffMs:p=le}=r,d=(t.method??"GET").toUpperCase();let o;for(let n=0;n<=s;n++){const y=Date.now();try{n>0&&I(e,d,`Retry attempt ${n}/${s}`);const{promise:l}=pe(e,t,a),c=await l,S=Date.now()-y;if(c.ok)return I(e,d,`${c.status} in ${S}ms`,{attempt:n}),await c.json();const x=await c.text().catch(()=>"Unable to read response body"),R=fe(c.status),k=new E({status:c.status,statusText:c.statusText,endpoint:e,responseBody:x,retryable:R,requestId:c.headers.get("x-request-id")??void 0});if(f(e,d,`${c.status} ${c.statusText} in ${S}ms`,{attempt:n,responseBody:x.slice(0,500),retryable:R}),!R)throw k;if(c.status===429){const u=c.headers.get("retry-after");if(u){const P=parseInt(u,10);if(!isNaN(P)&&P>0){Y(e,d,`Rate limited. Waiting ${P}s (Retry-After header)`),await ee(P*1e3),o=k;continue}}}o=k}catch(l){const c=Date.now()-y;if(l instanceof E&&!l.retryable)throw l;if(l instanceof DOMException&&l.name==="AbortError"){const S=new N(e,a);f(e,d,`Timeout after ${c}ms`,{attempt:n,timeoutMs:a}),o=S}else if(l instanceof TypeError&&l.message.includes("fetch")){const S=new W(e,l);f(e,d,`Network error after ${c}ms: ${l.message}`,{attempt:n}),o=S}else l instanceof E?o=l:(o=l instanceof Error?l:new Error(String(l)),f(e,d,`Unexpected error: ${o.message}`,{attempt:n}))}if(ns==null||s==="").map(([s])=>s);if(r.length>0)throw new g(e,`Missing required fields: ${r.join(", ")}`)}function h(e,t,r,s,a){if(typeof r!="number"||isNaN(r)||ra)throw new g(e,`${t} must be a number between ${s} and ${a}, got ${r}`)}const F="https://deign86-mathpulse-api-v3test.hf.space",q=(e,t)=>t,de=(e,t)=>t,j=q(void 0,!0),re=q(void 0,!0),se=q(void 0,!0),ae=q(void 0,!0),ne=de(void 0,9e4),H=de(void 0,9e5);let Q=!0,ie=0;const ye=6e4,L={maxRetries:ce,timeoutMs:z,baseBackoffMs:1e3},A={...L,timeoutMs:6e4},we={...A,maxRetries:1,timeoutMs:45e3,baseBackoffMs:750},V={maxRetries:2,timeoutMs:12e4,baseBackoffMs:2e3},Se={maxRetries:0,timeoutMs:8e3,baseBackoffMs:500};let U=null;async function Be(){return U||(U=(async()=>{try{I("/health","GET","Warming up HuggingFace Space...");const e=new AbortController,t=setTimeout(()=>e.abort(),15e3),r=await fetch(`${F}/health`,{method:"GET",signal:e.signal});return clearTimeout(t),r.ok?(I("/health","GET","Backend warm and ready"),!0):(console.warn("[apiService] Backend health check returned",r.status),!1)}catch(e){return console.warn("[apiService] Backend warmup failed (cold start expected):",e),!1}})(),U)}async function i(e,t,r=L){const s=`${F}${e}`,a=t?.method??"GET";I(e,a,"Starting request");const p=async o=>{const n=new Headers(t?.headers??{});!(t?.body instanceof FormData)&&!n.has("Content-Type")&&n.set("Content-Type","application/json");const y=C.currentUser;if(y)try{const l=await y.getIdToken(o);l&&n.set("Authorization",`Bearer ${l}`)}catch(l){f(e,a,"Failed to acquire Firebase ID token",l)}return{...t,headers:n}};let d=await p(!1);try{const o=await te(s,d,r);return I(e,a,"Request succeeded"),o}catch(o){if(o instanceof E&&o.status===401&&C.currentUser)try{I(e,a,"401 received, refreshing Firebase token and retrying once"),d=await p(!0);const n=await te(s,d,r);return I(e,a,"Request succeeded after token refresh"),n}catch(n){throw n instanceof E?f(e,a,`HTTP ${n.status}: ${n.responseBody.slice(0,300)}`):n instanceof N?f(e,a,`Timeout after ${n.timeoutMs}ms`):n instanceof W?f(e,a,`Network error: ${n.originalError.message}`):f(e,a,`Unexpected: ${n instanceof Error?n.message:String(n)}`),n}throw o instanceof E?f(e,a,`HTTP ${o.status}: ${o.responseBody.slice(0,300)}`):o instanceof N?f(e,a,`Timeout after ${o.timeoutMs}ms`):o instanceof W?f(e,a,`Network error: ${o.originalError.message}`):f(e,a,`Unexpected: ${o instanceof Error?o.message:String(o)}`),o}}async function Te(e,t,r=z){const s=`${F}${e}`,a=t?.method??"GET";I(e,a,"Starting blob request");const p=async d=>{const o=new Headers(t?.headers??{}),n=C.currentUser;if(n)try{const c=await n.getIdToken(d);c&&o.set("Authorization",`Bearer ${c}`)}catch(c){f(e,a,"Failed to acquire Firebase ID token",c)}const y=new AbortController,l=setTimeout(()=>y.abort(),r);try{const c=await fetch(s,{...t,headers:o,signal:y.signal});if(!c.ok){const S=await c.text();throw new E({status:c.status,statusText:c.statusText||"Request Failed",endpoint:e,responseBody:S,retryable:c.status>=500||c.status===429})}return await c.blob()}finally{clearTimeout(l)}};try{return await p(!1)}catch(d){if(d instanceof E&&d.status===401&&C.currentUser)return I(e,a,"401 received for blob request, refreshing Firebase token and retrying once"),p(!0);throw d}}const be={response:"Sorry, the AI tutor is temporarily unavailable. Please try again in a moment."},Ie={riskLevel:"Medium",confidence:0,analysis:{labels:[],scores:[]},risk_level:"medium",risk_score:0,top_factors:["Fallback risk response due to temporary service unavailability"]},Ee={learningPath:"Unable to generate a learning path right now. Please try again later."},ke={insight:"Daily insight is temporarily unavailable. Please refresh later."},Ae={expression:"",result:"Error: calculation service unavailable",steps:[],simplified:null,latex:null};function Oe(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.riskLevel=="string"&&typeof t.confidence=="number"}function oe(e){if(typeof e!="object"||e===null)return!1;const t=e;return Array.isArray(t.questions)&&typeof t.totalPoints=="number"}const ve=e=>new Promise(t=>setTimeout(t,e));function Re(e){if(!e)return"Generation task failed without a detailed error.";if(typeof e=="string")return e;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return t.message;try{return JSON.stringify(t)}catch{return"Generation task failed due to an unknown error."}}return String(e)}const b={getImportGroundedRolloutFlags(){return{quizEnabled:j,lessonEnabled:re,feedbackEnabled:se}},async reportImportGroundedFeedback(e){return se?i("/api/feedback/import-grounded",{method:"POST",body:JSON.stringify(e)}):{success:!0,stored:!1,warnings:["Import-grounded feedback events are disabled by frontend rollout flag."]}},async health(){return i("/health",void 0,{...L,timeoutMs:1e4})},async chat(e,t,r,s){m("/api/chat",{message:e});const a={message:e,history:t??[],...s?.expectedEndMarker?{expectedEndMarker:s.expectedEndMarker}:{},...s?.completionMode?{completionMode:s.completionMode}:{},...typeof s?.continuationMaxRounds=="number"?{continuationMaxRounds:Math.max(0,Math.floor(s.continuationMaxRounds))}:{}};if(r){const d=new AbortController;let o=null,n=null,y=null;const l=u=>{o||(o=u,d.abort())},c=()=>{n&&(clearTimeout(n),n=null),y&&(clearTimeout(y),y=null)},S=()=>{n&&clearTimeout(n),n=setTimeout(()=>l("idle"),ne)};y=setTimeout(()=>l("total"),H);const x=new Headers({"Content-Type":"application/json"}),R=C.currentUser;if(R)try{const u=await R.getIdToken(!1);u&&x.set("Authorization",`Bearer ${u}`)}catch(u){f("/api/chat/stream","POST","Failed to acquire Firebase ID token",u)}let k=null;try{S();const u=await fetch(`${F}/api/chat/stream`,{method:"POST",headers:x,body:JSON.stringify(a),signal:d.signal});if(!u.ok||!u.body){const $=await u.text().catch(()=>"Unable to read response body");throw new Error(`Streaming request failed (${u.status}): ${$.slice(0,300)}`)}k=u.body.getReader();const P=new TextDecoder;let O="",J="",X=!1;const G=$=>{const v=$.indexOf(` +import{I as C}from"./index-CmBdDSkw.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-firebase-firestore-CkuVbeP5.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const z=3e4,ce=3,le=1e3;class E extends Error{status;statusText;endpoint;responseBody;retryable;requestId;constructor(t){super(`API Error ${t.status} (${t.statusText}) on ${t.endpoint}: ${t.responseBody}`),this.name="ApiError",this.status=t.status,this.statusText=t.statusText,this.endpoint=t.endpoint,this.responseBody=t.responseBody,this.retryable=t.retryable,this.requestId=t.requestId}}class N extends Error{endpoint;timeoutMs;constructor(t,r){super(`Request to ${t} timed out after ${r}ms`),this.name="ApiTimeoutError",this.endpoint=t,this.timeoutMs=r}}class W extends Error{endpoint;originalError;constructor(t,r){super(`Network error on ${t}: ${r.message}`),this.name="ApiNetworkError",this.endpoint=t,this.originalError=r}}class g extends Error{endpoint;details;constructor(t,r){super(`Validation error before calling ${t}: ${r}`),this.name="ApiValidationError",this.endpoint=t,this.details=r}}const me=new Set([408,429,500,502,503,504]);function fe(e){return me.has(e)}function K(e){const t=`[API ${e.level.toUpperCase()}] ${e.timestamp} ${e.method} ${e.endpoint}`;switch(e.level){case"error":console.error(t,e.message,e.details??"");break;case"warn":console.warn(t,e.message,e.details??"");break;default:console.info(t,e.message,e.details??"")}}function I(e,t,r,s){K({timestamp:new Date().toISOString(),level:"info",endpoint:e,method:t,message:r,details:s})}function Y(e,t,r,s){K({timestamp:new Date().toISOString(),level:"warn",endpoint:e,method:t,message:r,details:s})}function f(e,t,r,s){K({timestamp:new Date().toISOString(),level:"error",endpoint:e,method:t,message:r,details:s})}function pe(e,t,r=z){const s=new AbortController,a=setTimeout(()=>s.abort(),r);return{promise:fetch(e,{...t,signal:s.signal}).finally(()=>clearTimeout(a)),abort:()=>s.abort()}}let he=e=>new Promise(t=>setTimeout(t,e));function ee(e){return he(e)}function ge(e,t=le){const r=t*Math.pow(2,e),s=Math.random()*t;return Math.min(r+s,3e4)}async function te(e,t={},r={}){const{maxRetries:s=ce,timeoutMs:a=z,baseBackoffMs:p=le}=r,d=(t.method??"GET").toUpperCase();let o;for(let n=0;n<=s;n++){const y=Date.now();try{n>0&&I(e,d,`Retry attempt ${n}/${s}`);const{promise:l}=pe(e,t,a),c=await l,S=Date.now()-y;if(c.ok)return I(e,d,`${c.status} in ${S}ms`,{attempt:n}),await c.json();const x=await c.text().catch(()=>"Unable to read response body"),R=fe(c.status),k=new E({status:c.status,statusText:c.statusText,endpoint:e,responseBody:x,retryable:R,requestId:c.headers.get("x-request-id")??void 0});if(f(e,d,`${c.status} ${c.statusText} in ${S}ms`,{attempt:n,responseBody:x.slice(0,500),retryable:R}),!R)throw k;if(c.status===429){const u=c.headers.get("retry-after");if(u){const P=parseInt(u,10);if(!isNaN(P)&&P>0){Y(e,d,`Rate limited. Waiting ${P}s (Retry-After header)`),await ee(P*1e3),o=k;continue}}}o=k}catch(l){const c=Date.now()-y;if(l instanceof E&&!l.retryable)throw l;if(l instanceof DOMException&&l.name==="AbortError"){const S=new N(e,a);f(e,d,`Timeout after ${c}ms`,{attempt:n,timeoutMs:a}),o=S}else if(l instanceof TypeError&&l.message.includes("fetch")){const S=new W(e,l);f(e,d,`Network error after ${c}ms: ${l.message}`,{attempt:n}),o=S}else l instanceof E?o=l:(o=l instanceof Error?l:new Error(String(l)),f(e,d,`Unexpected error: ${o.message}`,{attempt:n}))}if(ns==null||s==="").map(([s])=>s);if(r.length>0)throw new g(e,`Missing required fields: ${r.join(", ")}`)}function h(e,t,r,s,a){if(typeof r!="number"||isNaN(r)||ra)throw new g(e,`${t} must be a number between ${s} and ${a}, got ${r}`)}const F="https://deign86-mathpulse-api-v3test.hf.space",q=(e,t)=>t,de=(e,t)=>t,j=q(void 0,!0),re=q(void 0,!0),se=q(void 0,!0),ae=q(void 0,!0),ne=de(void 0,9e4),H=de(void 0,9e5);let Q=!0,ie=0;const ye=6e4,L={maxRetries:ce,timeoutMs:z,baseBackoffMs:1e3},A={...L,timeoutMs:6e4},we={...A,maxRetries:1,timeoutMs:45e3,baseBackoffMs:750},V={maxRetries:2,timeoutMs:12e4,baseBackoffMs:2e3},Se={maxRetries:0,timeoutMs:8e3,baseBackoffMs:500};let U=null;async function Be(){return U||(U=(async()=>{try{I("/health","GET","Warming up HuggingFace Space...");const e=new AbortController,t=setTimeout(()=>e.abort(),15e3),r=await fetch(`${F}/health`,{method:"GET",signal:e.signal});return clearTimeout(t),r.ok?(I("/health","GET","Backend warm and ready"),!0):(console.warn("[apiService] Backend health check returned",r.status),!1)}catch(e){return console.warn("[apiService] Backend warmup failed (cold start expected):",e),!1}})(),U)}async function i(e,t,r=L){const s=`${F}${e}`,a=t?.method??"GET";I(e,a,"Starting request");const p=async o=>{const n=new Headers(t?.headers??{});!(t?.body instanceof FormData)&&!n.has("Content-Type")&&n.set("Content-Type","application/json");const y=C.currentUser;if(y)try{const l=await y.getIdToken(o);l&&n.set("Authorization",`Bearer ${l}`)}catch(l){f(e,a,"Failed to acquire Firebase ID token",l)}return{...t,headers:n}};let d=await p(!1);try{const o=await te(s,d,r);return I(e,a,"Request succeeded"),o}catch(o){if(o instanceof E&&o.status===401&&C.currentUser)try{I(e,a,"401 received, refreshing Firebase token and retrying once"),d=await p(!0);const n=await te(s,d,r);return I(e,a,"Request succeeded after token refresh"),n}catch(n){throw n instanceof E?f(e,a,`HTTP ${n.status}: ${n.responseBody.slice(0,300)}`):n instanceof N?f(e,a,`Timeout after ${n.timeoutMs}ms`):n instanceof W?f(e,a,`Network error: ${n.originalError.message}`):f(e,a,`Unexpected: ${n instanceof Error?n.message:String(n)}`),n}throw o instanceof E?f(e,a,`HTTP ${o.status}: ${o.responseBody.slice(0,300)}`):o instanceof N?f(e,a,`Timeout after ${o.timeoutMs}ms`):o instanceof W?f(e,a,`Network error: ${o.originalError.message}`):f(e,a,`Unexpected: ${o instanceof Error?o.message:String(o)}`),o}}async function Te(e,t,r=z){const s=`${F}${e}`,a=t?.method??"GET";I(e,a,"Starting blob request");const p=async d=>{const o=new Headers(t?.headers??{}),n=C.currentUser;if(n)try{const c=await n.getIdToken(d);c&&o.set("Authorization",`Bearer ${c}`)}catch(c){f(e,a,"Failed to acquire Firebase ID token",c)}const y=new AbortController,l=setTimeout(()=>y.abort(),r);try{const c=await fetch(s,{...t,headers:o,signal:y.signal});if(!c.ok){const S=await c.text();throw new E({status:c.status,statusText:c.statusText||"Request Failed",endpoint:e,responseBody:S,retryable:c.status>=500||c.status===429})}return await c.blob()}finally{clearTimeout(l)}};try{return await p(!1)}catch(d){if(d instanceof E&&d.status===401&&C.currentUser)return I(e,a,"401 received for blob request, refreshing Firebase token and retrying once"),p(!0);throw d}}const be={response:"Sorry, the AI tutor is temporarily unavailable. Please try again in a moment."},Ie={riskLevel:"Medium",confidence:0,analysis:{labels:[],scores:[]},risk_level:"medium",risk_score:0,top_factors:["Fallback risk response due to temporary service unavailability"]},Ee={learningPath:"Unable to generate a learning path right now. Please try again later."},ke={insight:"Daily insight is temporarily unavailable. Please refresh later."},Ae={expression:"",result:"Error: calculation service unavailable",steps:[],simplified:null,latex:null};function Oe(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.riskLevel=="string"&&typeof t.confidence=="number"}function oe(e){if(typeof e!="object"||e===null)return!1;const t=e;return Array.isArray(t.questions)&&typeof t.totalPoints=="number"}const ve=e=>new Promise(t=>setTimeout(t,e));function Re(e){if(!e)return"Generation task failed without a detailed error.";if(typeof e=="string")return e;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return t.message;try{return JSON.stringify(t)}catch{return"Generation task failed due to an unknown error."}}return String(e)}const b={getImportGroundedRolloutFlags(){return{quizEnabled:j,lessonEnabled:re,feedbackEnabled:se}},async reportImportGroundedFeedback(e){return se?i("/api/feedback/import-grounded",{method:"POST",body:JSON.stringify(e)}):{success:!0,stored:!1,warnings:["Import-grounded feedback events are disabled by frontend rollout flag."]}},async health(){return i("/health",void 0,{...L,timeoutMs:1e4})},async chat(e,t,r,s){m("/api/chat",{message:e});const a={message:e,history:t??[],...s?.expectedEndMarker?{expectedEndMarker:s.expectedEndMarker}:{},...s?.completionMode?{completionMode:s.completionMode}:{},...typeof s?.continuationMaxRounds=="number"?{continuationMaxRounds:Math.max(0,Math.floor(s.continuationMaxRounds))}:{}};if(r){const d=new AbortController;let o=null,n=null,y=null;const l=u=>{o||(o=u,d.abort())},c=()=>{n&&(clearTimeout(n),n=null),y&&(clearTimeout(y),y=null)},S=()=>{n&&clearTimeout(n),n=setTimeout(()=>l("idle"),ne)};y=setTimeout(()=>l("total"),H);const x=new Headers({"Content-Type":"application/json"}),R=C.currentUser;if(R)try{const u=await R.getIdToken(!1);u&&x.set("Authorization",`Bearer ${u}`)}catch(u){f("/api/chat/stream","POST","Failed to acquire Firebase ID token",u)}let k=null;try{S();const u=await fetch(`${F}/api/chat/stream`,{method:"POST",headers:x,body:JSON.stringify(a),signal:d.signal});if(!u.ok||!u.body){const $=await u.text().catch(()=>"Unable to read response body");throw new Error(`Streaming request failed (${u.status}): ${$.slice(0,300)}`)}k=u.body.getReader();const P=new TextDecoder;let O="",J="",X=!1;const G=$=>{const v=$.indexOf(` `),T=$.indexOf(`\r \r diff --git a/assets/automationService-1THdsq3v.js b/assets/automationService-IMphlGK7.js similarity index 91% rename from assets/automationService-1THdsq3v.js rename to assets/automationService-IMphlGK7.js index ee2ac9d6437db19a9bfb329bcc50e54ea4cfcd34..eadb3c339ae4000f046a7c43e0ae6ac7ed108dfe 100644 --- a/assets/automationService-1THdsq3v.js +++ b/assets/automationService-IMphlGK7.js @@ -1 +1 @@ -import{k as p,e as r,q as w,w as h,h as z,m as Q,a as i,s as I,d as b,u as A}from"./vendor-firebase-firestore-CkuVbeP5.js";import{d as s,N as a,O as $}from"./index-DGWrSMOK.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";async function k(e){if(!e)return 0;const n=r(s,"deepDiagnosticAssignments"),c=w(n,h("lrn","==",e));return(await z(c)).docs.filter(o=>{const t=o.data().status;return t==="pending"||t==="queued"||t==="in_progress"||t==="expired"}).length}async function T(e,n,c="Grade 11",u,o="iar_only",t="initial_assessment"){if(t==="followup_diagnostic"){const D=r(s,"deepDiagnosticAssignments"),C=w(D,h("lrn","==",e)),d=await z(C);if(!d.empty){const m=Q(s);let g=!1;for(const l of d.docs){const f=l.data().status;(f==="pending"||f==="queued")&&(m.update(l.ref,{status:"in_progress",startedAt:i()}),g=!0)}g&&await m.commit()}}return await I(b(s,"diagnosticResults",e),{lrn:e,results:n,gradeLevel:c,workflowMode:o,assessmentType:t,questionBreakdown:u||null,completedAt:i(),processed:!1,processing:!1}),{success:!0,event:"diagnostic_completed",lrn:e,message:`Diagnostic submitted for ${e}. Processing will begin automatically.`,remedialQuizzesCreated:0,notifications:["Your diagnostic results are being processed. Check back shortly!"]}}async function B(e){return await p(r(s,"quizResults"),{lrn:e.lrn,quizId:e.quizId,subject:e.subject,score:e.score,totalQuestions:e.totalQuestions,correctAnswers:e.correctAnswers,timeSpentSeconds:e.timeSpentSeconds,answers:e.answers||null,submittedAt:i()}),{success:!0,event:"quiz_submitted",lrn:e.lrn,message:`Quiz submitted for ${e.lrn}. Risk recalculation will run automatically.`,remedialQuizzesCreated:0,notifications:[`Quiz result recorded for ${e.subject}.`]}}async function M(e){return await $(e.lrn),await a(e.lrn,"reminder","Welcome to MathPulse AI!","Complete your diagnostic assessment to get started with personalised learning."),e.teacherId&&await a(e.teacherId,"message","New Student Enrolled",`${e.name} has joined. Diagnostic assessment is pending.`),{success:!0,event:"student_enrolled",lrn:e.lrn,message:`Student ${e.name} enrolled and initialised`,remedialQuizzesCreated:0,notifications:[`Welcome ${e.name}! Please complete the diagnostic assessment.`]}}async function N(e){return await p(r(s,"dataImports"),{teacherId:e.teacherId,studentCount:e.students.length,columnMapping:e.columnMapping,importedAt:i(),processed:!1}),await a(e.teacherId,"message","Data Import Processed",`Data import complete — ${e.students.length} student records processed.`),{success:!0,event:"data_imported",message:`Data import processed for ${e.students.length} students`,remedialQuizzesCreated:0,notifications:[`Data import complete — ${e.students.length} student records processed.`]}}async function U(e){const n=b(s,"curriculumContent",e.contentId);return e.action==="delete"?await A(n,{deleted:!0,deletedBy:e.adminId,deletedAt:i(),contentType:e.contentType,subjectId:e.subjectId||null}):await I(n,{contentType:e.contentType,subjectId:e.subjectId||null,details:e.details||null,updatedBy:e.adminId,action:e.action,updatedAt:i()},{merge:!0}),{success:!0,event:"content_updated",message:`Content ${e.action} processed for ${e.contentType}`,remedialQuizzesCreated:0,notifications:[]}}export{k as getPendingDeepDiagnosticCount,U as triggerContentUpdated,N as triggerDataImported,T as triggerDiagnosticCompleted,B as triggerQuizSubmitted,M as triggerStudentEnrolled}; +import{k as p,e as r,q as w,w as h,h as z,m as Q,a as i,s as I,d as b,u as A}from"./vendor-firebase-firestore-CkuVbeP5.js";import{d as s,O as a,P as $}from"./index-CmBdDSkw.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";async function k(e){if(!e)return 0;const n=r(s,"deepDiagnosticAssignments"),c=w(n,h("lrn","==",e));return(await z(c)).docs.filter(o=>{const t=o.data().status;return t==="pending"||t==="queued"||t==="in_progress"||t==="expired"}).length}async function T(e,n,c="Grade 11",u,o="iar_only",t="initial_assessment"){if(t==="followup_diagnostic"){const D=r(s,"deepDiagnosticAssignments"),C=w(D,h("lrn","==",e)),d=await z(C);if(!d.empty){const m=Q(s);let g=!1;for(const l of d.docs){const f=l.data().status;(f==="pending"||f==="queued")&&(m.update(l.ref,{status:"in_progress",startedAt:i()}),g=!0)}g&&await m.commit()}}return await I(b(s,"diagnosticResults",e),{lrn:e,results:n,gradeLevel:c,workflowMode:o,assessmentType:t,questionBreakdown:u||null,completedAt:i(),processed:!1,processing:!1}),{success:!0,event:"diagnostic_completed",lrn:e,message:`Diagnostic submitted for ${e}. Processing will begin automatically.`,remedialQuizzesCreated:0,notifications:["Your diagnostic results are being processed. Check back shortly!"]}}async function B(e){return await p(r(s,"quizResults"),{lrn:e.lrn,quizId:e.quizId,subject:e.subject,score:e.score,totalQuestions:e.totalQuestions,correctAnswers:e.correctAnswers,timeSpentSeconds:e.timeSpentSeconds,answers:e.answers||null,submittedAt:i()}),{success:!0,event:"quiz_submitted",lrn:e.lrn,message:`Quiz submitted for ${e.lrn}. Risk recalculation will run automatically.`,remedialQuizzesCreated:0,notifications:[`Quiz result recorded for ${e.subject}.`]}}async function M(e){return await $(e.lrn),await a(e.lrn,"reminder","Welcome to MathPulse AI!","Complete your diagnostic assessment to get started with personalised learning."),e.teacherId&&await a(e.teacherId,"message","New Student Enrolled",`${e.name} has joined. Diagnostic assessment is pending.`),{success:!0,event:"student_enrolled",lrn:e.lrn,message:`Student ${e.name} enrolled and initialised`,remedialQuizzesCreated:0,notifications:[`Welcome ${e.name}! Please complete the diagnostic assessment.`]}}async function U(e){return await p(r(s,"dataImports"),{teacherId:e.teacherId,studentCount:e.students.length,columnMapping:e.columnMapping,importedAt:i(),processed:!1}),await a(e.teacherId,"message","Data Import Processed",`Data import complete — ${e.students.length} student records processed.`),{success:!0,event:"data_imported",message:`Data import processed for ${e.students.length} students`,remedialQuizzesCreated:0,notifications:[`Data import complete — ${e.students.length} student records processed.`]}}async function x(e){const n=b(s,"curriculumContent",e.contentId);return e.action==="delete"?await A(n,{deleted:!0,deletedBy:e.adminId,deletedAt:i(),contentType:e.contentType,subjectId:e.subjectId||null}):await I(n,{contentType:e.contentType,subjectId:e.subjectId||null,details:e.details||null,updatedBy:e.adminId,action:e.action,updatedAt:i()},{merge:!0}),{success:!0,event:"content_updated",message:`Content ${e.action} processed for ${e.contentType}`,remedialQuizzesCreated:0,notifications:[]}}export{k as getPendingDeepDiagnosticCount,x as triggerContentUpdated,U as triggerDataImported,T as triggerDiagnosticCompleted,B as triggerQuizSubmitted,M as triggerStudentEnrolled}; diff --git a/assets/avatarData-DykDiQ_Y.js b/assets/avatarData-BW_TX0b4.js similarity index 97% rename from assets/avatarData-DykDiQ_Y.js rename to assets/avatarData-BW_TX0b4.js index 673148df5c5f1a8aac1e4407e433f807e3c77798..7a9947ded1e01e55b1195ce68dc8a760c22b8902 100644 --- a/assets/avatarData-DykDiQ_Y.js +++ b/assets/avatarData-BW_TX0b4.js @@ -1 +1 @@ -const r=[{id:"top_blue",name:"Blue Uniform",category:"top",src:"/avatar/uniform_blue.png",thumbnail:"/avatar/uniform_blue_thumbnail.png",price:0},{id:"top_pink",name:"Pink Uniform",category:"top",src:"/avatar/uniform_pink.png",thumbnail:"/avatar/uniform_pink_thumbnail.png",price:200},{id:"bot_black",name:"Black Pants",category:"bottom",src:"/avatar/pants_black.png",thumbnail:"/avatar/pants_black_thumbnail.png",price:0},{id:"shoe_black",name:"Black Shoes",category:"shoes",src:"/avatar/shoes_black.png",thumbnail:"/avatar/shoes_black_thumbnail.png",price:0},{id:"acc_leaf_clip",name:"Leaf Clip",category:"accessory",src:"/avatar/leaf_clip.png",thumbnail:"/avatar/leaf_clip_thumbnail.png",price:0},{id:"acc_blue_cap",name:"Blue Cap",category:"accessory",src:"/avatar/blue_cap.png",thumbnail:"/avatar/blue_cap_thumbnail.png",price:250},{id:"acc_red_cap",name:"Red Cap",category:"accessory",src:"/avatar/red_cap.png",thumbnail:"/avatar/red_cap_thumbnail.png",price:250},{id:"acc_traffic_cone",name:"Traffic Cone",category:"accessory",src:"/avatar/traffic_cone.png",thumbnail:"/avatar/traffic_cone_thumbnail.png",price:500},{id:"acc_crown",name:"Crown",category:"accessory",src:"/avatar/crown.png",thumbnail:"/avatar/crown_thumbnail.png",price:1e3}],n=a=>{if(a)return r.find(c=>c.id===a)?.src};export{n as g}; +const r=[{id:"top_blue",name:"Blue Uniform",category:"top",src:"/avatar/uniform_blue.png",thumbnail:"/avatar/uniform_blue_thumbnail.png",price:0},{id:"top_pink",name:"Pink Uniform",category:"top",src:"/avatar/uniform_pink.png",thumbnail:"/avatar/uniform_pink_thumbnail.png",price:200},{id:"bot_black",name:"Black Pants",category:"bottom",src:"/avatar/pants_black.png",thumbnail:"/avatar/pants_black_thumbnail.png",price:0},{id:"shoe_black",name:"Black Shoes",category:"shoes",src:"/avatar/shoes_black.png",thumbnail:"/avatar/shoes_black_thumbnail.png",price:0},{id:"acc_leaf_clip",name:"Leaf Clip",category:"accessory",src:"/avatar/leaf_clip.png",thumbnail:"/avatar/leaf_clip_thumbnail.png",price:0},{id:"acc_blue_cap",name:"Blue Cap",category:"accessory",src:"/avatar/blue_cap.png",thumbnail:"/avatar/blue_cap_thumbnail.png",price:250},{id:"acc_red_cap",name:"Red Cap",category:"accessory",src:"/avatar/red_cap.png",thumbnail:"/avatar/red_cap_thumbnail.png",price:250},{id:"acc_traffic_cone",name:"Traffic Cone",category:"accessory",src:"/avatar/traffic_cone.png",thumbnail:"/avatar/traffic_cone_thumbnail.png",price:500},{id:"acc_crown",name:"Crown",category:"accessory",src:"/avatar/crown.png",thumbnail:"/avatar/crown_thumbnail.png",price:1e3}],n=a=>{if(a)return r.find(c=>c.id===a)?.src};export{r as M,n as g}; diff --git a/assets/award-DpLN2BvV.js b/assets/award-COlS18fi.js similarity index 91% rename from assets/award-DpLN2BvV.js rename to assets/award-COlS18fi.js index 973a6c38bff1109d3beca0d22ee456de45f549dd..2b66f81dc5d595d81edc7f688febf12bd8276fa4 100644 --- a/assets/award-DpLN2BvV.js +++ b/assets/award-COlS18fi.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/bell-DeNrtKrI.js b/assets/bell-B1VXtbbh.js similarity index 90% rename from assets/bell-DeNrtKrI.js rename to assets/bell-B1VXtbbh.js index a22de1e1cb7049488eb3d27c636727ff3a2bda15..3c7a4497d8b44d93a3b172f7c017df29dcd8e497 100644 --- a/assets/bell-DeNrtKrI.js +++ b/assets/bell-B1VXtbbh.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/book-open-B5Xvd1JL.js b/assets/book-open-BH_yilLK.js similarity index 90% rename from assets/book-open-B5Xvd1JL.js rename to assets/book-open-BH_yilLK.js index e0237b41e44b17fa0496ecad4c254a9cde58c0ab..be3cfa0b048aa72d8d3fd216a730424c64d49e57 100644 --- a/assets/book-open-B5Xvd1JL.js +++ b/assets/book-open-BH_yilLK.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/brain-DHmY5cbv.js b/assets/brain-DfMjTiNx.js similarity index 95% rename from assets/brain-DHmY5cbv.js rename to assets/brain-DfMjTiNx.js index e9eb80e2b34e0e0f6b9bbc56029c8411aa4d76bf..977e9a7acc514e3a76d2c8f3d867d7cdfe1c44df 100644 --- a/assets/brain-DHmY5cbv.js +++ b/assets/brain-DfMjTiNx.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/button-DWdPuxDU.js b/assets/button-BP5cklmU.js similarity index 97% rename from assets/button-DWdPuxDU.js rename to assets/button-BP5cklmU.js index 35d453f86e867aa9ff9ce039fc2da031f699cf7e..1a1b0e6f81213093f18f65a14c8ee494237172cb 100644 --- a/assets/button-DWdPuxDU.js +++ b/assets/button-BP5cklmU.js @@ -1 +1 @@ -import{j as y}from"./vendor-react-Dexh7fmo.js";import{w as k}from"./vendor-radix-B-ht8aK0.js";import{c as V}from"./clsx-B-dksMZM.js";import{c as p}from"./utils-BQQgILNW.js";const g=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,m=V,j=(n,r)=>e=>{var o;if(r?.variants==null)return m(n,e?.class,e?.className);const{variants:u,defaultVariants:i}=r,b=Object.keys(u).map(t=>{const a=e?.[t],d=i?.[t];if(a===null)return null;const s=g(a)||g(d);return u[t][s]}),v=e&&Object.entries(e).reduce((t,a)=>{let[d,s]=a;return s===void 0||(t[d]=s),t},{}),f=r==null||(o=r.compoundVariants)===null||o===void 0?void 0:o.reduce((t,a)=>{let{class:d,className:s,...h}=a;return Object.entries(h).every(x=>{let[c,l]=x;return Array.isArray(l)?l.includes({...i,...v}[c]):{...i,...v}[c]===l})?[...t,d,s]:t},[]);return m(n,b,f,e?.class,e?.className)},N=j("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function O({className:n,variant:r,size:e,asChild:o=!1,...u}){const i=o?k:"button";return y.jsx(i,{"data-slot":"button",className:p(N({variant:r,size:e,className:n})),...u})}export{O as B}; +import{j as y}from"./vendor-react-Dexh7fmo.js";import{w as k}from"./vendor-radix-CxzAJozq.js";import{c as V}from"./clsx-B-dksMZM.js";import{c as p}from"./utils-BQQgILNW.js";const g=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,m=V,j=(n,r)=>e=>{var o;if(r?.variants==null)return m(n,e?.class,e?.className);const{variants:u,defaultVariants:i}=r,b=Object.keys(u).map(t=>{const a=e?.[t],d=i?.[t];if(a===null)return null;const s=g(a)||g(d);return u[t][s]}),v=e&&Object.entries(e).reduce((t,a)=>{let[d,s]=a;return s===void 0||(t[d]=s),t},{}),f=r==null||(o=r.compoundVariants)===null||o===void 0?void 0:o.reduce((t,a)=>{let{class:d,className:s,...h}=a;return Object.entries(h).every(x=>{let[c,l]=x;return Array.isArray(l)?l.includes({...i,...v}[c]):{...i,...v}[c]===l})?[...t,d,s]:t},[]);return m(n,b,f,e?.class,e?.className)},N=j("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function O({className:n,variant:r,size:e,asChild:o=!1,...u}){const i=o?k:"button";return y.jsx(i,{"data-slot":"button",className:p(N({variant:r,size:e,className:n})),...u})}export{O as B}; diff --git a/assets/calendar-19p2TrVX.js b/assets/calendar-CP-HCx1y.js similarity index 89% rename from assets/calendar-19p2TrVX.js rename to assets/calendar-CP-HCx1y.js index aa2b16e0b1863f50130c89da127c4652f501d8bf..abbb7ded341b1f3d652ab4c1aac48f576bab93dd 100644 --- a/assets/calendar-19p2TrVX.js +++ b/assets/calendar-CP-HCx1y.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/chart-column-CJzwyNMx.js b/assets/chart-column-DzJCKCOe.js similarity index 89% rename from assets/chart-column-CJzwyNMx.js rename to assets/chart-column-DzJCKCOe.js index 080283745511ca5d176f1ea983b4d9d3d90f638d..8da012e51bcdf92a9d7598ccdb63e9e4443ef80b 100644 --- a/assets/chart-column-CJzwyNMx.js +++ b/assets/chart-column-DzJCKCOe.js @@ -1,4 +1,4 @@ -import{c as t}from"./index-DGWrSMOK.js";/** +import{c as t}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/chatService-tsfogjaC.js b/assets/chatService-D8LuvWux.js similarity index 97% rename from assets/chatService-tsfogjaC.js rename to assets/chatService-D8LuvWux.js index 770dc869de269d789457d46115f9da64c2255ea9..c0dce52ecac9a87820e4b3670d2a90f72df9ed28 100644 --- a/assets/chatService-tsfogjaC.js +++ b/assets/chatService-D8LuvWux.js @@ -1 +1 @@ -import{d as c,e as d,b as g,a as i,s as w,u as p,q as l,w as u,o as y,h as A}from"./vendor-firebase-firestore-CkuVbeP5.js";import{d as o}from"./index-DGWrSMOK.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const C=async(s,t="New Conversation")=>{try{const e=c(d(o,"chatSessions")),r={id:e.id,userId:s,title:t,messages:[],createdAt:new Date,updatedAt:new Date,isActive:!0};return await w(e,{...r,createdAt:i(),updatedAt:i()}),r}catch(e){throw console.error("Error creating chat session:",e),e}},M=async s=>{try{const t=l(d(o,"chatSessions"),u("userId","==",s),u("isActive","==",!0),y("updatedAt","desc"));return(await A(t)).docs.map(r=>{const a=r.data();return{...a,createdAt:a.createdAt?.toDate()||new Date,updatedAt:a.updatedAt?.toDate()||new Date}})}catch(t){return console.error("Error getting chat sessions:",t),[]}},T=async s=>{try{const t=await g(c(o,"chatSessions",s));if(t.exists()){const e=t.data();return{...e,createdAt:e.createdAt?.toDate()||new Date,updatedAt:e.updatedAt?.toDate()||new Date}}return null}catch(t){return console.error("Error getting chat session:",t),null}},b=async(s,t,e,r)=>{try{const a=c(d(o,"chatMessages")),n={id:a.id,userId:"",role:t,content:e,timestamp:new Date,...r?{context:r}:{}},h=await g(c(o,"chatSessions",s));h.exists()&&(n.userId=h.data().userId);const m={id:n.id,userId:n.userId,role:n.role,content:n.content,sessionId:s,timestamp:i()};return n.context&&(m.context=n.context),await w(a,m),await p(c(o,"chatSessions",s),{updatedAt:i()}),n}catch(a){throw console.error("Error adding message:",a),a}},q=async s=>{try{const t=l(d(o,"chatMessages"),u("sessionId","==",s),y("timestamp","asc"));return(await A(t)).docs.map(r=>{const a=r.data();return{...a,timestamp:a.timestamp?.toDate()||new Date}})}catch(t){return console.error("Error getting session messages:",t),[]}},Q=async(s,t)=>{try{await p(c(o,"chatSessions",s),{title:t,updatedAt:i()})}catch(e){throw console.error("Error updating session title:",e),e}},R=async s=>{try{await p(c(o,"chatSessions",s),{isActive:!1,updatedAt:i()})}catch(t){throw console.error("Error deleting session:",t),t}};export{b as addMessageToSession,C as createChatSession,R as deleteSession,T as getChatSession,q as getSessionMessages,M as getUserChatSessions,Q as updateSessionTitle}; +import{d as c,e as d,b as g,a as i,s as w,u as p,q as l,w as u,o as y,h as A}from"./vendor-firebase-firestore-CkuVbeP5.js";import{d as o}from"./index-CmBdDSkw.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const C=async(s,t="New Conversation")=>{try{const e=c(d(o,"chatSessions")),r={id:e.id,userId:s,title:t,messages:[],createdAt:new Date,updatedAt:new Date,isActive:!0};return await w(e,{...r,createdAt:i(),updatedAt:i()}),r}catch(e){throw console.error("Error creating chat session:",e),e}},M=async s=>{try{const t=l(d(o,"chatSessions"),u("userId","==",s),u("isActive","==",!0),y("updatedAt","desc"));return(await A(t)).docs.map(r=>{const a=r.data();return{...a,createdAt:a.createdAt?.toDate()||new Date,updatedAt:a.updatedAt?.toDate()||new Date}})}catch(t){return console.error("Error getting chat sessions:",t),[]}},T=async s=>{try{const t=await g(c(o,"chatSessions",s));if(t.exists()){const e=t.data();return{...e,createdAt:e.createdAt?.toDate()||new Date,updatedAt:e.updatedAt?.toDate()||new Date}}return null}catch(t){return console.error("Error getting chat session:",t),null}},b=async(s,t,e,r)=>{try{const a=c(d(o,"chatMessages")),n={id:a.id,userId:"",role:t,content:e,timestamp:new Date,...r?{context:r}:{}},h=await g(c(o,"chatSessions",s));h.exists()&&(n.userId=h.data().userId);const m={id:n.id,userId:n.userId,role:n.role,content:n.content,sessionId:s,timestamp:i()};return n.context&&(m.context=n.context),await w(a,m),await p(c(o,"chatSessions",s),{updatedAt:i()}),n}catch(a){throw console.error("Error adding message:",a),a}},q=async s=>{try{const t=l(d(o,"chatMessages"),u("sessionId","==",s),y("timestamp","asc"));return(await A(t)).docs.map(r=>{const a=r.data();return{...a,timestamp:a.timestamp?.toDate()||new Date}})}catch(t){return console.error("Error getting session messages:",t),[]}},Q=async(s,t)=>{try{await p(c(o,"chatSessions",s),{title:t,updatedAt:i()})}catch(e){throw console.error("Error updating session title:",e),e}},R=async s=>{try{await p(c(o,"chatSessions",s),{isActive:!1,updatedAt:i()})}catch(t){throw console.error("Error deleting session:",t),t}};export{b as addMessageToSession,C as createChatSession,R as deleteSession,T as getChatSession,q as getSessionMessages,M as getUserChatSessions,Q as updateSessionTitle}; diff --git a/assets/check-BONc3QkK.js b/assets/check-D1XVAVXL.js similarity index 86% rename from assets/check-BONc3QkK.js rename to assets/check-D1XVAVXL.js index e4c894f47cb8ccf4dc19a39ffc9bd9f97b202381..9447e658e1e476fcdc258f695e7906dd03adf471 100644 --- a/assets/check-BONc3QkK.js +++ b/assets/check-D1XVAVXL.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/check-check-BDU3hkDf.js b/assets/check-check-TbgWzZ22.js similarity index 88% rename from assets/check-check-BDU3hkDf.js rename to assets/check-check-TbgWzZ22.js index f81f0c3168b49c2bdbeffc2a09cf62000638c044..841a03d275370e82befe649418673c086d7fc424 100644 --- a/assets/check-check-BDU3hkDf.js +++ b/assets/check-check-TbgWzZ22.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/chevron-right-DxXkA9aZ.js b/assets/chevron-right-BSCyuP_x.js similarity index 85% rename from assets/chevron-right-DxXkA9aZ.js rename to assets/chevron-right-BSCyuP_x.js index 919a3ff6e21edfbab4c1b2dc7d8c1399bb3560a3..0210f3396a81a5145462dbeb010881638c48d489 100644 --- a/assets/chevron-right-DxXkA9aZ.js +++ b/assets/chevron-right-BSCyuP_x.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/chevron-up-BJyzaJs7.js b/assets/chevron-up-CwQX0CFg.js similarity index 92% rename from assets/chevron-up-BJyzaJs7.js rename to assets/chevron-up-CwQX0CFg.js index 5a6f2d03309625ea77d8953aeb1701975fc9dc09..bf7136bd571920e72d67dc6f10d80aedea3b3125 100644 --- a/assets/chevron-up-BJyzaJs7.js +++ b/assets/chevron-up-CwQX0CFg.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/circle-alert-D8UKyVHS.js b/assets/circle-alert-DWP6udG1.js similarity index 89% rename from assets/circle-alert-D8UKyVHS.js rename to assets/circle-alert-DWP6udG1.js index 71f74fd97cb8f42a7db16d17c3beba9beccb01b1..a4a16d577f18dd8861b6cae50eea524cae8d38c4 100644 --- a/assets/circle-alert-D8UKyVHS.js +++ b/assets/circle-alert-DWP6udG1.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/circle-check-big-mv2CRLCE.js b/assets/circle-check-big-C_XnLpga.js similarity index 89% rename from assets/circle-check-big-mv2CRLCE.js rename to assets/circle-check-big-C_XnLpga.js index b93f932e6efa13df66cee65caad2403af03984bb..c535605d8768a75e35688d19d141579135fa25d7 100644 --- a/assets/circle-check-big-mv2CRLCE.js +++ b/assets/circle-check-big-C_XnLpga.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/circle-help-BOZYr6oH.js b/assets/circle-help-CCtzJ5sC.js similarity index 90% rename from assets/circle-help-BOZYr6oH.js rename to assets/circle-help-CCtzJ5sC.js index e9c8574a738927422e2ca59fa0f41528a1b2d2bb..d859c73a53708d812b726c8730c9aef9d8f549c9 100644 --- a/assets/circle-help-BOZYr6oH.js +++ b/assets/circle-help-CCtzJ5sC.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/clock-qHFbMxrB.js b/assets/clock-jSWTKlqH.js similarity index 88% rename from assets/clock-qHFbMxrB.js rename to assets/clock-jSWTKlqH.js index 00c79cc3166abae24d32897b2bfb8f4ad12d48d2..38567526d39a6bd3d8d9f76ff598a1275f1921de 100644 --- a/assets/clock-qHFbMxrB.js +++ b/assets/clock-jSWTKlqH.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/dialog-C0Vo-dln.js b/assets/dialog-IPw3v6ZK.js similarity index 97% rename from assets/dialog-C0Vo-dln.js rename to assets/dialog-IPw3v6ZK.js index af0c61129fe33763ab713072d027d3c882aad765..851e4e3427f3aa6fad8ddbbcad5fba534ee91154 100644 --- a/assets/dialog-C0Vo-dln.js +++ b/assets/dialog-IPw3v6ZK.js @@ -1,4 +1,4 @@ -import{c as i}from"./index-DGWrSMOK.js";import{j as e,r}from"./vendor-react-Dexh7fmo.js";import{c as s}from"./utils-BQQgILNW.js";import{a as u,C as n,b as m,T as d,D as l,P as g,O as c}from"./vendor-radix-B-ht8aK0.js";import{X as x}from"./x-Bj25rnWX.js";/** +import{c as i}from"./index-CmBdDSkw.js";import{j as e,r}from"./vendor-react-Dexh7fmo.js";import{c as s}from"./utils-BQQgILNW.js";import{a as u,C as n,b as m,T as d,D as l,P as g,O as c}from"./vendor-radix-CxzAJozq.js";import{X as x}from"./x-BDSBB3q9.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/download-DINpalm9.js b/assets/download-DMZBRA1T.js similarity index 89% rename from assets/download-DINpalm9.js rename to assets/download-DMZBRA1T.js index 43ca0209339d96a0bc3cdac88810e05cd93369b9..f3a3d4327f28ba774e3b51d74b82d2ddfb771856 100644 --- a/assets/download-DINpalm9.js +++ b/assets/download-DMZBRA1T.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/eye-pSTVqBYO.js b/assets/eye-DyGZzCgK.js similarity index 90% rename from assets/eye-pSTVqBYO.js rename to assets/eye-DyGZzCgK.js index 0c0a0cc9d7cbe93c60d7c8adbab035ccb8e4234d..23e81f2eda8ead5e76cafc8bec2f4ccf829131fe 100644 --- a/assets/eye-pSTVqBYO.js +++ b/assets/eye-DyGZzCgK.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/eye-off-DCr0gD8u.js b/assets/eye-off-D800Xx6k.js similarity index 92% rename from assets/eye-off-DCr0gD8u.js rename to assets/eye-off-D800Xx6k.js index 60ca90fd0103906931dd595227219e41fece35f5..89fc91fe997c9c09ef20141fcb3da236433c991e 100644 --- a/assets/eye-off-DCr0gD8u.js +++ b/assets/eye-off-D800Xx6k.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/funnel-BHtkrar1.js b/assets/funnel-BHtkrar1.js new file mode 100644 index 0000000000000000000000000000000000000000..9273f0659a13298b629c2f52479ff65d65b7d684 --- /dev/null +++ b/assets/funnel-BHtkrar1.js @@ -0,0 +1,6 @@ +import{c}from"./index-CmBdDSkw.js";/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],o=c("funnel",e);export{o as F}; diff --git a/assets/globe-CA6LY_zw.js b/assets/globe-ZtrF4mgA.js similarity index 90% rename from assets/globe-CA6LY_zw.js rename to assets/globe-ZtrF4mgA.js index c4811df4c4556fde9012f0645eade319c7fa8d90..1e1a4b4a0b13694a745f1d50d401ce95a74aa492 100644 --- a/assets/globe-CA6LY_zw.js +++ b/assets/globe-ZtrF4mgA.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/graduation-cap-Cr-ek4Bs.js b/assets/graduation-cap-BxtuU7H1.js similarity index 91% rename from assets/graduation-cap-Cr-ek4Bs.js rename to assets/graduation-cap-BxtuU7H1.js index 572ba47d321a4d4f7f42d826a14933235709a758..1d68504bc6c5b9ef790bc393203fab249ea299e5 100644 --- a/assets/graduation-cap-Cr-ek4Bs.js +++ b/assets/graduation-cap-BxtuU7H1.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/index-6qUCYOVY.css b/assets/index-6qUCYOVY.css deleted file mode 100644 index 0c85251ff8910e7b0e190bf190c52f557a024d12..0000000000000000000000000000000000000000 --- a/assets/index-6qUCYOVY.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-divide-x-reverse:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-300:oklch(90.5% .182 98.111);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-900:oklch(38.6% .063 188.416);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:var(--color-violet-200);--color-sky-700:var(--color-violet-700);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-700:oklch(37% .013 285.805);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--drop-shadow-sm:0 1px 2px #00000026;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--drop-shadow-xl:0 9px 7px #0000001a;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h1{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700;line-height:1.3}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;font-weight:700;line-height:1.35}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:1.4}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h4{font-family:var(--font-display);font-size:var(--text-base);font-weight:600;line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) label{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) button{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) input{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\[container-type\:inline-size\]{container-type:inline-size}.\[container-type\:size\]{container-type:size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-x-6{inset-inline:calc(var(--spacing)*6)}.inset-x-\[-20px\]{inset-inline:-20px}.inset-y-0{inset-block:calc(var(--spacing)*0)}.end-1{inset-inline-end:calc(var(--spacing)*1)}.-top-1{top:calc(var(--spacing)*-1)}.-top-2{top:calc(var(--spacing)*-2)}.-top-3{top:calc(var(--spacing)*-3)}.-top-4{top:calc(var(--spacing)*-4)}.-top-5{top:calc(var(--spacing)*-5)}.-top-6{top:calc(var(--spacing)*-6)}.-top-8{top:calc(var(--spacing)*-8)}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.-top-32{top:calc(var(--spacing)*-32)}.-top-40{top:calc(var(--spacing)*-40)}.top-0{top:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.top-6{top:calc(var(--spacing)*6)}.top-8{top:calc(var(--spacing)*8)}.top-24{top:calc(var(--spacing)*24)}.top-\[-10\%\]{top:-10%}.top-\[1px\]{top:1px}.top-\[10\%\]{top:10%}.top-\[40\%\]{top:40%}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-right-1{right:calc(var(--spacing)*-1)}.-right-2{right:calc(var(--spacing)*-2)}.-right-3{right:calc(var(--spacing)*-3)}.-right-4{right:calc(var(--spacing)*-4)}.-right-12{right:calc(var(--spacing)*-12)}.-right-24{right:calc(var(--spacing)*-24)}.-right-32{right:calc(var(--spacing)*-32)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-1\/3{right:33.3333%}.right-1\/4{right:25%}.right-2{right:calc(var(--spacing)*2)}.right-2\.5{right:calc(var(--spacing)*2.5)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.right-8{right:calc(var(--spacing)*8)}.right-12{right:calc(var(--spacing)*12)}.right-16{right:calc(var(--spacing)*16)}.right-\[-5\%\]{right:-5%}.right-\[-5px\]{right:-5px}.right-\[-10\%\]{right:-10%}.right-\[-15px\]{right:-15px}.right-\[-20\%\]{right:-20%}.right-\[150px\]{right:150px}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-2{bottom:calc(var(--spacing)*-2)}.-bottom-5{bottom:calc(var(--spacing)*-5)}.-bottom-6{bottom:calc(var(--spacing)*-6)}.-bottom-8{bottom:calc(var(--spacing)*-8)}.-bottom-10{bottom:calc(var(--spacing)*-10)}.-bottom-12{bottom:calc(var(--spacing)*-12)}.-bottom-32{bottom:calc(var(--spacing)*-32)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-5{bottom:calc(var(--spacing)*5)}.bottom-8{bottom:calc(var(--spacing)*8)}.bottom-16{bottom:calc(var(--spacing)*16)}.bottom-20{bottom:calc(var(--spacing)*20)}.bottom-\[-10\%\]{bottom:-10%}.bottom-\[-50px\]{bottom:-50px}.bottom-\[-500px\]{bottom:-500px}.bottom-\[20\%\]{bottom:20%}.bottom-\[40px\]{bottom:40px}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing)*-1)}.-left-2{left:calc(var(--spacing)*-2)}.-left-4{left:calc(var(--spacing)*-4)}.-left-6{left:calc(var(--spacing)*-6)}.-left-10{left:calc(var(--spacing)*-10)}.-left-12{left:calc(var(--spacing)*-12)}.-left-32{left:calc(var(--spacing)*-32)}.-left-\[150\%\]{left:-150%}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-1\/3{left:33.3333%}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.left-3\.5{left:calc(var(--spacing)*3.5)}.left-4{left:calc(var(--spacing)*4)}.left-6{left:calc(var(--spacing)*6)}.left-12{left:calc(var(--spacing)*12)}.left-\[-10\%\]{left:-10%}.left-\[-20px\]{left:-20px}.left-\[40\%\]{left:40%}.left-\[50\%\]{left:50%}.left-\[54px\]{left:54px}.left-\[56px\]{left:56px}.left-\[var\(--x\)\]{left:var(--x)}.left-full{left:100%}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.z-\[4\]{z-index:4}.z-\[11\]{z-index:11}.z-\[12\]{z-index:12}.z-\[13\]{z-index:13}.z-\[50\]{z-index:50}.z-\[51\]{z-index:51}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[130\]{z-index:130}.col-span-2{grid-column:span 2/span 2}.col-span-12{grid-column:span 12/span 12}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.-mx-3{margin-inline:calc(var(--spacing)*-3)}.-mx-\[4px\]{margin-inline:-4px}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-\[-20px\]{margin-inline:-20px}.mx-\[1px\]{margin-inline:1px}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-4{margin-block:calc(var(--spacing)*4)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.-mt-0\.5{margin-top:calc(var(--spacing)*-.5)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.-mt-3{margin-top:calc(var(--spacing)*-3)}.-mt-4{margin-top:calc(var(--spacing)*-4)}.-mt-24{margin-top:calc(var(--spacing)*-24)}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-\[-10px\]{margin-top:-10px}.mt-\[-20px\]{margin-top:-20px}.mt-\[5px\]{margin-top:5px}.mt-auto{margin-top:auto}.-mr-3{margin-right:calc(var(--spacing)*-3)}.-mr-24{margin-right:calc(var(--spacing)*-24)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.-mb-2{margin-bottom:calc(var(--spacing)*-2)}.-mb-8{margin-bottom:calc(var(--spacing)*-8)}.-mb-18{margin-bottom:calc(var(--spacing)*-18)}.-mb-\[1px\]{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-\[-10px\]{margin-bottom:-10px}.mb-\[2px\]{margin-bottom:2px}.-ml-3{margin-left:calc(var(--spacing)*-3)}.-ml-4{margin-left:calc(var(--spacing)*-4)}.-ml-18{margin-left:calc(var(--spacing)*-18)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-11{margin-left:calc(var(--spacing)*11)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.\[aspect-ratio\:1\/var\(--aspect-ratio\)\]{aspect-ratio:1/var(--aspect-ratio)}.aspect-\[4\/5\]{aspect-ratio:4/5}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.\[height\:100cqmax\]{height:100cqmax}.h-0{height:calc(var(--spacing)*0)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-28{height:calc(var(--spacing)*28)}.h-32{height:calc(var(--spacing)*32)}.h-36{height:calc(var(--spacing)*36)}.h-40{height:calc(var(--spacing)*40)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-80{height:calc(var(--spacing)*80)}.h-96{height:calc(var(--spacing)*96)}.h-\[1\.15rem\]{height:1.15rem}.h-\[1px\]{height:1px}.h-\[3px\]{height:3px}.h-\[5px\]{height:5px}.h-\[6px\]{height:6px}.h-\[14px\]{height:14px}.h-\[16px\]{height:16px}.h-\[18px\]{height:18px}.h-\[34px\]{height:34px}.h-\[35px\]{height:35px}.h-\[40\%\]{height:40%}.h-\[40px\]{height:40px}.h-\[45vh\]{height:45vh}.h-\[50px\]{height:50px}.h-\[52px\]{height:52px}.h-\[60\%\]{height:60%}.h-\[60px\]{height:60px}.h-\[70\%\]{height:70%}.h-\[70px\]{height:70px}.h-\[72px\]{height:72px}.h-\[75px\]{height:75px}.h-\[100px\]{height:100px}.h-\[100vh\]{height:100vh}.h-\[105\%\]{height:105%}.h-\[110\%\]{height:110%}.h-\[120\%\]{height:120%}.h-\[120px\]{height:120px}.h-\[125px\]{height:125px}.h-\[140px\]{height:140px}.h-\[150vh\]{height:150vh}.h-\[155px\]{height:155px}.h-\[170px\]{height:170px}.h-\[205px\]{height:205px}.h-\[280px\]{height:280px}.h-\[300px\]{height:300px}.h-\[300vw\]{height:300vw}.h-\[340px\]{height:340px}.h-\[400px\]{height:400px}.h-\[420px\]{height:420px}.h-\[500px\]{height:500px}.h-\[600px\]{height:600px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(100\%-24px\)\]{height:calc(100% - 24px)}.h-\[calc\(100vh-2rem\)\]{height:calc(100vh - 2rem)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-72{max-height:calc(var(--spacing)*72)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[300px\]{max-height:300px}.max-h-\[500px\]{max-height:500px}.max-h-\[600px\]{max-height:600px}.max-h-\[700px\]{max-height:700px}.max-h-\[calc\(85vh-280px\)\]{max-height:calc(85vh - 280px)}.max-h-\[calc\(90vh-200px\)\]{max-height:calc(90vh - 200px)}.max-h-\[calc\(90vh-320px\)\]{max-height:calc(90vh - 320px)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-24{min-height:calc(var(--spacing)*24)}.min-h-\[24px\]{min-height:24px}.min-h-\[48px\]{min-height:48px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[56px\]{min-height:56px}.min-h-\[78px\]{min-height:78px}.min-h-\[80px\]{min-height:80px}.min-h-\[140px\]{min-height:140px}.min-h-\[170px\]{min-height:170px}.min-h-\[200px\]{min-height:200px}.min-h-\[240px\]{min-height:240px}.min-h-\[290px\]{min-height:290px}.min-h-\[320px\]{min-height:320px}.min-h-\[450px\]{min-height:450px}.min-h-\[500px\]{min-height:500px}.min-h-\[calc\(100vh-3\.5rem\)\]{min-height:calc(100vh - 3.5rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.\!w-auto{width:auto!important}.\[width\:100cqh\]{width:100cqh}.\[width\:100cqi\]{width:100cqi}.\[width\:var\(--width\)\]{width:var(--width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing)*0)}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-8\/12{width:66.6667%}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-10\/12{width:83.3333%}.w-11{width:calc(var(--spacing)*11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-44{width:calc(var(--spacing)*44)}.w-48{width:calc(var(--spacing)*48)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-96{width:calc(var(--spacing)*96)}.w-\[5px\]{width:5px}.w-\[16px\]{width:16px}.w-\[28\%\]{width:28%}.w-\[34px\]{width:34px}.w-\[35\%\]{width:35%}.w-\[35px\]{width:35px}.w-\[40\%\]{width:40%}.w-\[46px\]{width:46px}.w-\[52px\]{width:52px}.w-\[55\%\]{width:55%}.w-\[55px\]{width:55px}.w-\[60\%\]{width:60%}.w-\[60px\]{width:60px}.w-\[65px\]{width:65px}.w-\[70\%\]{width:70%}.w-\[70px\]{width:70px}.w-\[75px\]{width:75px}.w-\[78px\]{width:78px}.w-\[85\%\]{width:85%}.w-\[90\%\]{width:90%}.w-\[95\%\]{width:95%}.w-\[100\%\]{width:100%}.w-\[100px\]{width:100px}.w-\[110\%\]{width:110%}.w-\[150px\]{width:150px}.w-\[150vw\]{width:150vw}.w-\[152px\]{width:152px}.w-\[168px\]{width:168px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[250vw\]{width:250vw}.w-\[260px\]{width:260px}.w-\[280px\]{width:280px}.w-\[300vw\]{width:300vw}.w-\[340px\]{width:340px}.w-\[350px\]{width:350px}.w-\[400px\]{width:400px}.w-\[420px\]{width:420px}.w-\[600px\]{width:600px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing)*20)}.max-w-\[70\%\]{max-width:70%}.max-w-\[75\%\]{max-width:75%}.max-w-\[120px\]{max-width:120px}.max-w-\[145px\]{max-width:145px}.max-w-\[190px\]{max-width:190px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[280px\]{max-width:280px}.max-w-\[340px\]{max-width:340px}.max-w-\[420px\]{max-width:420px}.max-w-\[480px\]{max-width:480px}.max-w-\[800px\]{max-width:800px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[calc\(100vw-24px\)\]{max-width:calc(100vw - 24px)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-8{min-width:calc(var(--spacing)*8)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-10{min-width:calc(var(--spacing)*10)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[60px\]{min-width:60px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[260px\]{min-width:260px}.min-w-\[280px\]{min-width:280px}.min-w-\[760px\]{min-width:760px}.min-w-\[980px\]{min-width:980px}.min-w-\[1920px\]{min-width:1920px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.\[transform-origin\:0\%_0\%\]{transform-origin:0 0}.\[transform-origin\:50\%_0\%\]{transform-origin:50% 0}.\[transform-origin\:100\%_0\%\]{transform-origin:100% 0}.origin-\(--radix-context-menu-content-transform-origin\){transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-menubar-content-transform-origin\){transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.origin-\[50\%_45\%\]{transform-origin:50% 45%}.origin-bottom{transform-origin:bottom}.origin-bottom-right{transform-origin:100% 100%}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/3{--tw-translate-x:calc(calc(1/3*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/4{--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-\[45px\]{--tw-translate-x: -45px ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/3{--tw-translate-x:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/4{--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-10px\]{--tw-translate-x:-10px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[45px\]{--tw-translate-x:45px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/3{--tw-translate-y:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-8{--tw-translate-y:calc(var(--spacing)*8);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-10{--tw-translate-y:calc(var(--spacing)*10);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-12{--tw-translate-y:calc(var(--spacing)*12);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[21\%\]{--tw-translate-y:21%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-x-\[-1\]{--tw-scale-x:-1;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-y-75{--tw-scale-y:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\[0\.75\]{scale:.75}.scale-\[0\.80\]{scale:.8}.scale-\[0\.98\]{scale:.98}.scale-\[1\.1\]{scale:1.1}.scale-\[1\.02\]{scale:1.02}.scale-\[1\.05\]{scale:1.05}.scale-\[1\.5\]{scale:1.5}.scale-\[1\.7\]{scale:1.7}.scale-\[1\.25\]{scale:1.25}.scale-\[2\.2\]{scale:2.2}.scale-\[3\.2\]{scale:3.2}.-rotate-12{rotate:-12deg}.-rotate-90{rotate:-90deg}.-rotate-\[15deg\]{rotate:-15deg}.rotate-3{rotate:3deg}.rotate-12{rotate:12deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.rotate-\[-3deg\]{rotate:-3deg}.rotate-\[15deg\]{rotate:15deg}.-skew-x-12{--tw-skew-x:skewX( -12deg );transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.\[transform\:rotate\(-90deg\)_rotateX\(-90deg\)\]{transform:rotate(-90deg)rotateX(-90deg)}.\[transform\:rotate\(90deg\)_rotateX\(-90deg\)\]{transform:rotate(90deg)rotateX(-90deg)}.\[transform\:rotateX\(-90deg\)\]{transform:rotateX(-90deg)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform-gpu{transform:translateZ(0)var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\[shimmer_2s_infinite\]{animation:2s infinite shimmer}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[48px_280px_120px_120px_120px_120px_120px_140px_170px_170px_220px\]{grid-template-columns:48px 280px 120px 120px 120px 120px 120px 140px 170px 170px 220px}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*10)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*10)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\[1px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px*var(--tw-space-y-reverse));margin-block-end:calc(1px*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}:where(.-space-x-2\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-2.5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-2.5)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-8{row-gap:calc(var(--spacing)*8)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}:where(.divide-\[\#dde3eb\]>:not(:last-child)){border-color:#dde3eb}:where(.divide-\[\#edf1f7\]>:not(:last-child)){border-color:#edf1f7}:where(.divide-border>:not(:last-child)){border-color:var(--border)}:where(.divide-slate-100\/60>:not(:last-child)){border-color:#f1f5f999}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-100\/60>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-100)60%,transparent)}}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[-20px\]{border-radius:-20px}.rounded-\[1\.4rem\]{border-radius:1.4rem}.rounded-\[1\.5rem\]{border-radius:1.5rem}.rounded-\[1rem\]{border-radius:1rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[3rem\]{border-radius:3rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[12px\]{border-radius:12px}.rounded-\[14px\]{border-radius:14px}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[32px\]{border-radius:32px}.rounded-\[40px\]{border-radius:40px}.rounded-\[50\%\]{border-radius:50%}.rounded-\[50\%_50\%_0_0\/100\%_100\%_0_0\]{border-radius:50% 50% 0 0/100% 100% 0 0}.rounded-\[100\%\]{border-radius:100%}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-\[2\.5rem\]{border-top-left-radius:2.5rem;border-top-right-radius:2.5rem}.rounded-t-\[40px\]{border-top-left-radius:40px;border-top-right-radius:40px}.rounded-t-xl{border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}.rounded-tl-none{border-top-left-radius:0}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-\[2px\]{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.rounded-b-\[50\%\]{border-bottom-right-radius:50%;border-bottom-left-radius:50%}.rounded-b-\[60px\]{border-bottom-right-radius:60px;border-bottom-left-radius:60px}.rounded-b-md{border-bottom-right-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.border-\[4px\]{border-style:var(--tw-border-style);border-width:4px}.border-\[6px\]{border-style:var(--tw-border-style);border-width:6px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-t-\[3px\]{border-top-style:var(--tw-border-style);border-top-width:3px}.border-t-\[6px\]{border-top-style:var(--tw-border-style);border-top-width:6px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-\[6px\]{border-right-style:var(--tw-border-style);border-right-width:6px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\(--color-border\){border-color:var(--color-border)}.border-\[\#1E293B\]{border-color:#1e293b}.border-\[\#1FA7E1\]\/20{border-color:#1fa7e133}.border-\[\#1FA7E1\]\/30{border-color:#1fa7e14d}.border-\[\#1FA7E1\]\/40{border-color:#1fa7e166}.border-\[\#2a3648\]{border-color:#2a3648}.border-\[\#8A3FD3\]\/20{border-color:#8a3fd333}.border-\[\#8A3FD3\]\/30{border-color:#8a3fd34d}.border-\[\#8B5CF6\]\/40{border-color:#8b5cf666}.border-\[\#75D06A\]{border-color:#75d06a}.border-\[\#75D06A\]\/35{border-color:#75d06a59}.border-\[\#9956DE\]{border-color:#9956de}.border-\[\#9956DE\]\/25{border-color:#9956de40}.border-\[\#9956DE\]\/30{border-color:#9956de4d}.border-\[\#9956DE\]\/45{border-color:#9956de73}.border-\[\#F1F5F9\]{border-color:#f1f5f9}.border-\[\#F08386\]{border-color:#f08386}.border-\[\#F08386\]\/30{border-color:#f083864d}.border-\[\#FF8B8B\]{border-color:#ff8b8b}.border-\[\#FF8B8B\]\/35{border-color:#ff8b8b59}.border-\[\#FFB356\]{border-color:#ffb356}.border-\[\#FFB356\]\/38{border-color:#ffb35661}.border-\[\#d1cec6\]{border-color:#d1cec6}.border-\[\#dadce0\]{border-color:#dadce0}.border-\[\#dde3eb\]{border-color:#dde3eb}.border-\[\#edf1f7\]{border-color:#edf1f7}.border-\[\#fde68a\]{border-color:#fde68a}.border-\[color-mix\(in_srgb\,var\(--primary\)_30\%\,transparent\)\]{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--primary\)_30\%\,transparent\)\]{border-color:color-mix(in srgb,var(--primary)30%,transparent)}}.border-amber-50{border-color:var(--color-amber-50)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-200\/60{border-color:#fee68599}@supports (color:color-mix(in lab,red,red)){.border-amber-200\/60{border-color:color-mix(in oklab,var(--color-amber-200)60%,transparent)}}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-400{border-color:var(--color-amber-400)}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-current{border-color:currentColor}.border-destructive\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-200\/60{border-color:#a4f4cf99}@supports (color:color-mix(in lab,red,red)){.border-emerald-200\/60{border-color:color-mix(in oklab,var(--color-emerald-200)60%,transparent)}}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-400{border-color:var(--color-emerald-400)}.border-emerald-400\/30{border-color:#00d2944d}@supports (color:color-mix(in lab,red,red)){.border-emerald-400\/30{border-color:color-mix(in oklab,var(--color-emerald-400)30%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-emerald-500\/50{border-color:#00bb7f80}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/50{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-green-300{border-color:var(--color-green-300)}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab,red,red)){.border-green-500\/40{border-color:color-mix(in oklab,var(--color-green-500)40%,transparent)}}.border-indigo-100{border-color:var(--color-indigo-100)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-500\/20{border-color:#625fff33}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/20{border-color:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500)30%,transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\/15{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/15{border-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.border-orange-100{border-color:var(--color-orange-100)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-200\/60{border-color:#ffd7a899}@supports (color:color-mix(in lab,red,red)){.border-orange-200\/60{border-color:color-mix(in oklab,var(--color-orange-200)60%,transparent)}}.border-orange-400{border-color:var(--color-orange-400)}.border-orange-500\/40{border-color:#fe6e0066}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/40{border-color:color-mix(in oklab,var(--color-orange-500)40%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-primary,.border-primary\/60{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,var(--primary)60%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-500\/20{border-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/20{border-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500)30%,transparent)}}.border-red-100{border-color:var(--color-red-100)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-400{border-color:var(--color-red-400)}.border-red-500{border-color:var(--color-red-500)}.border-rose-100{border-color:var(--color-rose-100)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-200\/50{border-color:#ffccd380}@supports (color:color-mix(in lab,red,red)){.border-rose-200\/50{border-color:color-mix(in oklab,var(--color-rose-200)50%,transparent)}}.border-rose-200\/60{border-color:#ffccd399}@supports (color:color-mix(in lab,red,red)){.border-rose-200\/60{border-color:color-mix(in oklab,var(--color-rose-200)60%,transparent)}}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-400{border-color:var(--color-rose-400)}.border-rose-500\/20{border-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/20{border-color:color-mix(in oklab,var(--color-rose-500)20%,transparent)}}.border-rose-500\/30{border-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/30{border-color:color-mix(in oklab,var(--color-rose-500)30%,transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-sky-100{border-color:var(--color-violet-100)}.border-sky-100\/80{border-color:#ede9fecc}@supports (color:color-mix(in lab,red,red)){.border-sky-100\/80{border-color:color-mix(in oklab,var(--color-violet-100)80%,transparent)}}.border-sky-200{border-color:var(--color-violet-200)}.border-sky-200\/50{border-color:#ddd6ff80}@supports (color:color-mix(in lab,red,red)){.border-sky-200\/50{border-color:color-mix(in oklab,var(--color-violet-200)50%,transparent)}}.border-sky-200\/60{border-color:#ddd6ff99}@supports (color:color-mix(in lab,red,red)){.border-sky-200\/60{border-color:color-mix(in oklab,var(--color-violet-200)60%,transparent)}}.border-sky-300{border-color:var(--color-violet-300)}.border-sky-400{border-color:var(--color-violet-400)}.border-sky-500{border-color:var(--color-violet-500)}.border-sky-500\/20{border-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/20{border-color:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.border-sky-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/30{border-color:color-mix(in oklab,var(--color-violet-500)30%,transparent)}}.border-sky-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/40{border-color:color-mix(in oklab,var(--color-violet-500)40%,transparent)}}.border-slate-50{border-color:var(--color-slate-50)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\/60{border-color:#e2e8f099}@supports (color:color-mix(in lab,red,red)){.border-slate-200\/60{border-color:color-mix(in oklab,var(--color-slate-200)60%,transparent)}}.border-slate-200\/70{border-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.border-slate-200\/70{border-color:color-mix(in oklab,var(--color-slate-200)70%,transparent)}}.border-slate-200\/80{border-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.border-slate-200\/80{border-color:color-mix(in oklab,var(--color-slate-200)80%,transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-300\/70{border-color:#cad5e2b3}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/70{border-color:color-mix(in oklab,var(--color-slate-300)70%,transparent)}}.border-slate-700{border-color:var(--color-slate-700)}.border-slate-700\/50{border-color:#31415880}@supports (color:color-mix(in lab,red,red)){.border-slate-700\/50{border-color:color-mix(in oklab,var(--color-slate-700)50%,transparent)}}.border-slate-800\/10{border-color:#1d293d1a}@supports (color:color-mix(in lab,red,red)){.border-slate-800\/10{border-color:color-mix(in oklab,var(--color-slate-800)10%,transparent)}}.border-teal-100{border-color:var(--color-teal-100)}.border-teal-200{border-color:var(--color-teal-200)}.border-teal-400{border-color:var(--color-teal-400)}.border-teal-500{border-color:var(--color-teal-500)}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-200\/60{border-color:#ddd6ff99}@supports (color:color-mix(in lab,red,red)){.border-violet-200\/60{border-color:color-mix(in oklab,var(--color-violet-200)60%,transparent)}}.border-violet-400{border-color:var(--color-violet-400)}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500)30%,transparent)}}.border-violet-800{border-color:var(--color-violet-800)}.border-white{border-color:var(--color-white)}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-white\/25{border-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.border-white\/25{border-color:color-mix(in oklab,var(--color-white)25%,transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.border-white\/30{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.border-white\/35{border-color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.border-white\/35{border-color:color-mix(in oklab,var(--color-white)35%,transparent)}}.border-white\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\/40{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.border-white\/50{border-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.border-white\/50{border-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.border-white\/80{border-color:#fffc}@supports (color:color-mix(in lab,red,red)){.border-white\/80{border-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.border-zinc-200{border-color:var(--color-zinc-200)}.border-t-slate-800{border-top-color:var(--color-slate-800)}.border-t-transparent{border-top-color:#0000}.border-t-violet-500{border-top-color:var(--color-violet-500)}.border-r-\[\#0a1628\]{border-right-color:#0a1628}.border-r-\[\#2a2535\]{border-right-color:#2a2535}.border-r-amber-300{border-right-color:var(--color-amber-300)}.border-r-transparent{border-right-color:#0000}.border-b-amber-300{border-bottom-color:var(--color-amber-300)}.border-l-transparent{border-left-color:#0000}.\!bg-\[\#6ED1CF\]\/35{background-color:#6ed1cf59!important}.\!bg-\[\#7274ED\]{background-color:#7274ed!important}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-\[\#0A1128\]{background-color:#0a1128}.bg-\[\#0B0F19\]{background-color:#0b0f19}.bg-\[\#0B1021\]{background-color:#0b1021}.bg-\[\#0a1628\]{background-color:#0a1628}.bg-\[\#00a86b\]{background-color:#00a86b}.bg-\[\#1FA7E1\]{background-color:#1fa7e1}.bg-\[\#1FA7E1\]\/10{background-color:#1fa7e11a}.bg-\[\#1a2030\]{background-color:#1a2030}.bg-\[\#1e2536\]{background-color:#1e2536}.bg-\[\#2f3547\]{background-color:#2f3547}.bg-\[\#3b3a82\]{background-color:#3b3a82}.bg-\[\#5a6578\]{background-color:#5a6578}.bg-\[\#6ED1CF\]{background-color:#6ed1cf}.bg-\[\#6ED1CF\]\/20{background-color:#6ed1cf33}.bg-\[\#6ED1CF\]\/30{background-color:#6ed1cf4d}.bg-\[\#6F2BAF\]{background-color:#6f2baf}.bg-\[\#8A3FD3\]{background-color:#8a3fd3}.bg-\[\#8A3FD3\]\/5{background-color:#8a3fd30d}.bg-\[\#8A3FD3\]\/10{background-color:#8a3fd31a}.bg-\[\#8B5CF6\]{background-color:#8b5cf6}.bg-\[\#8b0d0d\]{background-color:#8b0d0d}.bg-\[\#34d399\]{background-color:#34d399}.bg-\[\#50B8B6\]{background-color:#50b8b6}.bg-\[\#58B34D\]{background-color:#58b34d}.bg-\[\#75D06A\]{background-color:#75d06a}.bg-\[\#75D06A\]\/10{background-color:#75d06a1a}.bg-\[\#75D06A\]\/14{background-color:#75d06a24}.bg-\[\#75D06A\]\/22{background-color:#75d06a38}.bg-\[\#127DA6\]{background-color:#127da6}.bg-\[\#181d27\]{background-color:#181d27}.bg-\[\#198abf\]{background-color:#198abf}.bg-\[\#533ab6\]{background-color:#533ab6}.bg-\[\#662AA8\]{background-color:#662aa8}.bg-\[\#7274ED\]{background-color:#7274ed}.bg-\[\#7274ED\]\/15{background-color:#7274ed26}.bg-\[\#8248c2\]{background-color:#8248c2}.bg-\[\#9956DE\]{background-color:#9956de}.bg-\[\#9956DE\]\/12{background-color:#9956de1f}.bg-\[\#9956DE\]\/20{background-color:#9956de33}.bg-\[\#9956DE\]\/32{background-color:#9956de52}.bg-\[\#12192b\]{background-color:#12192b}.bg-\[\#42389d\]{background-color:#42389d}.bg-\[\#111827\]{background-color:#111827}.bg-\[\#D96C6A\]{background-color:#d96c6a}.bg-\[\#DE7949\]{background-color:#de7949}.bg-\[\#E06A6A\]{background-color:#e06a6a}.bg-\[\#F08386\]{background-color:#f08386}.bg-\[\#F08386\]\/12{background-color:#f083861f}.bg-\[\#F08386\]\/20{background-color:#f0838633}.bg-\[\#FB96BB\]{background-color:#fb96bb}.bg-\[\#FB96BB\]\/20{background-color:#fb96bb33}.bg-\[\#FF8B8B\]{background-color:#ff8b8b}.bg-\[\#FF8B8B\]\/10{background-color:#ff8b8b1a}.bg-\[\#FF8B8B\]\/14{background-color:#ff8b8b24}.bg-\[\#FF8B8B\]\/22{background-color:#ff8b8b38}.bg-\[\#FFB356\]{background-color:#ffb356}.bg-\[\#FFB356\]\/16{background-color:#ffb35629}.bg-\[\#FFB356\]\/20{background-color:#ffb35633}.bg-\[\#FFB356\]\/24{background-color:#ffb3563d}.bg-\[\#a8a5b3\]{background-color:#a8a5b3}.bg-\[\#b61515\]{background-color:#b61515}.bg-\[\#d24b4b\]{background-color:#d24b4b}.bg-\[\#dde3eb\]{background-color:#dde3eb}.bg-\[\#de7b9f\]{background-color:#de7b9f}.bg-\[\#e1f5f7\]{background-color:#e1f5f7}.bg-\[\#e09841\]{background-color:#e09841}.bg-\[\#edf1f7\]{background-color:#edf1f7}.bg-\[\#edf1f7\]\/50{background-color:#edf1f780}.bg-\[\#edf1f7\]\/80{background-color:#edf1f7cc}.bg-\[\#f0eaff\]{background-color:#f0eaff}.bg-\[\#f6f9ff\]{background-color:#f6f9ff}.bg-\[\#f7f9fc\]{background-color:#f7f9fc}.bg-\[\#f7fbff\]{background-color:#f7fbff}.bg-\[\#f8fafc\]{background-color:#f8fafc}.bg-\[\#f8faff\]{background-color:#f8faff}.bg-\[\#f8fbff\]{background-color:#f8fbff}.bg-\[\#f2812d\]{background-color:#f2812d}.bg-\[\#fa9746\]{background-color:#fa9746}.bg-\[\#fb7185\]{background-color:#fb7185}.bg-\[\#fbbf24\]{background-color:#fbbf24}.bg-\[\#fcfdff\]{background-color:#fcfdff}.bg-\[\#fdeceb\]{background-color:#fdeceb}.bg-\[\#fe5c5c\]{background-color:#fe5c5c}.bg-\[\#fef5e7\]{background-color:#fef5e7}.bg-\[color-mix\(in_srgb\,var\(--chart-1\)_10\%\,transparent\)\]{background-color:var(--chart-1)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-1\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-1)10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_10\%\,transparent\)\]{background-color:var(--chart-2)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-2)10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_14\%\,transparent\)\]{background-color:var(--chart-2)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-2)14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_10\%\,transparent\)\]{background-color:var(--chart-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-3)10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_14\%\,transparent\)\]{background-color:var(--chart-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-3)14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-4\)_14\%\,transparent\)\]{background-color:var(--chart-4)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-4\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-4)14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--primary\)_10\%\,transparent\)\]{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--primary\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--primary)10%,transparent)}}.bg-\[var\(--chart-2\)\]{background-color:var(--chart-2)}.bg-\[var\(--chart-3\)\]{background-color:var(--chart-3)}.bg-\[var\(--chart-4\)\]{background-color:var(--chart-4)}.bg-\[var\(--primary\)\],.bg-\[var\(--primary\)\]\/60{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--primary\)\]\/60{background-color:color-mix(in oklab,var(--primary)60%,transparent)}}.bg-accent{background-color:var(--accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400\/20{background-color:#fcbb0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/20{background-color:color-mix(in oklab,var(--color-amber-400)20%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-amber-600{background-color:var(--color-amber-600)}.bg-background{background-color:var(--background)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\/20{background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-300\/40{background-color:#90c5ff66}@supports (color:color-mix(in lab,red,red)){.bg-blue-300\/40{background-color:color-mix(in oklab,var(--color-blue-300)40%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/20{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,var(--card)20%,transparent)}}.bg-card\/80{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/80{background-color:color-mix(in oklab,var(--card)80%,transparent)}}.bg-current{background-color:currentColor}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-400\/30{background-color:#00d2ef4d}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/30{background-color:color-mix(in oklab,var(--color-cyan-400)30%,transparent)}}.bg-destructive,.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--destructive)5%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-200{background-color:var(--color-emerald-200)}.bg-emerald-300{background-color:var(--color-emerald-300)}.bg-emerald-400\/20{background-color:#00d29433}@supports (color:color-mix(in lab,red,red)){.bg-emerald-400\/20{background-color:color-mix(in oklab,var(--color-emerald-400)20%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-fuchsia-400\/30{background-color:#ec6cff4d}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-400\/30{background-color:color-mix(in oklab,var(--color-fuchsia-400)30%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-50\/30{background-color:#f0fdf44d}@supports (color:color-mix(in lab,red,red)){.bg-green-50\/30{background-color:color-mix(in oklab,var(--color-green-50)30%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-400\/20{background-color:#7d87ff33}@supports (color:color-mix(in lab,red,red)){.bg-indigo-400\/20{background-color:color-mix(in oklab,var(--color-indigo-400)20%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-input-background{background-color:var(--input-background)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-400\/20{background-color:#ff8b1a33}@supports (color:color-mix(in lab,red,red)){.bg-orange-400\/20{background-color:color-mix(in oklab,var(--color-orange-400)20%,transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500)20%,transparent)}}.bg-orange-500\/30{background-color:#fe6e004d}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/30{background-color:color-mix(in oklab,var(--color-orange-500)30%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-400\/20{background-color:#c07eff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-400\/20{background-color:color-mix(in oklab,var(--color-purple-400)20%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-50\/30{background-color:#fef2f24d}@supports (color:color-mix(in lab,red,red)){.bg-red-50\/30{background-color:color-mix(in oklab,var(--color-red-50)30%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-100\/30{background-color:#ffe4e64d}@supports (color:color-mix(in lab,red,red)){.bg-rose-100\/30{background-color:color-mix(in oklab,var(--color-rose-100)30%,transparent)}}.bg-rose-100\/40{background-color:#ffe4e666}@supports (color:color-mix(in lab,red,red)){.bg-rose-100\/40{background-color:color-mix(in oklab,var(--color-rose-100)40%,transparent)}}.bg-rose-100\/60{background-color:#ffe4e699}@supports (color:color-mix(in lab,red,red)){.bg-rose-100\/60{background-color:color-mix(in oklab,var(--color-rose-100)60%,transparent)}}.bg-rose-200{background-color:var(--color-rose-200)}.bg-rose-200\/60{background-color:#ffccd399}@supports (color:color-mix(in lab,red,red)){.bg-rose-200\/60{background-color:color-mix(in oklab,var(--color-rose-200)60%,transparent)}}.bg-rose-200\/70{background-color:#ffccd3b3}@supports (color:color-mix(in lab,red,red)){.bg-rose-200\/70{background-color:color-mix(in oklab,var(--color-rose-200)70%,transparent)}}.bg-rose-300{background-color:var(--color-rose-300)}.bg-rose-400\/5{background-color:#ff667f0d}@supports (color:color-mix(in lab,red,red)){.bg-rose-400\/5{background-color:color-mix(in oklab,var(--color-rose-400)5%,transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-500\/5{background-color:#ff23570d}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/5{background-color:color-mix(in oklab,var(--color-rose-500)5%,transparent)}}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/10{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/20{background-color:color-mix(in oklab,var(--color-rose-500)20%,transparent)}}.bg-rose-500\/30{background-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/30{background-color:color-mix(in oklab,var(--color-rose-500)30%,transparent)}}.bg-rose-600{background-color:var(--color-rose-600)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sky-50{background-color:var(--color-violet-50)}.bg-sky-50\/40{background-color:#f5f3ff66}@supports (color:color-mix(in lab,red,red)){.bg-sky-50\/40{background-color:color-mix(in oklab,var(--color-violet-50)40%,transparent)}}.bg-sky-50\/50{background-color:#f5f3ff80}@supports (color:color-mix(in lab,red,red)){.bg-sky-50\/50{background-color:color-mix(in oklab,var(--color-violet-50)50%,transparent)}}.bg-sky-50\/70{background-color:#f5f3ffb3}@supports (color:color-mix(in lab,red,red)){.bg-sky-50\/70{background-color:color-mix(in oklab,var(--color-violet-50)70%,transparent)}}.bg-sky-100{background-color:var(--color-violet-100)}.bg-sky-100\/40{background-color:#ede9fe66}@supports (color:color-mix(in lab,red,red)){.bg-sky-100\/40{background-color:color-mix(in oklab,var(--color-violet-100)40%,transparent)}}.bg-sky-200{background-color:var(--color-violet-200)}.bg-sky-300{background-color:var(--color-violet-300)}.bg-sky-300\/30{background-color:#c4b4ff4d}@supports (color:color-mix(in lab,red,red)){.bg-sky-300\/30{background-color:color-mix(in oklab,var(--color-violet-300)30%,transparent)}}.bg-sky-400{background-color:var(--color-violet-400)}.bg-sky-400\/20{background-color:#a685ff33}@supports (color:color-mix(in lab,red,red)){.bg-sky-400\/20{background-color:color-mix(in oklab,var(--color-violet-400)20%,transparent)}}.bg-sky-400\/30{background-color:#a685ff4d}@supports (color:color-mix(in lab,red,red)){.bg-sky-400\/30{background-color:color-mix(in oklab,var(--color-violet-400)30%,transparent)}}.bg-sky-500{background-color:var(--color-violet-500)}.bg-sky-500\/5{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/5{background-color:color-mix(in oklab,var(--color-violet-500)5%,transparent)}}.bg-sky-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.bg-sky-500\/20{background-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/20{background-color:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.bg-sky-600{background-color:var(--color-violet-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\/80{background-color:#f8fafccc}@supports (color:color-mix(in lab,red,red)){.bg-slate-50\/80{background-color:color-mix(in oklab,var(--color-slate-50)80%,transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100)70%,transparent)}}.bg-slate-100\/80{background-color:#f1f5f9cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/80{background-color:color-mix(in oklab,var(--color-slate-100)80%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-300\/80{background-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-300\/80{background-color:color-mix(in oklab,var(--color-slate-300)80%,transparent)}}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-800\/5{background-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/5{background-color:color-mix(in oklab,var(--color-slate-800)5%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/40{background-color:#0f172b66}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\/85{background-color:#0f172bd9}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/85{background-color:color-mix(in oklab,var(--color-slate-900)85%,transparent)}}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-100{background-color:var(--color-teal-100)}.bg-teal-300{background-color:var(--color-teal-300)}.bg-teal-400\/20{background-color:#00d3bd33}@supports (color:color-mix(in lab,red,red)){.bg-teal-400\/20{background-color:color-mix(in oklab,var(--color-teal-400)20%,transparent)}}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-600{background-color:var(--color-teal-600)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-400\/5{background-color:#a685ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-400\/5{background-color:color-mix(in oklab,var(--color-violet-400)5%,transparent)}}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.bg-violet-600{background-color:var(--color-violet-600)}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\/14{background-color:#ffffff24}@supports (color:color-mix(in lab,red,red)){.bg-white\/14{background-color:color-mix(in oklab,var(--color-white)14%,transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.bg-white\/15{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.bg-white\/25{background-color:color-mix(in oklab,var(--color-white)25%,transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.bg-white\/35{background-color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.bg-white\/35{background-color:color-mix(in oklab,var(--color-white)35%,transparent)}}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab,red,red)){.bg-white\/40{background-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\/70{background-color:color-mix(in oklab,var(--color-white)70%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-white\/85{background-color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.bg-white\/85{background-color:color-mix(in oklab,var(--color-white)85%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.\!bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab!important;background-image:linear-gradient(var(--tw-gradient-stops))!important}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(circle_at_14\%_12\%\,rgba\(251\,150\,187\,0\.35\)\,transparent_42\%\)\,radial-gradient\(circle_at_80\%_80\%\,rgba\(117\,208\,106\,0\.25\)\,transparent_38\%\)\]{background-image:radial-gradient(circle at 14% 12%,#fb96bb59,#0000 42%),radial-gradient(circle at 80% 80%,#75d06a40,#0000 38%)}.bg-\[radial-gradient\(circle_at_18\%_8\%\,rgba\(251\,150\,187\,0\.32\)\,transparent_42\%\)\,radial-gradient\(circle_at_85\%_84\%\,rgba\(117\,208\,106\,0\.24\)\,transparent_40\%\)\]{background-image:radial-gradient(circle at 18% 8%,#fb96bb52,#0000 42%),radial-gradient(circle at 85% 84%,#75d06a3d,#0000 40%)}.bg-\[radial-gradient\(circle_at_50\%_100\%\,\#9333ea_0\%\,\#c084fc_40\%\,transparent_80\%\)\]{background-image:radial-gradient(circle at 50% 100%,#9333ea,#c084fc,#0000 80%)}.bg-\[radial-gradient\(circle_at_top_left\,\#f8fbff_0\%\,\#eef4ff_40\%\,\#f8f4ff_100\%\)\]{background-image:radial-gradient(circle at 0 0,#f8fbff,#eef4ff 40%,#f8f4ff)}.bg-\[radial-gradient\(circle_at_top_right\,rgba\(153\,86\,222\,0\.08\)\,transparent_45\%\)\,radial-gradient\(circle_at_bottom_left\,rgba\(31\,167\,225\,0\.08\)\,transparent_45\%\)\]{background-image:radial-gradient(circle at 100% 0,#9956de14,#0000 45%),radial-gradient(circle at 0 100%,#1fa7e114,#0000 45%)}.bg-\[radial-gradient\(ellipse_at_50\%_100\%\,\#7e22ce_10\%\,transparent_60\%\)\]{background-image:radial-gradient(at 50% 100%,#7e22ce 10%,#0000 60%)}.bg-\[url\(\'data\:image\/svg\+xml\;base64\,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAiLz4KPHBhdGggZD0iTTAgMEgxdjFIMHoiIGZpbGw9IiM2MzY2ZjEiIGZpbGwtb3BhY2l0eT0iMC4wNSIvPgo8L3N2Zz4\=\'\)\]{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAiLz4KPHBhdGggZD0iTTAgMEgxdjFIMHoiIGZpbGw9IiM2MzY2ZjEiIGZpbGwtb3BhY2l0eT0iMC4wNSIvPgo8L3N2Zz4=)}.bg-\[url\(\'data\:image\/svg\+xml\;base64\,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPgo8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMSI\+PC9yZWN0Pgo8L3N2Zz4\=\'\)\]{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPgo8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMSI+PC9yZWN0Pgo8L3N2Zz4=)}.\!from-\[\#6ED1CF\]{--tw-gradient-from:#6ed1cf!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.from-\[\#3b3a82\]{--tw-gradient-from:#3b3a82;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#6ED1CF\]{--tw-gradient-from:#6ed1cf;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#7274ED\]{--tw-gradient-from:#7274ed;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#9956DE\]{--tw-gradient-from:#9956de;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#9956DE\]\/12{--tw-gradient-from:oklab(59.4745% .111053 -.167638/.12);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#FFB356\]{--tw-gradient-from:#ffb356;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-100{--tw-gradient-from:var(--color-amber-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-400{--tw-gradient-from:var(--color-amber-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-500\/20{--tw-gradient-from:#f99c0033}@supports (color:color-mix(in lab,red,red)){.from-amber-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.from-amber-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-600{--tw-gradient-from:var(--color-amber-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500\/20{--tw-gradient-from:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.from-emerald-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.from-emerald-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-600{--tw-gradient-from:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-green-500{--tw-gradient-from:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-50{--tw-gradient-from:var(--color-indigo-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-200{--tw-gradient-from:var(--color-indigo-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500\/20{--tw-gradient-from:#625fff33}@supports (color:color-mix(in lab,red,red)){.from-indigo-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.from-indigo-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-600{--tw-gradient-from:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-orange-50{--tw-gradient-from:var(--color-orange-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-orange-500{--tw-gradient-from:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-pink-50\/50{--tw-gradient-from:#fdf2f880}@supports (color:color-mix(in lab,red,red)){.from-pink-50\/50{--tw-gradient-from:color-mix(in oklab,var(--color-pink-50)50%,transparent)}}.from-pink-50\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-pink-500{--tw-gradient-from:var(--color-pink-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-100\/30{--tw-gradient-from:#f3e8ff4d}@supports (color:color-mix(in lab,red,red)){.from-purple-100\/30{--tw-gradient-from:color-mix(in oklab,var(--color-purple-100)30%,transparent)}}.from-purple-100\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-300\/50{--tw-gradient-from:#d9b3ff80}@supports (color:color-mix(in lab,red,red)){.from-purple-300\/50{--tw-gradient-from:color-mix(in oklab,var(--color-purple-300)50%,transparent)}}.from-purple-300\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-400\/20{--tw-gradient-from:#c07eff33}@supports (color:color-mix(in lab,red,red)){.from-purple-400\/20{--tw-gradient-from:color-mix(in oklab,var(--color-purple-400)20%,transparent)}}.from-purple-400\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-500{--tw-gradient-from:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-500\/20{--tw-gradient-from:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.from-purple-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.from-purple-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-600{--tw-gradient-from:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-rose-50{--tw-gradient-from:var(--color-rose-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-rose-400{--tw-gradient-from:var(--color-rose-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-50{--tw-gradient-from:var(--color-violet-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-100{--tw-gradient-from:var(--color-violet-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-500{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-500\/20{--tw-gradient-from:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.from-sky-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.from-sky-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-600{--tw-gradient-from:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-700{--tw-gradient-from:var(--color-violet-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-50\/30{--tw-gradient-from:#f8fafc4d}@supports (color:color-mix(in lab,red,red)){.from-slate-50\/30{--tw-gradient-from:color-mix(in oklab,var(--color-slate-50)30%,transparent)}}.from-slate-50\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-200{--tw-gradient-from:var(--color-slate-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-900\/40{--tw-gradient-from:#0f172b66}@supports (color:color-mix(in lab,red,red)){.from-slate-900\/40{--tw-gradient-from:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.from-slate-900\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-teal-50{--tw-gradient-from:var(--color-teal-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-teal-500{--tw-gradient-from:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-violet-500{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/0{--tw-gradient-from:#0000}@supports (color:color-mix(in lab,red,red)){.from-white\/0{--tw-gradient-from:color-mix(in oklab,var(--color-white)0%,transparent)}}.from-white\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/20{--tw-gradient-from:#fff3}@supports (color:color-mix(in lab,red,red)){.from-white\/20{--tw-gradient-from:color-mix(in oklab,var(--color-white)20%,transparent)}}.from-white\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-\[\#75D06A\]{--tw-gradient-via:#75d06a;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-\[\#7274ED\]{--tw-gradient-via:#7274ed;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-amber-400\/40{--tw-gradient-via:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.via-amber-400\/40{--tw-gradient-via:color-mix(in oklab,var(--color-amber-400)40%,transparent)}}.via-amber-400\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-cyan-500{--tw-gradient-via:var(--color-cyan-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-cyan-500\/10{--tw-gradient-via:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.via-cyan-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-cyan-500)10%,transparent)}}.via-cyan-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-emerald-500{--tw-gradient-via:var(--color-emerald-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-emerald-500\/40{--tw-gradient-via:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.via-emerald-500\/40{--tw-gradient-via:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.via-emerald-500\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-fuchsia-50{--tw-gradient-via:var(--color-fuchsia-50);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-fuchsia-500\/10{--tw-gradient-via:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.via-fuchsia-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.via-fuchsia-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-orange-500{--tw-gradient-via:var(--color-orange-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-orange-500\/10{--tw-gradient-via:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.via-orange-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.via-orange-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-pink-500{--tw-gradient-via:var(--color-pink-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-pink-600{--tw-gradient-via:var(--color-pink-600);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-purple-500\/10{--tw-gradient-via:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.via-purple-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.via-purple-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-rose-500\/40{--tw-gradient-via:#ff235766}@supports (color:color-mix(in lab,red,red)){.via-rose-500\/40{--tw-gradient-via:color-mix(in oklab,var(--color-rose-500)40%,transparent)}}.via-rose-500\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-50\/30{--tw-gradient-via:#f5f3ff4d}@supports (color:color-mix(in lab,red,red)){.via-sky-50\/30{--tw-gradient-via:color-mix(in oklab,var(--color-violet-50)30%,transparent)}}.via-sky-50\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-50\/50{--tw-gradient-via:#f5f3ff80}@supports (color:color-mix(in lab,red,red)){.via-sky-50\/50{--tw-gradient-via:color-mix(in oklab,var(--color-violet-50)50%,transparent)}}.via-sky-50\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-300\/30{--tw-gradient-via:#c4b4ff4d}@supports (color:color-mix(in lab,red,red)){.via-sky-300\/30{--tw-gradient-via:color-mix(in oklab,var(--color-violet-300)30%,transparent)}}.via-sky-300\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-400\/40{--tw-gradient-via:#a685ff66}@supports (color:color-mix(in lab,red,red)){.via-sky-400\/40{--tw-gradient-via:color-mix(in oklab,var(--color-violet-400)40%,transparent)}}.via-sky-400\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-400\/50{--tw-gradient-via:#a685ff80}@supports (color:color-mix(in lab,red,red)){.via-sky-400\/50{--tw-gradient-via:color-mix(in oklab,var(--color-violet-400)50%,transparent)}}.via-sky-400\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-500{--tw-gradient-via:var(--color-violet-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-600{--tw-gradient-via:var(--color-violet-600);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-teal-500\/10{--tw-gradient-via:#00baa71a}@supports (color:color-mix(in lab,red,red)){.via-teal-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.via-teal-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/15{--tw-gradient-via:#ffffff26}@supports (color:color-mix(in lab,red,red)){.via-white\/15{--tw-gradient-via:color-mix(in oklab,var(--color-white)15%,transparent)}}.via-white\/15{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/30{--tw-gradient-via:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.via-white\/30{--tw-gradient-via:color-mix(in oklab,var(--color-white)30%,transparent)}}.via-white\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/40{--tw-gradient-via:#fff6}@supports (color:color-mix(in lab,red,red)){.via-white\/40{--tw-gradient-via:color-mix(in oklab,var(--color-white)40%,transparent)}}.via-white\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/50{--tw-gradient-via:#ffffff80}@supports (color:color-mix(in lab,red,red)){.via-white\/50{--tw-gradient-via:color-mix(in oklab,var(--color-white)50%,transparent)}}.via-white\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.\!to-\[\#1FA7E1\]{--tw-gradient-to:#1fa7e1!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.to-\[\#1FA7E1\]{--tw-gradient-to:#1fa7e1;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#6ED1CF\]\/18{--tw-gradient-to:oklab(80.0346% -.0906707 -.0221346/.18);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#9956DE\]{--tw-gradient-to:#9956de;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#FF8B8B\]{--tw-gradient-to:#ff8b8b;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#FFB356\]{--tw-gradient-to:#ffb356;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-amber-50{--tw-gradient-to:var(--color-amber-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-amber-600\/5{--tw-gradient-to:#dd74000d}@supports (color:color-mix(in lab,red,red)){.to-amber-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-amber-600)5%,transparent)}}.to-amber-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-50{--tw-gradient-to:var(--color-cyan-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-100{--tw-gradient-to:var(--color-cyan-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-500{--tw-gradient-to:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-50{--tw-gradient-to:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-500{--tw-gradient-to:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-600{--tw-gradient-to:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-600\/5{--tw-gradient-to:#0097670d}@supports (color:color-mix(in lab,red,red)){.to-emerald-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-emerald-600)5%,transparent)}}.to-emerald-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-fuchsia-500{--tw-gradient-to:var(--color-fuchsia-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-100{--tw-gradient-to:var(--color-indigo-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-500\/20{--tw-gradient-to:#625fff33}@supports (color:color-mix(in lab,red,red)){.to-indigo-500\/20{--tw-gradient-to:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.to-indigo-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-600{--tw-gradient-to:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-600\/5{--tw-gradient-to:#4f39f60d}@supports (color:color-mix(in lab,red,red)){.to-indigo-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-indigo-600)5%,transparent)}}.to-indigo-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-700{--tw-gradient-to:var(--color-indigo-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-800{--tw-gradient-to:var(--color-indigo-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-50{--tw-gradient-to:var(--color-orange-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-100{--tw-gradient-to:var(--color-orange-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-500{--tw-gradient-to:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-600{--tw-gradient-to:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-100\/30{--tw-gradient-to:#fce7f34d}@supports (color:color-mix(in lab,red,red)){.to-pink-100\/30{--tw-gradient-to:color-mix(in oklab,var(--color-pink-100)30%,transparent)}}.to-pink-100\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-300\/40{--tw-gradient-to:#fda5d566}@supports (color:color-mix(in lab,red,red)){.to-pink-300\/40{--tw-gradient-to:color-mix(in oklab,var(--color-pink-300)40%,transparent)}}.to-pink-300\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-400\/20{--tw-gradient-to:#fb64b633}@supports (color:color-mix(in lab,red,red)){.to-pink-400\/20{--tw-gradient-to:color-mix(in oklab,var(--color-pink-400)20%,transparent)}}.to-pink-400\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-500{--tw-gradient-to:var(--color-pink-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-500{--tw-gradient-to:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600\/5{--tw-gradient-to:#9810fa0d}@supports (color:color-mix(in lab,red,red)){.to-purple-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-purple-600)5%,transparent)}}.to-purple-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-red-500{--tw-gradient-to:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-rose-500{--tw-gradient-to:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-rose-600{--tw-gradient-to:var(--color-rose-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-100{--tw-gradient-to:var(--color-violet-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-500{--tw-gradient-to:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-600{--tw-gradient-to:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-600\/5{--tw-gradient-to:#7f22fe0d}@supports (color:color-mix(in lab,red,red)){.to-sky-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-violet-600)5%,transparent)}}.to-sky-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-50{--tw-gradient-to:var(--color-slate-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-100{--tw-gradient-to:var(--color-slate-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-100{--tw-gradient-to:var(--color-teal-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-300{--tw-gradient-to:var(--color-teal-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-500{--tw-gradient-to:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-600{--tw-gradient-to:var(--color-teal-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-700{--tw-gradient-to:var(--color-teal-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab,red,red)){.to-white\/0{--tw-gradient-to:color-mix(in oklab,var(--color-white)0%,transparent)}}.to-white\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\/10{--tw-gradient-to:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.to-white\/10{--tw-gradient-to:color-mix(in oklab,var(--color-white)10%,transparent)}}.to-white\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[background-size\:var\(--beam-size\)_var\(--beam-size\)\]{background-size:var(--beam-size)var(--beam-size)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-amber-300{fill:var(--color-amber-300)}.fill-amber-400{fill:var(--color-amber-400)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.fill-yellow-300{fill:var(--color-yellow-300)}.stroke-\[2\.5\]{stroke-width:2.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-bottom{object-position:bottom}.object-center{object-position:center}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-3\.5{padding:calc(var(--spacing)*3.5)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-7{padding:calc(var(--spacing)*7)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-7{padding-block:calc(var(--spacing)*7)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.py-20{padding-block:calc(var(--spacing)*20)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-10{padding-top:calc(var(--spacing)*10)}.pr-0{padding-right:calc(var(--spacing)*0)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-11{padding-right:calc(var(--spacing)*11)}.pr-24{padding-right:calc(var(--spacing)*24)}.pr-40{padding-right:calc(var(--spacing)*40)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.pb-32{padding-bottom:calc(var(--spacing)*32)}.pb-48{padding-bottom:calc(var(--spacing)*48)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-10{padding-left:calc(var(--spacing)*10)}.pl-11{padding-left:calc(var(--spacing)*11)}.pl-16{padding-left:calc(var(--spacing)*16)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[6px\]{font-size:6px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[32px\]{font-size:32px}.text-\[36px\]{font-size:36px}.text-\[40px\]{font-size:40px}.text-\[50px\]{font-size:50px}.text-\[60px\]{font-size:60px}.text-\[80px\]{font-size:80px}.text-\[140px\]{font-size:140px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.7\]{--tw-leading:1.7;line-height:1.7}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.3px\]{--tw-tracking:.3px;letter-spacing:.3px}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.25em\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-\[\#1FA7E1\]{color:#1fa7e1!important}.\!text-white{color:var(--color-white)!important}.text-\[\#0a1628\]{color:#0a1628}.text-\[\#1E293B\]{color:#1e293b}.text-\[\#1FA7E1\]{color:#1fa7e1}.text-\[\#2e2b5e\]{color:#2e2b5e}.text-\[\#3E8538\]{color:#3e8538}.text-\[\#3c4043\]{color:#3c4043}.text-\[\#4D9F46\]{color:#4d9f46}.text-\[\#5E3388\]{color:#5e3388}.text-\[\#5E3388\]\/80{color:#5e3388cc}.text-\[\#5a6578\]{color:#5a6578}.text-\[\#5f6368\]{color:#5f6368}.text-\[\#6ED1CF\]{color:#6ed1cf}.text-\[\#7A44B3\]{color:#7a44b3}.text-\[\#7b8798\]{color:#7b8798}.text-\[\#7eafbe\]{color:#7eafbe}.text-\[\#8A1A1A\]{color:#8a1a1a}.text-\[\#8A3FD3\]{color:#8a3fd3}.text-\[\#8a7fbc\]{color:#8a7fbc}.text-\[\#8f5ae2\]{color:#8f5ae2}.text-\[\#35a8bc\]\/10{color:#35a8bc1a}.text-\[\#75D06A\]{color:#75d06a}.text-\[\#141b2d\]{color:#141b2d}.text-\[\#319ab4\]{color:#319ab4}.text-\[\#6620a2\]{color:#6620a2}.text-\[\#7274ED\]{color:#7274ed}.text-\[\#9956DE\]{color:#9956de}.text-\[\#36326e\]{color:#36326e}.text-\[\#202124\]{color:#202124}.text-\[\#334155\]{color:#334155}.text-\[\#A56D29\]{color:#a56d29}.text-\[\#A74B50\]{color:#a74b50}.text-\[\#C65E63\]{color:#c65e63}.text-\[\#CC8A37\]{color:#cc8a37}.text-\[\#D66A6A\]{color:#d66a6a}.text-\[\#EAFBFF\]{color:#eafbff}.text-\[\#F1E4FF\]{color:#f1e4ff}.text-\[\#F08386\]{color:#f08386}.text-\[\#FF8B8B\]{color:#ff8b8b}.text-\[\#FFB356\]{color:#ffb356}.text-\[\#a0aec0\]{color:#a0aec0}.text-\[\#a3b1ee\]{color:#a3b1ee}.text-\[\#a06aec\]\/10{color:#a06aec1a}.text-\[\#a8a5b3\]{color:#a8a5b3}.text-\[\#baa4df\]{color:#baa4df}.text-\[\#c2cad8\]{color:#c2cad8}.text-\[\#d1abff\]{color:#d1abff}.text-\[\#d1cec6\]{color:#d1cec6}.text-\[\#d2a893\]{color:#d2a893}.text-\[\#d05c54\]{color:#d05c54}.text-\[\#db734b\]{color:#db734b}.text-\[\#dd9a9a\]{color:#dd9a9a}.text-\[\#dde3eb\]{color:#dde3eb}.text-\[\#df655a\]\/10{color:#df655a1a}.text-\[\#e87a42\]\/10{color:#e87a421a}.text-\[\#f8fafc\]{color:#f8fafc}.text-\[\#fcd34d\]{color:#fcd34d}.text-\[\#fde047\]{color:#fde047}.text-\[var\(--chart-1\)\]{color:var(--chart-1)}.text-\[var\(--chart-2\)\]{color:var(--chart-2)}.text-\[var\(--chart-3\)\]{color:var(--chart-3)}.text-\[var\(--chart-4\)\]{color:var(--chart-4)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-800\/80{color:#953d00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-800\/80{color:color-mix(in oklab,var(--color-amber-800)80%,transparent)}}.text-amber-900{color:var(--color-amber-900)}.text-amber-900\/80{color:#7b3306cc}@supports (color:color-mix(in lab,red,red)){.text-amber-900\/80{color:color-mix(in oklab,var(--color-amber-900)80%,transparent)}}.text-amber-900\/85{color:#7b3306d9}@supports (color:color-mix(in lab,red,red)){.text-amber-900\/85{color:color-mix(in oklab,var(--color-amber-900)85%,transparent)}}.text-black\/25{color:#00000040}@supports (color:color-mix(in lab,red,red)){.text-black\/25{color:color-mix(in oklab,var(--color-black)25%,transparent)}}.text-blue-600{color:var(--color-blue-600)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-cyan-100{color:var(--color-cyan-100)}.text-cyan-200{color:var(--color-cyan-200)}.text-destructive{color:var(--destructive)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-800\/80{color:#005f46cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-800\/80{color:color-mix(in oklab,var(--color-emerald-800)80%,transparent)}}.text-emerald-900{color:var(--color-emerald-900)}.text-emerald-950{color:var(--color-emerald-950)}.text-foreground{color:var(--foreground)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-800{color:var(--color-indigo-800)}.text-indigo-800\/80{color:#372aaccc}@supports (color:color-mix(in lab,red,red)){.text-indigo-800\/80{color:color-mix(in oklab,var(--color-indigo-800)80%,transparent)}}.text-muted-foreground,.text-muted-foreground\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--muted-foreground)40%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground)60%,transparent)}}.text-orange-300{color:var(--color-orange-300)}.text-orange-400{color:var(--color-orange-400)}.text-orange-400\/60{color:#ff8b1a99}@supports (color:color-mix(in lab,red,red)){.text-orange-400\/60{color:color-mix(in oklab,var(--color-orange-400)60%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-pink-600{color:var(--color-pink-600)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-purple-600\/80{color:#9810facc}@supports (color:color-mix(in lab,red,red)){.text-purple-600\/80{color:color-mix(in oklab,var(--color-purple-600)80%,transparent)}}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-rose-200{color:var(--color-rose-200)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-rose-900{color:var(--color-rose-900)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.text-sky-100{color:var(--color-violet-100)}.text-sky-200{color:var(--color-violet-200)}.text-sky-300{color:var(--color-violet-300)}.text-sky-400{color:var(--color-violet-400)}.text-sky-500{color:var(--color-violet-500)}.text-sky-600{color:var(--color-violet-600)}.text-sky-600\/80{color:#7f22fecc}@supports (color:color-mix(in lab,red,red)){.text-sky-600\/80{color:color-mix(in oklab,var(--color-violet-600)80%,transparent)}}.text-sky-700{color:var(--color-violet-700)}.text-sky-800{color:var(--color-violet-800)}.text-sky-900{color:var(--color-violet-900)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-400\/80{color:#90a1b9cc}@supports (color:color-mix(in lab,red,red)){.text-slate-400\/80{color:color-mix(in oklab,var(--color-slate-400)80%,transparent)}}.text-slate-500{color:var(--color-slate-500)}.text-slate-500\/60{color:#62748e99}@supports (color:color-mix(in lab,red,red)){.text-slate-500\/60{color:color-mix(in oklab,var(--color-slate-500)60%,transparent)}}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-teal-200{color:var(--color-teal-200)}.text-teal-400{color:var(--color-teal-400)}.text-teal-500{color:var(--color-teal-500)}.text-teal-600{color:var(--color-teal-600)}.text-teal-700{color:var(--color-teal-700)}.text-teal-800{color:var(--color-teal-800)}.text-teal-900{color:var(--color-teal-900)}.text-transparent{color:#0000}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.text-white\/5{color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.text-white\/5{color:color-mix(in oklab,var(--color-white)5%,transparent)}}.text-white\/10{color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.text-white\/10{color:color-mix(in oklab,var(--color-white)10%,transparent)}}.text-white\/30{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.text-white\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white)85%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.text-yellow-300{color:var(--color-yellow-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-700{color:var(--color-zinc-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.decoration-slate-400{-webkit-text-decoration-color:var(--color-slate-400);text-decoration-color:var(--color-slate-400)}.underline-offset-4{text-underline-offset:4px}.placeholder-\[\#a8a5b3\]::placeholder{color:#a8a5b3}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.opacity-\[0\.2\]{opacity:.2}.opacity-\[0\.03\]{opacity:.03}.opacity-\[0\.15\]{opacity:.15}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-screen{mix-blend-mode:screen}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_-15px_50px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 -15px 50px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(139\,92\,246\,0\.2\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#8b5cf633);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(245\,158\,11\,0\.2\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#f59e0b33);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(255\,255\,255\,0\.5\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#ffffff80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(16\,185\,129\,0\.2\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#10b98133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(99\,102\,241\,0\.2\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#6366f133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(158\,143\,255\,0\.4\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#9e8fff66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(245\,158\,11\,0\.2\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#f59e0b33);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_18px_rgba\(255\,139\,139\,0\.6\)\]{--tw-shadow:0 0 18px var(--tw-shadow-color,#ff8b8b99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_18px_rgba\(255\,179\,86\,0\.6\)\]{--tw-shadow:0 0 18px var(--tw-shadow-color,#ffb35699);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_24px_rgba\(250\,204\,21\,0\.6\)\]{--tw-shadow:0 0 24px var(--tw-shadow-color,#facc1599);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(16\,185\,129\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#10b98133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(31\,167\,225\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#1fa7e133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(99\,102\,241\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#6366f133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(138\,63\,211\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#8a3fd333);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(245\,158\,11\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#f59e0b33);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_15px_-3px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:0 2px 15px -3px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_8px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 4px 8px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_5px_12px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:0 5px 12px var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(2\,132\,199\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#0284c7);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(5\,150\,105\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#059669);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(109\,40\,217\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#6d28d9);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(225\,29\,72\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#e11d48);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_16px_rgba\(18\,25\,43\,0\.3\)\]{--tw-shadow:0 8px 16px var(--tw-shadow-color,#12192b4d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgb\(0\,0\,0\,0\.04\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(31\,167\,225\,0\.2\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#1fa7e133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(59\,58\,130\,0\.3\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#3b3a824d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(138\,63\,211\,0\.2\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#8a3fd333);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_30px_-10px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:0 10px 30px -10px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_30px_-10px_rgba\(37\,99\,235\,0\.6\)\]{--tw-shadow:0 10px 30px -10px var(--tw-shadow-color,#2563eb99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_40px_-10px_rgba\(0\,0\,0\,0\.15\)\]{--tw-shadow:0 10px 40px -10px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_25px_rgba\(0\,0\,0\,0\.08\)\]{--tw-shadow:0 12px 25px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_15px_25px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:0 15px 25px var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_15px_35px_-5px_rgba\(236\,72\,153\,0\.4\)\]{--tw-shadow:0 15px 35px -5px var(--tw-shadow-color,#ec489966);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_18px_30px_-20px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow:0 18px 30px -20px var(--tw-shadow-color,#00000073);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_30px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 30px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_40px_-10px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 40px -10px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_40px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 40px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_45px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 45px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_50px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 50px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_-15px_rgba\(168\,85\,247\,0\.15\)\]{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#a855f726);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_30px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 30px 60px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_30px_60px_rgba\(15\,23\,42\,0\.4\)\,inset_0_0_120px_rgba\(0\,0\,0\,0\.9\)\]{--tw-shadow:0 30px 60px var(--tw-shadow-color,#0f172a66),inset 0 0 120px var(--tw-shadow-color,#000000e6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_30px_80px_rgba\(0\,0\,0\,0\.8\)\]{--tw-shadow:0 30px 80px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-4px_6px_rgba\(0\,0\,0\,0\.05\)\,0_4px_6px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:inset 0 -4px 6px var(--tw-shadow-color,#0000000d),0 4px 6px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-4px_6px_rgba\(249\,115\,22\,0\.05\)\,0_4px_6px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow:inset 0 -4px 6px var(--tw-shadow-color,#f973160d),0 4px 6px var(--tw-shadow-color,#00000005);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-4px_8px_rgba\(251\,191\,36\,0\.1\)\,0_6px_8px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:inset 0 -4px 8px var(--tw-shadow-color,#fbbf241a),0 6px 8px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_2px_4px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_2px_4px_rgba\(255\,255\,255\,0\.1\)\,_inset_0_-4px_4px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#ffffff1a),inset 0 -4px 4px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_6px_15px_rgba\(255\,255\,255\,0\.4\)\]{--tw-shadow:inset 0 6px 15px var(--tw-shadow-color,#fff6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow\/elevation{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[6px\]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(6px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[\#1FA7E1\]\/20{--tw-shadow-color:#1fa7e133}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#1FA7E1\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(68.7044% -.0807821 -.10979/.2) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#1FA7E1\]\/30{--tw-shadow-color:#1fa7e14d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#1FA7E1\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(68.7044% -.0807821 -.10979/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#1FA7E1\]\/40{--tw-shadow-color:#1fa7e166}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#1FA7E1\]\/40{--tw-shadow-color:color-mix(in oklab,oklab(68.7044% -.0807821 -.10979/.4) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#8A3FD3\]\/30{--tw-shadow-color:#8a3fd34d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#8A3FD3\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(54.1025% .117281 -.181162/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#8A3FD3\]\/40{--tw-shadow-color:#8a3fd366}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#8A3FD3\]\/40{--tw-shadow-color:color-mix(in oklab,oklab(54.1025% .117281 -.181162/.4) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#8B5CF6\]\/20{--tw-shadow-color:#8b5cf633}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#8B5CF6\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(60.5631% .0845415 -.201932/.2) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#9956DE\]\/20{--tw-shadow-color:#9956de33}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#9956DE\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(59.4745% .111053 -.167638/.2) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#9956DE\]\/30{--tw-shadow-color:#9956de4d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#9956DE\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(59.4745% .111053 -.167638/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#FB96BB\]\/30{--tw-shadow-color:#fb96bb4d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#FB96BB\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(78.801% .12777 -.00670064/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#FFB356\]\/30{--tw-shadow-color:#ffb3564d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#FFB356\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(82.2219% .0499055 .130321/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[rgba\(124\,58\,237\,0\.05\)_0px_0px_30px_inset\]{--tw-shadow-color:#7c3aed0d}@supports (color:color-mix(in lab,red,red)){.shadow-\[rgba\(124\,58\,237\,0\.05\)_0px_0px_30px_inset\]{--tw-shadow-color:color-mix(in oklab,#7c3aed0d 0px 0px 30px inset var(--tw-shadow-alpha),transparent)}}.shadow-purple-500\/20{--tw-shadow-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.shadow-purple-500\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-purple-500)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-purple-600\/25{--tw-shadow-color:#9810fa40}@supports (color:color-mix(in lab,red,red)){.shadow-purple-600\/25{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-purple-600)25%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-red-100{--tw-shadow-color:oklch(93.6% .032 17.717)}@supports (color:color-mix(in lab,red,red)){.shadow-red-100{--tw-shadow-color:color-mix(in oklab,var(--color-red-100)var(--tw-shadow-alpha),transparent)}}.shadow-red-900\/10{--tw-shadow-color:#82181a1a}@supports (color:color-mix(in lab,red,red)){.shadow-red-900\/10{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-red-900)10%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-rose-200{--tw-shadow-color:oklch(89.2% .058 10.001)}@supports (color:color-mix(in lab,red,red)){.shadow-rose-200{--tw-shadow-color:color-mix(in oklab,var(--color-rose-200)var(--tw-shadow-alpha),transparent)}}.shadow-sky-200{--tw-shadow-color:oklch(89.4% .057 293.283)}@supports (color:color-mix(in lab,red,red)){.shadow-sky-200{--tw-shadow-color:color-mix(in oklab,var(--color-violet-200)var(--tw-shadow-alpha),transparent)}}.shadow-sky-500\/20{--tw-shadow-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.shadow-sky-500\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-violet-500)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-slate-900\/\[0\.04\]{--tw-shadow-color:#0f172b0a}@supports (color:color-mix(in lab,red,red)){.shadow-slate-900\/\[0\.04\]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-slate-900)4%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-teal-100{--tw-shadow-color:oklch(95.3% .051 180.801)}@supports (color:color-mix(in lab,red,red)){.shadow-teal-100{--tw-shadow-color:color-mix(in oklab,var(--color-teal-100)var(--tw-shadow-alpha),transparent)}}.shadow-teal-200{--tw-shadow-color:oklch(91% .096 180.426)}@supports (color:color-mix(in lab,red,red)){.shadow-teal-200{--tw-shadow-color:color-mix(in oklab,var(--color-teal-200)var(--tw-shadow-alpha),transparent)}}.shadow-teal-500\/30{--tw-shadow-color:#00baa74d}@supports (color:color-mix(in lab,red,red)){.shadow-teal-500\/30{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-teal-500)30%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-\[\#1FA7E1\]\/35{--tw-ring-color:oklab(68.7044% -.0807821 -.10979/.35)}.ring-\[\#8B5CF6\]\/10{--tw-ring-color:oklab(60.5631% .0845415 -.201932/.1)}.ring-\[\#9956DE\]\/45{--tw-ring-color:oklab(59.4745% .111053 -.167638/.45)}.ring-\[\#9956DE\]\/50{--tw-ring-color:oklab(59.4745% .111053 -.167638/.5)}.ring-\[color-mix\(in_srgb\,var\(--chart-2\)_40\%\,transparent\)\]{--tw-ring-color:var(--chart-2)}@supports (color:color-mix(in lab,red,red)){.ring-\[color-mix\(in_srgb\,var\(--chart-2\)_40\%\,transparent\)\]{--tw-ring-color:color-mix(in srgb,var(--chart-2)40%,transparent)}}.ring-\[color-mix\(in_srgb\,var\(--chart-3\)_40\%\,transparent\)\]{--tw-ring-color:var(--chart-3)}@supports (color:color-mix(in lab,red,red)){.ring-\[color-mix\(in_srgb\,var\(--chart-3\)_40\%\,transparent\)\]{--tw-ring-color:color-mix(in srgb,var(--chart-3)40%,transparent)}}.ring-\[color-mix\(in_srgb\,var\(--chart-4\)_40\%\,transparent\)\]{--tw-ring-color:var(--chart-4)}@supports (color:color-mix(in lab,red,red)){.ring-\[color-mix\(in_srgb\,var\(--chart-4\)_40\%\,transparent\)\]{--tw-ring-color:color-mix(in srgb,var(--chart-4)40%,transparent)}}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-green-300{--tw-ring-color:var(--color-green-300)}.ring-indigo-100{--tw-ring-color:var(--color-indigo-100)}.ring-primary,.ring-primary\/40{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab,var(--primary)40%,transparent)}}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-red-300{--tw-ring-color:var(--color-red-300)}.ring-red-500{--tw-ring-color:var(--color-red-500)}.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.ring-rose-300{--tw-ring-color:var(--color-rose-300)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-sky-100{--tw-ring-color:var(--color-violet-100)}.ring-sky-300\/50{--tw-ring-color:#c4b4ff80}@supports (color:color-mix(in lab,red,red)){.ring-sky-300\/50{--tw-ring-color:color-mix(in oklab,var(--color-violet-300)50%,transparent)}}.ring-sky-500\/10{--tw-ring-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.ring-sky-500\/10{--tw-ring-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.ring-slate-900\/5{--tw-ring-color:#0f172b0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-900\/5{--tw-ring-color:color-mix(in oklab,var(--color-slate-900)5%,transparent)}}.ring-teal-200{--tw-ring-color:var(--color-teal-200)}.ring-white{--tw-ring-color:var(--color-white)}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.ring-white\/20{--tw-ring-color:#fff3}@supports (color:color-mix(in lab,red,red)){.ring-white\/20{--tw-ring-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-\[6px\]{--tw-ring-offset-width:6px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-\[\#0B0F19\]{--tw-ring-offset-color:#0b0f19}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));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,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.blur-\[1px\]{--tw-blur:blur(1px);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,)}.blur-\[15px\]{--tw-blur:blur(15px);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,)}.blur-\[32px\]{--tw-blur:blur(32px);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,)}.blur-\[60px\]{--tw-blur:blur(60px);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,)}.blur-\[70px\]{--tw-blur:blur(70px);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,)}.blur-\[100px\]{--tw-blur:blur(100px);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,)}.blur-\[120px\]{--tw-blur:blur(120px);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,)}.blur-\[140px\]{--tw-blur:blur(140px);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,)}.blur-\[160px\]{--tw-blur:blur(160px);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,)}.blur-xl{--tw-blur:blur(var(--blur-xl));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,)}.contrast-50{--tw-contrast:contrast(50%);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.drop-shadow-\[-2px_-2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(-2px -2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[-2px_2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(-2px 2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[-2px_3px_0px_rgba\(0\,0\,0\,0\.8\)\]{--tw-drop-shadow-size:drop-shadow(-2px 3px 0px var(--tw-drop-shadow-color,#000c));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[-3px_0px_0px_white\]{--tw-drop-shadow-size:drop-shadow(-3px 0px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(16\,185\,129\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#10b98180));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(31\,167\,225\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#1fa7e180));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(99\,102\,241\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#6366f180));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(138\,63\,211\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#8a3fd380));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(251\,191\,36\,0\.9\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#fbbf24e6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_12px_rgba\(245\,158\,11\,0\.6\)\]{--tw-drop-shadow-size:drop-shadow(0 0 12px var(--tw-drop-shadow-color,#f59e0b99));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_12px_rgba\(250\,204\,21\,0\.9\)\]{--tw-drop-shadow-size:drop-shadow(0 0 12px var(--tw-drop-shadow-color,#facc15e6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_12px_rgba\(255\,255\,255\,0\.4\)\]{--tw-drop-shadow-size:drop-shadow(0 0 12px var(--tw-drop-shadow-color,#fff6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_15px_rgba\(253\,224\,71\,0\.6\)\]{--tw-drop-shadow-size:drop-shadow(0 0 15px var(--tw-drop-shadow-color,#fde04799));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_25px_rgba\(252\,211\,77\,0\.9\)\]{--tw-drop-shadow-size:drop-shadow(0 0 25px var(--tw-drop-shadow-color,#fcd34de6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_12px_15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-drop-shadow-size:drop-shadow(0 12px 15px var(--tw-drop-shadow-color,#0000004d));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_15px_15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-drop-shadow-size:drop-shadow(0 15px 15px var(--tw-drop-shadow-color,#0000004d));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0px_-3px_0px_white\]{--tw-drop-shadow-size:drop-shadow(0px -3px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0px_3px_0px_white\]{--tw-drop-shadow-size:drop-shadow(0px 3px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[2px_-2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(2px -2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[2px_2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(2px 2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[3px_0px_0px_white\]{--tw-drop-shadow-size:drop-shadow(3px 0px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));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,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));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,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));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,)}.drop-shadow-xl{--tw-drop-shadow-size:drop-shadow(0 9px 7px var(--tw-drop-shadow-color,#0000001a));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xl));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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.saturate-50{--tw-saturate:saturate(50%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-75{transition-delay:75ms}.duration-0{--tw-duration:0s;transition-duration:0s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.prose-slate{--tw-prose-body:oklch(37.2% .044 257.287);--tw-prose-headings:oklch(20.8% .042 265.755);--tw-prose-lead:oklch(44.6% .043 257.281);--tw-prose-links:oklch(20.8% .042 265.755);--tw-prose-bold:oklch(20.8% .042 265.755);--tw-prose-counters:oklch(55.4% .046 257.417);--tw-prose-bullets:oklch(86.9% .022 252.894);--tw-prose-hr:oklch(92.9% .013 255.508);--tw-prose-quotes:oklch(20.8% .042 265.755);--tw-prose-quote-borders:oklch(92.9% .013 255.508);--tw-prose-captions:oklch(55.4% .046 257.417);--tw-prose-kbd:oklch(20.8% .042 265.755);--tw-prose-kbd-shadows:oklab(20.8% -.00310889 -.0418848/.1);--tw-prose-code:oklch(20.8% .042 265.755);--tw-prose-pre-code:oklch(92.9% .013 255.508);--tw-prose-pre-bg:oklch(27.9% .041 260.031);--tw-prose-th-borders:oklch(86.9% .022 252.894);--tw-prose-td-borders:oklch(92.9% .013 255.508);--tw-prose-invert-body:oklch(86.9% .022 252.894);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.4% .04 256.788);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.4% .04 256.788);--tw-prose-invert-bullets:oklch(44.6% .043 257.281);--tw-prose-invert-hr:oklch(37.2% .044 257.287);--tw-prose-invert-quotes:oklch(96.8% .007 247.896);--tw-prose-invert-quote-borders:oklch(37.2% .044 257.287);--tw-prose-invert-captions:oklch(70.4% .04 256.788);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(86.9% .022 252.894);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .043 257.281);--tw-prose-invert-td-borders:oklch(37.2% .044 257.287)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}.\[background\:linear-gradient\(var\(--grid-color\)_0_1px\,_transparent_1px_var\(--beam-size\)\)_50\%_-0\.5px_\/var\(--beam-size\)_var\(--beam-size\)\,linear-gradient\(90deg\,_var\(--grid-color\)_0_1px\,_transparent_1px_var\(--beam-size\)\)_50\%_50\%_\/var\(--beam-size\)_var\(--beam-size\)\]{background:linear-gradient(var(--grid-color)0 1px,transparent 1px var(--beam-size))50% -.5px/var(--beam-size)var(--beam-size),linear-gradient(90deg,var(--grid-color)0 1px,transparent 1px var(--beam-size))50% 50%/var(--beam-size)var(--beam-size)}.\[background\:var\(--background\)\]{background:var(--background)}.\[clip-path\:inset\(0\)\]{clip-path:inset(0)}.\[perspective\:var\(--perspective\)\]{perspective:var(--perspective)}.\[transform-style\:preserve-3d\]{transform-style:preserve-3d}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:left-\[150\%\]:is(:where(.group):hover *){left:150%}.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:-translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-4:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-1:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-2:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-4:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-4);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-y-0:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-125:is(:where(.group):hover *){--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-\[1\.3\]:is(:where(.group):hover *){scale:1.3}.group-hover\:-rotate-6:is(:where(.group):hover *){rotate:-6deg}.group-hover\:rotate-3:is(:where(.group):hover *){rotate:3deg}.group-hover\:rotate-12:is(:where(.group):hover *){rotate:12deg}.group-hover\:rotate-45:is(:where(.group):hover *){rotate:45deg}.group-hover\:border-\[\#dde3eb\]:is(:where(.group):hover *){border-color:#dde3eb}.group-hover\:border-amber-400:is(:where(.group):hover *){border-color:var(--color-amber-400)}.group-hover\:border-sky-300:is(:where(.group):hover *){border-color:var(--color-violet-300)}.group-hover\:border-r-amber-400:is(:where(.group):hover *){border-right-color:var(--color-amber-400)}.group-hover\:border-b-amber-400:is(:where(.group):hover *){border-bottom-color:var(--color-amber-400)}.group-hover\:bg-amber-50:is(:where(.group):hover *){background-color:var(--color-amber-50)}.group-hover\:bg-amber-100\/50:is(:where(.group):hover *){background-color:#fef3c680}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-amber-100\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-amber-100)50%,transparent)}}.group-hover\:bg-slate-50:is(:where(.group):hover *){background-color:var(--color-slate-50)}.group-hover\:bg-slate-600:is(:where(.group):hover *){background-color:var(--color-slate-600)}.group-hover\:text-\[\#9956DE\]:is(:where(.group):hover *){color:#9956de}.group-hover\:text-\[var\(--hover-color\)\]:is(:where(.group):hover *){color:var(--hover-color)}.group-hover\:text-amber-500:is(:where(.group):hover *){color:var(--color-amber-500)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\:text-purple-500:is(:where(.group):hover *){color:var(--color-purple-500)}.group-hover\:text-sky-500:is(:where(.group):hover *){color:var(--color-violet-500)}.group-hover\:text-sky-600:is(:where(.group):hover *){color:var(--color-violet-600)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:shadow-\[0_24px_40px_-15px_rgba\(0\,0\,0\,0\.5\)\]:is(:where(.group):hover *){--tw-shadow:0 24px 40px -15px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-hover\:shadow-xl:is(:where(.group):hover *){--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-hover\:duration-\[800ms\]:is(:where(.group):hover *){--tw-duration:.8s;transition-duration:.8s}.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[viewport\=false\]\/navigation-menu\:top-full:is(:where(.group\/navigation-menu)[data-viewport=false] *){top:100%}.group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5:is(:where(.group\/navigation-menu)[data-viewport=false] *){margin-top:calc(var(--spacing)*1.5)}.group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden:is(:where(.group\/navigation-menu)[data-viewport=false] *){overflow:hidden}.group-data-\[viewport\=false\]\/navigation-menu\:rounded-md:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-radius:calc(var(--radius) - 2px)}.group-data-\[viewport\=false\]\/navigation-menu\:border:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[viewport\=false\]\/navigation-menu\:bg-popover:is(:where(.group\/navigation-menu)[data-viewport=false] *){background-color:var(--popover)}.group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground:is(:where(.group\/navigation-menu)[data-viewport=false] *){color:var(--popover-foreground)}.group-data-\[viewport\=false\]\/navigation-menu\:shadow:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[viewport\=false\]\/navigation-menu\:duration-200:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-duration:.2s;transition-duration:.2s}.peer-checked\:bg-\[\#5a6578\]:is(:where(.peer):checked~*){background-color:#5a6578}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-focus\:outline-none:is(:where(.peer):focus~*){--tw-outline-style:none;outline-style:none}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:font-medium::placeholder{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.placeholder\:text-slate-400::placeholder{color:var(--color-slate-400)}.placeholder\:text-slate-500::placeholder{color:var(--color-slate-500)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing)*.5)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing)*1)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-\[\#dde3eb\]:after{content:var(--tw-content);border-color:#dde3eb}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}@media(hover:hover){.hover\:-translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.01\]:hover{scale:1.01}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:rotate-0:hover{rotate:none}.hover\:gap-2:hover{gap:calc(var(--spacing)*2)}.hover\:border-\[\#1FA7E1\]\/50:hover{border-color:#1fa7e180}.hover\:border-\[\#8A3FD3\]\/50:hover{border-color:#8a3fd380}.hover\:border-\[\#75D06A\]:hover{border-color:#75d06a}.hover\:border-\[\#75D06A\]\/60:hover{border-color:#75d06a99}.hover\:border-\[\#9956DE\]:hover{border-color:#9956de}.hover\:border-\[\#9956DE\]\/30:hover{border-color:#9956de4d}.hover\:border-\[\#9956DE\]\/60:hover{border-color:#9956de99}.hover\:border-\[\#F08386\]:hover{border-color:#f08386}.hover\:border-\[\#F08386\]\/60:hover{border-color:#f0838699}.hover\:border-\[\#d1cec6\]:hover{border-color:#d1cec6}.hover\:border-\[\#dde3eb\]:hover{border-color:#dde3eb}.hover\:border-amber-200\/60:hover{border-color:#fee68599}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-200\/60:hover{border-color:color-mix(in oklab,var(--color-amber-200)60%,transparent)}}.hover\:border-emerald-300:hover{border-color:var(--color-emerald-300)}.hover\:border-indigo-300:hover{border-color:var(--color-indigo-300)}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-orange-300:hover{border-color:var(--color-orange-300)}.hover\:border-rose-300:hover{border-color:var(--color-rose-300)}.hover\:border-sky-200:hover{border-color:var(--color-violet-200)}.hover\:border-sky-300:hover{border-color:var(--color-violet-300)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-teal-300:hover{border-color:var(--color-teal-300)}.hover\:bg-\[\#1C96CB\]:hover{background-color:#1c96cb}.hover\:bg-\[\#1FA7E1\]\/5:hover{background-color:#1fa7e10d}.hover\:bg-\[\#1a95c9\]:hover{background-color:#1a95c9}.hover\:bg-\[\#5AB84E\]:hover{background-color:#5ab84e}.hover\:bg-\[\#7A44B3\]:hover{background-color:#7a44b3}.hover\:bg-\[\#7b35c0\]:hover{background-color:#7b35c0}.hover\:bg-\[\#008f5d\]:hover{background-color:#008f5d}.hover\:bg-\[\#8A3FD3\]\/5:hover{background-color:#8a3fd30d}.hover\:bg-\[\#8A4DCA\]:hover{background-color:#8a4dca}.hover\:bg-\[\#75D06A\]\/14:hover{background-color:#75d06a24}.hover\:bg-\[\#9956DE\]\/12:hover{background-color:#9956de1f}.hover\:bg-\[\#F08386\]\/12:hover{background-color:#f083861f}.hover\:bg-\[\#FA7DA9\]:hover{background-color:#fa7da9}.hover\:bg-\[\#FF8B8B\]\/20:hover{background-color:#ff8b8b33}.hover\:bg-\[\#FF7373\]:hover{background-color:#ff7373}.hover\:bg-\[\#dde3eb\]:hover{background-color:#dde3eb}.hover\:bg-\[\#edf1f7\]:hover{background-color:#edf1f7}.hover\:bg-\[\#edf1f7\]\/50:hover{background-color:#edf1f780}.hover\:bg-\[\#f7f9fc\]:hover{background-color:#f7f9fc}.hover\:bg-accent:hover,.hover\:bg-accent\/40:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab,var(--accent)40%,transparent)}}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-cyan-200:hover{background-color:var(--color-cyan-200)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-emerald-200:hover{background-color:var(--color-emerald-200)}.hover\:bg-emerald-400:hover{background-color:var(--color-emerald-400)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-orange-50:hover{background-color:var(--color-orange-50)}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-primary:hover,.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-rose-50:hover{background-color:var(--color-rose-50)}.hover\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\:bg-rose-400:hover{background-color:var(--color-rose-400)}.hover\:bg-rose-500:hover{background-color:var(--color-rose-500)}.hover\:bg-rose-500\/10:hover{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-rose-500\/10:hover{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.hover\:bg-rose-700:hover{background-color:var(--color-rose-700)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-sky-50:hover{background-color:var(--color-violet-50)}.hover\:bg-sky-50\/80:hover{background-color:#f5f3ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sky-50\/80:hover{background-color:color-mix(in oklab,var(--color-violet-50)80%,transparent)}}.hover\:bg-sky-100:hover{background-color:var(--color-violet-100)}.hover\:bg-sky-300:hover{background-color:var(--color-violet-300)}.hover\:bg-sky-400:hover{background-color:var(--color-violet-400)}.hover\:bg-sky-600:hover{background-color:var(--color-violet-600)}.hover\:bg-sky-700:hover{background-color:var(--color-violet-700)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:bg-slate-200\/50:hover{background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/50:hover{background-color:color-mix(in oklab,var(--color-slate-200)50%,transparent)}}.hover\:bg-slate-200\/70:hover{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/70:hover{background-color:color-mix(in oklab,var(--color-slate-200)70%,transparent)}}.hover\:bg-teal-600:hover{background-color:var(--color-teal-600)}.hover\:bg-violet-100:hover{background-color:var(--color-violet-100)}.hover\:bg-violet-400:hover{background-color:var(--color-violet-400)}.hover\:bg-violet-500:hover{background-color:var(--color-violet-500)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:bg-white\/30:hover{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/30:hover{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:bg-white\/80:hover{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/80:hover{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\:\!from-\[\#8FE4DA\]:hover{--tw-gradient-from:#8fe4da!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.hover\:from-purple-500:hover{--tw-gradient-from:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:from-sky-700:hover{--tw-gradient-from:var(--color-violet-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:\!to-\[\#49BDEB\]:hover{--tw-gradient-to:#49bdeb!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.hover\:to-pink-400:hover{--tw-gradient-to:var(--color-pink-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-sky-600:hover{--tw-gradient-to:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:text-\[\#0a1628\]:hover{color:#0a1628}.hover\:text-\[\#5a6578\]:hover{color:#5a6578}.hover\:text-\[\#75D06A\]:hover{color:#75d06a}.hover\:text-\[\#9956DE\]:hover{color:#9956de}.hover\:text-\[\#F08386\]:hover{color:#f08386}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-emerald-600:hover{color:var(--color-emerald-600)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-green-600:hover{color:var(--color-green-600)}.hover\:text-indigo-600:hover{color:var(--color-indigo-600)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-primary-foreground:hover{color:var(--primary-foreground)}.hover\:text-purple-700:hover{color:var(--color-purple-700)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-rose-300:hover{color:var(--color-rose-300)}.hover\:text-rose-700:hover{color:var(--color-rose-700)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:text-sky-300:hover{color:var(--color-violet-300)}.hover\:text-sky-500:hover{color:var(--color-violet-500)}.hover\:text-sky-600:hover{color:var(--color-violet-600)}.hover\:text-sky-700:hover{color:var(--color-violet-700)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_-20px_60px_rgba\(0\,0\,0\,0\.3\)\]:hover{--tw-shadow:0 -20px 60px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_12px_45px_rgba\(31\,167\,225\,0\.4\)\]:hover{--tw-shadow:0 12px 45px var(--tw-shadow-color,#1fa7e166);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_12px_45px_rgba\(138\,63\,211\,0\.4\)\]:hover{--tw-shadow:0 12px 45px var(--tw-shadow-color,#8a3fd366);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_15px_35px_-5px_rgba\(56\,189\,248\,0\.3\)\]:hover{--tw-shadow:0 15px 35px -5px var(--tw-shadow-color,#38bdf84d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_16px_30px_rgba\(0\,0\,0\,0\.12\)\]:hover{--tw-shadow:0 16px 30px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_16px_40px_-15px_rgba\(0\,0\,0\,0\.12\)\]:hover{--tw-shadow:0 16px 40px -15px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_16px_40px_rgba\(114\,116\,237\,0\.28\)\]:hover{--tw-shadow:0 16px 40px var(--tw-shadow-color,#7274ed47);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-pink-500\/35:hover{--tw-shadow-color:#f6339a59}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-pink-500\/35:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-pink-500)35%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-purple-500\/30:hover{--tw-shadow-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-purple-500\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-purple-500)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-sky-300\/50:hover{--tw-shadow-color:#c4b4ff80}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-sky-300\/50:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-violet-300)50%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-teal-500\/25:hover{--tw-shadow-color:#00baa740}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-teal-500\/25:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-teal-500)25%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:z-10:focus{z-index:10}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:border-indigo-600:focus{border-color:var(--color-indigo-600)}.focus\:border-primary:focus{border-color:var(--primary)}.focus\:border-sky-400:focus{border-color:var(--color-violet-400)}.focus\:border-sky-500:focus{border-color:var(--color-violet-500)}.focus\:border-sky-600:focus{border-color:var(--color-violet-600)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-primary:focus{background-color:var(--primary)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-primary-foreground:focus{color:var(--primary-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-indigo-100:focus{--tw-ring-color:var(--color-indigo-100)}.focus\:ring-primary\/20:focus{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab,var(--primary)20%,transparent)}}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-sky-100:focus{--tw-ring-color:var(--color-violet-100)}.focus\:ring-sky-200:focus{--tw-ring-color:var(--color-violet-200)}.focus\:ring-sky-400\/15:focus{--tw-ring-color:#a685ff26}@supports (color:color-mix(in lab,red,red)){.focus\:ring-sky-400\/15:focus{--tw-ring-color:color-mix(in oklab,var(--color-violet-400)15%,transparent)}}.focus\:ring-sky-400\/20:focus{--tw-ring-color:#a685ff33}@supports (color:color-mix(in lab,red,red)){.focus\:ring-sky-400\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-violet-400)20%,transparent)}}.focus\:ring-sky-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-sky-500\/20:focus{--tw-ring-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.focus\:ring-sky-500\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[\#8A3FD3\]\/50:focus-visible{--tw-ring-color:oklab(54.1025% .117281 -.181162/.5)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-red-500:focus-visible{--tw-ring-color:var(--color-red-500)}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-sky-400:focus-visible{--tw-ring-color:var(--color-violet-400)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-\[4px\]:active{--tw-translate-y:4px;translate:var(--tw-translate-x)var(--tw-translate-y)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.active\:border-b-0:active{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.active\:bg-emerald-600:active{background-color:var(--color-emerald-600)}.active\:bg-rose-600:active{background-color:var(--color-rose-600)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:bg-sky-600:active,.active\:bg-violet-600:active{background-color:var(--color-violet-600)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-100:disabled{opacity:1}.disabled\:shadow-none:disabled{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.disabled\:hover\:translate-y-0:disabled:hover{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-disabled\:opacity-50:has(:disabled){opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.aria-selected\:bg-accent[aria-selected=true]{background-color:var(--accent)}.aria-selected\:bg-primary[aria-selected=true]{background-color:var(--primary)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:var(--accent-foreground)}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.aria-selected\:text-primary-foreground[aria-selected=true]{color:var(--primary-foreground)}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:var(--ring)}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:var(--accent-foreground)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}@media(hover:hover){.data-\[active\=true\]\:hover\:bg-accent[data-active=true]:hover{background-color:var(--accent)}}.data-\[active\=true\]\:focus\:bg-accent[data-active=true]:focus{background-color:var(--accent)}.data-\[active\=true\]\:aria-invalid\:border-destructive[data-active=true][aria-invalid=true]{border-color:var(--destructive)}.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-4[data-orientation=horizontal]{height:calc(var(--spacing)*4)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing)*44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing)*1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:calc(var(--spacing)*0)}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:calc(var(--spacing)*1)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:ring-0 *)[data-slot=navigation-menu-link]:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:outline-none *)[data-slot=navigation-menu-link]:focus{--tw-outline-style:none;outline-style:none}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-card[data-state=active]{background-color:var(--card)}.data-\[state\=active\]\:bg-gradient-to-r[data-state=active]{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.data-\[state\=active\]\:from-purple-500[data-state=active]{--tw-gradient-from:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.data-\[state\=active\]\:to-pink-500[data-state=active]{--tw-gradient-to:var(--color-pink-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.data-\[state\=active\]\:text-white[data-state=active]{color:var(--color-white)}.data-\[state\=active\]\:shadow-md[data-state=active]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:bg-red-600[data-state=checked]{background-color:var(--color-red-600)}.data-\[state\=checked\]\:bg-sky-600[data-state=checked]{background-color:var(--color-violet-600)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=inactive\]\:text-slate-500[data-state=inactive]{color:var(--color-slate-500)}@media(hover:hover){.data-\[state\=inactive\]\:hover\:bg-purple-50[data-state=inactive]:hover{background-color:var(--color-purple-50)}}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent)}.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-\[\#dde3eb\][data-state=unchecked]{background-color:#dde3eb}.data-\[state\=unchecked\]\:bg-switch-background[data-state=unchecked]{background-color:var(--switch-background)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=outline\]\:border-l-0[data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\[variant\=outline\]\:shadow-xs[data-variant=outline]{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[variant\=outline\]\:first\:border-l[data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media(min-width:40rem){.sm\:-top-\[30px\]{top:-30px}.sm\:top-4{top:calc(var(--spacing)*4)}.sm\:right-8{right:calc(var(--spacing)*8)}.sm\:bottom-8{bottom:calc(var(--spacing)*8)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:mt-2{margin-top:calc(var(--spacing)*2)}.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:mb-4{margin-bottom:calc(var(--spacing)*4)}.sm\:ml-0{margin-left:calc(var(--spacing)*0)}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:h-8{height:calc(var(--spacing)*8)}.sm\:h-10{height:calc(var(--spacing)*10)}.sm\:h-14{height:calc(var(--spacing)*14)}.sm\:h-\[95px\]{height:95px}.sm\:h-\[115\%\]{height:115%}.sm\:h-\[125\%\]{height:125%}.sm\:h-\[140px\]{height:140px}.sm\:h-\[145px\]{height:145px}.sm\:h-\[165px\]{height:165px}.sm\:h-\[245px\]{height:245px}.sm\:h-\[360px\]{height:360px}.sm\:h-\[440px\]{height:440px}.sm\:w-8{width:calc(var(--spacing)*8)}.sm\:w-10{width:calc(var(--spacing)*10)}.sm\:w-14{width:calc(var(--spacing)*14)}.sm\:w-\[30\%\]{width:30%}.sm\:w-\[38\%\]{width:38%}.sm\:w-\[65px\]{width:65px}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[170px\]{width:170px}.sm\:w-\[300px\]{width:300px}.sm\:w-\[440px\]{width:440px}.sm\:w-auto{width:auto}.sm\:w-max{width:max-content}.sm\:max-w-\[425px\]{max-width:425px}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:flex-none{flex:none}.sm\:-translate-x-\[60px\]{--tw-translate-x: -60px ;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:translate-x-\[60px\]{--tw-translate-x:60px;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:scale-\[0\.80\]{scale:.8}.sm\:scale-\[0\.85\]{scale:.85}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:gap-8{gap:calc(var(--spacing)*8)}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:p-7{padding:calc(var(--spacing)*7)}.sm\:p-8{padding:calc(var(--spacing)*8)}.sm\:px-4{padding-inline:calc(var(--spacing)*4)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:px-8{padding-inline:calc(var(--spacing)*8)}.sm\:px-10{padding-inline:calc(var(--spacing)*10)}.sm\:py-4{padding-block:calc(var(--spacing)*4)}.sm\:py-8{padding-block:calc(var(--spacing)*8)}.sm\:pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.sm\:pb-28{padding-bottom:calc(var(--spacing)*28)}.sm\:pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[11px\]{font-size:11px}.sm\:text-\[12px\]{font-size:12px}.sm\:text-\[14px\]{font-size:14px}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--container-sm)}}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:-top-7{top:calc(var(--spacing)*-7)}.md\:-top-8{top:calc(var(--spacing)*-8)}.md\:right-10{right:calc(var(--spacing)*10)}.md\:-bottom-7{bottom:calc(var(--spacing)*-7)}.md\:-bottom-8{bottom:calc(var(--spacing)*-8)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-9{grid-column:span 9/span 9}.md\:mt-2{margin-top:calc(var(--spacing)*2)}.md\:mt-12{margin-top:calc(var(--spacing)*12)}.md\:mt-\[-40px\]{margin-top:-40px}.md\:mr-2{margin-right:calc(var(--spacing)*2)}.md\:mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.md\:mb-4{margin-bottom:calc(var(--spacing)*4)}.md\:mb-5{margin-bottom:calc(var(--spacing)*5)}.md\:mb-8{margin-bottom:calc(var(--spacing)*8)}.md\:ml-2{margin-left:calc(var(--spacing)*2)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-2{height:calc(var(--spacing)*2)}.md\:h-9{height:calc(var(--spacing)*9)}.md\:h-10{height:calc(var(--spacing)*10)}.md\:h-11{height:calc(var(--spacing)*11)}.md\:h-12{height:calc(var(--spacing)*12)}.md\:h-14{height:calc(var(--spacing)*14)}.md\:h-16{height:calc(var(--spacing)*16)}.md\:h-20{height:calc(var(--spacing)*20)}.md\:h-32{height:calc(var(--spacing)*32)}.md\:h-36{height:calc(var(--spacing)*36)}.md\:h-40{height:calc(var(--spacing)*40)}.md\:h-64{height:calc(var(--spacing)*64)}.md\:h-\[72px\]{height:72px}.md\:h-\[86px\]{height:86px}.md\:h-\[100px\]{height:100px}.md\:h-\[130px\]{height:130px}.md\:h-\[180px\]{height:180px}.md\:h-\[200vw\]{height:200vw}.md\:h-\[310px\]{height:310px}.md\:w-2{width:calc(var(--spacing)*2)}.md\:w-9{width:calc(var(--spacing)*9)}.md\:w-11{width:calc(var(--spacing)*11)}.md\:w-12{width:calc(var(--spacing)*12)}.md\:w-14{width:calc(var(--spacing)*14)}.md\:w-20{width:calc(var(--spacing)*20)}.md\:w-36{width:calc(var(--spacing)*36)}.md\:w-\[72px\]{width:72px}.md\:w-\[86px\]{width:86px}.md\:w-\[200vw\]{width:200vw}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[250px\]{max-width:250px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-3{gap:calc(var(--spacing)*3)}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:gap-5{gap:calc(var(--spacing)*5)}.md\:gap-6{gap:calc(var(--spacing)*6)}.md\:gap-8{gap:calc(var(--spacing)*8)}.md\:gap-10{gap:calc(var(--spacing)*10)}.md\:rounded-b-\[80px\]{border-bottom-right-radius:80px;border-bottom-left-radius:80px}.md\:p-3{padding:calc(var(--spacing)*3)}.md\:p-4{padding:calc(var(--spacing)*4)}.md\:p-5{padding:calc(var(--spacing)*5)}.md\:p-6{padding:calc(var(--spacing)*6)}.md\:p-10{padding:calc(var(--spacing)*10)}.md\:p-12{padding:calc(var(--spacing)*12)}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:px-8{padding-inline:calc(var(--spacing)*8)}.md\:px-10{padding-inline:calc(var(--spacing)*10)}.md\:py-2{padding-block:calc(var(--spacing)*2)}.md\:py-6{padding-block:calc(var(--spacing)*6)}.md\:pt-8{padding-top:calc(var(--spacing)*8)}.md\:pr-4{padding-right:calc(var(--spacing)*4)}.md\:pr-10{padding-right:calc(var(--spacing)*10)}.md\:pr-\[240px\]{padding-right:240px}.md\:pl-12{padding-left:calc(var(--spacing)*12)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.md\:text-\[10px\]{font-size:10px}.md\:text-\[11px\]{font-size:11px}.md\:text-\[12px\]{font-size:12px}.md\:text-\[13px\]{font-size:13px}.md\:text-\[15px\]{font-size:15px}.md\:text-\[16px\]{font-size:16px}.md\:text-\[17px\]{font-size:17px}.md\:text-\[18px\]{font-size:18px}.md\:text-\[22px\]{font-size:22px}.md\:text-\[26px\]{font-size:26px}.md\:text-\[32px\]{font-size:32px}.md\:text-\[44px\]{font-size:44px}.md\:text-\[70px\]{font-size:70px}.md\:text-\[80px\]{font-size:80px}.md\:text-\[110px\]{font-size:110px}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:static{position:static}.lg\:top-\[5px\]{top:5px}.lg\:right-10{right:calc(var(--spacing)*10)}.lg\:right-\[-15px\]{right:-15px}.lg\:right-\[250px\]{right:250px}.lg\:bottom-20{bottom:calc(var(--spacing)*20)}.lg\:z-auto{z-index:auto}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:-mx-4{margin-inline:calc(var(--spacing)*-4)}.lg\:-mt-4{margin-top:calc(var(--spacing)*-4)}.lg\:mb-8{margin-bottom:calc(var(--spacing)*8)}.lg\:ml-10{margin-left:calc(var(--spacing)*10)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-8{height:calc(var(--spacing)*8)}.lg\:h-12{height:calc(var(--spacing)*12)}.lg\:h-\[265px\]{height:265px}.lg\:h-\[800px\]{height:800px}.lg\:min-h-\[160px\]{min-height:160px}.lg\:w-8{width:calc(var(--spacing)*8)}.lg\:w-12{width:calc(var(--spacing)*12)}.lg\:w-\[45\%\]{width:45%}.lg\:w-\[55\%\]{width:55%}.lg\:w-\[70px\]{width:70px}.lg\:w-\[260px\]{width:260px}.lg\:w-\[270px\]{width:270px}.lg\:origin-center{transform-origin:50%}.lg\:translate-y-\[19\%\]{--tw-translate-y:19%;translate:var(--tw-translate-x)var(--tw-translate-y)}.lg\:scale-\[0\.85\]{scale:.85}.lg\:scale-\[1\.3\]{scale:1.3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[1fr_300px\]{grid-template-columns:1fr 300px}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:justify-end{justify-content:flex-end}.lg\:gap-5{gap:calc(var(--spacing)*5)}.lg\:gap-6{gap:calc(var(--spacing)*6)}.lg\:gap-10{gap:calc(var(--spacing)*10)}.lg\:gap-12{gap:calc(var(--spacing)*12)}.lg\:gap-14{gap:calc(var(--spacing)*14)}:where(.lg\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.lg\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.lg\:divide-y-0>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(0px*var(--tw-divide-y-reverse));border-bottom-width:calc(0px*calc(1 - var(--tw-divide-y-reverse)))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:calc(var(--spacing)*4)}.lg\:p-8{padding:calc(var(--spacing)*8)}.lg\:p-12{padding:calc(var(--spacing)*12)}.lg\:px-16{padding-inline:calc(var(--spacing)*16)}.lg\:pt-6{padding-top:calc(var(--spacing)*6)}.lg\:pr-\[280px\]{padding-right:280px}.lg\:pb-0{padding-bottom:calc(var(--spacing)*0)}.lg\:pl-6{padding-left:calc(var(--spacing)*6)}.lg\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.lg\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.lg\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.lg\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.lg\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.lg\:text-\[7px\]{font-size:7px}.lg\:text-\[16px\]{font-size:16px}.lg\:text-\[46px\]{font-size:46px}}@media(min-width:80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:mb-8{margin-bottom:calc(var(--spacing)*8)}.xl\:flex{display:flex}.xl\:w-\[75px\]{width:75px}.xl\:max-w-\[1400px\]{max-width:1400px}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.xl\:grid-cols-\[400px_1fr\]{grid-template-columns:400px 1fr}.xl\:gap-8{gap:calc(var(--spacing)*8)}.xl\:px-10{padding-inline:calc(var(--spacing)*10)}.xl\:text-\[3\.4rem\]{font-size:3.4rem}}.dark\:border-\[\#1FA7E1\]\/20:is(.dark *){border-color:#1fa7e133}.dark\:border-\[\#2b3140\]:is(.dark *){border-color:#2b3140}.dark\:border-\[\#2f3547\]:is(.dark *){border-color:#2f3547}.dark\:border-\[\#8A3FD3\]\/20:is(.dark *){border-color:#8a3fd333}.dark\:border-\[\#8A3FD3\]\/30:is(.dark *){border-color:#8a3fd34d}.dark\:border-\[\#8d7fff\]:is(.dark *){border-color:#8d7fff}.dark\:border-amber-300\/40:is(.dark *){border-color:#ffd23666}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-300\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-300)40%,transparent)}}.dark\:border-amber-400\/40:is(.dark *){border-color:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-400\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-400)40%,transparent)}}.dark\:border-amber-700\/50:is(.dark *){border-color:#b7500080}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-700)50%,transparent)}}.dark\:border-emerald-300\/40:is(.dark *){border-color:#5ee9b566}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-300\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-300)40%,transparent)}}.dark\:border-emerald-400\/40:is(.dark *){border-color:#00d29466}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-400\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-400)40%,transparent)}}.dark\:border-emerald-500\/40:is(.dark *){border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-500\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.dark\:border-emerald-700\/50:is(.dark *){border-color:#00795680}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-700)50%,transparent)}}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-indigo-700\/50:is(.dark *){border-color:#432dd780}@supports (color:color-mix(in lab,red,red)){.dark\:border-indigo-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-indigo-700)50%,transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-purple-700\/50:is(.dark *){border-color:#8200da80}@supports (color:color-mix(in lab,red,red)){.dark\:border-purple-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-purple-700)50%,transparent)}}.dark\:border-rose-300\/40:is(.dark *){border-color:#ffa2ae66}@supports (color:color-mix(in lab,red,red)){.dark\:border-rose-300\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-rose-300)40%,transparent)}}.dark\:border-rose-400\/40:is(.dark *){border-color:#ff667f66}@supports (color:color-mix(in lab,red,red)){.dark\:border-rose-400\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-rose-400)40%,transparent)}}.dark\:border-rose-500\/20:is(.dark *){border-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.dark\:border-rose-500\/20:is(.dark *){border-color:color-mix(in oklab,var(--color-rose-500)20%,transparent)}}.dark\:border-rose-900:is(.dark *){border-color:var(--color-rose-900)}.dark\:border-sky-700\/50:is(.dark *){border-color:#7008e780}@supports (color:color-mix(in lab,red,red)){.dark\:border-sky-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-violet-700)50%,transparent)}}.dark\:border-slate-700:is(.dark *){border-color:var(--color-slate-700)}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/10:is(.dark *){border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\:bg-\[\#1a1f2e\]\/90:is(.dark *){background-color:#1a1f2ee6}.dark\:bg-\[\#2a3143\]:is(.dark *){background-color:#2a3143}.dark\:bg-\[\#2b2b5f\]:is(.dark *){background-color:#2b2b5f}.dark\:bg-\[\#8A3FD3\]\/10:is(.dark *){background-color:#8a3fd31a}.dark\:bg-\[\#181d27\]:is(.dark *){background-color:#181d27}.dark\:bg-\[\#11151d\]:is(.dark *){background-color:#11151d}.dark\:bg-\[\#15803d\]:is(.dark *){background-color:#15803d}.dark\:bg-\[\#b0e6eb\]:is(.dark *){background-color:#b0e6eb}.dark\:bg-\[\#b45309\]:is(.dark *){background-color:#b45309}.dark\:bg-\[\#be123c\]:is(.dark *){background-color:#be123c}.dark\:bg-\[\#d6ccf5\]:is(.dark *){background-color:#d6ccf5}.dark\:bg-\[\#f6ebd2\]:is(.dark *){background-color:#f6ebd2}.dark\:bg-\[\#fbd3d3\]:is(.dark *){background-color:#fbd3d3}.dark\:bg-amber-100\/20:is(.dark *){background-color:#fef3c633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-100\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-100)20%,transparent)}}.dark\:bg-amber-400\/10:is(.dark *){background-color:#fcbb001a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-400\/10:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-400)10%,transparent)}}.dark\:bg-amber-900\/20:is(.dark *){background-color:#7b330633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-900)20%,transparent)}}.dark\:bg-amber-900\/50:is(.dark *){background-color:#7b330680}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-900)50%,transparent)}}.dark\:bg-black\/30:is(.dark *){background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.dark\:bg-black\/40:is(.dark *){background-color:#0006}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.dark\:bg-black\/50:is(.dark *){background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.dark\:bg-black\/80:is(.dark *){background-color:#000c}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/80:is(.dark *){background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-500\/10:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.dark\:bg-emerald-500\/30:is(.dark *){background-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-500\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#004e3b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)20%,transparent)}}.dark\:bg-emerald-900\/50:is(.dark *){background-color:#004e3b80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)50%,transparent)}}.dark\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-indigo-900\/50:is(.dark *){background-color:#312c8580}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-indigo-900)50%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-purple-900\/50:is(.dark *){background-color:#59168b80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-900)50%,transparent)}}.dark\:bg-rose-500\/10:is(.dark *){background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-rose-500\/10:is(.dark *){background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.dark\:bg-rose-900\/20:is(.dark *){background-color:#8b083633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-rose-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-rose-900)20%,transparent)}}.dark\:bg-sky-500\/5:is(.dark *){background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-500\/5:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-500)5%,transparent)}}.dark\:bg-sky-500\/15:is(.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-500\/15:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-500)15%,transparent)}}.dark\:bg-sky-900\/50:is(.dark *){background-color:#4d179a80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-900)50%,transparent)}}.dark\:from-\[\#2b2b5f\]:is(.dark *){--tw-gradient-from:#2b2b5f;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-amber-300:is(.dark *){--tw-gradient-from:var(--color-amber-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-amber-600\/20:is(.dark *){--tw-gradient-from:#dd740033}@supports (color:color-mix(in lab,red,red)){.dark\:from-amber-600\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-amber-600)20%,transparent)}}.dark\:from-amber-600\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-emerald-300:is(.dark *){--tw-gradient-from:var(--color-emerald-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-from:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-indigo-300:is(.dark *){--tw-gradient-from:var(--color-indigo-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-from:#625fff33}@supports (color:color-mix(in lab,red,red)){.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-purple-300:is(.dark *){--tw-gradient-from:var(--color-purple-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-purple-500\/20:is(.dark *){--tw-gradient-from:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.dark\:from-purple-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.dark\:from-purple-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-sky-300:is(.dark *){--tw-gradient-from:var(--color-violet-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-from:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:via-cyan-500\/10:is(.dark *){--tw-gradient-via:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.dark\:via-cyan-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-cyan-500)10%,transparent)}}.dark\:via-cyan-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-fuchsia-500\/10:is(.dark *){--tw-gradient-via:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.dark\:via-fuchsia-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.dark\:via-fuchsia-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-orange-500\/10:is(.dark *){--tw-gradient-via:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.dark\:via-orange-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.dark\:via-orange-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-purple-500\/10:is(.dark *){--tw-gradient-via:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.dark\:via-purple-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.dark\:via-purple-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-teal-500\/10:is(.dark *){--tw-gradient-via:#00baa71a}@supports (color:color-mix(in lab,red,red)){.dark\:via-teal-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.dark\:via-teal-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:to-cyan-200:is(.dark *){--tw-gradient-to:var(--color-cyan-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-fuchsia-200:is(.dark *){--tw-gradient-to:var(--color-fuchsia-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-orange-200:is(.dark *){--tw-gradient-to:var(--color-orange-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-orange-900\/10:is(.dark *){--tw-gradient-to:#7e2a0c1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-orange-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-orange-900)10%,transparent)}}.dark\:to-orange-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-purple-200:is(.dark *){--tw-gradient-to:var(--color-purple-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-purple-900\/10:is(.dark *){--tw-gradient-to:#59168b1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-purple-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-purple-900)10%,transparent)}}.dark\:to-purple-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-sky-900\/10:is(.dark *){--tw-gradient-to:#4d179a1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-sky-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-violet-900)10%,transparent)}}.dark\:to-sky-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-teal-200:is(.dark *){--tw-gradient-to:var(--color-teal-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-teal-900\/10:is(.dark *){--tw-gradient-to:#0b4f4a1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-teal-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-teal-900)10%,transparent)}}.dark\:to-teal-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:text-\[\#4bc1f2\]:is(.dark *){color:#4bc1f2}.dark\:text-\[\#7ad8ff\]:is(.dark *){color:#7ad8ff}.dark\:text-\[\#7f88a3\]:is(.dark *){color:#7f88a3}.dark\:text-\[\#8b95ad\]:is(.dark *){color:#8b95ad}.dark\:text-\[\#9aa4be\]:is(.dark *){color:#9aa4be}.dark\:text-\[\#9da7bf\]:is(.dark *){color:#9da7bf}.dark\:text-\[\#9e8fff\]:is(.dark *){color:#9e8fff}.dark\:text-\[\#95a0bb\]:is(.dark *){color:#95a0bb}.dark\:text-\[\#98a2bc\]:is(.dark *){color:#98a2bc}.dark\:text-\[\#a8b2c9\]:is(.dark *){color:#a8b2c9}.dark\:text-\[\#a9b3ca\]:is(.dark *){color:#a9b3ca}.dark\:text-\[\#a35ceb\]:is(.dark *){color:#a35ceb}.dark\:text-\[\#aab3c7\]:is(.dark *){color:#aab3c7}.dark\:text-\[\#b2bad0\]:is(.dark *){color:#b2bad0}.dark\:text-\[\#c48bfc\]:is(.dark *){color:#c48bfc}.dark\:text-\[\#d3a8ff\]:is(.dark *){color:#d3a8ff}.dark\:text-\[\#e4e7f1\]:is(.dark *){color:#e4e7f1}.dark\:text-\[\#ecf0fb\]:is(.dark *){color:#ecf0fb}.dark\:text-\[\#f5f7fb\]:is(.dark *){color:#f5f7fb}.dark\:text-amber-100:is(.dark *){color:var(--color-amber-100)}.dark\:text-amber-100\/70:is(.dark *){color:#fef3c6b3}@supports (color:color-mix(in lab,red,red)){.dark\:text-amber-100\/70:is(.dark *){color:color-mix(in oklab,var(--color-amber-100)70%,transparent)}}.dark\:text-amber-100\/90:is(.dark *){color:#fef3c6e6}@supports (color:color-mix(in lab,red,red)){.dark\:text-amber-100\/90:is(.dark *){color:color-mix(in oklab,var(--color-amber-100)90%,transparent)}}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-emerald-100\/70:is(.dark *){color:#d0fae5b3}@supports (color:color-mix(in lab,red,red)){.dark\:text-emerald-100\/70:is(.dark *){color:color-mix(in oklab,var(--color-emerald-100)70%,transparent)}}.dark\:text-emerald-300:is(.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-indigo-100\/70:is(.dark *){color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-indigo-100\/70:is(.dark *){color:color-mix(in oklab,var(--color-indigo-100)70%,transparent)}}.dark\:text-indigo-300:is(.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-400:is(.dark *){color:var(--color-indigo-400)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-purple-300:is(.dark *){color:var(--color-purple-300)}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}.dark\:text-purple-400\/80:is(.dark *){color:#c07effcc}@supports (color:color-mix(in lab,red,red)){.dark\:text-purple-400\/80:is(.dark *){color:color-mix(in oklab,var(--color-purple-400)80%,transparent)}}.dark\:text-rose-300:is(.dark *){color:var(--color-rose-300)}.dark\:text-rose-400:is(.dark *){color:var(--color-rose-400)}.dark\:text-sky-300:is(.dark *){color:var(--color-violet-300)}.dark\:text-sky-400:is(.dark *){color:var(--color-violet-400)}.dark\:text-sky-400\/80:is(.dark *){color:#a685ffcc}@supports (color:color-mix(in lab,red,red)){.dark\:text-sky-400\/80:is(.dark *){color:color-mix(in oklab,var(--color-violet-400)80%,transparent)}}.dark\:text-slate-200:is(.dark *){color:var(--color-slate-200)}.dark\:text-slate-400:is(.dark *){color:var(--color-slate-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}.dark\:opacity-10:is(.dark *){opacity:.1}.dark\:opacity-\[0\.25\]:is(.dark *){opacity:.25}.dark\:mix-blend-screen:is(.dark *){mix-blend-mode:screen}.dark\:shadow-\[0_12px_24px_rgba\(0\,0\,0\,0\.22\)\]:is(.dark *){--tw-shadow:0 12px 24px var(--tw-shadow-color,#00000038);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-offset-\[\#0B0F19\]:is(.dark *){--tw-ring-offset-color:#0b0f19}@media(hover:hover){.dark\:hover\:bg-\[\#1FA7E1\]\/10:is(.dark *):hover{background-color:#1fa7e11a}.dark\:hover\:bg-\[\#8A3FD3\]\/10:is(.dark *):hover{background-color:#8a3fd31a}.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-black\/50:is(.dark *):hover{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-black\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.dark\:hover\:bg-black\/60:is(.dark *):hover{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-black\/60:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.dark\:hover\:bg-emerald-500\/20:is(.dark *):hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-emerald-500\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-rose-900\/30:is(.dark *):hover{background-color:#8b08364d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-rose-900\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-rose-900)30%,transparent)}}.dark\:hover\:bg-slate-800:is(.dark *):hover{background-color:var(--color-slate-800)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-card-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--card-foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:var(--border)}@supports (color:color-mix(in lab,red,red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:color-mix(in oklab,var(--border)50%,transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:m-0 p{margin:calc(var(--spacing)*0)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:var(--accent)}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:first-child:has([aria-selected]){border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:last-child:has([aria-selected]),.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\:last-child\]\:pb-6:last-child{padding-bottom:calc(var(--spacing)*6)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing)*2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing)*3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing)*2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing)*3)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}:root{--font-size:16px;--font-display:"Nunito",ui-sans-serif,system-ui,sans-serif;--font-body:"Nunito",ui-sans-serif,system-ui,sans-serif;--background:#f7f9fc;--foreground:#0a1628;--card:#fff;--card-foreground:#0a1628;--popover:#fff;--popover-foreground:#0a1628;--amethyst:#9956de;--slate-blue:#7274ed;--summer-sky:#1fa7e1;--downy:#6ed1cf;--pastel-green:#75d06a;--texas-rose:#ffb356;--mona-lisa:#ff8b8b;--illusion:#fb96bb;--primary:#9956de;--primary-foreground:#fff;--secondary:#7274ed;--secondary-foreground:#fff;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#1fa7e1;--accent-foreground:#fff;--destructive:#ff8b8b;--destructive-foreground:#fff;--border:#e4e4e7;--input:transparent;--input-background:#f4f4f5;--switch-background:#d4d4d8;--font-weight-medium:500;--font-weight-normal:400;--ring:#9956de;--chart-1:#9956de;--chart-2:#ff8b8b;--chart-3:#75d06a;--chart-4:#ffb356;--chart-5:#1fa7e1;--radius:1.25rem;--sidebar:#fff;--sidebar-foreground:#09090b;--sidebar-primary:#7c3aed;--sidebar-primary-foreground:#fff;--sidebar-accent:#f3f0ff;--sidebar-accent-foreground:#5b21b6;--sidebar-border:#e4e4e7;--sidebar-ring:#7c3aed}.dark{--background:#050d18;--foreground:#f0f7ff;--card:#0a1628;--card-foreground:#f0f7ff;--popover:#0a1628;--popover-foreground:#f0f7ff;--primary:#a78bfa;--primary-foreground:#fff;--secondary:#2e1065;--secondary-foreground:#c4b5fd;--muted:#27272a;--muted-foreground:#a1a1aa;--accent:#27272a;--accent-foreground:#f43f5e;--destructive:#ef4444;--destructive-foreground:#09090b;--border:#27272a;--input:#27272a;--input-background:#27272a;--switch-background:#3f3f46;--ring:#a78bfa;--font-weight-medium:500;--font-weight-normal:400;--chart-1:#a78bfa;--chart-2:#fb7185;--chart-3:#34d399;--chart-4:#fb923c;--chart-5:#38bdf8;--sidebar:#09090b;--sidebar-foreground:#fafafa;--sidebar-primary:#a78bfa;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#fafafa;--sidebar-border:#27272a;--sidebar-ring:#a78bfa}html{font-size:var(--font-size)}html,body,#root{height:100%}html[data-density=compact]{--radius:.9rem}html.reduced-motion *,html.reduced-motion :before,html.reduced-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.smart-dark{filter:invert()hue-rotate(180deg);background:#101217}html.smart-dark img,html.smart-dark picture,html.smart-dark video,html.smart-dark canvas,html.smart-dark svg,html.smart-dark iframe,html.smart-dark [data-preserve-color=true]{filter:invert()hue-rotate(180deg)}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.glow-blue{box-shadow:0 0 24px #0284c71f,0 0 64px #0284c70a}.glow-violet{box-shadow:0 0 24px #7c3aed1f,0 0 64px #7c3aed0a}.glow-rose{box-shadow:0 0 24px #f43f5e1f,0 0 64px #f43f5e0a}.glow-emerald{box-shadow:0 0 24px #0596691f,0 0 64px #0596690a}.bg-dot-pattern{background-image:radial-gradient(circle,#7c3aed14 1px,#0000 1px);background-size:24px 24px}.dark .bg-dot-pattern{background-image:radial-gradient(circle,#a78bfa1f 1px,#0000 1px)}.bg-math-pattern{background-color:var(--background);background-image:url("data:image/svg+xml,%3Csvg width='150' height='150' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='rgba(124, 58, 237, 0.05)' font-family='sans-serif' font-weight='bold' font-size='28'%3E%3Ctext x='20' y='40'%3E%2B%3C/text%3E%3Ctext x='90' y='60'%3E%3D%3C/text%3E%3Ctext x='40' y='110'%3E%25%3C/text%3E%3Ctext x='110' y='130'%3E%C3%97%3C/text%3E%3Ctext x='130' y='30'%3E%C3%B7%3C/text%3E%3C/g%3E%3C/svg%3E");background-size:150px 150px}.bg-noise{position:relative}.bg-noise:before{content:"";opacity:.03;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:absolute;inset:0}.card-elevated{box-shadow:0 16px 40px -8px #7c3aed26,0 0 24px -5px #7c3aed14}.card-elevated-lg{box-shadow:0 24px 60px -12px #7c3aed33,0 0 32px -10px #7c3aed1a}.shadow-3d-button{box-shadow:0 12px 24px -6px var(--tw-shadow-color,#f9731666),0 6px 12px -4px var(--tw-shadow-color,#f973164d)}.dark .card-elevated{box-shadow:0 1px 2px #0003,0 4px 16px #00000026}.dark .card-elevated-lg{box-shadow:0 2px 4px #0003,0 8px 32px #0003}*{scrollbar-width:thin;scrollbar-color:transparent transparent}:hover{scrollbar-color:#0284c733 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#0000;border-radius:10px;transition:background-color .3s}:hover::-webkit-scrollbar-thumb{background-color:#0284c733}::-webkit-scrollbar-thumb:hover{background-color:#0284c766}.scrollbar-hide{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-hide::-webkit-scrollbar{display:none}.accent-line{position:relative}.accent-line:after{content:"";background:linear-gradient(90deg,#0284c7,#f43f5e);border-radius:2px;width:48px;height:3px;position:absolute;bottom:0;left:0}.surface-raised{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc}.surface-inset{background:linear-gradient(135deg,#f1f5f9,#e8eef6);border:1px solid #cbd5e180}.card-accent-sky{border-left:3px solid #0284c7}.card-accent-rose{border-left:3px solid #f43f5e}.card-accent-emerald{border-left:3px solid #059669}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.chat-markdown{font-family:var(--font-body);overflow-wrap:anywhere;word-break:break-word;font-size:.875rem;line-height:1.625}.chat-markdown h1{font-family:var(--font-display);color:var(--foreground);margin-top:.75rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.chat-markdown h2{font-family:var(--font-display);color:var(--foreground);margin-top:.75rem;margin-bottom:.375rem;font-size:1.1rem;font-weight:700}.chat-markdown h3{font-family:var(--font-display);color:var(--muted-foreground);margin-top:.5rem;margin-bottom:.25rem;font-size:1rem;font-weight:600}.chat-markdown p{margin-top:.375rem;margin-bottom:.375rem}.chat-markdown ul,.chat-markdown ol{margin-top:.375rem;margin-bottom:.375rem;padding-left:1.25rem}.chat-markdown ul{list-style-type:disc}.chat-markdown ol{list-style-type:decimal}.chat-markdown li{margin-top:.125rem;margin-bottom:.125rem}.chat-markdown strong{color:var(--foreground);font-weight:700}.chat-markdown em{font-style:italic}.chat-markdown code{background:var(--secondary);color:var(--primary);border-radius:.25rem;padding:.125rem .375rem;font-size:.8125rem}.chat-markdown pre{background:var(--muted);border:1px solid var(--border);border-radius:.5rem;margin-top:.5rem;margin-bottom:.5rem;padding:.75rem;overflow-x:auto}.chat-markdown pre code{color:inherit;background:0 0;padding:0}.chat-markdown hr{border-color:#94a3b873;margin:.75rem 0}.chat-markdown table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.8125rem}.chat-markdown th{background:var(--muted);text-align:left;border:1px solid var(--border);padding:.375rem .5rem;font-weight:600}.chat-markdown td{border:1px solid var(--border);padding:.375rem .5rem}.chat-markdown blockquote{border-left:3px solid var(--primary);color:var(--muted-foreground);margin:.5rem 0;padding-left:.75rem;font-style:italic}.chat-markdown a{color:var(--primary);text-decoration:underline}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown .katex-display{padding-bottom:.15rem;overflow:auto hidden}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} diff --git a/assets/index-CmBdDSkw.js b/assets/index-CmBdDSkw.js new file mode 100644 index 0000000000000000000000000000000000000000..6a6bb378b23380434b2d254304e8b98c9ab19e42 --- /dev/null +++ b/assets/index-CmBdDSkw.js @@ -0,0 +1,558 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/automationService-IMphlGK7.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/apiService-ZZIWaV70.js","assets/chatService-D8LuvWux.js","assets/LoginPage-DTFoLFv7.js","assets/button-BP5cklmU.js","assets/vendor-radix-CxzAJozq.js","assets/clsx-B-dksMZM.js","assets/utils-BQQgILNW.js","assets/input-DBkKXOmF.js","assets/sparkles-D6B_TX7M.js","assets/brain-DfMjTiNx.js","assets/trending-up-6u76yy2e.js","assets/award-COlS18fi.js","assets/users-CdMqBLwG.js","assets/graduation-cap-BxtuU7H1.js","assets/book-open-BH_yilLK.js","assets/mail-BuupduAm.js","assets/lock-Dt6Po_Oi.js","assets/eye-off-D800Xx6k.js","assets/eye-DyGZzCgK.js","assets/shield-check-CnzWVIYd.js","assets/TeacherDashboard-CXY2X8Up.js","assets/ConfirmModal-BO6r5veY.js","assets/x-BDSBB3q9.js","assets/trash-2-BGLuKCox.js","assets/log-out-QZHYEhcR.js","assets/LogoutActionButton-TpO-by05.js","assets/quizService-YBJVdiN1.js","assets/loader-circle-BfAbw6jC.js","assets/send-OMGWblBc.js","assets/circle-alert-DWP6udG1.js","assets/minus-8VjeOOlm.js","assets/plus-Dip_RqNl.js","assets/check-D1XVAVXL.js","assets/dialog-IPw3v6ZK.js","assets/chart-column-DzJCKCOe.js","assets/skeleton-CTGly9ab.js","assets/download-DMZBRA1T.js","assets/save-XQRYdTi9.js","assets/search-zqCwfHe1.js","assets/chevron-up-CwQX0CFg.js","assets/subjects-wOHUanD9.js","assets/circle-check-big-C_XnLpga.js","assets/user-C4mm1EOG.js","assets/chevron-right-BSCyuP_x.js","assets/ChatMarkdown-XT9mMuBR.js","assets/vendor-markdown-C5ikSDMA.js","assets/vendor-markdown-CBmFCdgC.css","assets/bell-B1VXtbbh.js","assets/check-check-TbgWzZ22.js","assets/clock-jSWTKlqH.js","assets/message-square-BxgAV6zJ.js","assets/trophy-DrL6Ph2J.js","assets/target-BCguvjbb.js","assets/calendar-CP-HCx1y.js","assets/generateCategoricalChart-CiUYzAvW.js","assets/pen-line-CBic_SY8.js","assets/AdminDashboard-BkN0KBRk.js","assets/Sidebar-oxQVx2NC.js","assets/tooltip-Bn7-0zmi.js","assets/shield-B-mvw6Dl.js","assets/swords-CJyIL97F.js","assets/shirt-CHOJLYIJ.js","assets/select-D13dsNiO.js","assets/circle-help-CCtzJ5sC.js","assets/switch-CISoEIXM.js","assets/funnel-BHtkrar1.js","assets/HeroBanner-BzMF9ktr.js","assets/RightSidebar--rSxCGQy.js","assets/star-B7mp4xEi.js","assets/XPNotification-DeYNvFkJ.js","assets/NotificationCenter-Djp-U1R4.js","assets/SearchBar-CzmZ03BX.js","assets/SupplementalBanner-CaXzjH7M.js","assets/LearningPath-LYxnZA3A.js","assets/ModuleFolderCard-BSQZpGub.js","assets/CompetencyRadarChart-B1x3Wmwg.js","assets/ModulesPage-D7B9Sp71.js","assets/confetti.module-C94ZD2ww.js","assets/ScientificCalculator-B0rqpddr.js","assets/MathAnswerInput-DOzNwadV.js","assets/AIChatPage-CstOeMuY.js","assets/GradesPage-Bi5pcR2x.js","assets/LeaderboardPage-DIZVn39b.js","assets/QuizBattlePage-C-kQ0NH9.js","assets/CompositeAvatar-DSWWcDP7.js","assets/avatarData-BW_TX0b4.js","assets/AvatarShop-CFi18Hj0.js","assets/FloatingAITutor-BhjMn9CN.js","assets/RewardsModal-DbFwQSQa.js","assets/ProfileModal-CnV-otvQ.js","assets/globe-ZtrF4mgA.js","assets/SettingsModal-Ct0cXLCK.js","assets/DiagnosticAssessmentModal-DG6T8nsY.js","assets/testResetService-CokcUy_m.js","assets/index-cj9iAdlk.css"])))=>i.map(i=>d[i]); +import{r as h,j as m,c as E,b as Pl,e as Al}from"./vendor-react-Dexh7fmo.js";import{g as El,G as Cl,c as Dl,u as Rl,s as kl,a as Ml,d as Ll,b as Il,o as Vl}from"./vendor-firebase-auth-COrkgW0P.js";import{R as _l,T as jl,U as Nl,V as Ol}from"./vendor-firebase-core-DQ-pMjxd.js";import{g as Fl,d as Z,s as $e,a as ue,b as Ae,c as Bl,w as Oe,o as tn,l as nn,q as rt,e as Be,f as xo,h as un,u as wt,i as wo,j as Fn}from"./vendor-firebase-firestore-CkuVbeP5.js";import{g as $l}from"./vendor-firebase-storage-BOeKE_0n.js";import{g as zl}from"./vendor-firebase-analytics-CCo6E2f7.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&s(r)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();const Ul="modulepreload",Wl=function(e){return"/"+e},zi={},q=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let r=function(u){return Promise.all(u.map(d=>Promise.resolve(d).then(l=>({status:"fulfilled",value:l}),l=>({status:"rejected",reason:l}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),c=a?.nonce||a?.getAttribute("nonce");i=r(n.map(u=>{if(u=Wl(u),u in zi)return;zi[u]=!0;const d=u.endsWith(".css"),l=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${l}`))return;const f=document.createElement("link");if(f.rel=d?"stylesheet":Ul,d||(f.as="script"),f.crossOrigin="",f.href=u,c&&f.setAttribute("nonce",c),document.head.appendChild(f),d)return new Promise((p,g)=>{f.addEventListener("load",p),f.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(r){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return i.then(r=>{for(const a of r||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},ii=h.createContext({});function ri(e){const t=h.useRef(null);return t.current===null&&(t.current=e()),t.current}const So=typeof window<"u",To=So?h.useLayoutEffect:h.useEffect,Gn=h.createContext(null);function oi(e,t){e.indexOf(t)===-1&&e.push(t)}function Bn(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Qe=(e,t,n)=>n>t?t:n{};const Je={},Po=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function Ao(e){return typeof e=="object"&&e!==null}const Eo=e=>/^0[^.\s]+$/u.test(e);function li(e){let t;return()=>(t===void 0&&(t=e()),t)}const Fe=e=>e,Hl=(e,t)=>n=>t(e(n)),dn=(...e)=>e.reduce(Hl),sn=(e,t,n)=>{const s=t-e;return s===0?1:(n-e)/s};class ci{constructor(){this.subscriptions=[]}add(t){return oi(this.subscriptions,t),()=>Bn(this.subscriptions,t)}notify(t,n,s){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,s);else for(let o=0;oe*1e3,Ne=e=>e/1e3;function Co(e,t){return t?e*(1e3/t):0}const Do=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,ql=1e-7,Kl=12;function Gl(e,t,n,s,i){let o,r,a=0;do r=t+(n-t)/2,o=Do(r,s,i)-e,o>0?n=r:t=r;while(Math.abs(o)>ql&&++aGl(o,0,1,e,n);return o=>o===0||o===1?o:Do(i(o),t,s)}const Ro=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,ko=e=>t=>1-e(1-t),Mo=fn(.33,1.53,.69,.99),ui=ko(Mo),Lo=Ro(ui),Io=e=>(e*=2)<1?.5*ui(e):.5*(2-Math.pow(2,-10*(e-1))),di=e=>1-Math.sin(Math.acos(e)),Vo=ko(di),_o=Ro(di),Xl=fn(.42,0,1,1),Yl=fn(0,0,.58,1),jo=fn(.42,0,.58,1),Ql=e=>Array.isArray(e)&&typeof e[0]!="number",No=e=>Array.isArray(e)&&typeof e[0]=="number",Zl={linear:Fe,easeIn:Xl,easeInOut:jo,easeOut:Yl,circIn:di,circInOut:_o,circOut:Vo,backIn:ui,backInOut:Lo,backOut:Mo,anticipate:Io},Jl=e=>typeof e=="string",Ui=e=>{if(No(e)){ai(e.length===4);const[t,n,s,i]=e;return fn(t,n,s,i)}else if(Jl(e))return Zl[e];return e},Sn=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function ec(e,t){let n=new Set,s=new Set,i=!1,o=!1;const r=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function c(d){r.has(d)&&(u.schedule(d),e()),d(a)}const u={schedule:(d,l=!1,f=!1)=>{const g=f&&i?n:s;return l&&r.add(d),g.has(d)||g.add(d),d},cancel:d=>{s.delete(d),r.delete(d)},process:d=>{if(a=d,i){o=!0;return}i=!0,[n,s]=[s,n],n.forEach(c),n.clear(),i=!1,o&&(o=!1,u.process(d))}};return u}const tc=40;function Oo(e,t){let n=!1,s=!0;const i={delta:0,timestamp:0,isProcessing:!1},o=()=>n=!0,r=Sn.reduce((y,b)=>(y[b]=ec(o),y),{}),{setup:a,read:c,resolveKeyframes:u,preUpdate:d,update:l,preRender:f,render:p,postRender:g}=r,w=()=>{const y=Je.useManualTiming?i.timestamp:performance.now();n=!1,Je.useManualTiming||(i.delta=s?1e3/60:Math.max(Math.min(y-i.timestamp,tc),1)),i.timestamp=y,i.isProcessing=!0,a.process(i),c.process(i),u.process(i),d.process(i),l.process(i),f.process(i),p.process(i),g.process(i),i.isProcessing=!1,n&&t&&(s=!1,e(w))},T=()=>{n=!0,s=!0,i.isProcessing||e(w)};return{schedule:Sn.reduce((y,b)=>{const P=r[b];return y[b]=(S,I=!1,x=!1)=>(n||T(),P.schedule(S,I,x)),y},{}),cancel:y=>{for(let b=0;b(kn===void 0&&Te.set(me.isProcessing||Je.useManualTiming?me.timestamp:performance.now()),kn),set:e=>{kn=e,queueMicrotask(nc)}},Fo=e=>t=>typeof t=="string"&&t.startsWith(e),Bo=Fo("--"),sc=Fo("var(--"),fi=e=>sc(e)?ic.test(e.split("/*")[0].trim()):!1,ic=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Wi(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const $t={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},rn={...$t,transform:e=>Qe(0,1,e)},Tn={...$t,default:1},Qt=e=>Math.round(e*1e5)/1e5,hi=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function rc(e){return e==null}const oc=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,pi=(e,t)=>n=>!!(typeof n=="string"&&oc.test(n)&&n.startsWith(e)||t&&!rc(n)&&Object.prototype.hasOwnProperty.call(n,t)),$o=(e,t,n)=>s=>{if(typeof s!="string")return s;const[i,o,r,a]=s.match(hi);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(r),alpha:a!==void 0?parseFloat(a):1}},ac=e=>Qe(0,255,e),rs={...$t,transform:e=>Math.round(ac(e))},vt={test:pi("rgb","red"),parse:$o("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:s=1})=>"rgba("+rs.transform(e)+", "+rs.transform(t)+", "+rs.transform(n)+", "+Qt(rn.transform(s))+")"};function lc(e){let t="",n="",s="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),s=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),s=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,s+=s,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(s,16),alpha:i?parseInt(i,16)/255:1}}const Rs={test:pi("#"),parse:lc,transform:vt.transform},hn=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),st=hn("deg"),Ye=hn("%"),k=hn("px"),cc=hn("vh"),uc=hn("vw"),Hi={...Ye,parse:e=>Ye.parse(e)/100,transform:e=>Ye.transform(e*100)},It={test:pi("hsl","hue"),parse:$o("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:s=1})=>"hsla("+Math.round(e)+", "+Ye.transform(Qt(t))+", "+Ye.transform(Qt(n))+", "+Qt(rn.transform(s))+")"},ce={test:e=>vt.test(e)||Rs.test(e)||It.test(e),parse:e=>vt.test(e)?vt.parse(e):It.test(e)?It.parse(e):Rs.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?vt.transform(e):It.transform(e),getAnimatableNone:e=>{const t=ce.parse(e);return t.alpha=0,ce.transform(t)}},dc=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function fc(e){return isNaN(e)&&typeof e=="string"&&(e.match(hi)?.length||0)+(e.match(dc)?.length||0)>0}const zo="number",Uo="color",hc="var",pc="var(",qi="${}",mc=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function on(e){const t=e.toString(),n=[],s={color:[],number:[],var:[]},i=[];let o=0;const a=t.replace(mc,c=>(ce.test(c)?(s.color.push(o),i.push(Uo),n.push(ce.parse(c))):c.startsWith(pc)?(s.var.push(o),i.push(hc),n.push(c)):(s.number.push(o),i.push(zo),n.push(parseFloat(c))),++o,qi)).split(qi);return{values:n,split:a,indexes:s,types:i}}function Wo(e){return on(e).values}function Ho(e){const{split:t,types:n}=on(e),s=t.length;return i=>{let o="";for(let r=0;rtypeof e=="number"?0:ce.test(e)?ce.getAnimatableNone(e):e;function yc(e){const t=Wo(e);return Ho(e)(t.map(gc))}const at={test:fc,parse:Wo,createTransformer:Ho,getAnimatableNone:yc};function os(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function vc({hue:e,saturation:t,lightness:n,alpha:s}){e/=360,t/=100,n/=100;let i=0,o=0,r=0;if(!t)i=o=r=n;else{const a=n<.5?n*(1+t):n+t-n*t,c=2*n-a;i=os(c,a,e+1/3),o=os(c,a,e),r=os(c,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(r*255),alpha:s}}function $n(e,t){return n=>n>0?t:e}const J=(e,t,n)=>e+(t-e)*n,as=(e,t,n)=>{const s=e*e,i=n*(t*t-s)+s;return i<0?0:Math.sqrt(i)},bc=[Rs,vt,It],xc=e=>bc.find(t=>t.test(e));function Ki(e){const t=xc(e);if(!t)return!1;let n=t.parse(e);return t===It&&(n=vc(n)),n}const Gi=(e,t)=>{const n=Ki(e),s=Ki(t);if(!n||!s)return $n(e,t);const i={...n};return o=>(i.red=as(n.red,s.red,o),i.green=as(n.green,s.green,o),i.blue=as(n.blue,s.blue,o),i.alpha=J(n.alpha,s.alpha,o),vt.transform(i))},ks=new Set(["none","hidden"]);function wc(e,t){return ks.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Sc(e,t){return n=>J(e,t,n)}function mi(e){return typeof e=="number"?Sc:typeof e=="string"?fi(e)?$n:ce.test(e)?Gi:Ac:Array.isArray(e)?qo:typeof e=="object"?ce.test(e)?Gi:Tc:$n}function qo(e,t){const n=[...e],s=n.length,i=e.map((o,r)=>mi(o)(o,t[r]));return o=>{for(let r=0;r{for(const o in s)n[o]=s[o](i);return n}}function Pc(e,t){const n=[],s={color:0,var:0,number:0};for(let i=0;i{const n=at.createTransformer(t),s=on(e),i=on(t);return s.indexes.var.length===i.indexes.var.length&&s.indexes.color.length===i.indexes.color.length&&s.indexes.number.length>=i.indexes.number.length?ks.has(e)&&!i.values.length||ks.has(t)&&!s.values.length?wc(e,t):dn(qo(Pc(s,i),i.values),n):$n(e,t)};function Ko(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?J(e,t,n):mi(e)(e,t)}const Ec=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>Y.update(t,n),stop:()=>ot(t),now:()=>me.isProcessing?me.timestamp:Te.now()}},Go=(e,t,n=10)=>{let s="";const i=Math.max(Math.round(t/n),2);for(let o=0;o=zn?1/0:t}function Cc(e,t=100,n){const s=n({...e,keyframes:[0,t]}),i=Math.min(gi(s),zn);return{type:"keyframes",ease:o=>s.next(i*o).value/t,duration:Ne(i)}}const Dc=5;function Xo(e,t,n){const s=Math.max(t-Dc,0);return Co(n-e(s),t-s)}const se={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ls=.001;function Rc({duration:e=se.duration,bounce:t=se.bounce,velocity:n=se.velocity,mass:s=se.mass}){let i,o,r=1-t;r=Qe(se.minDamping,se.maxDamping,r),e=Qe(se.minDuration,se.maxDuration,Ne(e)),r<1?(i=u=>{const d=u*r,l=d*e,f=d-n,p=Ms(u,r),g=Math.exp(-l);return ls-f/p*g},o=u=>{const l=u*r*e,f=l*n+n,p=Math.pow(r,2)*Math.pow(u,2)*e,g=Math.exp(-l),w=Ms(Math.pow(u,2),r);return(-i(u)+ls>0?-1:1)*((f-p)*g)/w}):(i=u=>{const d=Math.exp(-u*e),l=(u-n)*e+1;return-ls+d*l},o=u=>{const d=Math.exp(-u*e),l=(n-u)*(e*e);return d*l});const a=5/e,c=Mc(i,o,a);if(e=He(e),isNaN(c))return{stiffness:se.stiffness,damping:se.damping,duration:e};{const u=Math.pow(c,2)*s;return{stiffness:u,damping:r*2*Math.sqrt(s*u),duration:e}}}const kc=12;function Mc(e,t,n){let s=n;for(let i=1;ie[n]!==void 0)}function Vc(e){let t={velocity:se.velocity,stiffness:se.stiffness,damping:se.damping,mass:se.mass,isResolvedFromDuration:!1,...e};if(!Xi(e,Ic)&&Xi(e,Lc))if(e.visualDuration){const n=e.visualDuration,s=2*Math.PI/(n*1.2),i=s*s,o=2*Qe(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:se.mass,stiffness:i,damping:o}}else{const n=Rc(e);t={...t,...n,mass:se.mass},t.isResolvedFromDuration=!0}return t}function Un(e=se.visualDuration,t=se.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:s,restDelta:i}=n;const o=n.keyframes[0],r=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:c,damping:u,mass:d,duration:l,velocity:f,isResolvedFromDuration:p}=Vc({...n,velocity:-Ne(n.velocity||0)}),g=f||0,w=u/(2*Math.sqrt(c*d)),T=r-o,v=Ne(Math.sqrt(c/d)),A=Math.abs(T)<5;s||(s=A?se.restSpeed.granular:se.restSpeed.default),i||(i=A?se.restDelta.granular:se.restDelta.default);let y;if(w<1){const P=Ms(v,w);y=S=>{const I=Math.exp(-w*v*S);return r-I*((g+w*v*T)/P*Math.sin(P*S)+T*Math.cos(P*S))}}else if(w===1)y=P=>r-Math.exp(-v*P)*(T+(g+v*T)*P);else{const P=v*Math.sqrt(w*w-1);y=S=>{const I=Math.exp(-w*v*S),x=Math.min(P*S,300);return r-I*((g+w*v*T)*Math.sinh(x)+P*T*Math.cosh(x))/P}}const b={calculatedDuration:p&&l||null,next:P=>{const S=y(P);if(p)a.done=P>=l;else{let I=P===0?g:0;w<1&&(I=P===0?He(g):Xo(y,P,S));const x=Math.abs(I)<=s,R=Math.abs(r-S)<=i;a.done=x&&R}return a.value=a.done?r:S,a},toString:()=>{const P=Math.min(gi(b),zn),S=Go(I=>b.next(P*I).value,P,30);return P+"ms "+S},toTransition:()=>{}};return b}Un.applyToOptions=e=>{const t=Cc(e,100,Un);return e.ease=t.ease,e.duration=He(t.duration),e.type="keyframes",e};function Ls({keyframes:e,velocity:t=0,power:n=.8,timeConstant:s=325,bounceDamping:i=10,bounceStiffness:o=500,modifyTarget:r,min:a,max:c,restDelta:u=.5,restSpeed:d}){const l=e[0],f={done:!1,value:l},p=x=>a!==void 0&&xc,g=x=>a===void 0?c:c===void 0||Math.abs(a-x)-w*Math.exp(-x/s),y=x=>v+A(x),b=x=>{const R=A(x),L=y(x);f.done=Math.abs(R)<=u,f.value=f.done?v:L};let P,S;const I=x=>{p(f.value)&&(P=x,S=Un({keyframes:[f.value,g(f.value)],velocity:Xo(y,x,f.value),damping:i,stiffness:o,restDelta:u,restSpeed:d}))};return I(0),{calculatedDuration:null,next:x=>{let R=!1;return!S&&P===void 0&&(R=!0,b(x),I(x)),P!==void 0&&x>=P?S.next(x-P):(!R&&b(x),f)}}}function _c(e,t,n){const s=[],i=n||Je.mix||Ko,o=e.length-1;for(let r=0;rt[0];if(o===2&&t[0]===t[1])return()=>t[1];const r=e[0]===e[1];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=_c(t,s,i),c=a.length,u=d=>{if(r&&d1)for(;lu(Qe(e[0],e[o-1],d)):u}function Nc(e,t){const n=e[e.length-1];for(let s=1;s<=t;s++){const i=sn(0,t,s);e.push(J(n,1,i))}}function Oc(e){const t=[0];return Nc(t,e.length-1),t}function Fc(e,t){return e.map(n=>n*t)}function Bc(e,t){return e.map(()=>t||jo).splice(0,e.length-1)}function Zt({duration:e=300,keyframes:t,times:n,ease:s="easeInOut"}){const i=Ql(s)?s.map(Ui):Ui(s),o={done:!1,value:t[0]},r=Fc(n&&n.length===t.length?n:Oc(t),e),a=jc(r,t,{ease:Array.isArray(i)?i:Bc(t,i)});return{calculatedDuration:e,next:c=>(o.value=a(c),o.done=c>=e,o)}}const $c=e=>e!==null;function yi(e,{repeat:t,repeatType:n="loop"},s,i=1){const o=e.filter($c),a=i<0||t&&n!=="loop"&&t%2===1?0:o.length-1;return!a||s===void 0?o[a]:s}const zc={decay:Ls,inertia:Ls,tween:Zt,keyframes:Zt,spring:Un};function Yo(e){typeof e.type=="string"&&(e.type=zc[e.type])}class vi{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const Uc=e=>e/100;class bi extends vi{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==Te.now()&&this.tick(Te.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;Yo(t);const{type:n=Zt,repeat:s=0,repeatDelay:i=0,repeatType:o,velocity:r=0}=t;let{keyframes:a}=t;const c=n||Zt;c!==Zt&&typeof a[0]!="number"&&(this.mixKeyframes=dn(Uc,Ko(a[0],a[1])),a=[0,100]);const u=c({...t,keyframes:a});o==="mirror"&&(this.mirroredGenerator=c({...t,keyframes:[...a].reverse(),velocity:-r})),u.calculatedDuration===null&&(u.calculatedDuration=gi(u));const{calculatedDuration:d}=u;this.calculatedDuration=d,this.resolvedDuration=d+i,this.totalDuration=this.resolvedDuration*(s+1)-i,this.generator=u}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:s,totalDuration:i,mixKeyframes:o,mirroredGenerator:r,resolvedDuration:a,calculatedDuration:c}=this;if(this.startTime===null)return s.next(0);const{delay:u=0,keyframes:d,repeat:l,repeatType:f,repeatDelay:p,type:g,onUpdate:w,finalKeyframe:T}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const v=this.currentTime-u*(this.playbackSpeed>=0?1:-1),A=this.playbackSpeed>=0?v<0:v>i;this.currentTime=Math.max(v,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let y=this.currentTime,b=s;if(l){const x=Math.min(this.currentTime,i)/a;let R=Math.floor(x),L=x%1;!L&&x>=1&&(L=1),L===1&&R--,R=Math.min(R,l+1),!!(R%2)&&(f==="reverse"?(L=1-L,p&&(L-=p/a)):f==="mirror"&&(b=r)),y=Qe(0,1,L)*a}const P=A?{done:!1,value:d[0]}:b.next(y);o&&(P.value=o(P.value));let{done:S}=P;!A&&c!==null&&(S=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const I=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return I&&g!==Ls&&(P.value=yi(d,this.options,T,this.speed)),w&&w(P.value),I&&this.finish(),P}then(t,n){return this.finished.then(t,n)}get duration(){return Ne(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ne(t)}get time(){return Ne(this.currentTime)}set time(t){t=He(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(Te.now());const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Ne(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=Ec,startTime:n}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),this.options.onPlay?.();const s=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=s):this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime||(this.startTime=n??s),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Te.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function Wc(e){for(let t=1;te*180/Math.PI,Is=e=>{const t=bt(Math.atan2(e[1],e[0]));return Vs(t)},Hc={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:Is,rotateZ:Is,skewX:e=>bt(Math.atan(e[1])),skewY:e=>bt(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Vs=e=>(e=e%360,e<0&&(e+=360),e),Yi=Is,Qi=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),Zi=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),qc={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Qi,scaleY:Zi,scale:e=>(Qi(e)+Zi(e))/2,rotateX:e=>Vs(bt(Math.atan2(e[6],e[5]))),rotateY:e=>Vs(bt(Math.atan2(-e[2],e[0]))),rotateZ:Yi,rotate:Yi,skewX:e=>bt(Math.atan(e[4])),skewY:e=>bt(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function _s(e){return e.includes("scale")?1:0}function js(e,t){if(!e||e==="none")return _s(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let s,i;if(n)s=qc,i=n;else{const a=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);s=Hc,i=a}if(!i)return _s(t);const o=s[t],r=i[1].split(",").map(Gc);return typeof o=="function"?o(r):r[o]}const Kc=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return js(n,t)};function Gc(e){return parseFloat(e.trim())}const zt=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Ut=new Set(zt),Ji=e=>e===$t||e===k,Xc=new Set(["x","y","z"]),Yc=zt.filter(e=>!Xc.has(e));function Qc(e){const t=[];return Yc.forEach(n=>{const s=e.getValue(n);s!==void 0&&(t.push([n,s.get()]),s.set(n.startsWith("scale")?1:0))}),t}const it={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>js(t,"x"),y:(e,{transform:t})=>js(t,"y")};it.translateX=it.x;it.translateY=it.y;const xt=new Set;let Ns=!1,Os=!1,Fs=!1;function Qo(){if(Os){const e=Array.from(xt).filter(s=>s.needsMeasurement),t=new Set(e.map(s=>s.element)),n=new Map;t.forEach(s=>{const i=Qc(s);i.length&&(n.set(s,i),s.render())}),e.forEach(s=>s.measureInitialState()),t.forEach(s=>{s.render();const i=n.get(s);i&&i.forEach(([o,r])=>{s.getValue(o)?.set(r)})}),e.forEach(s=>s.measureEndState()),e.forEach(s=>{s.suspendedScrollY!==void 0&&window.scrollTo(0,s.suspendedScrollY)})}Os=!1,Ns=!1,xt.forEach(e=>e.complete(Fs)),xt.clear()}function Zo(){xt.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Os=!0)})}function Zc(){Fs=!0,Zo(),Qo(),Fs=!1}class xi{constructor(t,n,s,i,o,r=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=s,this.motionValue=i,this.element=o,this.isAsync=r}scheduleResolve(){this.state="scheduled",this.isAsync?(xt.add(this),Ns||(Ns=!0,Y.read(Zo),Y.resolveKeyframes(Qo))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:s,motionValue:i}=this;if(t[0]===null){const o=i?.get(),r=t[t.length-1];if(o!==void 0)t[0]=o;else if(s&&n){const a=s.readValue(n,r);a!=null&&(t[0]=a)}t[0]===void 0&&(t[0]=r),i&&o===void 0&&i.set(t[0])}Wc(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),xt.delete(this)}cancel(){this.state==="scheduled"&&(xt.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const Jc=e=>e.startsWith("--");function eu(e,t,n){Jc(t)?e.style.setProperty(t,n):e.style[t]=n}const tu=li(()=>window.ScrollTimeline!==void 0),nu={};function su(e,t){const n=li(e);return()=>nu[t]??n()}const Jo=su(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Yt=([e,t,n,s])=>`cubic-bezier(${e}, ${t}, ${n}, ${s})`,er={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Yt([0,.65,.55,1]),circOut:Yt([.55,0,1,.45]),backIn:Yt([.31,.01,.66,-.59]),backOut:Yt([.33,1.53,.69,.99])};function ea(e,t){if(e)return typeof e=="function"?Jo()?Go(e,t):"ease-out":No(e)?Yt(e):Array.isArray(e)?e.map(n=>ea(n,t)||er.easeOut):er[e]}function iu(e,t,n,{delay:s=0,duration:i=300,repeat:o=0,repeatType:r="loop",ease:a="easeOut",times:c}={},u=void 0){const d={[t]:n};c&&(d.offset=c);const l=ea(a,i);Array.isArray(l)&&(d.easing=l);const f={delay:s,duration:i,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:o+1,direction:r==="reverse"?"alternate":"normal"};return u&&(f.pseudoElement=u),e.animate(d,f)}function ta(e){return typeof e=="function"&&"applyToOptions"in e}function ru({type:e,...t}){return ta(e)&&Jo()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class na extends vi{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:n,name:s,keyframes:i,pseudoElement:o,allowFlatten:r=!1,finalKeyframe:a,onComplete:c}=t;this.isPseudoElement=!!o,this.allowFlatten=r,this.options=t,ai(typeof t.type!="string");const u=ru(t);this.animation=iu(n,s,i,u,o),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!o){const d=yi(i,this.options,a,this.speed);this.updateMotionValue?this.updateMotionValue(d):eu(n,s,d),this.animation.cancel()}c?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return Ne(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ne(t)}get time(){return Ne(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=He(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&tu()?(this.animation.timeline=t,Fe):n(this)}}const sa={anticipate:Io,backInOut:Lo,circInOut:_o};function ou(e){return e in sa}function au(e){typeof e.ease=="string"&&ou(e.ease)&&(e.ease=sa[e.ease])}const cs=10;class lu extends na{constructor(t){au(t),Yo(t),super(t),t.startTime!==void 0&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:s,onComplete:i,element:o,...r}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const a=new bi({...r,autoplay:!1}),c=Math.max(cs,Te.now()-this.startTime),u=Qe(0,cs,c-cs);n.setWithVelocity(a.sample(Math.max(0,c-u)).value,a.sample(c).value,u),a.stop()}}const tr=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(at.test(e)||e==="0")&&!e.startsWith("url("));function cu(e){const t=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function hu(e){const{motionValue:t,name:n,repeatDelay:s,repeatType:i,damping:o,type:r}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=t.owner.getProps();return fu()&&n&&du.has(n)&&(n!=="transform"||!u)&&!c&&!s&&i!=="mirror"&&o!==0&&r!=="inertia"}const pu=40;class mu extends vi{constructor({autoplay:t=!0,delay:n=0,type:s="keyframes",repeat:i=0,repeatDelay:o=0,repeatType:r="loop",keyframes:a,name:c,motionValue:u,element:d,...l}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Te.now();const f={autoplay:t,delay:n,type:s,repeat:i,repeatDelay:o,repeatType:r,name:c,motionValue:u,element:d,...l},p=d?.KeyframeResolver||xi;this.keyframeResolver=new p(a,(g,w,T)=>this.onKeyframesResolved(g,w,f,!T),c,u,d),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,n,s,i){this.keyframeResolver=void 0;const{name:o,type:r,velocity:a,delay:c,isHandoff:u,onUpdate:d}=s;this.resolvedAt=Te.now(),uu(t,o,r,a)||((Je.instantAnimations||!c)&&d?.(yi(t,s,n)),t[0]=t[t.length-1],Bs(s),s.repeat=0);const f={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>pu?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...s,keyframes:t},p=!u&&hu(f),g=f.motionValue?.owner?.current,w=p?new lu({...f,element:g}):new bi(f);w.finished.then(()=>{this.notifyFinished()}).catch(Fe),this.pendingTimeline&&(this.stopTimeline=w.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=w}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Zc()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function ia(e,t,n,s=0,i=1){const o=Array.from(e).sort((u,d)=>u.sortNodePosition(d)).indexOf(t),r=e.size,a=(r-1)*s;return typeof n=="function"?n(o,r):i===1?o*s:a-o*s}const gu=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function yu(e){const t=gu.exec(e);if(!t)return[,];const[,n,s,i]=t;return[`--${n??s}`,i]}function ra(e,t,n=1){const[s,i]=yu(e);if(!s)return;const o=window.getComputedStyle(t).getPropertyValue(s);if(o){const r=o.trim();return Po(r)?parseFloat(r):r}return fi(i)?ra(i,t,n+1):i}const vu={type:"spring",stiffness:500,damping:25,restSpeed:10},bu=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),xu={type:"keyframes",duration:.8},wu={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Su=(e,{keyframes:t})=>t.length>2?xu:Ut.has(e)?e.startsWith("scale")?bu(t[1]):vu:wu,Tu=e=>e!==null;function Pu(e,{repeat:t,repeatType:n="loop"},s){const i=e.filter(Tu),o=t&&n!=="loop"&&t%2===1?0:i.length-1;return i[o]}function oa(e,t){if(e?.inherit&&t){const{inherit:n,...s}=e;return{...t,...s}}return e}function wi(e,t){const n=e?.[t]??e?.default??e;return n!==e?oa(n,e):n}function Au({when:e,delay:t,delayChildren:n,staggerChildren:s,staggerDirection:i,repeat:o,repeatType:r,repeatDelay:a,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Si=(e,t,n,s={},i,o)=>r=>{const a=wi(s,e)||{},c=a.delay||s.delay||0;let{elapsed:u=0}=s;u=u-He(c);const d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-u,onUpdate:f=>{t.set(f),a.onUpdate&&a.onUpdate(f)},onComplete:()=>{r(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:o?void 0:i};Au(a)||Object.assign(d,Su(e,d)),d.duration&&(d.duration=He(d.duration)),d.repeatDelay&&(d.repeatDelay=He(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let l=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(Bs(d),d.delay===0&&(l=!0)),(Je.instantAnimations||Je.skipAnimations||i?.shouldSkipAnimations)&&(l=!0,Bs(d),d.delay=0),d.allowFlatten=!a.type&&!a.ease,l&&!o&&t.get()!==void 0){const f=Pu(d.keyframes,a);if(f!==void 0){Y.update(()=>{d.onUpdate(f),d.onComplete()});return}}return a.isSync?new bi(d):new mu(d)};function nr(e){const t=[{},{}];return e?.values.forEach((n,s)=>{t[0][s]=n.get(),t[1][s]=n.getVelocity()}),t}function Ti(e,t,n,s){if(typeof t=="function"){const[i,o]=nr(s);t=t(n!==void 0?n:e.custom,i,o)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,o]=nr(s);t=t(n!==void 0?n:e.custom,i,o)}return t}function Ot(e,t,n){const s=e.getProps();return Ti(s,t,n!==void 0?n:s.custom,e)}const aa=new Set(["width","height","top","left","right","bottom",...zt]),sr=30,Eu=e=>!isNaN(parseFloat(e));class Cu{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=s=>{const i=Te.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(s),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const o of this.dependents)o.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Te.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=Eu(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new ci);const s=this.events[t].add(n);return t==="change"?()=>{s(),Y.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,n,s){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-s}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Te.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>sr)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,sr);return Co(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Bt(e,t){return new Cu(e,t)}const $s=e=>Array.isArray(e);function Du(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Bt(n))}function Ru(e){return $s(e)?e[e.length-1]||0:e}function ku(e,t){const n=Ot(e,t);let{transitionEnd:s={},transition:i={},...o}=n||{};o={...o,...s};for(const r in o){const a=Ru(o[r]);Du(e,r,a)}}const xe=e=>!!(e&&e.getVelocity);function Mu(e){return!!(xe(e)&&e.add)}function zs(e,t){const n=e.getValue("willChange");if(Mu(n))return n.add(t);if(!n&&Je.WillChange){const s=new Je.WillChange("auto");e.addValue("willChange",s),s.add(t)}}function Pi(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const Lu="framerAppearId",la="data-"+Pi(Lu);function ca(e){return e.props[la]}function Iu({protectedKeys:e,needsAnimating:t},n){const s=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,s}function ua(e,t,{delay:n=0,transitionOverride:s,type:i}={}){let{transition:o,transitionEnd:r,...a}=t;const c=e.getDefaultTransition();o=o?oa(o,c):c;const u=o?.reduceMotion;s&&(o=s);const d=[],l=i&&e.animationState&&e.animationState.getState()[i];for(const f in a){const p=e.getValue(f,e.latestValues[f]??null),g=a[f];if(g===void 0||l&&Iu(l,f))continue;const w={delay:n,...wi(o||{},f)},T=p.get();if(T!==void 0&&!p.isAnimating&&!Array.isArray(g)&&g===T&&!w.velocity)continue;let v=!1;if(window.MotionHandoffAnimation){const b=ca(e);if(b){const P=window.MotionHandoffAnimation(b,f,Y);P!==null&&(w.startTime=P,v=!0)}}zs(e,f);const A=u??e.shouldReduceMotion;p.start(Si(f,p,g,A&&aa.has(f)?{type:!1}:w,e,v));const y=p.animation;y&&d.push(y)}if(r){const f=()=>Y.update(()=>{r&&ku(e,r)});d.length?Promise.all(d).then(f):f()}return d}function Us(e,t,n={}){const s=Ot(e,t,n.type==="exit"?e.presenceContext?.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const o=s?()=>Promise.all(ua(e,s,n)):()=>Promise.resolve(),r=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:l}=i;return Vu(e,t,c,u,d,l,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[c,u]=a==="beforeChildren"?[o,r]:[r,o];return c().then(()=>u())}else return Promise.all([o(),r(n.delay)])}function Vu(e,t,n=0,s=0,i=0,o=1,r){const a=[];for(const c of e.variantChildren)c.notify("AnimationStart",t),a.push(Us(c,t,{...r,delay:n+(typeof s=="function"?0:s)+ia(e.variantChildren,c,s,i,o)}).then(()=>c.notify("AnimationComplete",t)));return Promise.all(a)}function _u(e,t,n={}){e.notify("AnimationStart",t);let s;if(Array.isArray(t)){const i=t.map(o=>Us(e,o,n));s=Promise.all(i)}else if(typeof t=="string")s=Us(e,t,n);else{const i=typeof t=="function"?Ot(e,t,n.custom):t;s=Promise.all(ua(e,i,n))}return s.then(()=>{e.notify("AnimationComplete",t)})}const ju={test:e=>e==="auto",parse:e=>e},da=e=>t=>t.test(e),fa=[$t,k,Ye,st,uc,cc,ju],ir=e=>fa.find(da(e));function Nu(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||Eo(e):!0}const Ou=new Set(["brightness","contrast","saturate","opacity"]);function Fu(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[s]=n.match(hi)||[];if(!s)return e;const i=n.replace(s,"");let o=Ou.has(t)?1:0;return s!==n&&(o*=100),t+"("+o+i+")"}const Bu=/\b([a-z-]*)\(.*?\)/gu,Ws={...at,getAnimatableNone:e=>{const t=e.match(Bu);return t?t.map(Fu).join(" "):e}},rr={...$t,transform:Math.round},$u={rotate:st,rotateX:st,rotateY:st,rotateZ:st,scale:Tn,scaleX:Tn,scaleY:Tn,scaleZ:Tn,skew:st,skewX:st,skewY:st,distance:k,translateX:k,translateY:k,translateZ:k,x:k,y:k,z:k,perspective:k,transformPerspective:k,opacity:rn,originX:Hi,originY:Hi,originZ:k},Ai={borderWidth:k,borderTopWidth:k,borderRightWidth:k,borderBottomWidth:k,borderLeftWidth:k,borderRadius:k,borderTopLeftRadius:k,borderTopRightRadius:k,borderBottomRightRadius:k,borderBottomLeftRadius:k,width:k,maxWidth:k,height:k,maxHeight:k,top:k,right:k,bottom:k,left:k,inset:k,insetBlock:k,insetBlockStart:k,insetBlockEnd:k,insetInline:k,insetInlineStart:k,insetInlineEnd:k,padding:k,paddingTop:k,paddingRight:k,paddingBottom:k,paddingLeft:k,paddingBlock:k,paddingBlockStart:k,paddingBlockEnd:k,paddingInline:k,paddingInlineStart:k,paddingInlineEnd:k,margin:k,marginTop:k,marginRight:k,marginBottom:k,marginLeft:k,marginBlock:k,marginBlockStart:k,marginBlockEnd:k,marginInline:k,marginInlineStart:k,marginInlineEnd:k,fontSize:k,backgroundPositionX:k,backgroundPositionY:k,...$u,zIndex:rr,fillOpacity:rn,strokeOpacity:rn,numOctaves:rr},zu={...Ai,color:ce,backgroundColor:ce,outlineColor:ce,fill:ce,stroke:ce,borderColor:ce,borderTopColor:ce,borderRightColor:ce,borderBottomColor:ce,borderLeftColor:ce,filter:Ws,WebkitFilter:Ws},ha=e=>zu[e];function pa(e,t){let n=ha(e);return n!==Ws&&(n=at),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const Uu=new Set(["auto","none","0"]);function Wu(e,t,n){let s=0,i;for(;s{t.getValue(a).set(c)}),this.resolveNoneKeyframes()}}const qu=new Set(["opacity","clipPath","filter","transform"]);function ma(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){let s=document;const i=n?.[e]??s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(s=>s!=null)}const ga=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function Hs(e){return Ao(e)&&"offsetHeight"in e}const{schedule:Ei}=Oo(queueMicrotask,!1),We={x:!1,y:!1};function ya(){return We.x||We.y}function Ku(e){return e==="x"||e==="y"?We[e]?null:(We[e]=!0,()=>{We[e]=!1}):We.x||We.y?null:(We.x=We.y=!0,()=>{We.x=We.y=!1})}function va(e,t){const n=ma(e),s=new AbortController,i={passive:!0,...t,signal:s.signal};return[n,i,()=>s.abort()]}function Gu(e){return!(e.pointerType==="touch"||ya())}function Xu(e,t,n={}){const[s,i,o]=va(e,n);return s.forEach(r=>{let a=!1,c=!1,u;const d=()=>{r.removeEventListener("pointerleave",g)},l=T=>{u&&(u(T),u=void 0),d()},f=T=>{a=!1,window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",f),c&&(c=!1,l(T))},p=()=>{a=!0,window.addEventListener("pointerup",f,i),window.addEventListener("pointercancel",f,i)},g=T=>{if(T.pointerType!=="touch"){if(a){c=!0;return}l(T)}},w=T=>{if(!Gu(T))return;c=!1;const v=t(r,T);typeof v=="function"&&(u=v,r.addEventListener("pointerleave",g,i))};r.addEventListener("pointerenter",w,i),r.addEventListener("pointerdown",p,i)}),o}const ba=(e,t)=>t?e===t?!0:ba(e,t.parentElement):!1,Ci=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,Yu=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Qu(e){return Yu.has(e.tagName)||e.isContentEditable===!0}const Zu=new Set(["INPUT","SELECT","TEXTAREA"]);function Ju(e){return Zu.has(e.tagName)||e.isContentEditable===!0}const Mn=new WeakSet;function or(e){return t=>{t.key==="Enter"&&e(t)}}function us(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const ed=(e,t)=>{const n=e.currentTarget;if(!n)return;const s=or(()=>{if(Mn.has(n))return;us(n,"down");const i=or(()=>{us(n,"up")}),o=()=>us(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",o,t)});n.addEventListener("keydown",s,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",s),t)};function ar(e){return Ci(e)&&!ya()}const lr=new WeakSet;function td(e,t,n={}){const[s,i,o]=va(e,n),r=a=>{const c=a.currentTarget;if(!ar(a)||lr.has(a))return;Mn.add(c),n.stopPropagation&&lr.add(a);const u=t(c,a),d=(p,g)=>{window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",f),Mn.has(c)&&Mn.delete(c),ar(p)&&typeof u=="function"&&u(p,{success:g})},l=p=>{d(p,c===window||c===document||n.useGlobalTarget||ba(c,p.target))},f=p=>{d(p,!1)};window.addEventListener("pointerup",l,i),window.addEventListener("pointercancel",f,i)};return s.forEach(a=>{(n.useGlobalTarget?window:a).addEventListener("pointerdown",r,i),Hs(a)&&(a.addEventListener("focus",u=>ed(u,i)),!Qu(a)&&!a.hasAttribute("tabindex")&&(a.tabIndex=0))}),o}function Di(e){return Ao(e)&&"ownerSVGElement"in e}const Ln=new WeakMap;let In;const xa=(e,t,n)=>(s,i)=>i&&i[0]?i[0][e+"Size"]:Di(s)&&"getBBox"in s?s.getBBox()[t]:s[n],nd=xa("inline","width","offsetWidth"),sd=xa("block","height","offsetHeight");function id({target:e,borderBoxSize:t}){Ln.get(e)?.forEach(n=>{n(e,{get width(){return nd(e,t)},get height(){return sd(e,t)}})})}function rd(e){e.forEach(id)}function od(){typeof ResizeObserver>"u"||(In=new ResizeObserver(rd))}function ad(e,t){In||od();const n=ma(e);return n.forEach(s=>{let i=Ln.get(s);i||(i=new Set,Ln.set(s,i)),i.add(t),In?.observe(s)}),()=>{n.forEach(s=>{const i=Ln.get(s);i?.delete(t),i?.size||In?.unobserve(s)})}}const Vn=new Set;let Vt;function ld(){Vt=()=>{const e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Vn.forEach(t=>t(e))},window.addEventListener("resize",Vt)}function cd(e){return Vn.add(e),Vt||ld(),()=>{Vn.delete(e),!Vn.size&&typeof Vt=="function"&&(window.removeEventListener("resize",Vt),Vt=void 0)}}function cr(e,t){return typeof e=="function"?cd(e):ad(e,t)}function ud(e){return Di(e)&&e.tagName==="svg"}const dd=[...fa,ce,at],fd=e=>dd.find(da(e)),ur=()=>({translate:0,scale:1,origin:0,originPoint:0}),_t=()=>({x:ur(),y:ur()}),dr=()=>({min:0,max:0}),fe=()=>({x:dr(),y:dr()}),hd=new WeakMap;function Xn(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function an(e){return typeof e=="string"||Array.isArray(e)}const Ri=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],ki=["initial",...Ri];function Yn(e){return Xn(e.animate)||ki.some(t=>an(e[t]))}function wa(e){return!!(Yn(e)||e.variants)}function pd(e,t,n){for(const s in t){const i=t[s],o=n[s];if(xe(i))e.addValue(s,i);else if(xe(o))e.addValue(s,Bt(i,{owner:e}));else if(o!==i)if(e.hasValue(s)){const r=e.getValue(s);r.liveStyle===!0?r.jump(i):r.hasAnimated||r.set(i)}else{const r=e.getStaticValue(s);e.addValue(s,Bt(r!==void 0?r:i,{owner:e}))}}for(const s in n)t[s]===void 0&&e.removeValue(s);return t}const qs={current:null},Sa={current:!1},md=typeof window<"u";function gd(){if(Sa.current=!0,!!md)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>qs.current=e.matches;e.addEventListener("change",t),t()}else qs.current=!1}const fr=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Wn={};function Ta(e){Wn=e}function yd(){return Wn}class vd{scrapeMotionValuesFromProps(t,n,s){return{}}constructor({parent:t,props:n,presenceContext:s,reducedMotionConfig:i,skipAnimations:o,blockInitialAnimation:r,visualState:a},c={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=xi,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=Te.now();this.renderScheduledAtthis.bindToMotionValue(s,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Sa.current||gd(),this.shouldReduceMotion=qs.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),ot(this.notifyUpdate),ot(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,n){if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),n.accelerate&&qu.has(t)&&this.current instanceof HTMLElement){const{factory:r,keyframes:a,times:c,ease:u,duration:d}=n.accelerate,l=new na({element:this.current,name:t,keyframes:a,times:c,ease:u,duration:He(d)}),f=r(l);this.valueSubscriptions.set(t,()=>{f(),l.cancel()});return}const s=Ut.has(t);s&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",r=>{this.latestValues[t]=r,this.props.onUpdate&&Y.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let o;typeof window<"u"&&window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Wn){const n=Wn[t];if(!n)continue;const{isEnabled:s,Feature:i}=n;if(!this.features[t]&&i&&s(this.props)&&(this.features[t]=new i(this)),this.features[t]){const o=this.features[t];o.isMounted?o.update():(o.mount(),o.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):fe()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let s=0;sn.variantChildren.delete(t)}addValue(t,n){const s=this.values.get(t);n!==s&&(s&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let s=this.values.get(t);return s===void 0&&n!==void 0&&(s=Bt(n===null?void 0:n,{owner:this}),this.addValue(t,s)),s}readValue(t,n){let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Po(s)||Eo(s))?s=parseFloat(s):!fd(s)&&at.test(n)&&(s=pa(t,n)),this.setBaseTarget(t,xe(s)?s.get():s)),xe(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){const{initial:n}=this.props;let s;if(typeof n=="string"||typeof n=="object"){const o=Ti(this.props,n,this.presenceContext?.custom);o&&(s=o[t])}if(n&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!xe(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new ci),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){Ei.render(this.render)}}class Pa extends vd{constructor(){super(...arguments),this.KeyframeResolver=Hu}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){const s=t.style;return s?s[n]:void 0}removeValueFromRenderState(t,{vars:n,style:s}){delete n[t],delete s[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;xe(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class ct{constructor(t){this.isMounted=!1,this.node=t}update(){}}function Aa({top:e,left:t,right:n,bottom:s}){return{x:{min:t,max:n},y:{min:e,max:s}}}function bd({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function xd(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),s=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:s.y,right:s.x}}function ds(e){return e===void 0||e===1}function Ks({scale:e,scaleX:t,scaleY:n}){return!ds(e)||!ds(t)||!ds(n)}function yt(e){return Ks(e)||Ea(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Ea(e){return hr(e.x)||hr(e.y)}function hr(e){return e&&e!=="0%"}function Hn(e,t,n){const s=e-n,i=t*s;return n+i}function pr(e,t,n,s,i){return i!==void 0&&(e=Hn(e,i,s)),Hn(e,n,s)+t}function Gs(e,t=0,n=1,s,i){e.min=pr(e.min,t,n,s,i),e.max=pr(e.max,t,n,s,i)}function Ca(e,{x:t,y:n}){Gs(e.x,t.translate,t.scale,t.originPoint),Gs(e.y,n.translate,n.scale,n.originPoint)}const mr=.999999999999,gr=1.0000000000001;function wd(e,t,n,s=!1){const i=n.length;if(!i)return;t.x=t.y=1;let o,r;for(let a=0;amr&&(t.x=1),t.ymr&&(t.y=1)}function jt(e,t){e.min=e.min+t,e.max=e.max+t}function yr(e,t,n,s,i=.5){const o=J(e.min,e.max,i);Gs(e,t,n,o,s)}function Nt(e,t){yr(e.x,t.x,t.scaleX,t.scale,t.originX),yr(e.y,t.y,t.scaleY,t.scale,t.originY)}function Da(e,t){return Aa(xd(e.getBoundingClientRect(),t))}function Sd(e,t,n){const s=Da(e,n),{scroll:i}=t;return i&&(jt(s.x,i.offset.x),jt(s.y,i.offset.y)),s}const Td={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Pd=zt.length;function Ad(e,t,n){let s="",i=!0;for(let o=0;o{if(!t.target)return e;if(typeof e=="string")if(k.test(e))e=parseFloat(e);else return e;const n=vr(e,t.target.x),s=vr(e,t.target.y);return`${n}% ${s}%`}},Ed={correct:(e,{treeScale:t,projectionDelta:n})=>{const s=e,i=at.parse(e);if(i.length>5)return s;const o=at.createTransformer(e),r=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,c=n.y.scale*t.y;i[0+r]/=a,i[1+r]/=c;const u=J(a,c,.5);return typeof i[2+r]=="number"&&(i[2+r]/=u),typeof i[3+r]=="number"&&(i[3+r]/=u),o(i)}},Xs={borderRadius:{...Gt,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Gt,borderTopRightRadius:Gt,borderBottomLeftRadius:Gt,borderBottomRightRadius:Gt,boxShadow:Ed};function ka(e,{layout:t,layoutId:n}){return Ut.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Xs[e]||e==="opacity")}function Li(e,t,n){const s=e.style,i=t?.style,o={};if(!s)return o;for(const r in s)(xe(s[r])||i&&xe(i[r])||ka(r,e)||n?.getValue(r)?.liveStyle!==void 0)&&(o[r]=s[r]);return o}function Cd(e){return window.getComputedStyle(e)}class Dd extends Pa{constructor(){super(...arguments),this.type="html",this.renderInstance=Ra}readValueFromInstance(t,n){if(Ut.has(n))return this.projection?.isProjecting?_s(n):Kc(t,n);{const s=Cd(t),i=(Bo(n)?s.getPropertyValue(n):s[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Da(t,n)}build(t,n,s){Mi(t,n,s.transformTemplate)}scrapeMotionValuesFromProps(t,n,s){return Li(t,n,s)}}const Rd={offset:"stroke-dashoffset",array:"stroke-dasharray"},kd={offset:"strokeDashoffset",array:"strokeDasharray"};function Md(e,t,n=1,s=0,i=!0){e.pathLength=1;const o=i?Rd:kd;e[o.offset]=`${-s}`,e[o.array]=`${t} ${n}`}const Ld=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function Ma(e,{attrX:t,attrY:n,attrScale:s,pathLength:i,pathSpacing:o=1,pathOffset:r=0,...a},c,u,d){if(Mi(e,a,u),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:l,style:f}=e;l.transform&&(f.transform=l.transform,delete l.transform),(f.transform||l.transformOrigin)&&(f.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),f.transform&&(f.transformBox=d?.transformBox??"fill-box",delete l.transformBox);for(const p of Ld)l[p]!==void 0&&(f[p]=l[p],delete l[p]);t!==void 0&&(l.x=t),n!==void 0&&(l.y=n),s!==void 0&&(l.scale=s),i!==void 0&&Md(l,i,o,r,!1)}const La=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),Ia=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Id(e,t,n,s){Ra(e,t,void 0,s);for(const i in t.attrs)e.setAttribute(La.has(i)?i:Pi(i),t.attrs[i])}function Va(e,t,n){const s=Li(e,t,n);for(const i in e)if(xe(e[i])||xe(t[i])){const o=zt.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;s[o]=e[i]}return s}class Vd extends Pa{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=fe}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Ut.has(n)){const s=ha(n);return s&&s.default||0}return n=La.has(n)?n:Pi(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,s){return Va(t,n,s)}build(t,n,s){Ma(t,n,this.isSVGTag,s.transformTemplate,s.style)}renderInstance(t,n,s,i){Id(t,n,s,i)}mount(t){this.isSVGTag=Ia(t.tagName),super.mount(t)}}const _d=ki.length;function _a(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?_a(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<_d;n++){const s=ki[n],i=e.props[s];(an(i)||i===!1)&&(t[s]=i)}return t}function ja(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let s=0;sPromise.all(t.map(({animation:n,options:s})=>_u(e,n,s)))}function Fd(e){let t=Od(e),n=br(),s=!0;const i=c=>(u,d)=>{const l=Ot(e,d,c==="exit"?e.presenceContext?.custom:void 0);if(l){const{transition:f,transitionEnd:p,...g}=l;u={...u,...g,...p}}return u};function o(c){t=c(e)}function r(c){const{props:u}=e,d=_a(e.parent)||{},l=[],f=new Set;let p={},g=1/0;for(let T=0;Tg&&b,R=!1;const L=Array.isArray(y)?y:[y];let _=L.reduce(i(v),{});P===!1&&(_={});const{prevResolvedValues:oe={}}=A,ee={...oe,..._},ge=V=>{x=!0,f.has(V)&&(R=!0,f.delete(V)),A.needsAnimating[V]=!0;const W=e.getValue(V);W&&(W.liveStyle=!1)};for(const V in ee){const W=_[V],te=oe[V];if(p.hasOwnProperty(V))continue;let G=!1;$s(W)&&$s(te)?G=!ja(W,te):G=W!==te,G?W!=null?ge(V):f.add(V):W!==void 0&&f.has(V)?ge(V):A.protectedKeys[V]=!0}A.prevProp=y,A.prevResolvedValues=_,A.isActive&&(p={...p,..._}),s&&e.blockInitialAnimation&&(x=!1);const Me=S&&I;x&&(!Me||R)&&l.push(...L.map(V=>{const W={type:v};if(typeof V=="string"&&s&&!Me&&e.manuallyAnimateOnMount&&e.parent){const{parent:te}=e,G=Ot(te,V);if(te.enteringChildren&&G){const{delayChildren:Q}=G.transition||{};W.delay=ia(te.enteringChildren,e,Q)}}return{animation:V,options:W}}))}if(f.size){const T={};if(typeof u.initial!="boolean"){const v=Ot(e,Array.isArray(u.initial)?u.initial[0]:u.initial);v&&v.transition&&(T.transition=v.transition)}f.forEach(v=>{const A=e.getBaseTarget(v),y=e.getValue(v);y&&(y.liveStyle=!0),T[v]=A??null}),l.push({animation:T})}let w=!!l.length;return s&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(w=!1),s=!1,w?t(l):Promise.resolve()}function a(c,u){if(n[c].isActive===u)return Promise.resolve();e.variantChildren?.forEach(l=>l.animationState?.setActive(c,u)),n[c].isActive=u;const d=r(c);for(const l in n)n[l].protectedKeys={};return d}return{animateChanges:r,setActive:a,setAnimateFunction:o,getState:()=>n,reset:()=>{n=br()}}}function Bd(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!ja(t,e):!1}function mt(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function br(){return{animate:mt(!0),whileInView:mt(),whileHover:mt(),whileTap:mt(),whileDrag:mt(),whileFocus:mt(),exit:mt()}}function xr(e,t){e.min=t.min,e.max=t.max}function Ue(e,t){xr(e.x,t.x),xr(e.y,t.y)}function wr(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const Na=1e-4,$d=1-Na,zd=1+Na,Oa=.01,Ud=0-Oa,Wd=0+Oa;function Pe(e){return e.max-e.min}function Hd(e,t,n){return Math.abs(e-t)<=n}function Sr(e,t,n,s=.5){e.origin=s,e.originPoint=J(t.min,t.max,e.origin),e.scale=Pe(n)/Pe(t),e.translate=J(n.min,n.max,e.origin)-e.originPoint,(e.scale>=$d&&e.scale<=zd||isNaN(e.scale))&&(e.scale=1),(e.translate>=Ud&&e.translate<=Wd||isNaN(e.translate))&&(e.translate=0)}function Jt(e,t,n,s){Sr(e.x,t.x,n.x,s?s.originX:void 0),Sr(e.y,t.y,n.y,s?s.originY:void 0)}function Tr(e,t,n){e.min=n.min+t.min,e.max=e.min+Pe(t)}function qd(e,t,n){Tr(e.x,t.x,n.x),Tr(e.y,t.y,n.y)}function Pr(e,t,n){e.min=t.min-n.min,e.max=e.min+Pe(t)}function qn(e,t,n){Pr(e.x,t.x,n.x),Pr(e.y,t.y,n.y)}function Ar(e,t,n,s,i){return e-=t,e=Hn(e,1/n,s),i!==void 0&&(e=Hn(e,1/i,s)),e}function Kd(e,t=0,n=1,s=.5,i,o=e,r=e){if(Ye.test(t)&&(t=parseFloat(t),t=J(r.min,r.max,t/100)-r.min),typeof t!="number")return;let a=J(o.min,o.max,s);e===o&&(a-=t),e.min=Ar(e.min,t,n,a,i),e.max=Ar(e.max,t,n,a,i)}function Er(e,t,[n,s,i],o,r){Kd(e,t[n],t[s],t[i],t.scale,o,r)}const Gd=["x","scaleX","originX"],Xd=["y","scaleY","originY"];function Cr(e,t,n,s){Er(e.x,t,Gd,n?n.x:void 0,s?s.x:void 0),Er(e.y,t,Xd,n?n.y:void 0,s?s.y:void 0)}function Dr(e){return e.translate===0&&e.scale===1}function Fa(e){return Dr(e.x)&&Dr(e.y)}function Rr(e,t){return e.min===t.min&&e.max===t.max}function Yd(e,t){return Rr(e.x,t.x)&&Rr(e.y,t.y)}function kr(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Ba(e,t){return kr(e.x,t.x)&&kr(e.y,t.y)}function Mr(e){return Pe(e.x)/Pe(e.y)}function Lr(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Xe(e){return[e("x"),e("y")]}function Qd(e,t,n){let s="";const i=e.x.translate/t.x,o=e.y.translate/t.y,r=n?.z||0;if((i||o||r)&&(s=`translate3d(${i}px, ${o}px, ${r}px) `),(t.x!==1||t.y!==1)&&(s+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:l,rotateY:f,skewX:p,skewY:g}=n;u&&(s=`perspective(${u}px) ${s}`),d&&(s+=`rotate(${d}deg) `),l&&(s+=`rotateX(${l}deg) `),f&&(s+=`rotateY(${f}deg) `),p&&(s+=`skewX(${p}deg) `),g&&(s+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,c=e.y.scale*t.y;return(a!==1||c!==1)&&(s+=`scale(${a}, ${c})`),s||"none"}const $a=["TopLeft","TopRight","BottomLeft","BottomRight"],Zd=$a.length,Ir=e=>typeof e=="string"?parseFloat(e):e,Vr=e=>typeof e=="number"||k.test(e);function Jd(e,t,n,s,i,o){i?(e.opacity=J(0,n.opacity??1,ef(s)),e.opacityExit=J(t.opacity??1,0,tf(s))):o&&(e.opacity=J(t.opacity??1,n.opacity??1,s));for(let r=0;rst?1:n(sn(e,t,s))}function nf(e,t,n){const s=xe(e)?e:Bt(e);return s.start(Si("",s,t,n)),s.animation}function ln(e,t,n,s={passive:!0}){return e.addEventListener(t,n,s),()=>e.removeEventListener(t,n)}const sf=(e,t)=>e.depth-t.depth;class rf{constructor(){this.children=[],this.isDirty=!1}add(t){oi(this.children,t),this.isDirty=!0}remove(t){Bn(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(sf),this.isDirty=!1,this.children.forEach(t)}}function of(e,t){const n=Te.now(),s=({timestamp:i})=>{const o=i-n;o>=t&&(ot(s),e(o-t))};return Y.setup(s,!0),()=>ot(s)}function _n(e){return xe(e)?e.get():e}class af{constructor(){this.members=[]}add(t){oi(this.members,t);for(let n=this.members.length-1;n>=0;n--){const s=this.members[n];if(s===t||s===this.lead||s===this.prevLead)continue;const i=s.instance;i&&i.isConnected===!1&&s.isPresent!==!1&&!s.snapshot&&Bn(this.members,s)}t.scheduleRender()}remove(t){if(Bn(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let s;for(let i=n;i>=0;i--){const o=this.members[i],r=o.instance;if(o.isPresent!==!1&&(!r||r.isConnected!==!1)){s=o;break}}return s?(this.promote(s),!0):!1}promote(t,n){const s=this.lead;if(t!==s&&(this.prevLead=s,this.lead=t,t.show(),s)){s.instance&&s.scheduleRender(),t.scheduleRender();const i=s.options.layoutDependency,o=t.options.layoutDependency;if(!(i!==void 0&&o!==void 0&&i===o)){const c=s.instance;c&&c.isConnected===!1&&!s.snapshot||(t.resumeFrom=s,n&&(t.resumeFrom.preserveOpacity=!0),s.snapshot&&(t.snapshot=s.snapshot,t.snapshot.latestValues=s.animationValues||s.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0))}const{crossfade:a}=t.options;a===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:s}=t;n.onExitComplete&&n.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}const jn={hasAnimatedSinceResize:!0,hasEverUpdated:!1},fs=["","X","Y","Z"],lf=1e3;let cf=0;function hs(e,t,n,s){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),s&&(s[e]=0))}function Ua(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ca(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:o}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Y,!(i||o))}const{parent:s}=e;s&&!s.hasCheckedOptimisedAppear&&Ua(s)}function Wa({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:s,resetTransform:i}){return class{constructor(r={},a=t?.()){this.id=cf++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(ff),this.nodes.forEach(gf),this.nodes.forEach(yf),this.nodes.forEach(hf)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=r,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;Y.read(()=>{l=window.innerWidth}),e(r,()=>{const p=window.innerWidth;p!==l&&(l=p,this.root.updateBlockedByResize=!0,d&&d(),d=of(f,250),jn.hasAnimatedSinceResize&&(jn.hasAnimatedSinceResize=!1,this.nodes.forEach(Or)))})}a&&this.root.registerSharedNode(a,this),this.options.animate!==!1&&u&&(a||c)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:l,hasRelativeLayoutChanged:f,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||u.getDefaultTransition()||Sf,{onLayoutAnimationStart:w,onLayoutAnimationComplete:T}=u.getProps(),v=!this.targetLayout||!Ba(this.targetLayout,p),A=!l&&f;if(this.options.layoutRoot||this.resumeFrom||A||l&&(v||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const y={...wi(g,"layout"),onPlay:w,onComplete:T};(u.shouldReduceMotion||this.options.layoutRoot)&&(y.delay=0,y.type=!1),this.startAnimation(y),this.setAnimationOrigin(d,A)}else l||Or(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const r=this.getStack();r&&r.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),ot(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(vf),this.animationId++)}getTransformTemplate(){const{visualElement:r}=this.options;return r&&r.getProps().transformTemplate}willUpdate(r=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Ua(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Pe(this.snapshot.measuredBox.x)&&!Pe(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const P=b/1e3;Fr(l.x,r.x,P),Fr(l.y,r.y,P),this.setTargetDelta(l),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(qn(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),xf(this.relativeTarget,this.relativeTargetOrigin,f,P),y&&Yd(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=fe()),Ue(y,this.relativeTarget)),w&&(this.animationValues=d,Jd(d,u,this.latestValues,P,A,v)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=P},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(r){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(ot(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Y.update(()=>{jn.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Bt(0)),this.currentAnimation=nf(this.motionValue,[0,1e3],{...r,velocity:0,isSync:!0,onUpdate:a=>{this.mixTargetDelta(a),r.onUpdate&&r.onUpdate(a)},onStop:()=>{},onComplete:()=>{r.onComplete&&r.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const r=this.getStack();r&&r.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(lf),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const r=this.getLead();let{targetWithTransforms:a,target:c,layout:u,latestValues:d}=r;if(!(!a||!c||!u)){if(this!==r&&this.layout&&u&&Ha(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||fe();const l=Pe(this.layout.layoutBox.x);c.x.min=r.target.x.min,c.x.max=c.x.min+l;const f=Pe(this.layout.layoutBox.y);c.y.min=r.target.y.min,c.y.max=c.y.min+f}Ue(a,c),Nt(a,d),Jt(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(r,a){this.sharedNodes.has(r)||this.sharedNodes.set(r,new af),this.sharedNodes.get(r).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const r=this.getStack();return r?r.lead===this:!0}getLead(){const{layoutId:r}=this.options;return r?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:r}=this.options;return r?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:r}=this.options;if(r)return this.root.sharedNodes.get(r)}promote({needsReset:r,transition:a,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),r&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const r=this.getStack();return r?r.relegate(this):!1}resetSkewAndRotation(){const{visualElement:r}=this.options;if(!r)return;let a=!1;const{latestValues:c}=r;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(a=!0),!a)return;const u={};c.z&&hs("z",r,u,this.animationValues);for(let d=0;dr.currentAnimation?.stop()),this.root.nodes.forEach(jr),this.root.sharedNodes.clear()}}}function uf(e){e.updateLayout()}function df(e){const t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:s}=e.layout,{animationType:i}=e.options,o=t.source!==e.layout.source;i==="size"?Xe(d=>{const l=o?t.measuredBox[d]:t.layoutBox[d],f=Pe(l);l.min=n[d].min,l.max=l.min+f}):Ha(i,t.layoutBox,n)&&Xe(d=>{const l=o?t.measuredBox[d]:t.layoutBox[d],f=Pe(n[d]);l.max=l.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+f)});const r=_t();Jt(r,n,t.layoutBox);const a=_t();o?Jt(a,e.applyTransform(s,!0),t.measuredBox):Jt(a,n,t.layoutBox);const c=!Fa(r);let u=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:l,layout:f}=d;if(l&&f){const p=fe();qn(p,t.layoutBox,l.layoutBox);const g=fe();qn(g,n,f.layoutBox),Ba(p,g)||(u=!0),d.options.layoutRoot&&(e.relativeTarget=g,e.relativeTargetOrigin=p,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:t,delta:a,layoutDelta:r,hasLayoutChanged:c,hasRelativeLayoutChanged:u})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function ff(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hf(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function pf(e){e.clearSnapshot()}function jr(e){e.clearMeasurements()}function Nr(e){e.isLayoutDirty=!1}function mf(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Or(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function gf(e){e.resolveTargetDelta()}function yf(e){e.calcProjection()}function vf(e){e.resetSkewAndRotation()}function bf(e){e.removeLeadSnapshot()}function Fr(e,t,n){e.translate=J(t.translate,0,n),e.scale=J(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Br(e,t,n,s){e.min=J(t.min,n.min,s),e.max=J(t.max,n.max,s)}function xf(e,t,n,s){Br(e.x,t.x,n.x,s),Br(e.y,t.y,n.y,s)}function wf(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Sf={duration:.45,ease:[.4,0,.1,1]},$r=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),zr=$r("applewebkit/")&&!$r("chrome/")?Math.round:Fe;function Ur(e){e.min=zr(e.min),e.max=zr(e.max)}function Tf(e){Ur(e.x),Ur(e.y)}function Ha(e,t,n){return e==="position"||e==="preserve-aspect"&&!Hd(Mr(t),Mr(n),.2)}function Pf(e){return e!==e.root&&e.scroll?.wasRoot}const Af=Wa({attachResizeListener:(e,t)=>ln(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),ps={current:void 0},qa=Wa({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!ps.current){const e=new Af({});e.mount(window),e.setOptions({layoutScroll:!0}),ps.current=e}return ps.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Ii=h.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function Wr(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ef(...e){return t=>{let n=!1;const s=e.map(i=>{const o=Wr(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{width:f,height:p,top:g,left:w,right:T,bottom:v}=c.current;if(t||o===!1||!a.current||!f||!p)return;const A=n==="left"?`left: ${w}`:`right: ${T}`,y=s==="bottom"?`bottom: ${v}`:`top: ${g}`;a.current.dataset.motionPopId=r;const b=document.createElement("style");u&&(b.nonce=u);const P=i??document.head;return P.appendChild(b),b.sheet&&b.sheet.insertRule(` + [data-motion-pop-id="${r}"] { + position: absolute !important; + width: ${f}px !important; + height: ${p}px !important; + ${A}px !important; + ${y}px !important; + } + `),()=>{P.contains(b)&&P.removeChild(b)}},[t]),m.jsx(Df,{isPresent:t,childRef:a,sizeRef:c,pop:o,children:o===!1?e:h.cloneElement(e,{ref:l})})}const kf=({children:e,initial:t,isPresent:n,onExitComplete:s,custom:i,presenceAffectsLayout:o,mode:r,anchorX:a,anchorY:c,root:u})=>{const d=ri(Mf),l=h.useId();let f=!0,p=h.useMemo(()=>(f=!1,{id:l,initial:t,isPresent:n,custom:i,onExitComplete:g=>{d.set(g,!0);for(const w of d.values())if(!w)return;s&&s()},register:g=>(d.set(g,!1),()=>d.delete(g))}),[n,d,s]);return o&&f&&(p={...p}),h.useMemo(()=>{d.forEach((g,w)=>d.set(w,!1))},[n]),h.useEffect(()=>{!n&&!d.size&&s&&s()},[n]),e=m.jsx(Rf,{pop:r==="popLayout",isPresent:n,anchorX:a,anchorY:c,root:u,children:e}),m.jsx(Gn.Provider,{value:p,children:e})};function Mf(){return new Map}function Ka(e=!0){const t=h.useContext(Gn);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:s,register:i}=t,o=h.useId();h.useEffect(()=>{if(e)return i(o)},[e]);const r=h.useCallback(()=>e&&s&&s(o),[o,s,e]);return!n&&s?[!1,r]:[!0]}const Pn=e=>e.key||"";function Hr(e){const t=[];return h.Children.forEach(e,n=>{h.isValidElement(n)&&t.push(n)}),t}const Lf=({children:e,custom:t,initial:n=!0,onExitComplete:s,presenceAffectsLayout:i=!0,mode:o="sync",propagate:r=!1,anchorX:a="left",anchorY:c="top",root:u})=>{const[d,l]=Ka(r),f=h.useMemo(()=>Hr(e),[e]),p=r&&!d?[]:f.map(Pn),g=h.useRef(!0),w=h.useRef(f),T=ri(()=>new Map),v=h.useRef(new Set),[A,y]=h.useState(f),[b,P]=h.useState(f);To(()=>{g.current=!1,w.current=f;for(let x=0;x{const R=Pn(x),L=r&&!d?!1:f===b||p.includes(R),_=()=>{if(v.current.has(R))return;if(v.current.add(R),T.has(R))T.set(R,!0);else return;let oe=!0;T.forEach(ee=>{ee||(oe=!1)}),oe&&(I?.(),P(w.current),r&&l?.(),s&&s())};return m.jsx(kf,{isPresent:L,initial:!g.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:o,root:u,onExitComplete:L?void 0:_,anchorX:a,anchorY:c,children:x},R)})})},Ga=h.createContext({strict:!1}),qr={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Kr=!1;function If(){if(Kr)return;const e={};for(const t in qr)e[t]={isEnabled:n=>qr[t].some(s=>!!n[s])};Ta(e),Kr=!0}function Xa(){return If(),yd()}function Vf(e){const t=Xa();for(const n in e)t[n]={...t[n],...e[n]};Ta(t)}const _f=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Kn(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||_f.has(e)}let Ya=e=>!Kn(e);function jf(e){typeof e=="function"&&(Ya=t=>t.startsWith("on")?!Kn(t):e(t))}try{jf(require("@emotion/is-prop-valid").default)}catch{}function Nf(e,t,n){const s={};for(const i in e)i==="values"&&typeof e.values=="object"||(Ya(i)||n===!0&&Kn(i)||!t&&!Kn(i)||e.draggable&&i.startsWith("onDrag"))&&(s[i]=e[i]);return s}const Qn=h.createContext({});function Of(e,t){if(Yn(e)){const{initial:n,animate:s}=e;return{initial:n===!1||an(n)?n:void 0,animate:an(s)?s:void 0}}return e.inherit!==!1?t:{}}function Ff(e){const{initial:t,animate:n}=Of(e,h.useContext(Qn));return h.useMemo(()=>({initial:t,animate:n}),[Gr(t),Gr(n)])}function Gr(e){return Array.isArray(e)?e.join(" "):e}const Vi=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Qa(e,t,n){for(const s in t)!xe(t[s])&&!ka(s,n)&&(e[s]=t[s])}function Bf({transformTemplate:e},t){return h.useMemo(()=>{const n=Vi();return Mi(n,t,e),Object.assign({},n.vars,n.style)},[t])}function $f(e,t){const n=e.style||{},s={};return Qa(s,n,e),Object.assign(s,Bf(e,t)),s}function zf(e,t){const n={},s=$f(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=s,n}const Za=()=>({...Vi(),attrs:{}});function Uf(e,t,n,s){const i=h.useMemo(()=>{const o=Za();return Ma(o,t,Ia(s),e.transformTemplate,e.style),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};Qa(o,e.style,e),i.style={...o,...i.style}}return i}const Wf=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function _i(e){return typeof e!="string"||e.includes("-")?!1:!!(Wf.indexOf(e)>-1||/[A-Z]/u.test(e))}function Hf(e,t,n,{latestValues:s},i,o=!1,r){const c=(r??_i(e)?Uf:zf)(t,s,i,e),u=Nf(t,typeof e=="string",o),d=e!==h.Fragment?{...u,...c,ref:n}:{},{children:l}=t,f=h.useMemo(()=>xe(l)?l.get():l,[l]);return h.createElement(e,{...d,children:f})}function qf({scrapeMotionValuesFromProps:e,createRenderState:t},n,s,i){return{latestValues:Kf(n,s,i,e),renderState:t()}}function Kf(e,t,n,s){const i={},o=s(e,{});for(const f in o)i[f]=_n(o[f]);let{initial:r,animate:a}=e;const c=Yn(e),u=wa(e);t&&u&&!c&&e.inherit!==!1&&(r===void 0&&(r=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||r===!1;const l=d?a:r;if(l&&typeof l!="boolean"&&!Xn(l)){const f=Array.isArray(l)?l:[l];for(let p=0;p(t,n)=>{const s=h.useContext(Qn),i=h.useContext(Gn),o=()=>qf(e,t,s,i);return n?o():ri(o)},Gf=Ja({scrapeMotionValuesFromProps:Li,createRenderState:Vi}),Xf=Ja({scrapeMotionValuesFromProps:Va,createRenderState:Za}),Yf=Symbol.for("motionComponentSymbol");function Qf(e,t,n){const s=h.useRef(n);h.useInsertionEffect(()=>{s.current=n});const i=h.useRef(null);return h.useCallback(o=>{o&&e.onMount?.(o),t&&(o?t.mount(o):t.unmount());const r=s.current;if(typeof r=="function")if(o){const a=r(o);typeof a=="function"&&(i.current=a)}else i.current?(i.current(),i.current=null):r(o);else r&&(r.current=o)},[t])}const el=h.createContext({});function Lt(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function Zf(e,t,n,s,i,o){const{visualElement:r}=h.useContext(Qn),a=h.useContext(Ga),c=h.useContext(Gn),u=h.useContext(Ii),d=u.reducedMotion,l=u.skipAnimations,f=h.useRef(null),p=h.useRef(!1);s=s||a.renderer,!f.current&&s&&(f.current=s(e,{visualState:t,parent:r,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d,skipAnimations:l,isSVG:o}),p.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));const g=f.current,w=h.useContext(el);g&&!g.projection&&i&&(g.type==="html"||g.type==="svg")&&Jf(f.current,n,i,w);const T=h.useRef(!1);h.useInsertionEffect(()=>{g&&T.current&&g.update(n,c)});const v=n[la],A=h.useRef(!!v&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return To(()=>{p.current=!0,g&&(T.current=!0,window.MotionIsMounted=!0,g.updateFeatures(),g.scheduleRenderMicrotask(),A.current&&g.animationState&&g.animationState.animateChanges())}),h.useEffect(()=>{g&&(!A.current&&g.animationState&&g.animationState.animateChanges(),A.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),A.current=!1),g.enteringChildren=void 0)}),g}function Jf(e,t,n,s){const{layoutId:i,layout:o,drag:r,dragConstraints:a,layoutScroll:c,layoutRoot:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:tl(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!r||a&&Lt(a),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:s,crossfade:d,layoutScroll:c,layoutRoot:u})}function tl(e){if(e)return e.options.allowProjection!==!1?e.projection:tl(e.parent)}function ms(e,{forwardMotionProps:t=!1,type:n}={},s,i){s&&Vf(s);const o=n?n==="svg":_i(e),r=o?Xf:Gf;function a(u,d){let l;const f={...h.useContext(Ii),...u,layoutId:eh(u)},{isStatic:p}=f,g=Ff(u),w=r(u,p);if(!p&&So){th();const T=nh(f);l=T.MeasureLayout,g.visualElement=Zf(e,w,f,i,T.ProjectionNode,o)}return m.jsxs(Qn.Provider,{value:g,children:[l&&g.visualElement?m.jsx(l,{visualElement:g.visualElement,...f}):null,Hf(e,u,Qf(w,g.visualElement,d),w,p,t,o)]})}a.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const c=h.forwardRef(a);return c[Yf]=e,c}function eh({layoutId:e}){const t=h.useContext(ii).id;return t&&e!==void 0?t+"-"+e:e}function th(e,t){h.useContext(Ga).strict}function nh(e){const t=Xa(),{drag:n,layout:s}=t;if(!n&&!s)return{};const i={...n,...s};return{MeasureLayout:n?.isEnabled(e)||s?.isEnabled(e)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function sh(e,t){if(typeof Proxy>"u")return ms;const n=new Map,s=(o,r)=>ms(o,r,e,t),i=(o,r)=>s(o,r);return new Proxy(i,{get:(o,r)=>r==="create"?s:(n.has(r)||n.set(r,ms(r,void 0,e,t)),n.get(r))})}const ih=(e,t)=>t.isSVG??_i(e)?new Vd(t):new Dd(t,{allowProjection:e!==h.Fragment});class rh extends ct{constructor(t){super(t),t.animationState||(t.animationState=Fd(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Xn(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let oh=0;class ah extends ct{constructor(){super(...arguments),this.id=oh++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const lh={animation:{Feature:rh},exit:{Feature:ah}};function pn(e){return{point:{x:e.pageX,y:e.pageY}}}const ch=e=>t=>Ci(t)&&e(t,pn(t));function en(e,t,n,s){return ln(e,t,ch(n),s)}const nl=({current:e})=>e?e.ownerDocument.defaultView:null,Xr=(e,t)=>Math.abs(e-t);function uh(e,t){const n=Xr(e.x,t.x),s=Xr(e.y,t.y);return Math.sqrt(n**2+s**2)}const Yr=new Set(["auto","scroll"]);class sl{constructor(t,n,{transformPagePoint:s,contextWindow:i=window,dragSnapToOrigin:o=!1,distanceThreshold:r=3,element:a}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=p=>{this.handleScroll(p.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=ys(this.lastMoveEventInfo,this.history),g=this.startEvent!==null,w=uh(p.offset,{x:0,y:0})>=this.distanceThreshold;if(!g&&!w)return;const{point:T}=p,{timestamp:v}=me;this.history.push({...T,timestamp:v});const{onStart:A,onMove:y}=this.handlers;g||(A&&A(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,p)},this.handlePointerMove=(p,g)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=gs(g,this.transformPagePoint),Y.update(this.updatePoint,!0)},this.handlePointerUp=(p,g)=>{this.end();const{onEnd:w,onSessionEnd:T,resumeAnimation:v}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const A=ys(p.type==="pointercancel"?this.lastMoveEventInfo:gs(g,this.transformPagePoint),this.history);this.startEvent&&w&&w(p,A),T&&T(p,A)},!Ci(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=s,this.distanceThreshold=r,this.contextWindow=i||window;const c=pn(t),u=gs(c,this.transformPagePoint),{point:d}=u,{timestamp:l}=me;this.history=[{...d,timestamp:l}];const{onSessionStart:f}=n;f&&f(t,ys(u,this.history)),this.removeListeners=dn(en(this.contextWindow,"pointermove",this.handlePointerMove),en(this.contextWindow,"pointerup",this.handlePointerUp),en(this.contextWindow,"pointercancel",this.handlePointerUp)),a&&this.startScrollTracking(a)}startScrollTracking(t){let n=t.parentElement;for(;n;){const s=getComputedStyle(n);(Yr.has(s.overflowX)||Yr.has(s.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const s=t===window,i=s?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o={x:i.x-n.x,y:i.y-n.y};o.x===0&&o.y===0||(s?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o.x,this.lastMoveEventInfo.point.y+=o.y):this.history.length>0&&(this.history[0].x-=o.x,this.history[0].y-=o.y),this.scrollPositions.set(t,i),Y.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),ot(this.updatePoint)}}function gs(e,t){return t?{point:t(e.point)}:e}function Qr(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ys({point:e},t){return{point:e,delta:Qr(e,il(t)),offset:Qr(e,dh(t)),velocity:fh(t,.1)}}function dh(e){return e[0]}function il(e){return e[e.length-1]}function fh(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,s=null;const i=il(e);for(;n>=0&&(s=e[n],!(i.timestamp-s.timestamp>He(t)));)n--;if(!s)return{x:0,y:0};s===e[0]&&e.length>2&&i.timestamp-s.timestamp>He(t)*2&&(s=e[1]);const o=Ne(i.timestamp-s.timestamp);if(o===0)return{x:0,y:0};const r={x:(i.x-s.x)/o,y:(i.y-s.y)/o};return r.x===1/0&&(r.x=0),r.y===1/0&&(r.y=0),r}function hh(e,{min:t,max:n},s){return t!==void 0&&en&&(e=s?J(n,e,s.max):Math.min(e,n)),e}function Zr(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function ph(e,{top:t,left:n,bottom:s,right:i}){return{x:Zr(e.x,n,i),y:Zr(e.y,t,s)}}function Jr(e,t){let n=t.min-e.min,s=t.max-e.max;return t.max-t.mins?n=sn(t.min,t.max-s,e.min):s>i&&(n=sn(e.min,e.max-i,t.min)),Qe(0,1,n)}function yh(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Ys=.35;function vh(e=Ys){return e===!1?e=0:e===!0&&(e=Ys),{x:eo(e,"left","right"),y:eo(e,"top","bottom")}}function eo(e,t,n){return{min:to(e,t),max:to(e,n)}}function to(e,t){return typeof e=="number"?e:e[t]||0}const bh=new WeakMap;class xh{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=fe(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:s}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const o=l=>{n&&this.snapToCursor(pn(l).point),this.stopAnimation()},r=(l,f)=>{const{drag:p,dragPropagation:g,onDragStart:w}=this.getProps();if(p&&!g&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Ku(p),!this.openDragLock))return;this.latestPointerEvent=l,this.latestPanInfo=f,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Xe(v=>{let A=this.getAxisMotionValue(v).get()||0;if(Ye.test(A)){const{projection:y}=this.visualElement;if(y&&y.layout){const b=y.layout.layoutBox[v];b&&(A=Pe(b)*(parseFloat(A)/100))}}this.originPoint[v]=A}),w&&Y.update(()=>w(l,f),!1,!0),zs(this.visualElement,"transform");const{animationState:T}=this.visualElement;T&&T.setActive("whileDrag",!0)},a=(l,f)=>{this.latestPointerEvent=l,this.latestPanInfo=f;const{dragPropagation:p,dragDirectionLock:g,onDirectionLock:w,onDrag:T}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:v}=f;if(g&&this.currentDirection===null){this.currentDirection=Sh(v),this.currentDirection!==null&&w&&w(this.currentDirection);return}this.updateAxis("x",f.point,v),this.updateAxis("y",f.point,v),this.visualElement.render(),T&&Y.update(()=>T(l,f),!1,!0)},c=(l,f)=>{this.latestPointerEvent=l,this.latestPanInfo=f,this.stop(l,f),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>{const{dragSnapToOrigin:l}=this.getProps();(l||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:d}=this.getProps();this.panSession=new sl(t,{onSessionStart:o,onStart:r,onMove:a,onSessionEnd:c,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,distanceThreshold:s,contextWindow:nl(this.visualElement),element:this.visualElement.current})}stop(t,n){const s=t||this.latestPointerEvent,i=n||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!i||!s)return;const{velocity:r}=i;this.startAnimation(r);const{onDragEnd:a}=this.getProps();a&&Y.postRender(()=>a(s,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:s}=this.getProps();!s&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,s){const{drag:i}=this.getProps();if(!s||!An(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let r=this.originPoint[t]+s[t];this.constraints&&this.constraints[t]&&(r=hh(r,this.constraints[t],this.elastic[t])),o.set(r)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;t&&Lt(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&s?this.constraints=ph(s.layoutBox,t):this.constraints=!1,this.elastic=vh(n),i!==this.constraints&&!Lt(t)&&s&&this.constraints&&!this.hasMutatedConstraints&&Xe(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=yh(s.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Lt(t))return!1;const s=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=Sd(s,i.root,this.visualElement.getTransformPagePoint());let r=mh(i.layout.layoutBox,o);if(n){const a=n(bd(r));this.hasMutatedConstraints=!!a,a&&(r=Aa(a))}return r}startAnimation(t){const{drag:n,dragMomentum:s,dragElastic:i,dragTransition:o,dragSnapToOrigin:r,onDragTransitionEnd:a}=this.getProps(),c=this.constraints||{},u=Xe(d=>{if(!An(d,n,this.currentDirection))return;let l=c&&c[d]||{};r&&(l={min:0,max:0});const f=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:s?t[d]:0,bounceStiffness:f,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...o,...l};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const s=this.getAxisMotionValue(t);return zs(this.visualElement,t),s.start(Si(t,s,0,n,this.visualElement,!1))}stopAnimation(){Xe(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,s=this.visualElement.getProps(),i=s[n];return i||this.visualElement.getValue(t,(s.initial?s.initial[t]:void 0)||0)}snapToCursor(t){Xe(n=>{const{drag:s}=this.getProps();if(!An(n,s,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:r,max:a}=i.layout.layoutBox[n],c=o.get()||0;o.set(t[n]-J(r,a,.5)+c)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:s}=this.visualElement;if(!Lt(n)||!s||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Xe(r=>{const a=this.getAxisMotionValue(r);if(a&&this.constraints!==!1){const c=a.get();i[r]=gh({min:c,max:c},this.constraints[r])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.constraints=!1,this.resolveConstraints(),Xe(r=>{if(!An(r,t,null))return;const a=this.getAxisMotionValue(r),{min:c,max:u}=this.constraints[r];a.set(J(c,u,i[r]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;bh.set(this.visualElement,this);const t=this.visualElement.current,n=en(t,"pointerdown",u=>{const{drag:d,dragListener:l=!0}=this.getProps(),f=u.target,p=f!==t&&Ju(f);d&&l&&!p&&this.start(u)});let s;const i=()=>{const{dragConstraints:u}=this.getProps();Lt(u)&&u.current&&(this.constraints=this.resolveRefConstraints(),s||(s=wh(t,u.current,()=>this.scalePositionWithinConstraints())))},{projection:o}=this.visualElement,r=o.addEventListener("measure",i);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),Y.read(i);const a=ln(window,"resize",()=>this.scalePositionWithinConstraints()),c=o.addEventListener("didUpdate",(({delta:u,hasLayoutChanged:d})=>{this.isDragging&&d&&(Xe(l=>{const f=this.getAxisMotionValue(l);f&&(this.originPoint[l]+=u[l].translate,f.set(f.get()+u[l].translate))}),this.visualElement.render())}));return()=>{a(),n(),r(),c&&c(),s&&s()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:s=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:r=Ys,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:s,dragPropagation:i,dragConstraints:o,dragElastic:r,dragMomentum:a}}}function no(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function wh(e,t,n){const s=cr(e,no(n)),i=cr(t,no(n));return()=>{s(),i()}}function An(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Sh(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Th extends ct{constructor(t){super(t),this.removeGroupControls=Fe,this.removeListeners=Fe,this.controls=new xh(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Fe}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const vs=e=>(t,n)=>{e&&Y.update(()=>e(t,n),!1,!0)};class Ph extends ct{constructor(){super(...arguments),this.removePointerDownListener=Fe}onPointerDown(t){this.session=new sl(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:nl(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:s,onPanEnd:i}=this.node.getProps();return{onSessionStart:vs(t),onStart:vs(n),onMove:vs(s),onEnd:(o,r)=>{delete this.session,i&&Y.postRender(()=>i(o,r))}}}mount(){this.removePointerDownListener=en(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let bs=!1;class Ah extends h.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s,layoutId:i}=this.props,{projection:o}=t;o&&(n.group&&n.group.add(o),s&&s.register&&i&&s.register(o),bs&&o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),jn.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:s,drag:i,isPresent:o}=this.props,{projection:r}=s;return r&&(r.isPresent=o,t.layoutDependency!==n&&r.setOptions({...r.options,layoutDependency:n}),bs=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==o?r.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?r.promote():r.relegate()||Y.postRender(()=>{const a=r.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),Ei.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s}=this.props,{projection:i}=t;bs=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),s&&s.deregister&&s.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function rl(e){const[t,n]=Ka(),s=h.useContext(ii);return m.jsx(Ah,{...e,layoutGroup:s,switchLayoutGroup:h.useContext(el),isPresent:t,safeToRemove:n})}const Eh={pan:{Feature:Ph},drag:{Feature:Th,ProjectionNode:qa,MeasureLayout:rl}};function so(e,t,n){const{props:s}=e;e.animationState&&s.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,o=s[i];o&&Y.postRender(()=>o(t,pn(t)))}class Ch extends ct{mount(){const{current:t}=this.node;t&&(this.unmount=Xu(t,(n,s)=>(so(this.node,s,"Start"),i=>so(this.node,i,"End"))))}unmount(){}}class Dh extends ct{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=dn(ln(this.node.current,"focus",()=>this.onFocus()),ln(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function io(e,t,n){const{props:s}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&s.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),o=s[i];o&&Y.postRender(()=>o(t,pn(t)))}class Rh extends ct{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:s}=this.node.props;this.unmount=td(t,(i,o)=>(io(this.node,o,"Start"),(r,{success:a})=>io(this.node,r,a?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:s?.tap===!1})}unmount(){}}const Qs=new WeakMap,xs=new WeakMap,kh=e=>{const t=Qs.get(e.target);t&&t(e)},Mh=e=>{e.forEach(kh)};function Lh({root:e,...t}){const n=e||document;xs.has(n)||xs.set(n,{});const s=xs.get(n),i=JSON.stringify(t);return s[i]||(s[i]=new IntersectionObserver(Mh,{root:e,...t})),s[i]}function Ih(e,t,n){const s=Lh(t);return Qs.set(e,n),s.observe(e),()=>{Qs.delete(e),s.unobserve(e)}}const Vh={some:0,all:1};class _h extends ct{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:s,amount:i="some",once:o}=t,r={root:n?n.current:void 0,rootMargin:s,threshold:typeof i=="number"?i:Vh[i]},a=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,o&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:l}=this.node.getProps(),f=u?d:l;f&&f(c)};return Ih(this.node.current,r,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(jh(t,n))&&this.startObserver()}unmount(){}}function jh({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const Nh={inView:{Feature:_h},tap:{Feature:Rh},focus:{Feature:Dh},hover:{Feature:Ch}},Oh={layout:{ProjectionNode:qa,MeasureLayout:rl}},Fh={...lh,...Nh,...Eh,...Oh},Nn=sh(Fh,ih);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Bh=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),$h=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,s)=>s?s.toUpperCase():n.toLowerCase()),ro=e=>{const t=$h(e);return t.charAt(0).toUpperCase()+t.slice(1)},ol=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim();/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var zh={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Uh=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:i="",children:o,iconNode:r,...a},c)=>h.createElement("svg",{ref:c,...zh,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:ol("lucide",i),...a},[...r.map(([u,d])=>h.createElement(u,d)),...Array.isArray(o)?o:[o]]));/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ut=(e,t)=>{const n=h.forwardRef(({className:s,...i},o)=>h.createElement(Uh,{ref:o,iconNode:t,className:ol(`lucide-${Bh(ro(e))}`,`lucide-${e}`,s),...i}));return n.displayName=ro(e),n};/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wh=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Hh=ut("arrow-right",Wh);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qh=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Kh=ut("bot",qh);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gh=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]],Xh=ut("calculator",Gh);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Yh=[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]],Qh=ut("crown",Yh);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zh=[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]],Jh=ut("flame",Zh);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ep=[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]],tp=ut("menu",ep);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const np=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],sp=ut("triangle-alert",np);/** + * @license lucide-react v0.487.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ip=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],rp=ut("zap",ip),Xt=({message:e="Loading MathPulse AI..."})=>{const[t,n]=h.useState(!1),s={position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem",background:"#f7f9fc"},i={width:"min(100%, 24rem)",padding:"2rem",borderRadius:"2rem",border:"1px solid #dde3eb",background:"#ffffff",boxShadow:"0 24px 40px rgba(56, 189, 248, 0.12)",display:"flex",flexDirection:"column",alignItems:"center",gap:"1.5rem"},o={width:"6rem",height:"6rem",borderRadius:"1.5rem",border:"2px solid #ffffff",background:"linear-gradient(135deg, #e0f2fe 0%, #e0e7ff 100%)",boxShadow:"0 12px 24px rgba(15, 23, 42, 0.12)",display:"flex",alignItems:"center",justifyContent:"center"},r={width:"4rem",height:"4rem",objectFit:"contain",filter:"drop-shadow(0 8px 12px rgba(15, 23, 42, 0.2))"},a={marginTop:"0.5rem",display:"flex",alignItems:"center",justifyContent:"center",gap:"0.5rem"},c={width:"1rem",height:"1rem",borderRadius:"999px",border:"2px solid #0284c7",borderTopColor:"transparent"},u={margin:0,fontSize:"1.25rem",fontWeight:700,color:"#0a1628"},d={margin:0,fontSize:"0.875rem",fontWeight:600,color:"#64748b"};return m.jsx("div",{className:"app-loader-screen",style:s,role:"status","aria-live":"polite","aria-busy":"true","aria-label":e,children:m.jsxs(Nn.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},transition:{duration:.4,ease:"easeOut"},className:"app-loader-card",style:i,children:[m.jsxs(Nn.div,{animate:{y:[0,-10,0]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},className:"app-loader-avatar-shell",style:o,children:[m.jsx("img",{src:"/avatar/avatar_icon.png",alt:"Loading...",className:"app-loader-avatar",style:{...r,display:t?"none":"block"},onError:()=>{n(!0)}}),m.jsx(Kh,{className:"app-loader-bot-icon",style:{display:t?"block":"none"}})]}),m.jsxs("div",{className:"app-loader-copy",children:[m.jsx("h2",{className:"app-loader-title",style:u,children:"MathPulse AI"}),m.jsxs("div",{className:"app-loader-message-row",style:a,children:[m.jsx(Nn.div,{animate:{rotate:360},transition:{duration:1.5,repeat:1/0,ease:"linear"},className:"app-loader-spinner",style:c}),m.jsx("p",{className:"app-loader-message",style:d,children:e})]})]})]})})},op=e=>{if(!e||e.includes("your_project")||e.includes("your_database")||e.includes("your_"))return!1;try{const t=new URL(e);return t.protocol!=="https:"?!1:t.hostname.endsWith(".firebaseio.com")||t.hostname.endsWith(".firebasedatabase.app")}catch{return!1}},Zs="".trim(),cn=op(Zs)?Zs:"";Zs&&!cn&&console.warn("[FIREBASE] VITE_FIREBASE_DATABASE_URL is set but invalid. Expected an https URL ending in .firebaseio.com or .firebasedatabase.app. RTDB presence is disabled.");const Ft={apiKey:"AIzaSyBtKDbf3CoNSJHMX2W-Bfru8qEX2mKm03Y",authDomain:"mathpulse-ai-2026.firebaseapp.com",projectId:"mathpulse-ai-2026",storageBucket:"mathpulse-ai-2026.firebasestorage.app",messagingSenderId:"441656461",appId:"1:441656461:web:68f877c7bdde7065ec2ec4",measurementId:void 0,...cn?{databaseURL:cn}:{}};Ft.apiKey||console.error("[ERROR] Firebase API key is missing! Copy .env.example to .env.local and fill in your values.");console.log("[FIREBASE] Config:",{projectId:Ft.projectId,authDomain:Ft.authDomain,configured:!!Ft.apiKey});const Wt=_l(Ft),lt=El(Wt),H=Fl(Wt);$l(Wt);const ap=jl(Wt),lp="".toLowerCase()==="true";if(lp){const e="127.0.0.1".trim()||"127.0.0.1",t=5001,n=Number.isFinite(t)&&t>0?Math.floor(t):5001;Nl(ap,e,n),console.log(`[FIREBASE] Functions emulator enabled at ${e}:${n}`)}const gg=cn?Ol(Wt,cn):null;typeof window<"u"&&Ft.measurementId&&zl(Wt);new Cl;const Js="mathpulse.pendingAuthRole",al="mathpulse.lastAuthRole",cp=e=>{if(e==="admin")throw new Error("Admin account creation is restricted. Please contact an existing administrator.")},ji=(e,t)=>{const n=e,s=new Error(n.message||t);return n.code&&(s.code=n.code),s},yg=e=>{try{localStorage.setItem(Js,e),localStorage.setItem(al,e)}catch{}},up=()=>{try{const e=localStorage.getItem(Js);return localStorage.removeItem(Js),e==="student"||e==="teacher"||e==="admin"?e:null}catch{return null}},dp=()=>{try{const e=localStorage.getItem(al);return e==="student"||e==="teacher"||e==="admin"?e:null}catch{return null}},vg=async(e,t,n,s,i={})=>{try{cp(s);const r=(await Dl(lt,e,t)).user;return await Rl(r,{displayName:n}),await ll(r,s,i)}catch(o){const r=o;throw console.error("[ERROR] Error signing up:",{code:r.code,message:r.message,fullError:o}),ji(o,"Failed to create account")}},bg=async(e,t)=>{try{console.log("[AUTH] Attempting sign in...",{email:e}),await kl(lt,e,t),console.log("[OK] Sign in successful, AuthContext will handle profile creation")}catch(n){const s=n;throw console.error("[ERROR] Error signing in:",{code:s.code,message:s.message,fullError:n}),ji(n,"Failed to sign in")}},fp=async()=>{try{await Ml(lt)}catch(e){throw console.error("Error signing out:",e),ji(e,"Failed to sign out")}},ll=async(e,t,n)=>{const s=`${Date.now()}`.slice(-12).padStart(12,"0"),i={uid:e.uid,email:e.email||"",name:e.displayName||n.name||"User",role:t,photo:e.photoURL||"",createdAt:ue(),updatedAt:ue()},o=(()=>{switch(t){case"student":return{lrn:n.lrn||s,grade:n.grade||"Grade 11",section:n.section||"Section A",classSectionId:n.classSectionId||"",adviserTeacherId:n.adviserTeacherId||"",adviserTeacherName:n.adviserTeacherName||"",schoolYear:n.schoolYear||"",school:n.school||"",enrollmentDate:new Date().toISOString().split("T")[0],major:n.major||"General",gpa:n.gpa||"0.00",level:1,currentXP:0,totalXP:0,streak:0,atRiskSubjects:[],hasTakenDiagnostic:!1,iarAssessmentState:"not_started",startingQuarterG11:"Q1",recommendedPace:"normal"};case"teacher":return{teacherId:`TCH-${Date.now()}`,department:n.department||"Mathematics",subject:n.subject||"Mathematics",yearsOfExperience:n.yearsOfExperience||"0",qualification:n.qualification||"",students:[]};case"admin":return{adminId:`ADM-${Date.now()}`,position:n.position||"Administrator",department:n.department||"System"}}})(),r={...i,...o};return await $e(Z(H,"users",e.uid),r),r},ei=async e=>{try{const t=Z(H,"users",e),n=await Ae(t);return n.exists()?{...n.data(),uid:n.id}:null}catch(t){return console.error("Error getting user profile:",t),null}},ws=async(e,t)=>{try{const n=await ei(e);if(!n)throw new Error("Profile not found");const s=["name","email","phone","photo","avatarLayers"],i={student:["lrn","grade","section","school","enrollmentDate","major","gpa"],teacher:["department","subject","yearsOfExperience","qualification"],admin:["department","position"]},o=new Set([...s,...i[n.role]]),r={};Object.entries(t).forEach(([c,u])=>{u!==void 0&&o.has(c)&&(r[c]=u)});const a=Z(H,"users",e);await $e(a,{...r,updatedAt:ue()},{merge:!0})}catch(n){throw console.error("Error updating user profile:",n),n}},hp=async e=>{if(!lt.currentUser)throw new Error("No user logged in");await Il(lt.currentUser,e)},pp=async e=>{if(!lt.currentUser)throw new Error("No user logged in");await Ll(lt.currentUser);try{await Bl(Z(H,"users",e))}catch(t){console.warn("User auth deleted but profile document cleanup failed:",t)}},cl=h.createContext({currentUser:null,userProfile:null,loading:!0,isLoggedIn:!1,userRole:"student",refreshProfile:async()=>{}}),ul=()=>{const e=h.useContext(cl);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},mp=({children:e})=>{const[t,n]=h.useState(null),[s,i]=h.useState(null),[o,r]=h.useState(!0),[a,c]=h.useState("student"),u=f=>{if(!f)return null;const p=f.trim().toLowerCase();return p==="testteacher@school.edu"?"teacher":p==="testadmin@school.edu"?"admin":p==="teststudent@school.edu"?"student":null};h.useEffect(()=>Vl(lt,async p=>{if(r(!0),n(p),p){const g=up()||dp()||u(p.email)||"student",w=g==="admin"?"student":g;let T=await ei(p.uid);if(!T&&p.email){console.log("[WARN] AuthContext: Profile missing, auto-creating...");const v=w,A=p.displayName||"User";try{T=await ll(p,v,{name:A}),console.log("[OK] AuthContext: Profile auto-created:",{role:v,name:A}),v==="student"&&q(async()=>{const{triggerStudentEnrolled:y}=await import("./automationService-IMphlGK7.js");return{triggerStudentEnrolled:y}},__vite__mapDeps([0,1,2,3,4,5,6])).then(({triggerStudentEnrolled:y})=>y({lrn:T?.lrn||p.uid,name:A,email:p.email||"",gradeLevel:""})).catch(y=>console.error("[WARN] Automation: enrollment pipeline failed:",y))}catch(y){console.error("[ERROR] AuthContext: Failed to auto-create profile:",y)}}T?(c(T.role),i(T)):(c(w),i({uid:p.uid,email:p.email||"",name:p.displayName||"User",role:w,photo:p.photoURL||"",createdAt:new Date,updatedAt:new Date}))}else c("student"),i(null);r(!1)}),[]);const d=async()=>{if(t){const f=await ei(t.uid);f&&i(f)}},l={currentUser:t,userProfile:s,loading:o,isLoggedIn:!!t,userRole:s?.role||a,refreshProfile:d};return m.jsx(cl.Provider,{value:l,children:e})},gp=/(```[\s\S]*?```|`[^`\n]+`)/g,yp=/(\$\$[\s\S]*?\$\$|\$[^$\n]+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\])/g,vp=/\\(?:boxed\{[^{}]+\}|frac\{[^{}]+\}\{[^{}]+\}|sqrt\{[^{}]+\}|(?:cdot|times|pm|mp|leq|geq|neq|approx|alpha|beta|gamma|delta|theta|pi|sum|int)(?:_[a-zA-Z0-9]+|_\{[^{}]+\})?(?:\^[a-zA-Z0-9]+|\^\{[^{}]+\})?)/g,bp=/<\s*think\b[^>]*>[\s\S]*?<\s*\/\s*think\s*>/gi,xp=/<\s*\/?\s*think\b[^>]*>/gi,wp=/<\s*\/\s*think\s*>/gi,Sp=/<\s*(\/?)\s*think\b([\s\S]*?)>/gi,Tp=/(?:<\s*\/?\s*t(?:h(?:i(?:n(?:k)?)?)?)?)\s*$/i,Pp=/(?:<\s*\/?\s*t(?:h(?:i(?:n(?:k)?)?)?)?)\s*$/i,Ap=/\bfinal\s+answer\s*:|(?:^|\n)\s*#{1,6}\s+\S|(?:^|\n)\s*(?:answer|solution)\s*:|(?:^|\n)\s*here(?:'s| is)\b|(?:^|\n)\s*(?:\d+[.)]|[-*])\s+\S/i,Ep=/^\s*(?:okay|alright|let\s+me|i\s+should|i\s+need\s+to|i\s+will|wait|hmm|maybe|the\s+user\s+asked|let\s+us|let's)\b/i;function dl(e){return e.replace(Sp,(t,n,s)=>`<${n?"/":""}think${s}>`)}function Cp(e,t){t.lastIndex=0;let n=-1,s=t.exec(e);for(;s;)n=s.index+s[0].length,s=t.exec(e);return n}function Dp(e){const t=dl(e);if(/<\s*think\b/i.test(t))return"";const n=Cp(t,wp);return n===-1?"":t.slice(n).trim()}function Rp(e){const t=e.replace(/\r\n?/g,` +`).trim();if(!t)return"";const n=Ap.exec(t);return n&&typeof n.index=="number"?t.slice(n.index).trim():t.split(` +`).map(o=>o.trim()).filter(o=>o&&Ep.test(o)).length>=2?"":t}function ti(e,t={}){if(!e||typeof e!="string")return"";let n=dl(e),s="";for(;n!==s;)s=n,n=n.replace(bp,"");if(!t.preserveUnclosedThinkBlocks){const i=n.toLowerCase(),o=i.lastIndexOf("");o!==-1&&o>r&&(n=n.slice(0,o))}return n=n.replace(xp,""),t.streamingSafeTail&&(n=n.replace(Tp,"").replace(Pp,"")),n}function kp(e){return ti(e,{streamingSafeTail:!0}).trim()}function je(e){const t=Dp(e);if(t)return t;const n=ti(e,{streamingSafeTail:!0}).trim();if(n)return n;const s=ti(e,{streamingSafeTail:!0,preserveUnclosedThinkBlocks:!0}).trim();return Rp(s)}function Mp(e){return e.replace(vp,t=>`$${t}$`)}function Lp(e){return!e||typeof e!="string"?"":je(e).replace(/\r\n?/g,` +`).split(gp).map((i,o)=>o%2===1?i:i.replace(/\\\\(?=(?:boxed|frac|sqrt|cdot|times|pm|mp|leq|geq|neq|approx|alpha|beta|gamma|delta|theta|pi|sum|int)\b|[()[\]{}])/g,"\\").replace(/\\n/g,` +`).split(yp).map((c,u)=>u%2===1?c:Mp(c)).join("")).join("")}const Ip=80;function Ss(e,t=Ip){if(!e||typeof e!="string")return"";const n=Lp(e).replace(/!\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").replace(/```(?:[a-zA-Z0-9_-]+\n)?([\s\S]*?)```/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\$\$([\s\S]+?)\$\$/g,"$1").replace(/\$([^$\n]+)\$/g,"$1").replace(/\\\(([\s\S]+?)\\\)/g,"$1").replace(/\\\[([\s\S]+?)\\\]/g,"$1").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}(?:[-*+]|\d+\.)\s+/gm,"").replace(/^\s{0,3}(?:[-*_]\s?){3,}$/gm," ").replace(/\\boxed\{([^{}]+)\}/g,"$1").replace(/\\frac\{([^{}]+)\}\{([^{}]+)\}/g,"$1/$2").replace(/\\sqrt\{([^{}]+)\}/g,"sqrt($1)").replace(/\\(?:cdot|times)/g,"*").replace(/\\(alpha|beta|gamma|delta|theta|pi|sum|int|pm|mp|leq|geq|neq|approx)\b/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/__([^_]+)__/g,"$1").replace(/\*([^*\n]+)\*/g,"$1").replace(/_([^_\n]+)_/g,"$1").replace(/~~([^~]+)~~/g,"$1").replace(/\*{2,}|_{2,}|~{2,}/g,"").replace(/`+/g,"").replace(/\|/g," ").replace(/\s+/g," ").trim();return n.length<=t?n:n.slice(0,t)}const Vp=/^\s*(?:hi|hello|hey|good\s+(?:morning|afternoon|evening))\b/i,_p=/\b(?:thanks|thank\s+you|thank\s+u|ty)\b/i,fl=["Hi! I am MathPulse, your math tutor. I can help with algebra, geometry, calculus, and more. What math question would you like to try?","Hello! Great to see you. I am here for math topics and step-by-step solutions whenever you are ready."],hl=["You are very welcome. If you want, send another math question and we can work through it together.","Glad I could help. I am here anytime you want to practice more math."],oo=["That topic is outside my math scope, but I would be happy to help with mathematics like algebra, calculus, geometry, trigonometry, or statistics.","I focus on math-only support, so I may not be the best for that request. Share a math question and I will guide you step by step.","I am built for math tutoring, so I can best help with mathematical problems and explanations. If you want, ask me any math question next."],jp=["math","mathematics","algebra","geometry","trigonometry","calculus","statistics","probability","arithmetic","equation","inequality","function","graph","slope","derivative","integral","limit","matrix","determinant","fraction","percentage","ratio","polynomial","quadratic","logarithm","exponent","angle","triangle","circle","perimeter","area","volume","mean","median","mode","standard deviation","solve","simplify","factor","evaluate","compute","calculate"],Np=[/\d+\s*[%+\-*/^=]\s*[-+]?\d*/,/\b(?:sin|cos|tan|cot|sec|csc|log|ln|sqrt)\s*\(?/,/\b(?:differentiate|integrate|derive|proof|prove)\b/,/\b(?:x|y|z)\s*[=+\-*/^]\s*[-+]?\d/],Op=new Set(["go","continue","yes","ok","next","more"]),Fp=[/\bshall\s+we\s+continue\b/i,/\b(?:would|do)\s+you\s+like\s+to\s+continue\b/i,/\b(?:want|need)\s+me\s+to\s+continue\b/i,/\bshould\s+(?:i|we)\s+continue\b/i,/\bcontinue\s*\?\s*$/i,/\b(?:ready\s+for|go\s+to)\s+the\s+next\s+step\b/i,/\bnext\s+step(?:s)?\s*\?\s*$/i,/\bkeep\s+going\s*\?\s*$/i],ao="I can continue once I know which math problem you mean. Please share the problem again or tell me which step to continue.";function En(e){return e.length===0?"":e[Math.floor(Math.random()*e.length)]??e[0]}function Bp(e){const t=(e??"").trim().toLowerCase();return t?jp.some(n=>t.includes(n))?!0:Np.some(n=>n.test(t)):!1}function $p(e){return(e??"").trim().toLowerCase().replace(/\s+/g," ").replace(/[\p{P}]+$/gu,"")}function pl(e){const t=$p(e);return t?Op.has(t):!1}function lo(e){const t=(e??"").trim();return t?Bp(t)?null:Vp.test(t)?En(fl):_p.test(t)?En(hl):En(oo):En(oo)}function zp(e){const t=(e?.latestAssistantMessage??"").trim();if(t)return t;const n=e?.history??[];for(let s=n.length-1;s>=0;s-=1){const i=n[s],o=(i?.role??"").toLowerCase(),r=(i?.content??"").trim();if(r&&(o==="assistant"||o==="ai"))return r}return null}function Up(e){const t=zp(e);return t?Fp.some(n=>n.test(t)):!1}function Wp(e){const t=e?.history??[];for(let n=t.length-1;n>=0;n-=1){const s=t[n],i=(s?.role??"").toLowerCase(),o=(s?.content??"").trim();if(o&&i==="user"&&!pl(o))return o}return null}function Hp(e){return fl.includes(e)||hl.includes(e)}function ml(e,t){const n=lo(e);if(n===null)return null;if(!pl(e))return n;if(Up(t))return null;const s=Wp(t);if(!s)return ao;const i=lo(s);return i===null?null:Hp(i)?ao:i}const gl=h.createContext(void 0);let Ts=null,Ps=null;const co=()=>(Ts||(Ts=q(()=>import("./apiService-ZZIWaV70.js"),__vite__mapDeps([7,3,4,2,1,5,6]))),Ts),gt=()=>(Ps||(Ps=q(()=>import("./chatService-D8LuvWux.js"),__vite__mapDeps([8,1,2,3,4,5,6]))),Ps),qp=new Set(["go","continue","next","more","yes","ok"]),Kp=[/\b(?:end|finish|stop)\s+with(?:\s+the\s+(?:exact\s+)?(?:marker|text))?\s*[:\-]?\s*(["'`]?)([A-Za-z0-9_:\-]{2,96})\1/i,/\b(?:include|append)\s+(?:the\s+)?marker\s*[:\-]?\s*(["'`]?)([A-Za-z0-9_:\-]{2,96})\1/i];function mn(e){if(!e)return null;let t=e.trim();return!t||(t.length>=2&&t[0]===t[t.length-1]&&['"',"'","`"].includes(t[0])&&(t=t.slice(1,-1).trim()),t=t.replace(/[.,;\s]+$/g,""),!t)?null:t.slice(0,120)}function Gp(e){return(e??"").trim().toLowerCase().replace(/\s+/g," ").replace(/[\p{P}]+$/gu,"")}function yl(e){const t=Gp(e);return t?qp.has(t):!1}function Xp(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.role!=="user")continue;const s=(n.content??"").trim();if(s&&!yl(s))return s}return null}function Yp(e){return["Continue the ongoing math explanation for the same user request.","Do not refuse or reset the topic if the request is mathematical.","Original user request:",e].join(` +`)}function Qp(e){const t=(e??"").trim();if(!t)return null;for(const n of Kp){const s=n.exec(t);if(!s)continue;const i=mn(s[2]);if(i)return i}return null}function Zp(e,t){const n=mn(t);return n?e.toLowerCase().includes(n.toLowerCase()):!1}function ni(e,t,n,s){return n&&!Zp(t,n)?!0:s?em(e,t):!1}function Jp(e){const t=e.trim();if(!t||[/```[^`]*$/,/\$\$[^$]*$/,/\$[^$\n]*$/,/\\\[[^\]]*$/,/\\\([^\)]*$/,/\\boxed\{[^}]*$/,/\\frac\{[^}]*\}\{?$/,/\\[a-zA-Z]+\s*$/,/(?:Step\s*\d+[:.]?)\s*$/i,/(?:Final\s*Answer[:.]?)\s*$/i].some(f=>f.test(t))||(t.match(/```/g)??[]).length%2!==0||(()=>{let f=0;for(let p=0;p=0&&t[w]==="\\";w-=1)g+=1;g%2===0&&(f+=1)}return f})()%2!==0)return!0;const o=(t.match(/\\left\b/g)??[]).length,r=(t.match(/\\right\b/g)??[]).length;if(o!==r)return!0;const a=[["(",")"],["[","]"],["{","}"]];for(const[f,p]of a){const g=(t.match(new RegExp(`\\${f}`,"g"))??[]).length,w=(t.match(new RegExp(`\\${p}`,"g"))??[]).length;if(g>w)return!0}if(t.length>=80&&/\b(?:and|or|but|because|since|so|then|which|that|where|when|with|for|to|from|of|in|on|at|by)\s*$/i.test(t))return!0;const c=t.split(/\r?\n/).map(f=>f.trim()).filter(Boolean),u=c.length>0?c[c.length-1]:t,d=/[.!?)]$/.test(u),l=/(?:=|\\boxed|\\int|d\/dx|f\(x\)|x\^\d+|\b\d+(?:\.\d+)?\b)\s*$/.test(u);return t.length>=140&&!d&&!l}function em(e,t){const n=t.trim(),s=e.toLowerCase();if(!n||Jp(n))return!0;const i=n.replace(/[#*_`>|\-]/g," ").replace(/\s+/g," ").trim();if(!i||i.length<24&&/(derivative|integral|equation|complete|explain|step)/.test(s))return!0;if(s.includes("derivative")&&s.includes("integral")){const o=n.toLowerCase(),r=/derivative|f'|d\/dx/.test(o),a=/integral|∫|\\int/.test(o);if(!r||!a)return!0}return!!((s.includes("complete equation")||s.includes("complete equations")||s.includes("step-by-step")||s.includes("step by step"))&&((n.match(/=|\\frac|\\int|∫|\\boxed|d\/dx|\b(dx|x\^\d+)\b/g)??[]).length<2||n.length<120))}function Mt(e){const t=e.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);if(t.length<=1)return e.trim();const n=new Set,s=[];for(const i of t){const o=i.toLowerCase().replace(/[#*_`]/g,"").replace(/\s+/g," ").trim();!o||n.has(o)||(n.add(o),s.push(i))}return s.join(` + +`).trim()}function Cn(e,t){const n=e.trim(),s=t.trim();if(!n)return Mt(s);if(!s)return Mt(n);const i=Math.min(n.length,s.length,220);for(let o=i;o>=24;o-=1){const r=n.slice(-o),a=s.slice(0,o);if(r===a)return Mt(`${n}${s.slice(o)}`.trim())}return n.endsWith(s)?Mt(n):s.startsWith(n)?Mt(s):Mt(`${n} + +${s}`.trim())}function uo(e,t,n){const s=["Continue the same solution from exactly where it stopped.","Do not restart. Do not repeat completed parts. Keep the same formatting style.","Finish all remaining steps and provide a complete final answer.","",`Question: ${e}`,"","Current partial answer:",t],i=mn(n);return i&&(s.push(""),s.push(`Include the exact marker "${i}" at the very end when done.`)),s.join(` +`)}function fo(e,t,n){const s=["Continue and complete the answer in plain text only.","No markdown, no LaTeX, no code fences. Do not restart.","",`Question: ${e}`,"","Current partial answer:",t],i=mn(n);return i&&(s.push(""),s.push(`End with the exact marker "${i}".`)),s.join(` +`)}function ho(e,t){const n=["Provide a complete final tutoring answer for the student question below.","Do not include meta commentary, internal reasoning, or notes about instructions.","Cover every requested part explicitly and include final results.","",`Question: ${e}`],s=mn(t);return s&&(n.push(""),n.push(`Include the exact marker "${s}" once all requested parts are complete.`)),n.join(` +`)}function po(e,t,n,s=null,i=!0){const o=t.trim(),r=n.trim();if(!r)return o;if(!o)return r;const a=ni(e,o,s,i),c=ni(e,r,s,i);return a!==c?c?o:r:r.length>=o.length+80?r:o}function tm(e){const t=e.toLowerCase();return!["derivative","integral","equation","latex","step-by-step","step by step","formatting","proof","fraction","limit","matrix","sqrt","boxed","^","dx"].some(s=>t.includes(s))}function nm(e){const n=e.toLowerCase().trim();return!n||/^(hi|hello|hey|yo|sup|good morning|good afternoon|good evening)\b/.test(n)||/^(thanks|thank you|thx|ty)\b/.test(n)||/^(bye|goodbye|see you|later)\b/.test(n)||n.includes("fun fact")&&!/(solve|deriv|integr|equation|step|proof|show work|explain)/.test(n)?!1:["derivative","integral","equation","step-by-step","step by step","solve","differentiat","integrat","limit","proof","find","compute","simplify","factor","evaluate","calculate","graph","matrix","probability","statistics","trigonometry","algebra","geometry","calculus","show work","explain","define","describe","how","why","what is"].some(s=>n.includes(s))}function Dn(e,t=[]){const n=ml(e,{history:t});if(n)return n;const s=e.toLowerCase().trim();if(/^(hi|hello|hey|good morning|good afternoon|good evening)\b/.test(s))return"Hello! I'm your MathPulse AI tutor. I can help you with algebra, calculus, geometry, statistics, and more. What math topic would you like to explore today?";if(s.includes("thank")||s.includes("thanks"))return"You're welcome! I'm always here to help with math. Feel free to ask about any topic — algebra, calculus, geometry, statistics, or anything else. Keep up the great work!";if(/^(bye|goodbye|see you|later)\b/.test(s))return"Goodbye! Come back anytime you need math help. Happy studying!";const i=s.match(/(?:what(?:'s| is| are)|tell me (?:about|what)|explain|define|describe)\s+(.+)/);if(i){const o=i[1].replace(/[?.!]+$/,"").trim();return/\balgebra\b/.test(o)?`## What is Algebra? + +Algebra is a branch of mathematics that uses **letters and symbols** (like *x*, *y*, *a*, *b*) to represent numbers and quantities in equations and formulas. + +### Key concepts: +- **Variables** — symbols that stand for unknown values +- **Expressions** — combinations of numbers, variables, and operations (e.g., \`3x + 5\`) +- **Equations** — statements that two expressions are equal (e.g., \`2x + 3 = 11\`) +- **Functions** — rules that assign each input exactly one output + +### Why it matters: +Algebra is the foundation for almost all higher mathematics, including calculus, statistics, and physics. It teaches you to think abstractly and solve problems systematically. + +### Quick example: +Solve \`2x + 3 = 11\` +1. Subtract 3 from both sides → \`2x = 8\` +2. Divide by 2 → \`x = 4\` + +Would you like to dive deeper into any specific area of algebra?`:/\bcalculus\b/.test(o)?`## What is Calculus? + +Calculus is the mathematical study of **continuous change**. It has two main branches: + +### 1. Differential Calculus +Studies **rates of change** and slopes of curves. +- *Core tool:* the **derivative** — measures how fast a function changes at any point +- *Example:* If position = t², then velocity = 2t + +### 2. Integral Calculus +Studies **accumulation** of quantities and areas under curves. +- *Core tool:* the **integral** — adds up infinitely many tiny pieces +- *Example:* Area under y = x from 0 to 3 = ∫₀³ x dx = 9/2 = 4.5 + +### Why it matters: +Calculus is used in physics, engineering, economics, biology, and virtually every science. It lets you model anything that changes continuously. + +Want to start with derivatives, integrals, or limits?`:/\bgeometry\b/.test(o)?`## What is Geometry? + +Geometry is the branch of mathematics that studies **shapes, sizes, positions, and properties** of figures and spaces. + +### Key areas: +- **Euclidean Geometry** — points, lines, angles, triangles, circles, polygons +- **Coordinate Geometry** — shapes on the x-y plane using algebra +- **Solid Geometry** — 3D shapes like spheres, cylinders, cones +- **Transformations** — rotations, reflections, translations, dilations + +### Fundamental concepts: +- **Angles** — measured in degrees or radians +- **Congruence & Similarity** — same shape/size vs. same shape/different size +- **Pythagorean Theorem** — a² + b² = c² for right triangles +- **Area & Volume formulas** for common shapes + +What geometry topic would you like to explore?`:/\btrigonometry|trig\b/.test(o)?`## What is Trigonometry? + +Trigonometry is the study of relationships between **angles and sides** of triangles. + +### The core functions (SOH-CAH-TOA): +- **sin(θ)** = Opposite / Hypotenuse +- **cos(θ)** = Adjacent / Hypotenuse +- **tan(θ)** = Opposite / Adjacent + +### Beyond triangles: +Trig functions describe **periodic phenomena** like sound waves, light, tides, and circular motion. + +### Key identities: +- sin²θ + cos²θ = 1 +- tan(θ) = sin(θ)/cos(θ) + +Trigonometry is essential for calculus, physics, and engineering. What trig topic would you like help with?`:/\bstatistic/.test(o)?`## What is Statistics? + +Statistics is the branch of mathematics that deals with **collecting, analyzing, interpreting, and presenting data**. + +### Key areas: +- **Descriptive Statistics** — summarizing data with measures like mean, median, mode, and standard deviation +- **Inferential Statistics** — drawing conclusions about populations from samples +- **Probability** — the mathematics of chance and uncertainty + +### Common measures: +| Measure | Purpose | +|---------|--------| +| Mean | Average of all values | +| Median | Middle value when sorted | +| Mode | Most frequent value | +| Std Dev | How spread out values are | + +Want help with a specific statistics concept?`:/\bderivative/.test(o)?`## What is a Derivative? + +A derivative measures the **instantaneous rate of change** of a function — essentially, how fast something is changing at a specific point. + +### Formal definition: +f'(x) = lim(h→0) [f(x+h) - f(x)] / h + +### Intuition: +- The derivative of **position** is **velocity** +- The derivative of **velocity** is **acceleration** +- Geometrically, it's the **slope of the tangent line** to the curve + +### Key rules: +- **Power Rule:** d/dx[xⁿ] = nxⁿ⁻¹ +- **Product Rule:** d/dx[fg] = f'g + fg' +- **Chain Rule:** d/dx[f(g(x))] = f'(g(x)) · g'(x) + +Would you like to practice finding derivatives?`:/\bintegral|integration/.test(o)?`## What is Integration? + +Integration is the process of finding the **accumulated total** of a quantity. It's the reverse of differentiation. + +### Two types: +1. **Indefinite Integral** — finds a family of antiderivatives: ∫f(x) dx = F(x) + C +2. **Definite Integral** — calculates the area under a curve: ∫ₐᵇ f(x) dx + +### Intuition: +- If a derivative tells you *how fast* something changes, an integral tells you *how much* it accumulates +- Area under a velocity-time graph = total distance traveled + +### Key rule: +**Power Rule:** ∫xⁿ dx = xⁿ⁺¹/(n+1) + C (n ≠ -1) + +Want to try some integration problems?`:/\blimit/.test(o)?`## What is a Limit? + +A limit describes the value a function **approaches** as the input approaches some value. + +### Notation: +lim(x→a) f(x) = L means "as x gets closer and closer to a, f(x) gets closer and closer to L." + +### Why it matters: +Limits are the **foundation of calculus** — both derivatives and integrals are defined using limits. + +### How to evaluate: +1. **Direct substitution** — plug in the value first +2. **Factor & cancel** — if you get 0/0 +3. **L'Hôpital's Rule** — for 0/0 or ∞/∞ forms + +### Example: +lim(x→2) (x²-4)/(x-2) = lim(x→2) (x+2)(x-2)/(x-2) = lim(x→2) (x+2) = **4** + +What limit problem are you working on?`:/\bfraction/.test(o)?`## What is a Fraction? + +A fraction represents a **part of a whole**. It's written as **a/b**, where: +- **a** = numerator (parts you have) +- **b** = denominator (total equal parts) + +### Operations: +- **Addition:** a/b + c/d = (ad + bc) / bd +- **Multiplication:** a/b × c/d = ac / bd +- **Division:** a/b ÷ c/d = a/b × d/c (flip and multiply) + +### Example: +3/4 + 2/3 = 9/12 + 8/12 = **17/12** + +What fraction problem can I help you with?`:/\bpercent/.test(o)?`## What is a Percentage? + +A percentage is a way of expressing a number as a **fraction of 100**. The symbol **%** means "per hundred." + +### Key formulas: +- Percentage = (Part / Whole) × 100 +- Part = (Percentage × Whole) / 100 +- % Change = ((New - Old) / Old) × 100 + +### Examples: +- 25% of 200 = (25 × 200) / 100 = **50** +- 15 is what % of 60? → (15/60) × 100 = **25%** + +Need help with a specific percentage problem?`:/\bpythag/.test(o)?`## What is the Pythagorean Theorem? + +The Pythagorean Theorem states that in a **right triangle**, the square of the hypotenuse equals the sum of the squares of the other two sides: + +### **a² + b² = c²** + +where *c* is the hypotenuse (longest side, opposite the right angle). + +### Example: +If a = 3 and b = 4: +- 3² + 4² = 9 + 16 = 25 +- c = √25 = **5** + +### Common Pythagorean Triples: +- (3, 4, 5) +- (5, 12, 13) +- (8, 15, 17) + +Need help with a specific problem?`:`That's a great question about **${o}**! I'm currently in offline mode with limited responses. Here's what I can help with right now: + +- **Algebra** — equations, variables, functions +- **Calculus** — derivatives, integrals, limits +- **Geometry** — shapes, areas, volumes +- **Trigonometry** — angles, sin/cos/tan +- **Statistics** — data analysis, probability +- **Arithmetic** — fractions, percentages, ratios + +Try asking "What is algebra?" or "How do I solve quadratic equations?" for a detailed explanation. + +*Tip: The AI tutor works best when the server is online for full, personalized answers.*`}if(/\bhow (?:do|can|to|would|should)\b/.test(s)||/\bsolve\b/.test(s)||/\bfind\b/.test(s)||/\bcalculate\b/.test(s)){if(s.includes("quadratic")||s.includes("ax")&&s.includes("bx"))return`## Solving Quadratic Equations + +A quadratic equation has the form **ax² + bx + c = 0**. + +### Method 1: Quadratic Formula +**x = (-b ± √(b² - 4ac)) / 2a** + +### Steps: +1. Identify a, b, and c from your equation +2. Calculate the discriminant: **b² - 4ac** +3. If discriminant > 0 → two real solutions +4. If discriminant = 0 → one real solution +5. If discriminant < 0 → no real solutions + +### Example: x² - 5x + 6 = 0 +- a=1, b=-5, c=6 +- Discriminant = 25 - 24 = 1 +- x = (5 ± 1) / 2 → **x = 3** or **x = 2** + +### Method 2: Factoring +x² - 5x + 6 = (x - 3)(x - 2) = 0 + +Want me to help solve a specific quadratic?`;if(s.includes("derivative")||s.includes("differentiat"))return`## How to Find Derivatives + +The derivative measures the rate of change of a function. + +### Key Rules: +| Rule | Formula | +|------|--------| +| Power | d/dx[xⁿ] = nxⁿ⁻¹ | +| Constant | d/dx[c] = 0 | +| Sum | d/dx[f+g] = f' + g' | +| Product | d/dx[fg] = f'g + fg' | +| Chain | d/dx[f(g(x))] = f'(g(x)) · g'(x) | + +### Common Derivatives: +- d/dx[sin(x)] = cos(x) +- d/dx[cos(x)] = -sin(x) +- d/dx[eˣ] = eˣ +- d/dx[ln(x)] = 1/x + +### Example: f(x) = 3x² + 2x - 5 +f'(x) = 6x + 2 + +What function would you like to differentiate?`;if(s.includes("integral")||s.includes("integrat"))return`## How to Integrate + +Integration is the reverse of differentiation. + +### Key Rules: +- **Power Rule:** ∫xⁿ dx = xⁿ⁺¹/(n+1) + C (n ≠ -1) +- ∫1/x dx = ln|x| + C +- ∫eˣ dx = eˣ + C +- ∫sin(x) dx = -cos(x) + C +- ∫cos(x) dx = sin(x) + C + +### Techniques: +1. **Substitution (u-sub)** — simplify by substituting a part of the expression +2. **Integration by parts** — ∫u dv = uv - ∫v du +3. **Partial fractions** — break rational functions into simpler pieces + +Want help with a specific integral?`;if(s.includes("equation")||s.includes("solve"))return`## How to Solve Equations + +### Linear Equations (ax + b = c): +1. Move constants to one side +2. Divide by the coefficient of x + +**Example:** 3x + 7 = 22 +- 3x = 22 - 7 = 15 +- x = 15/3 = **5** + +### Systems of Equations: +- **Substitution** — solve one equation for a variable, plug into the other +- **Elimination** — add/subtract equations to eliminate a variable +- **Graphing** — find the intersection point + +### Tips: +- Always check your answer by substituting back +- Whatever you do to one side, do to the other + +Share your equation and I'll help solve it step by step!`;if(s.includes("area")||s.includes("perimeter")||s.includes("volume"))return`## Geometry Formulas + +### 2D Shapes: +| Shape | Area | Perimeter | +|-------|------|----------| +| Rectangle | l × w | 2(l + w) | +| Triangle | ½ × b × h | a + b + c | +| Circle | πr² | 2πr | +| Trapezoid | ½(a+b) × h | sum of sides | + +### 3D Shapes: +| Shape | Volume | Surface Area | +|-------|--------|--------------| +| Sphere | (4/3)πr³ | 4πr² | +| Cylinder | πr²h | 2πr² + 2πrh | +| Cone | (1/3)πr²h | πr² + πrl | + +What geometry problem do you need help with?`;if(s.includes("graph")||s.includes("plot")||s.includes("slope"))return`## Graphing & Linear Functions + +### Slope-Intercept Form: y = mx + b +- **m** = slope (rise / run) +- **b** = y-intercept (where the line crosses the y-axis) + +### Finding Slope: +m = (y₂ - y₁) / (x₂ - x₁) + +### Example: +Through (1, 3) and (4, 9): +- m = (9-3)/(4-1) = 6/3 = 2 +- Plug into y = mx + b: 3 = 2(1) + b → b = 1 +- Equation: **y = 2x + 1** + +What would you like to graph or understand?`;if(s.includes("factor"))return`## How to Factor + +### Common Techniques: +1. **GCF (Greatest Common Factor):** Factor out the largest shared factor + - 6x² + 9x = **3x(2x + 3)** + +2. **Difference of Squares:** a² - b² = (a+b)(a-b) + - x² - 25 = **(x+5)(x-5)** + +3. **Trinomial Factoring:** x² + bx + c = (x + p)(x + q) where p·q = c and p+q = b + - x² + 5x + 6 = **(x+2)(x+3)** + +4. **Grouping:** For 4-term polynomials + +What expression would you like to factor?`}return s.includes("pythag")||s.includes("right")&&s.includes("triangle")?`## Pythagorean Theorem + +For a right triangle with legs a and b, and hypotenuse c: + +### **a² + b² = c²** + +**Example:** If a = 3, b = 4: +- 9 + 16 = 25 +- c = √25 = **5** + +### Common Pythagorean Triples: +- (3, 4, 5) +- (5, 12, 13) +- (8, 15, 17) +- (7, 24, 25) + +Need help with a specific problem?`:s.includes("trig")||/\b(sin|cos|tan)\b/.test(s)?`## Trigonometry + +### SOH-CAH-TOA: +- **sin(θ)** = Opposite / Hypotenuse +- **cos(θ)** = Adjacent / Hypotenuse +- **tan(θ)** = Opposite / Adjacent + +### Key Identities: +- sin²θ + cos²θ = 1 +- tan(θ) = sin(θ)/cos(θ) +- sin(2θ) = 2sin(θ)cos(θ) + +### Unit Circle Values: +| Angle | sin | cos | +|-------|-----|-----| +| 0° | 0 | 1 | +| 30° | 1/2 | √3/2 | +| 45° | √2/2 | √2/2 | +| 90° | 1 | 0 | + +What trig topic would you like help with?`:s.includes("statistic")||s.includes("probability")||s.includes("mean")||s.includes("median")?`## Statistics & Probability + +### Measures of Central Tendency: +- **Mean:** Sum of all values ÷ number of values +- **Median:** Middle value when sorted +- **Mode:** Most frequent value + +### Probability Basics: +- P(event) = favorable outcomes / total outcomes +- 0 ≤ P(event) ≤ 1 +- P(A or B) = P(A) + P(B) - P(A and B) + +### Example: +For data {2, 5, 5, 8, 10}: +- Mean = 30/5 = **6** +- Median = **5** +- Mode = **5** + +What statistics concept do you need help with?`:s.includes("percent")||s.includes("%")?`## Percentages + +### Key Formulas: +- Percentage = (Part / Whole) × 100 +- Part = (Percentage × Whole) / 100 +- % Change = ((New - Old) / Old) × 100 + +### Examples: +- 25% of 200 = (25 × 200) / 100 = **50** +- 15 is what % of 60? → (15/60) × 100 = **25%** +- % increase from 80 to 100 = (20/80) × 100 = **25%** + +Need help with a specific percentage problem?`:s.includes("fraction")||s.includes("numerator")||s.includes("denominator")?`## Fractions + +### Operations: +- **Addition:** a/b + c/d = (ad + bc) / bd +- **Subtraction:** a/b - c/d = (ad - bc) / bd +- **Multiplication:** a/b × c/d = ac / bd +- **Division:** a/b ÷ c/d = a/b × d/c + +### Simplifying: +Divide both numerator and denominator by their GCD. + +### Example: +3/4 + 2/3 = 9/12 + 8/12 = **17/12** + +What fraction problem can I help you with?`:s.includes("limit")?`## Limits + +The limit describes what value a function **approaches** as x approaches some value. + +### How to evaluate: +1. **Direct substitution** — try plugging in the value first +2. **Factor & cancel** — if you get 0/0 +3. **L'Hôpital's Rule** — for 0/0 or ∞/∞ forms + +### Example: +lim(x→2) (x²-4)/(x-2) += lim(x→2) (x+2)(x-2)/(x-2) += lim(x→2) (x+2) = **4** + +What limit problem are you working on?`:s.includes("matrix")||s.includes("matrices")?`## Matrices + +A matrix is a rectangular array of numbers arranged in rows and columns. + +### Operations: +- **Addition:** Add corresponding elements (same dimensions required) +- **Scalar multiplication:** Multiply every element by a constant +- **Matrix multiplication:** Rows × Columns (dimensions must be compatible: m×n · n×p = m×p) + +### Determinant (2×2): +For matrix [[a, b], [c, d]]: det = **ad - bc** + +### Example: +| 2 3 | | 1 0 | | 3 3 | +| 4 1 | + | 2 5 | = | 6 6 | + +What matrix operation do you need help with?`:s.includes("logarithm")||s.includes("log")?`## Logarithms + +A logarithm answers: **"What exponent gives me this number?"** + +log_b(x) = y means b^y = x + +### Key Properties: +- log(ab) = log(a) + log(b) +- log(a/b) = log(a) - log(b) +- log(aⁿ) = n · log(a) +- log_b(b) = 1 +- log_b(1) = 0 + +### Common bases: +- **log** = log₁₀ (common log) +- **ln** = logₑ (natural log, e ≈ 2.718) + +### Example: +log₂(8) = 3 because 2³ = 8 + +What logarithm problem are you working on?`:s.includes("exponent")||s.includes("power")?`## Exponents + +An exponent tells you how many times to multiply a base by itself. + +### Key Rules: +- aᵐ · aⁿ = aᵐ⁺ⁿ +- aᵐ / aⁿ = aᵐ⁻ⁿ +- (aᵐ)ⁿ = aᵐⁿ +- a⁰ = 1 (any nonzero number) +- a⁻ⁿ = 1/aⁿ +- a^(1/n) = ⁿ√a + +### Example: +2³ × 2⁴ = 2⁷ = **128** + +What exponent problem can I help with?`:`I'm your **MathPulse AI** math tutor! + +I can help with a wide range of math topics. Try asking: + +- **"What is algebra?"** — get a clear explanation of any topic +- **"How do I solve quadratic equations?"** — step-by-step instructions +- **"Explain the Pythagorean theorem"** — concept breakdowns +- **"What is the derivative of x²?"** — specific problems + +### Topics I cover: +- Algebra, Geometry, Trigonometry +- Calculus (derivatives, integrals, limits) +- Statistics & Probability +- Arithmetic (fractions, percentages) +- Logarithms, Exponents, Matrices + +What would you like to learn about?`}const xg=()=>{const e=h.useContext(gl);if(!e)throw new Error("useChatContext must be used within ChatProvider");return e},sm=({children:e})=>{const{currentUser:t}=ul(),[n,s]=h.useState([]),[i,o]=h.useState(null),[r,a]=h.useState(!1),[c,u]=h.useState(null),[d,l]=h.useState(!1),f=h.useRef(new Map);h.useEffect(()=>{if(!t){s([]),l(!1);return}(async()=>{try{const P=await gt(),S=await P.getUserChatSessions(t.uid),I=await Promise.all(S.map(async x=>{const L=(await P.getSessionMessages(x.id)).map(_=>({id:_.id,sender:_.role==="user"?"user":"ai",text:_.role==="assistant"?je(_.content):_.content,timestamp:_.timestamp instanceof Date?_.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):new Date(_.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}));return{id:x.id,title:x.title,date:x.updatedAt instanceof Date?x.updatedAt.toLocaleDateString():new Date(x.updatedAt).toLocaleDateString(),messageCount:L.length,preview:L.length>0&&Ss(L[L.length-1].text)||"No messages yet",topics:[],messages:L,createdAt:x.createdAt instanceof Date?x.createdAt:new Date(x.createdAt),updatedAt:x.updatedAt instanceof Date?x.updatedAt:new Date(x.updatedAt)}}));s(I)}catch(P){console.error("Error loading chat sessions:",P)}finally{l(!0)}})()},[t]);const p=b=>{if(b.length===0)return"New Chat";const P=b.find(x=>x.sender==="user")?.text||"",S=P.toLowerCase();if(S.includes("quadratic")||S.includes("ax² + bx + c"))return"Quadratic Equations Help";if(S.includes("derivative")||S.includes("calculus"))return"Derivatives & Calculus";if(S.includes("pythagor")||S.includes("right triangle"))return"Pythagorean Theorem";if(S.includes("trig")||S.includes("sin")||S.includes("cos"))return"Trigonometry Help";if(S.includes("area")||S.includes("perimeter"))return"Geometry - Area & Perimeter";if(S.includes("algebra")||S.includes("solve")&&S.includes("x"))return"Algebra Problem Solving";if(S.includes("factor"))return"Factoring Practice";if(S.includes("graph")||S.includes("plot"))return"Graphing Functions";if(S.includes("matrix")||S.includes("matrices"))return"Matrix Operations";if(S.includes("integral")||S.includes("integrate"))return"Integration Problems";if(S.includes("limit"))return"Limits in Calculus";if(S.includes("statistic")||S.includes("probability"))return"Statistics & Probability";const I=P.slice(0,40);return I.length{const P=Date.now().toString(),S=new Date,I={id:P,title:b?p([b]):"New Chat",date:"Just now",messageCount:b?1:0,preview:b&&Ss(b.text)||"Start a new conversation...",topics:[],messages:b?[b]:[],createdAt:S,updatedAt:S};if(s(x=>[I,...x]),t){const x=b?p([b]):"New Chat",R=gt().then(async L=>{const _=await L.createChatSession(t.uid,x);return b&&await L.addMessageToSession(_.id,b.sender==="user"?"user":"assistant",b.text),_.id}).catch(L=>(console.error("Error creating Firebase session:",L),P));f.current.set(P,R)}return P},[t]),w=h.useCallback((b,P)=>{const S=P.sender==="ai"?{...P,text:je(P.text)}:P;s(x=>x.map(R=>{if(R.id===b){const L=[...R.messages,S];return{...R,messages:L,messageCount:L.length,preview:Ss(S.text)||R.preview,updatedAt:new Date,title:L.length===2?p(L):R.title}}return R}));const I=async x=>{const R=f.current.get(x);return R?await R:x};I(b).then(async x=>{await(await gt()).addMessageToSession(x,S.sender==="user"?"user":"assistant",S.text)}).catch(x=>console.error("Error persisting message:",x)),s(x=>{const R=x.find(L=>L.id===b);if(R&&R.messages.length===2){const L=p(R.messages);I(b).then(async _=>{await(await gt()).updateSessionTitle(_,L)}).catch(_=>console.error("Error updating title:",_))}return x})},[]),T=h.useCallback(async(b,P)=>{const S=P.trim(),I={id:Date.now().toString(),sender:"user",text:S,timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};w(b,I),u(b),a(!0);try{let x=null,R=null;const L=n.find(N=>N.id===b),_=(L?.messages||[]).map(N=>({role:N.sender==="user"?"user":"assistant",content:N.text})),oe=yl(S)?Xp(_):null,ee=oe?Yp(oe):S,ge=oe??S,Me=ml(S,{history:_});if(Me){const N={id:(Date.now()+1).toString(),sender:"ai",text:Me,timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};w(b,N);return}try{const N=await co();x=N.apiService,R=N.ApiTimeoutError}catch(N){console.error("Failed to load API service for chat:",N);const D={id:(Date.now()+1).toString(),sender:"ai",text:Dn(ge),timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};w(b,D);return}const U=new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});let V="",W=null;const te=tm(S),G=nm(S),Q=Qp(S),ye=G||!!Q,j=Q?{expectedEndMarker:Q,completionMode:"marker"}:void 0,B=N=>ni(S,N,Q,G),z=N=>{N.trim()&&s(D=>D.map(K=>{if(K.id!==b)return K;if(!W){W=`stream-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;const ae={id:W,sender:"ai",text:N,timestamp:U},F=[...K.messages,ae];return{...K,messages:F,messageCount:F.length,updatedAt:new Date}}return{...K,messages:K.messages.map(ae=>ae.id===W?{...ae,text:N}:ae),updatedAt:new Date}}))},ne=()=>{if(!W)return;const N=W;s(D=>D.map(K=>{if(K.id!==b)return K;const ae=K.messages.filter(F=>F.id!==N);return{...K,messages:ae,messageCount:ae.length,updatedAt:new Date}}))};try{const{response:N}=await x.chat(ee,_,F=>{V+=F,te&&z(kp(V))},j);let D=je(N||V).trim();if(ye&&D&&B(D)){try{const F=await x.chatSafe(uo(S,D,Q),_,j),he=je(F.data.response).trim();D=Cn(D,he)}catch(F){console.warn("Streaming completion repair failed:",F)}if(ye&&D&&B(D))try{const F=await x.chatSafe(fo(S,D,Q),_,j),he=je(F.data.response).trim();D=Cn(D,he)}catch(F){console.warn("Streaming plain continuation repair failed:",F)}if(ye&&D&&B(D))try{const F=await x.chatSafe(ho(S,Q),_,j),he=je(F.data.response).trim();he&&(D=po(S,D,he,Q,G))}catch(F){console.warn("Streaming full completion repair failed:",F)}}const K=B(D);(!D||K&&!ye)&&(D=Dn(ge,_)),W&&ne();const ae={id:(Date.now()+1).toString(),sender:"ai",text:D,timestamp:U};w(b,ae)}catch(N){R&&N instanceof R?console.warn(`Streaming timed out after ${N.timeoutMs}ms, falling back to non-streaming chat.`,N):console.warn("Streaming failed, falling back to non-streaming chat:",N),W&&ne();let D="";try{const F=x??(await co()).apiService,{data:he}=await F.chatSafe(ee,_,j);if(D=je(he.response).trim(),ye&&D&&B(D))try{const ve=await F.chatSafe(uo(S,D,Q),_,j),be=je(ve.data.response).trim();D=Cn(D,be)}catch(ve){console.warn("Non-stream completion repair failed:",ve)}if(ye&&D&&B(D))try{const ve=await F.chatSafe(fo(S,D,Q),_,j),be=je(ve.data.response).trim();D=Cn(D,be)}catch(ve){console.warn("Non-stream plain continuation repair failed:",ve)}if(ye&&D&&B(D))try{const ve=await F.chatSafe(ho(S,Q),_,j),be=je(ve.data.response).trim();be&&(D=po(S,D,be,Q,G))}catch(ve){console.warn("Non-stream full completion repair failed:",ve)}}catch(F){console.warn("Chat request failed, using local fallback response:",F),D=Dn(ge,_)}const K=B(D);(!D||K&&!ye)&&(D=Dn(ge,_));const ae={id:(Date.now()+1).toString(),sender:"ai",text:je(D),timestamp:U};w(b,ae)}if(L&&L.messages.length===1){const N=n.find(D=>D.id===b);if(N&&N.messages.length>1){const D=p(N.messages),K=f.current.get(b);(K||Promise.resolve(b)).then(async F=>{await(await gt()).updateSessionTitle(F,D)}).catch(F=>console.error("Error updating title:",F))}}}finally{a(!1),u(null)}},[n,w]),v=h.useCallback((b,P)=>{s(x=>x.map(R=>R.id===b?{...R,title:P}:R));const S=f.current.get(b);(S||Promise.resolve(b)).then(async x=>{await(await gt()).updateSessionTitle(x,P)}).catch(x=>console.error("Error updating session title:",x))},[]),A=h.useCallback(b=>{s(I=>I.filter(x=>x.id!==b)),i===b&&o(null);const P=f.current.get(b);(P||Promise.resolve(b)).then(async I=>{await(await gt()).deleteSession(I)}).catch(I=>console.error("Error deleting session:",I)),f.current.delete(b)},[i]),y=h.useCallback(()=>n.find(b=>b.id===i)||null,[n,i]);return m.jsx(gl.Provider,{value:{sessions:n,activeSessionId:i,isLoading:r,loadingSessionId:c,sessionsLoaded:d,setActiveSessionId:o,createNewSession:g,addMessageToSession:w,sendMessage:T,updateSessionTitle:v,deleteSession:A,getActiveSession:y,generateTitleFromMessages:p},children:e})},vl=e=>{const t=e.data(),n=t.createdAt,s=typeof n?.toDate=="function"?n.toDate():n instanceof Date?n:new Date,i=t.actionUrl??t.link??void 0;return{...t,id:e.id,createdAt:s,actionUrl:i}},im=async(e,t,n,s,i)=>{try{const o=Z(Be(H,"notifications")),r={id:o.id,userId:e,type:t,title:n,message:s,read:!1,...i?{actionUrl:i}:{},createdAt:new Date},a={id:r.id,userId:r.userId,type:r.type,title:r.title,message:r.message,read:r.read,createdAt:ue(),link:i||null};return await $e(o,{...a}),r}catch(o){throw console.error("Error creating notification:",o),o}},wg=async(e,t=50,n=!1)=>{try{let s=rt(Be(H,"notifications"),Oe("userId","==",e),tn("createdAt","desc"),nn(t));return n&&(s=rt(Be(H,"notifications"),Oe("userId","==",e),Oe("read","==",!1),tn("createdAt","desc"),nn(t))),(await un(s)).docs.map(o=>vl(o))}catch(s){return console.error("Error getting notifications:",s),[]}},Sg=(e,t={},n,s)=>{if(!e)return n([]),()=>{};const{limitCount:i=50,unreadOnly:o=!1}=t,r=[Oe("userId","==",e),tn("createdAt","desc"),nn(i)],a=o?rt(Be(H,"notifications"),Oe("userId","==",e),Oe("read","==",!1),tn("createdAt","desc"),nn(i)):rt(Be(H,"notifications"),...r);return xo(a,c=>{n(c.docs.map(u=>vl(u)))},c=>{console.error("Error subscribing to notifications:",c),s?.(c)})},Tg=async e=>{try{const t=Z(H,"notifications",e);await wt(t,{read:!0})}catch(t){throw console.error("Error marking notification as read:",t),t}},Pg=async e=>{try{const t=rt(Be(H,"notifications"),Oe("userId","==",e),Oe("read","==",!1)),n=await un(t);await Promise.all(n.docs.map(s=>wt(s.ref,{read:!0})))}catch(t){throw console.error("Error marking all notifications as read:",t),t}},rm=async e=>{try{const t=Z(H,"users",e),n=await Ae(t);if(!n.exists())throw new Error("User not found");const s=n.data(),i=s.lastActivityDate?.toDate(),o=new Date;o.setHours(0,0,0,0);let r=s.streak||0;if(!i)r=1;else{const u=new Date(i);u.setHours(0,0,0,0);const d=Math.floor((o.getTime()-u.getTime())/(1e3*60*60*24));if(d===0)r=s.streak||1;else if(d===1){r=(s.streak||0)+1;const l=Math.min(r*5,50);await bl(e,l,"streak_bonus",`${r} day streak bonus!`)}else r=1}const a=new Date,c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`;return await wt(t,{streak:r,streakHistory:wo(c),lastActivityDate:ue(),updatedAt:ue()}),r}catch(t){return console.error("Error updating streak:",t),0}},bl=async(e,t,n,s)=>{try{const i=Z(H,"users",e),o=await Ae(i);if(!o.exists())throw new Error("User not found");const r=o.data(),a=r.currentXP||0,c=r.totalXP||0,u=a+t,d=c+t,l=r.level||1;console.log(`🏆 XP Award - User: ${e}, Amount: ${t}, Previous currentXP: ${a}, New: ${u}, Type: ${n}`);let f=l,p=d,g=!1;for(;;){const v=Math.floor(100*Math.pow(1.5,f-1));let A=0;for(let y=1;y<=f;y++)A+=Math.floor(100*Math.pow(1.5,y-1));if(d>=A)f++,g=!0;else break}const w={currentXP:u,totalXP:d,level:f,updatedAt:ue()};await wt(i,w),console.log(`💾 Firebase Update - currentXP: ${a} -> ${u}, totalXP: ${c} -> ${d}, level: ${f}`);const T=Z(Be(H,"xpActivities"));return await $e(T,{activityId:T.id,userId:e,type:n,xpEarned:t,description:s,timestamp:ue()}),{newLevel:f,leveledUp:g,xp:u,addedXp:t}}catch(i){throw console.error("Error awarding XP:",i),i}},Ag=async(e,t=!1,n="all",s=10)=>{try{const i=rt(Be(H,"users"),Oe("role","==","student"),tn("totalXP","desc"),nn(s));return(await un(i)).docs.map((r,a)=>{const c=r.data();return{userId:r.id,name:c.name||"Unknown",photo:c.photo,xp:c.totalXP||0,level:c.level||1,rank:a+1,weeklyXP:c.weeklyXP||0,monthlyXP:c.monthlyXP||0}})}catch(i){return console.error("Error getting leaderboard:",i),[]}},Eg=async e=>{try{const t=await Ae(Z(H,"users",e));if(!t.exists())return 0;const n=t.data().totalXP||0,s=rt(Be(H,"users"),Oe("role","==","student"),Oe("totalXP",">",n));return(await un(s)).size+1}catch(t){return console.error("Error getting user rank:",t),0}},Cg=async e=>{try{const t=await Ae(Z(H,"achievements",e));return t.exists()?t.data().achievements||[]:[]}catch(t){return console.error("Error getting user achievements:",t),[]}},Dg=async(e,t,n)=>{try{const s=Z(H,"users",e),i=await Ae(s);if(!i.exists())throw new Error("User not found");const o=i.data(),r=o.currentXP||0;if((o.ownedAvatarItems||[]).includes(t))return{success:!1,message:"You already own this item",currentXP:r};if(r{const t={userId:e,subjects:{},lessons:{},quizAttempts:[],totalLessonsCompleted:0,totalQuizzesCompleted:0,averageScore:0,updatedAt:new Date};return await $e(Z(H,"progress",e),t),t},om=async e=>{try{const t=Z(H,"progress",e),n=await Ae(t);if(n.exists()){const s=n.data();return{...s,updatedAt:s.updatedAt?.toDate()||new Date}}return await Ni(e)}catch(t){return console.error("Error getting user progress:",t),null}},Rg=(e,t)=>{const n=Z(H,"progress",e);return xo(n,s=>{if(!s.exists()){t(null);return}const i=s.data();t({...i,updatedAt:i.updatedAt?.toDate?.()||new Date})},s=>{console.error("Error subscribing to user progress:",s),t(null)})},kg=async(e,t,n)=>{const s=Math.max(0,Math.min(100,n)),i=Z(H,"progress",e);await $e(i,{[`lessons.${t}.lessonId`]:t,[`lessons.${t}.progressPercent`]:s,updatedAt:ue()},{merge:!0})},Mg=async(e,t,n,s,i)=>{const o=Z(H,"progress",e),r=await Ae(o);if(!r.exists())return 0;const c=r.data().subjects?.[t]?.modulesProgress?.[n];if(!c)return 0;const u=Math.max(1,s+i),d=c.lessonsCompleted?.length||0,l=c.quizzesCompleted?.length||0,f=Math.round((d+l)/u*100);return await $e(o,{[`subjects.${t}.modulesProgress.${n}.progress`]:f,[`subjects.${t}.modulesProgress.${n}.lastAccessedAt`]:ue(),updatedAt:ue()},{merge:!0}),f},Lg=async(e,t,n,s,i,o=50)=>{try{const r=Z(H,"progress",e);let a=await Ae(r);a.exists()||(await Ni(e),a=await Ae(r));const c=a.data(),u={lessonId:s,completed:!0,completedAt:new Date,timeSpent:i};c.subjects||(c.subjects={}),c.subjects[t]||(c.subjects[t]={subjectId:t,progress:0,completedModules:0,totalModules:0,modulesProgress:{}});const d=c.subjects[t];d.modulesProgress[n]||(d.modulesProgress[n]={moduleId:n,subjectId:t,progress:0,lessonsCompleted:[],quizzesCompleted:[],startedAt:new Date,lastAccessedAt:new Date});const l=d.modulesProgress[n],f=!l.lessonsCompleted.includes(s);f&&(l.lessonsCompleted.push(s),l.lastAccessedAt=new Date),await $e(r,{[`lessons.${s}`]:u,[`subjects.${t}.modulesProgress.${n}`]:l,...f&&{totalLessonsCompleted:Fn(1)},updatedAt:ue()},{merge:!0}),await xl(e,o,"lesson_complete",`Completed lesson: ${s}`)}catch(r){throw console.error("Error completing lesson:",r),r}},Ig=async(e,t,n,s,i,o,r)=>{try{const a=Z(H,"progress",e);let c=await Ae(a);c.exists()||(await Ni(e),c=await Ae(a));const u=c.data(),d={quizId:s,attemptNumber:(u.quizAttempts?.filter(w=>w.quizId===s).length||0)+1,score:i,completedAt:new Date,timeSpent:r,answers:o},l=Math.floor(i/100*100);u.subjects||(u.subjects={}),u.subjects[t]||(u.subjects[t]={subjectId:t,progress:0,completedModules:0,totalModules:0,modulesProgress:{}});const f=u.subjects[t];f.modulesProgress[n]||(f.modulesProgress[n]={moduleId:n,subjectId:t,progress:0,lessonsCompleted:[],quizzesCompleted:[],startedAt:new Date,lastAccessedAt:new Date});const p=f.modulesProgress[n],g=!p.quizzesCompleted.includes(s);g&&(p.quizzesCompleted.push(s),p.lastAccessedAt=new Date),await wt(a,{quizAttempts:[...u.quizAttempts||[],d],[`subjects.${t}.modulesProgress.${n}`]:p,...g&&{totalQuizzesCompleted:Fn(1)},updatedAt:ue()}),await xl(e,l,"quiz_complete",`Completed quiz: ${s} (Score: ${i}%)`)}catch(a){throw console.error("Error completing quiz:",a),a}},xl=async(e,t,n,s)=>{try{const i=Z(H,"users",e);await wt(i,{currentXP:Fn(t),totalXP:Fn(t),updatedAt:ue()});const o=Z(Be(H,"xpActivities"));await $e(o,{activityId:o.id,userId:e,type:n,xpEarned:t,description:s,timestamp:ue()})}catch(i){console.error("Error awarding XP:",i)}},On={notifications:{emailNotifications:!0,pushNotifications:!0,soundEnabled:!0,notificationTypes:{quizReminders:!0,newContent:!0,achievements:!0,streakAlerts:!0,weeklySummary:!0},quietHours:{start:"22:00",end:"08:00"}},appearance:{darkMode:!1,fontSize:16,compactView:!1,reduceAnimations:!1},privacy:{profileVisibility:"everyone",showActivityStatus:!0,dataSharing:!0},learning:{dailyXpGoal:100,preferredStudyTime:"evening",autoPlayLessons:!1,showHints:!0,quizDifficultyPreference:"adaptive",studyReminderTime:"18:00"},adminPanel:{siteName:"MathPulse AI",siteDescription:"AI-Powered Mathematics Learning Platform",defaultLanguage:"English",maintenanceMode:!1,enforceStrongPasswords:!0,sessionTimeoutMinutes:60,aiTutorEnabled:!0,aiAutoRecommendations:!0,aiRiskAlertsEnabled:!0,gradingScale:"percentage",passingGrade:75,parentSummaryEmails:!0,teacherDigestEmails:!0,weeklyPlatformReport:!0,autoBackupEnabled:!1,backupFrequency:"weekly"}},am="preferences",Oi=()=>JSON.parse(JSON.stringify(On)),wl=e=>{const t=Oi();return e?{...t,...e,notifications:{...t.notifications,...e.notifications,notificationTypes:{...t.notifications.notificationTypes,...e.notifications?.notificationTypes},quietHours:{...t.notifications.quietHours,...e.notifications?.quietHours}},appearance:{...t.appearance,...e.appearance},privacy:{...t.privacy,...e.privacy},learning:{...t.learning,...e.learning},adminPanel:{...t.adminPanel,...e.adminPanel}}:t},Fi=e=>Z(H,"users",e,"settings",am),Sl=async e=>{const t=Fi(e),n=await Ae(t);if(!n.exists()){const s=Oi();return await $e(t,{...s,createdAt:ue(),updatedAt:ue()}),s}return wl(n.data())},lm=async(e,t)=>{const n=await Sl(e),s=wl({...n,...t});return await $e(Fi(e),{...s,updatedAt:ue()},{merge:!0}),s},cm=e=>{const t=document.documentElement;t.style.setProperty("--font-size",`${e.appearance.fontSize}px`),t.dataset.density=e.appearance.compactView?"compact":"comfortable",e.appearance.reduceAnimations?t.classList.add("reduced-motion"):t.classList.remove("reduced-motion"),e.appearance.darkMode?t.classList.add("smart-dark"):t.classList.remove("smart-dark")},um=async()=>{try{if(localStorage.clear(),sessionStorage.clear(),"caches"in window){const e=await caches.keys();await Promise.all(e.map(t=>caches.delete(t)))}}catch(e){throw console.error("Failed clearing client cache:",e),new Error("Unable to clear cache on this device.")}},dm=async e=>{const t=Z(H,"users",e),n=await Ae(t),s=await Ae(Fi(e)),i=["progress","xpActivities","achievements","notifications","tasks","chatSessions","chatMessages"],o=await Promise.all(i.map(async r=>{const a=rt(Be(H,r),Oe("userId","==",e)),c=await un(a);return{collectionName:r,items:c.docs.map(u=>({id:u.id,...u.data()}))}}));return{exportedAt:new Date().toISOString(),user:n.exists()?{id:n.id,...n.data()}:null,settings:s.exists()?s.data():Oi(),collections:o.reduce((r,a)=>(r[a.collectionName]=a.items,r),{})}};function fm(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const hm=e=>{switch(e){case"success":return gm;case"info":return vm;case"warning":return ym;case"error":return bm;default:return null}},pm=Array(12).fill(0),mm=({visible:e,className:t})=>E.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},E.createElement("div",{className:"sonner-spinner"},pm.map((n,s)=>E.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),gm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ym=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),vm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),bm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),xm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},E.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),wm=()=>{const[e,t]=E.useState(document.hidden);return E.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let si=1;class Sm{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:s,...i}=t,o=typeof t?.id=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:si++,r=this.toasts.find(c=>c.id===o),a=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),r?this.toasts=this.toasts.map(c=>c.id===o?(this.publish({...c,...t,id:o,title:s}),{...c,...t,id:o,dismissible:a,title:s}):c):this.addToast({title:s,...i,dismissible:a,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(s=>s({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let s;n.loading!==void 0&&(s=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const i=Promise.resolve(t instanceof Function?t():t);let o=s!==void 0,r;const a=i.then(async u=>{if(r=["resolve",u],E.isValidElement(u))o=!1,this.create({id:s,type:"default",message:u});else if(Pm(u)&&!u.ok){o=!1;const l=typeof n.error=="function"?await n.error(`HTTP error! status: ${u.status}`):n.error,f=typeof n.description=="function"?await n.description(`HTTP error! status: ${u.status}`):n.description,g=typeof l=="object"&&!E.isValidElement(l)?l:{message:l};this.create({id:s,type:"error",description:f,...g})}else if(u instanceof Error){o=!1;const l=typeof n.error=="function"?await n.error(u):n.error,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof l=="object"&&!E.isValidElement(l)?l:{message:l};this.create({id:s,type:"error",description:f,...g})}else if(n.success!==void 0){o=!1;const l=typeof n.success=="function"?await n.success(u):n.success,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof l=="object"&&!E.isValidElement(l)?l:{message:l};this.create({id:s,type:"success",description:f,...g})}}).catch(async u=>{if(r=["reject",u],n.error!==void 0){o=!1;const d=typeof n.error=="function"?await n.error(u):n.error,l=typeof n.description=="function"?await n.description(u):n.description,p=typeof d=="object"&&!E.isValidElement(d)?d:{message:d};this.create({id:s,type:"error",description:l,...p})}}).finally(()=>{o&&(this.dismiss(s),s=void 0),n.finally==null||n.finally.call(n)}),c=()=>new Promise((u,d)=>a.then(()=>r[0]==="reject"?d(r[1]):u(r[1])).catch(d));return typeof s!="string"&&typeof s!="number"?{unwrap:c}:Object.assign(s,{unwrap:c})},this.custom=(t,n)=>{const s=n?.id||si++;return this.create({jsx:t(s),id:s,...n}),s},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const ke=new Sm,Tm=(e,t)=>{const n=t?.id||si++;return ke.addToast({title:e,...t,id:n}),n},Pm=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Am=Tm,Em=()=>ke.toasts,Cm=()=>ke.getActiveToasts(),Se=Object.assign(Am,{success:ke.success,info:ke.info,warning:ke.warning,error:ke.error,custom:ke.custom,message:ke.message,promise:ke.promise,dismiss:ke.dismiss,loading:ke.loading},{getHistory:Em,getToasts:Cm});fm("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Rn(e){return e.label!==void 0}const Dm=3,Rm="24px",km="16px",mo=4e3,Mm=356,Lm=14,Im=45,Vm=200;function Ge(...e){return e.filter(Boolean).join(" ")}function _m(e){const[t,n]=e.split("-"),s=[];return t&&s.push(t),n&&s.push(n),s}const jm=e=>{var t,n,s,i,o,r,a,c,u;const{invert:d,toast:l,unstyled:f,interacting:p,setHeights:g,visibleToasts:w,heights:T,index:v,toasts:A,expanded:y,removeToast:b,defaultRichColors:P,closeButton:S,style:I,cancelButtonStyle:x,actionButtonStyle:R,className:L="",descriptionClassName:_="",duration:oe,position:ee,gap:ge,expandByDefault:Me,classNames:U,icons:V,closeButtonAriaLabel:W="Close toast"}=e,[te,G]=E.useState(null),[Q,ye]=E.useState(null),[j,B]=E.useState(!1),[z,ne]=E.useState(!1),[N,D]=E.useState(!1),[K,ae]=E.useState(!1),[F,he]=E.useState(!1),[ve,be]=E.useState(0),[Ze,gn]=E.useState(0),ze=E.useRef(l.duration||oe||mo),et=E.useRef(null),Ve=E.useRef(null),yn=v===0,tt=v+1<=w,pe=l.type,qe=l.dismissible!==!1,Ht=l.className||"",St=l.descriptionClassName||"",_e=E.useMemo(()=>T.findIndex(O=>O.toastId===l.id)||0,[T,l.id]),Tt=E.useMemo(()=>{var O;return(O=l.closeButton)!=null?O:S},[l.closeButton,S]),Pt=E.useMemo(()=>l.duration||oe||mo,[l.duration,oe]),dt=E.useRef(0),nt=E.useRef(0),qt=E.useRef(0),Ke=E.useRef(null),[Kt,ft]=ee.split("-"),ht=E.useMemo(()=>T.reduce((O,le,ie)=>ie>=_e?O:O+le.height,0),[T,_e]),At=wm(),Et=l.invert||d,Ct=pe==="loading";nt.current=E.useMemo(()=>_e*ge+ht,[_e,ht]),E.useEffect(()=>{ze.current=Pt},[Pt]),E.useEffect(()=>{B(!0)},[]),E.useEffect(()=>{const O=Ve.current;if(O){const le=O.getBoundingClientRect().height;return gn(le),g(ie=>[{toastId:l.id,height:le,position:l.position},...ie]),()=>g(ie=>ie.filter(re=>re.toastId!==l.id))}},[g,l.id]),E.useLayoutEffect(()=>{if(!j)return;const O=Ve.current,le=O.style.height;O.style.height="auto";const ie=O.getBoundingClientRect().height;O.style.height=le,gn(ie),g(re=>re.find(de=>de.toastId===l.id)?re.map(de=>de.toastId===l.id?{...de,height:ie}:de):[{toastId:l.id,height:ie,position:l.position},...re])},[j,l.title,l.description,g,l.id,l.jsx,l.action,l.cancel]);const Ee=E.useCallback(()=>{ne(!0),be(nt.current),g(O=>O.filter(le=>le.toastId!==l.id)),setTimeout(()=>{b(l)},Vm)},[l,b,g,nt]);E.useEffect(()=>{if(l.promise&&pe==="loading"||l.duration===1/0||l.type==="loading")return;let O;return y||p||At?(()=>{if(qt.current{ze.current!==1/0&&(dt.current=new Date().getTime(),O=setTimeout(()=>{l.onAutoClose==null||l.onAutoClose.call(l,l),Ee()},ze.current))})(),()=>clearTimeout(O)},[y,p,l,pe,At,Ee]),E.useEffect(()=>{l.delete&&(Ee(),l.onDismiss==null||l.onDismiss.call(l,l))},[Ee,l.delete]);function vn(){var O;if(V?.loading){var le;return E.createElement("div",{className:Ge(U?.loader,l==null||(le=l.classNames)==null?void 0:le.loader,"sonner-loader"),"data-visible":pe==="loading"},V.loading)}return E.createElement(mm,{className:Ge(U?.loader,l==null||(O=l.classNames)==null?void 0:O.loader),visible:pe==="loading"})}const bn=l.icon||V?.[pe]||hm(pe);var xn,Dt;return E.createElement("li",{tabIndex:0,ref:Ve,className:Ge(L,Ht,U?.toast,l==null||(t=l.classNames)==null?void 0:t.toast,U?.default,U?.[pe],l==null||(n=l.classNames)==null?void 0:n[pe]),"data-sonner-toast":"","data-rich-colors":(xn=l.richColors)!=null?xn:P,"data-styled":!(l.jsx||l.unstyled||f),"data-mounted":j,"data-promise":!!l.promise,"data-swiped":F,"data-removed":z,"data-visible":tt,"data-y-position":Kt,"data-x-position":ft,"data-index":v,"data-front":yn,"data-swiping":N,"data-dismissible":qe,"data-type":pe,"data-invert":Et,"data-swipe-out":K,"data-swipe-direction":Q,"data-expanded":!!(y||Me&&j),"data-testid":l.testId,style:{"--index":v,"--toasts-before":v,"--z-index":A.length-v,"--offset":`${z?ve:nt.current}px`,"--initial-height":Me?"auto":`${Ze}px`,...I,...l.style},onDragEnd:()=>{D(!1),G(null),Ke.current=null},onPointerDown:O=>{O.button!==2&&(Ct||!qe||(et.current=new Date,be(nt.current),O.target.setPointerCapture(O.pointerId),O.target.tagName!=="BUTTON"&&(D(!0),Ke.current={x:O.clientX,y:O.clientY})))},onPointerUp:()=>{var O,le,ie;if(K||!qe)return;Ke.current=null;const re=Number(((O=Ve.current)==null?void 0:O.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),pt=Number(((le=Ve.current)==null?void 0:le.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),de=new Date().getTime()-((ie=et.current)==null?void 0:ie.getTime()),Ce=te==="x"?re:pt,Rt=Math.abs(Ce)/de;if(Math.abs(Ce)>=Im||Rt>.11){be(nt.current),l.onDismiss==null||l.onDismiss.call(l,l),ye(te==="x"?re>0?"right":"left":pt>0?"down":"up"),Ee(),ae(!0);return}else{var Le,Ie;(Le=Ve.current)==null||Le.style.setProperty("--swipe-amount-x","0px"),(Ie=Ve.current)==null||Ie.style.setProperty("--swipe-amount-y","0px")}he(!1),D(!1),G(null)},onPointerMove:O=>{var le,ie,re;if(!Ke.current||!qe||((le=window.getSelection())==null?void 0:le.toString().length)>0)return;const de=O.clientY-Ke.current.y,Ce=O.clientX-Ke.current.x;var Rt;const Le=(Rt=e.swipeDirections)!=null?Rt:_m(ee);!te&&(Math.abs(Ce)>1||Math.abs(de)>1)&&G(Math.abs(Ce)>Math.abs(de)?"x":"y");let Ie={x:0,y:0};const kt=De=>1/(1.5+Math.abs(De)/20);if(te==="y"){if(Le.includes("top")||Le.includes("bottom"))if(Le.includes("top")&&de<0||Le.includes("bottom")&&de>0)Ie.y=de;else{const De=de*kt(de);Ie.y=Math.abs(De)0)Ie.x=Ce;else{const De=Ce*kt(Ce);Ie.x=Math.abs(De)0||Math.abs(Ie.y)>0)&&he(!0),(ie=Ve.current)==null||ie.style.setProperty("--swipe-amount-x",`${Ie.x}px`),(re=Ve.current)==null||re.style.setProperty("--swipe-amount-y",`${Ie.y}px`)}},Tt&&!l.jsx&&pe!=="loading"?E.createElement("button",{"aria-label":W,"data-disabled":Ct,"data-close-button":!0,onClick:Ct||!qe?()=>{}:()=>{Ee(),l.onDismiss==null||l.onDismiss.call(l,l)},className:Ge(U?.closeButton,l==null||(s=l.classNames)==null?void 0:s.closeButton)},(Dt=V?.close)!=null?Dt:xm):null,(pe||l.icon||l.promise)&&l.icon!==null&&(V?.[pe]!==null||l.icon)?E.createElement("div",{"data-icon":"",className:Ge(U?.icon,l==null||(i=l.classNames)==null?void 0:i.icon)},l.promise||l.type==="loading"&&!l.icon?l.icon||vn():null,l.type!=="loading"?bn:null):null,E.createElement("div",{"data-content":"",className:Ge(U?.content,l==null||(o=l.classNames)==null?void 0:o.content)},E.createElement("div",{"data-title":"",className:Ge(U?.title,l==null||(r=l.classNames)==null?void 0:r.title)},l.jsx?l.jsx:typeof l.title=="function"?l.title():l.title),l.description?E.createElement("div",{"data-description":"",className:Ge(_,St,U?.description,l==null||(a=l.classNames)==null?void 0:a.description)},typeof l.description=="function"?l.description():l.description):null),E.isValidElement(l.cancel)?l.cancel:l.cancel&&Rn(l.cancel)?E.createElement("button",{"data-button":!0,"data-cancel":!0,style:l.cancelButtonStyle||x,onClick:O=>{Rn(l.cancel)&&qe&&(l.cancel.onClick==null||l.cancel.onClick.call(l.cancel,O),Ee())},className:Ge(U?.cancelButton,l==null||(c=l.classNames)==null?void 0:c.cancelButton)},l.cancel.label):null,E.isValidElement(l.action)?l.action:l.action&&Rn(l.action)?E.createElement("button",{"data-button":!0,"data-action":!0,style:l.actionButtonStyle||R,onClick:O=>{Rn(l.action)&&(l.action.onClick==null||l.action.onClick.call(l.action,O),!O.defaultPrevented&&Ee())},className:Ge(U?.actionButton,l==null||(u=l.classNames)==null?void 0:u.actionButton)},l.action.label):null)};function go(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Nm(e,t){const n={};return[e,t].forEach((s,i)=>{const o=i===1,r=o?"--mobile-offset":"--offset",a=o?km:Rm;function c(u){["top","right","bottom","left"].forEach(d=>{n[`${r}-${d}`]=typeof u=="number"?`${u}px`:u})}typeof s=="number"||typeof s=="string"?c(s):typeof s=="object"?["top","right","bottom","left"].forEach(u=>{s[u]===void 0?n[`${r}-${u}`]=a:n[`${r}-${u}`]=typeof s[u]=="number"?`${s[u]}px`:s[u]}):c(a)}),n}const As=E.forwardRef(function(t,n){const{id:s,invert:i,position:o="bottom-right",hotkey:r=["altKey","KeyT"],expand:a,closeButton:c,className:u,offset:d,mobileOffset:l,theme:f="light",richColors:p,duration:g,style:w,visibleToasts:T=Dm,toastOptions:v,dir:A=go(),gap:y=Lm,icons:b,containerAriaLabel:P="Notifications"}=t,[S,I]=E.useState([]),x=E.useMemo(()=>s?S.filter(j=>j.toasterId===s):S.filter(j=>!j.toasterId),[S,s]),R=E.useMemo(()=>Array.from(new Set([o].concat(x.filter(j=>j.position).map(j=>j.position)))),[x,o]),[L,_]=E.useState([]),[oe,ee]=E.useState(!1),[ge,Me]=E.useState(!1),[U,V]=E.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=E.useRef(null),te=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),G=E.useRef(null),Q=E.useRef(!1),ye=E.useCallback(j=>{I(B=>{var z;return(z=B.find(ne=>ne.id===j.id))!=null&&z.delete||ke.dismiss(j.id),B.filter(({id:ne})=>ne!==j.id)})},[]);return E.useEffect(()=>ke.subscribe(j=>{if(j.dismiss){requestAnimationFrame(()=>{I(B=>B.map(z=>z.id===j.id?{...z,delete:!0}:z))});return}setTimeout(()=>{Pl.flushSync(()=>{I(B=>{const z=B.findIndex(ne=>ne.id===j.id);return z!==-1?[...B.slice(0,z),{...B[z],...j},...B.slice(z+1)]:[j,...B]})})})}),[S]),E.useEffect(()=>{if(f!=="system"){V(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?V("dark"):V("light")),typeof window>"u")return;const j=window.matchMedia("(prefers-color-scheme: dark)");try{j.addEventListener("change",({matches:B})=>{V(B?"dark":"light")})}catch{j.addListener(({matches:z})=>{try{V(z?"dark":"light")}catch(ne){console.error(ne)}})}},[f]),E.useEffect(()=>{S.length<=1&&ee(!1)},[S]),E.useEffect(()=>{const j=B=>{var z;if(r.every(D=>B[D]||B.code===D)){var N;ee(!0),(N=W.current)==null||N.focus()}B.code==="Escape"&&(document.activeElement===W.current||(z=W.current)!=null&&z.contains(document.activeElement))&&ee(!1)};return document.addEventListener("keydown",j),()=>document.removeEventListener("keydown",j)},[r]),E.useEffect(()=>{if(W.current)return()=>{G.current&&(G.current.focus({preventScroll:!0}),G.current=null,Q.current=!1)}},[W.current]),E.createElement("section",{ref:n,"aria-label":`${P} ${te}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},R.map((j,B)=>{var z;const[ne,N]=j.split("-");return x.length?E.createElement("ol",{key:j,dir:A==="auto"?go():A,tabIndex:-1,ref:W,className:u,"data-sonner-toaster":!0,"data-sonner-theme":U,"data-y-position":ne,"data-x-position":N,style:{"--front-toast-height":`${((z=L[0])==null?void 0:z.height)||0}px`,"--width":`${Mm}px`,"--gap":`${y}px`,...w,...Nm(d,l)},onBlur:D=>{Q.current&&!D.currentTarget.contains(D.relatedTarget)&&(Q.current=!1,G.current&&(G.current.focus({preventScroll:!0}),G.current=null))},onFocus:D=>{D.target instanceof HTMLElement&&D.target.dataset.dismissible==="false"||Q.current||(Q.current=!0,G.current=D.relatedTarget)},onMouseEnter:()=>ee(!0),onMouseMove:()=>ee(!0),onMouseLeave:()=>{ge||ee(!1)},onDragEnd:()=>ee(!1),onPointerDown:D=>{D.target instanceof HTMLElement&&D.target.dataset.dismissible==="false"||Me(!0)},onPointerUp:()=>Me(!1)},x.filter(D=>!D.position&&B===0||D.position===j).map((D,K)=>{var ae,F;return E.createElement(jm,{key:D.id,icons:b,index:K,toast:D,defaultRichColors:p,duration:(ae=v?.duration)!=null?ae:g,className:v?.className,descriptionClassName:v?.descriptionClassName,invert:i,visibleToasts:T,closeButton:(F=v?.closeButton)!=null?F:c,interacting:ge,position:j,style:v?.style,unstyled:v?.unstyled,classNames:v?.classNames,cancelButtonStyle:v?.cancelButtonStyle,actionButtonStyle:v?.actionButtonStyle,closeButtonAriaLabel:v?.closeButtonAriaLabel,removeToast:ye,toasts:x.filter(he=>he.position==D.position),heights:L.filter(he=>he.position==D.position),setHeights:_,expandByDefault:a,gap:y,expanded:oe,swipeDirections:t.swipeDirections})})):null}))}),Om={Functions:"Functions and Graphs",BusinessMath:"Business and Financial Mathematics",Logic:"Logic and Reasoning"},Vg={Functions:"gm-1",BusinessMath:"gm-2",Logic:"gm-3"},Es=e=>{const t=e.trim().toLowerCase();return t==="functions"||t.includes("function")?"Functions":t==="businessmath"||t.includes("business")?"BusinessMath":t==="logic"||t.includes("reason")?"Logic":null},Fm=h.lazy(()=>q(()=>import("./LoginPage-DTFoLFv7.js"),__vite__mapDeps([9,3,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,4,2,1,5,6]))),Bm=h.lazy(()=>q(()=>import("./TeacherDashboard-CXY2X8Up.js"),__vite__mapDeps([27,3,10,11,12,13,14,28,29,30,31,4,2,1,5,6,32,7,20,16,21,33,34,25,35,36,37,38,39,40,41,42,43,15,44,17,19,45,46,47,48,24,49,50,18,51,52,53,54,55,56,57,58,59,60,61,62]))),$m=h.lazy(()=>q(()=>import("./AdminDashboard-BkN0KBRk.js"),__vite__mapDeps([63,3,64,32,13,12,31,65,11,29,50,19,21,41,66,57,20,67,58,68,4,2,1,5,6,28,10,30,14,40,69,46,39,7,38,34,48,62,45,70,60,36,25,71,54,44,59,56,18,16,72,43,37,17]))),yo=h.lazy(()=>q(()=>import("./Sidebar-oxQVx2NC.js"),__vite__mapDeps([64,3,32,13,12,31,65,11,29,50,19,21,41,66,57,20,67,58,68,4,2,1,5,6]))),zm=h.lazy(()=>q(()=>import("./HeroBanner-BzMF9ktr.js"),__vite__mapDeps([73,3,16,4,2,1,5,6]))),Um=h.lazy(()=>q(()=>import("./RightSidebar--rSxCGQy.js"),__vite__mapDeps([74,3,48,65,11,13,12,58,50,75,4,2,1,5,6]))),Wm=h.lazy(()=>q(()=>import("./XPNotification-DeYNvFkJ.js"),__vite__mapDeps([76,3,75,15,4,2,1,5,6]))),Hm=h.lazy(()=>q(()=>import("./NotificationCenter-Djp-U1R4.js"),__vite__mapDeps([77,3,54,55,29,21,57,36,58,4,2,1,5,6]))),qm=h.lazy(()=>q(()=>import("./SearchBar-CzmZ03BX.js"),__vite__mapDeps([78,3,45,29,56,21,17,19,20,4,2,1,5,6]))),Km=h.lazy(()=>q(()=>import("./SupplementalBanner-CaXzjH7M.js"),__vite__mapDeps([79,3,29,15,50,21,17,16,4,2,1,5,6]))),Gm=h.lazy(()=>q(()=>import("./LearningPath-LYxnZA3A.js"),__vite__mapDeps([80,3,47,17,41,81,21,56,4,2,1,5,6]))),Xm=h.lazy(()=>q(()=>import("./CompetencyRadarChart-B1x3Wmwg.js"),__vite__mapDeps([82,3,47,17,41,16,15,61,12,4,2,1,5,6])).then(e=>({default:e.CompetencyRadarChart}))),Ym=h.lazy(()=>q(()=>import("./ModulesPage-D7B9Sp71.js"),__vite__mapDeps([83,3,81,21,56,10,11,12,13,14,58,15,59,18,75,39,29,70,47,17,41,33,1,2,48,23,84,0,4,5,6,85,7,46,86,79,50,16,62,45]))),Qm=h.lazy(()=>q(()=>import("./AIChatPage-CstOeMuY.js"),__vite__mapDeps([87,3,10,11,12,13,14,51,52,53,4,2,1,5,6,38,45,30,35]))),Zm=h.lazy(()=>q(()=>import("./GradesPage-Bi5pcR2x.js"),__vite__mapDeps([88,3,10,11,12,13,47,17,41,60,43,18,59,72,4,2,1,5,6]))),Jm=h.lazy(()=>q(()=>import("./LeaderboardPage-DIZVn39b.js"),__vite__mapDeps([89,3,29,21,59,18,56,58,17,34,75,49,4,2,1,5,6]))),eg=h.lazy(()=>q(()=>import("./QuizBattlePage-C-kQ0NH9.js"),__vite__mapDeps([90,3,13,12,91,92,47,17,41,1,2,10,11,69,46,39,14,71,42,67,75,19,58,59,15,50,34,26,4,5,6]))),tg=h.lazy(()=>q(()=>import("./AvatarShop-CFi18Hj0.js"),__vite__mapDeps([93,3,11,65,13,12,91,92,15,23,44,68,4,2,1,5,6]))),ng=h.lazy(()=>q(()=>import("./FloatingAITutor-BhjMn9CN.js"),__vite__mapDeps([94,3,37,29,35,4,2,1,5,6]))),sg=h.lazy(()=>q(()=>import("./RewardsModal-DbFwQSQa.js"),__vite__mapDeps([95,3,29,75,58,59,21,18,60,19,17,4,2,1,5,6]))),Cs=h.lazy(()=>q(()=>import("./ProfileModal-CnV-otvQ.js"),__vite__mapDeps([96,3,10,11,12,13,14,91,92,29,19,22,18,21,60,97,44,4,2,1,5,6]))),ig=h.lazy(()=>q(()=>import("./ConfirmModal-BO6r5veY.js"),__vite__mapDeps([28,3,10,11,12,13,29,30,31,4,2,1,5,6]))),Ds=h.lazy(()=>q(()=>import("./SettingsModal-Ct0cXLCK.js"),__vite__mapDeps([98,3,10,11,12,13,14,71,28,29,30,31,4,2,1,5,6,49,54,66,97,43,23,56]))),rg=h.lazy(()=>q(()=>import("./ScientificCalculator-B0rqpddr.js"),__vite__mapDeps([85,3,7,4,2,1,5,6,46,29]))),og=h.lazy(()=>q(()=>import("./DiagnosticAssessmentModal-DG6T8nsY.js"),__vite__mapDeps([99,3,10,11,12,13,86,85,7,4,2,1,5,6,46,29,0,16,48,50,41,17]))),ag=()=>{const{isLoggedIn:e,userProfile:t,userRole:n,loading:s,refreshProfile:i}=ul(),o=m.jsx("div",{className:"flex min-h-[320px] items-center justify-center text-sm font-semibold text-slate-500",children:"Loading content..."}),r=m.jsx("div",{className:"pb-4 text-sm font-semibold text-slate-500",children:"Loading dashboard content..."}),a=m.jsx("div",{className:"h-11 w-11 shrink-0 rounded-xl bg-[#edf1f7]","aria-hidden":"true"}),c=m.jsx("div",{className:"h-11 w-full rounded-xl bg-[#edf1f7]","aria-hidden":"true"}),u=m.jsx("div",{className:"h-screen w-72 border-r border-[#dde3eb] bg-white/70","aria-hidden":"true"}),d=m.jsx("div",{className:"min-h-[240px] rounded-3xl border border-[#dde3eb] bg-white/70","aria-hidden":"true"}),[l,f]=h.useState("Dashboard"),p=h.useRef(null),g=h.useRef(null),[w,T]=h.useState(!1),[v,A]=h.useState(!1),y=t,[b,P]=h.useState(y?.level||1),[S,I]=h.useState(y?.currentXP||0),[x,R]=h.useState(y?.totalXP||0),L=Math.floor(100*Math.pow(1.5,b-1));let _=0;for(let C=1;C{if(C==="Modules"&&bn){Se.info(`Complete your deep diagnostic (${At} outstanding) to unlock modules and regular practice.`),qe("followup_diagnostic"),tt(!0),f("Dashboard");return}M?ve(M):C==="Modules"&&l!=="Modules"&&ve(null),C==="Quiz Battle"&&l!=="Quiz Battle"?(U({collapsed:w}),T(!0)):l==="Quiz Battle"&&C!=="Quiz Battle"&&T(Me.collapsed),f(C),A(!1)},[W,te]=h.useState(!1),[G,Q]=h.useState({show:!1,xp:0,message:""}),[ye,j]=h.useState(!1),[B,z]=h.useState(!1),[ne,N]=h.useState(!1),[D,K]=h.useState(!1),[ae,F]=h.useState({}),[he,ve]=h.useState(null),[be,Ze]=h.useState(On),[gn,ze]=h.useState(""),[et,Ve]=h.useState(!1),[yn,tt]=h.useState(!1),[pe,qe]=h.useState("initial_assessment"),[Ht,St]=h.useState(y?.hasTakenDiagnostic||!1),[_e,Tt]=h.useState(y?.atRiskSubjects||[]),[Pt,dt]=h.useState(y?.priorityTopics||[]),[nt,qt]=h.useState(y?.gpa||"0.00"),[Ke,Kt]=h.useState(y?.learningPathState||"unlocked"),[ft,ht]=h.useState(y?.iarAssessmentState||"not_started"),[At,Et]=h.useState(0),Ct="iar_only";h.useEffect(()=>{e&&n==="student"&&t&&om(t.uid).then(C=>{if(C&&C.averageScore>0){const M=Math.min(C.averageScore/25,4).toFixed(2);qt(M)}}).catch(C=>console.error("Error loading progress for GPA:",C))},[e,n,t]);const[Ee,vn]=h.useState(!1);h.useEffect(()=>{y&&n==="student"?(P(y.level||1),I(y.currentXP||0),R(y.totalXP||0),ge(y.streak||0),Tt(y.atRiskSubjects||[]),dt(y.priorityTopics||[]),St(y.hasTakenDiagnostic||!1),Kt(y.learningPathState||"unlocked"),ht(y.iarAssessmentState||"not_started"),vn(!0)):n!=="student"&&vn(!0)},[t,n]),h.useEffect(()=>{if(!e||n!=="student"){Ve(!1);return}let C=!1;const M=()=>{C||Ve(!0)},$=window.requestIdleCallback,X=window.cancelIdleCallback,we=window.setTimeout(M,800),ss=window.requestAnimationFrame(()=>{$||M()}),$i=$?.(()=>{M()},{timeout:500});return()=>{C=!0,window.clearTimeout(we),window.cancelAnimationFrame(ss),$i!==void 0&&X&&X($i)}},[e,n]),h.useEffect(()=>{let C=!1;return(async()=>{if(!e||n!=="student"){Et(0);return}const $=y?.lrn||t?.uid;if(!$||Ke!=="locked_pending_deep_diagnostic"){Et(0);return}try{const{getPendingDeepDiagnosticCount:X}=await q(async()=>{const{getPendingDeepDiagnosticCount:ss}=await import("./automationService-IMphlGK7.js");return{getPendingDeepDiagnosticCount:ss}},__vite__mapDeps([0,1,2,3,4,5,6])),we=await X($);C||Et(we)}catch(X){console.error("Error loading deep diagnostic assignments:",X)}})(),()=>{C=!0}},[e,n,t?.uid,y?.lrn,Ke]);const bn=n==="student"&&(Ke==="locked_pending_deep_diagnostic"||ft==="deep_diagnostic_required"||ft==="deep_diagnostic_in_progress")&&(At>0||ft==="deep_diagnostic_required"||ft==="deep_diagnostic_in_progress"),xn=n==="student"&&ft==="skipped_unassessed",Dt=h.useMemo(()=>{const C=new Set;return _e.map($=>Es($)).filter($=>$!==null).filter($=>C.has($)?!1:(C.add($),!0))},[_e]),O=h.useMemo(()=>{const C=Pt.length>0?Pt:Dt,M=new Set;return C.filter($=>M.has($)?!1:(M.add($),!0))},[Pt,Dt]),le=()=>{qe("initial_assessment"),tt(!0)};h.useEffect(()=>{e&&n==="student"&&t&&rm(t.uid).then(C=>{ge(C)})},[e,n,t]),h.useEffect(()=>{F({})},[t?.uid]);const ie=[..._e].sort().join("|"),re=t?.uid?`mathpulse_supplemental_dismissed_${t.uid}`:null;h.useEffect(()=>{if(!re){ze("");return}try{const C=localStorage.getItem(re)||"";ze(C)}catch{ze("")}},[re]);const pt=()=>{if(ie&&(ze(ie),!!re))try{localStorage.setItem(re,ie)}catch{}},de=()=>{if(ze(""),!!re)try{localStorage.removeItem(re)}catch{}},Ce=_e.length>0&&gn!==ie;h.useEffect(()=>{(async()=>{if(!t?.uid){Ze(On);return}try{const M=await Sl(t.uid);Ze(M)}catch(M){console.error("Error loading user settings:",M),Ze(On)}})()},[t?.uid]),h.useEffect(()=>{cm(be)},[be]),h.useEffect(()=>{if(e&&n==="student"&&Ee&&!Ht){const C=setTimeout(()=>{qe("initial_assessment"),tt(!0)},1e3);return()=>clearTimeout(C)}},[e,n,Ee,Ht]);const Rt=async C=>{const M=y?.lrn||t?.uid;if(C.status==="skipped"){if(Tt([]),dt([]),St(!0),Kt("unlocked"),ht("skipped_unassessed"),t?.uid)try{await ws(t.uid,{hasTakenDiagnostic:!0,atRiskSubjects:[],priorityTopics:[],learningPathState:"unlocked",remediationState:"not_required",iarAssessmentState:"skipped_unassessed",recommendedNextTopicGroupId:"g11-q1-functions-foundations",recommendationRationale:"Default Grade 11 Q1 path after explicit IAR skip.",recommendedPace:"normal",startingQuarterG11:"Q1",currentCurriculumVersionSetId:y?.currentCurriculumVersionSetId||"g11-core-genmath-legacy-detail-strengthened-structure"}),await im(t.uid,"reminder","IAR Skipped: You are on default path","You are currently marked as Unassessed and placed on Grade 11 Quarter 1 default flow. Take the Initial Assessment anytime for personalized placement.")}catch(we){console.error("Failed to persist skipped IAR state:",we)}Se.message("Assessment skipped. Default Grade 11 Q1 path applied.",{description:"You can take the Initial Assessment later for personalized recommendations."}),tt(!1),f("Dashboard");return}de();const $=(C.atRiskSubjectIds||[]).map(we=>Es(we)).filter(we=>we!==null),X=(C.priorityTopics||[]).map(we=>Es(we)).filter(we=>we!==null);if(Tt($.length>0?$:C.atRiskSubjectIds||[]),dt(X),St(!0),ht("in_progress"),t?.uid)try{await ws(t.uid,{hasTakenDiagnostic:!0,atRiskSubjects:$,priorityTopics:X,topicScores:C.topicScores,iarTopicClassifications:C.topicClassifications,g12ReadinessIndicators:C.g12ReadinessIndicators,iarAssessmentState:"in_progress",iarQuestionSetVersion:C.questionSetVersion})}catch(we){console.error("Failed to persist completed IAR payload:",we)}pe==="followup_diagnostic"&&Se.success("Deep diagnostic submitted. Module unlock will update after assignment-state verification."),pe==="initial_assessment"&&M&&((C.atRiskSubjectIds||[]).length>0&&Ct==="iar_plus_diagnostic"||Se.success("Initial assessment completed. Personalized path is now active.")),tt(!1),f("Dashboard")},Le=()=>{f("AI Chat")},Ie=async(C,M)=>{if(t)try{const $=await bl(t.uid,C,"manual",M);I($.xp),$.leveledUp&&P($.newLevel),R(X=>X+C),await i(),Q({show:!0,xp:C,message:M})}catch($){console.error("Error awarding XP:",$)}},kt=async()=>{try{await fp(),F({}),f("Dashboard"),j(!1)}catch(C){console.error("Error logging out:",C)}},De=async C=>{if(!t){N(!1),z(!1);return}const M={};["name","email","phone","photo","avatarLayers","lrn","grade","section","school","enrollmentDate","major","gpa","department","subject","yearsOfExperience","qualification","position"].forEach(X=>{C[X]!==void 0&&(M[X]=C[X])});try{await ws(t.uid,M),F(X=>({...X,...M})),N(!1),z(!1),Se.success("Profile updated successfully")}catch(X){console.error("Error saving profile:",X),Se.error("Failed to update profile")}},wn=async C=>{if(t?.uid)try{const M=await lm(t.uid,C);Ze(M),Se.success("Settings saved successfully")}catch(M){throw console.error("Error saving settings:",M),Se.error("Failed to save settings"),M}},Zn=async C=>{try{await hp(C),Se.success("Password updated successfully")}catch(M){const $=M instanceof Error?M.message:"Unable to update password";throw Se.error($),M}},Jn=async()=>{if(!t?.uid)return;const C=await dm(t.uid),M=new Blob([JSON.stringify(C,null,2)],{type:"application/json"}),$=URL.createObjectURL(M),X=document.createElement("a");X.href=$,X.download=`mathpulse-data-export-${t.uid}-${Date.now()}.json`,document.body.appendChild(X),X.click(),document.body.removeChild(X),URL.revokeObjectURL($),Se.success("Data export downloaded")},es=async()=>{await um(),Se.success("Local cache cleared")},ts=async()=>{if(!t?.uid||n!=="admin")throw new Error("Only admin accounts can delete this account from settings.");try{await pp(t.uid),Se.success("Account deleted successfully")}catch(C){const M=C instanceof Error?C.message:"Unable to delete account";throw Se.error(M),C}},ns=async()=>{if(!t)throw new Error("No active profile found.");const C=n==="student"?y?.lrn||t.uid:void 0,{resetTestingDataForRole:M}=await q(async()=>{const{resetTestingDataForRole:X}=await import("./testResetService-CokcUy_m.js");return{resetTestingDataForRole:X}},__vite__mapDeps([100,1,2,3,4,5,6])),$=await M({uid:t.uid,role:n,lrn:C});n==="student"&&(P(1),I(0),R(0),ge(0),Tt([]),St(!1),Kt("unlocked"),ht("not_started"),qt("0.00"),Et(0),f("Dashboard")),Se.success($.summary)},Re=t?{uid:t.uid,name:t.name,email:t.email,phone:t.phone||"",photo:t.photo||"https://images.unsplash.com/photo-1633332755192-727a05c4013d?w=200&h=200&fit=crop",avatarLayers:t.avatarLayers,role:t.role,...n==="student"&&y?{lrn:y.lrn,grade:y.grade,section:y.section,school:y.school,enrollmentDate:y.enrollmentDate,major:y.major,gpa:nt}:{},...ae}:{uid:void 0,name:"User",email:"",phone:"",photo:"https://images.unsplash.com/photo-1633332755192-727a05c4013d?w=200&h=200&fit=crop",avatarLayers:void 0,role:n},Bi=Re.name.trim().split(/\s+/).find(C=>/\p{L}/u.test(C))||Re.name.trim()||"User";return h.useEffect(()=>{const C=M=>{if(!(M.target instanceof HTMLInputElement||M.target instanceof HTMLTextAreaElement)&&M.altKey)switch(M.key.toLowerCase()){case"d":M.preventDefault(),V("Dashboard");break;case"m":M.preventDefault(),V("Modules");break;case"c":M.preventDefault(),V("AI Chat");break;case"g":M.preventDefault(),V("Grades");break;case"b":M.preventDefault(),V("Quiz Battle");break;case"s":M.preventDefault(),z(!0);break;case"p":M.preventDefault(),N(!0);break;case"k":M.preventDefault(),K($=>!$);break}};if(e&&n==="student")return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[e,n,bn,At]),s?m.jsx(Xt,{}):e?n!=="student"||Ee?n==="teacher"?m.jsxs(m.Fragment,{children:[m.jsx(h.Suspense,{fallback:m.jsx(Xt,{message:"Loading teacher dashboard..."}),children:m.jsx(Bm,{onLogout:kt,onOpenProfile:()=>N(!0),onOpenSettings:()=>z(!0)})}),ne&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Cs,{isOpen:ne,onClose:()=>N(!1),profileData:Re,onSave:De})}),B&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Ds,{isOpen:B,onClose:()=>z(!1),profileData:Re,onSave:De,settingsData:be,onSaveSettings:wn,onApplySettingsPreview:Ze,onUpdatePassword:Zn,onExportData:Jn,onClearCache:es,onDeleteAccount:ts,onResetData:ns})}),m.jsx(As,{position:"top-right",richColors:!0,closeButton:!0})]}):n==="admin"?m.jsxs(m.Fragment,{children:[m.jsx(h.Suspense,{fallback:m.jsx(Xt,{message:"Loading admin dashboard..."}),children:m.jsx($m,{onLogout:kt,onOpenProfile:()=>N(!0)})}),ne&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Cs,{isOpen:ne,onClose:()=>N(!1),profileData:Re,onSave:De})}),B&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Ds,{isOpen:B,onClose:()=>z(!1),profileData:Re,onSave:De,settingsData:be,onSaveSettings:wn,onApplySettingsPreview:Ze,onUpdatePassword:Zn,onExportData:Jn,onClearCache:es,onDeleteAccount:ts,onResetData:ns})}),m.jsx(As,{position:"top-right",richColors:!0,closeButton:!0})]}):m.jsxs(m.Fragment,{children:[m.jsx(sm,{children:m.jsxs("div",{className:"flex h-screen w-full bg-[#f8faff] overflow-hidden",children:[m.jsx("div",{className:"hidden lg:block",children:m.jsx(h.Suspense,{fallback:u,children:m.jsx(yo,{activeTab:l,setActiveTab:V,userRole:n,onOpenSettings:()=>z(!0),onLogout:()=>j(!0),sidebarCollapsed:w,setSidebarCollapsed:T,forceCollapsed:l==="Quiz Battle"})})}),v&&m.jsxs(m.Fragment,{children:[m.jsx("button",{"aria-label":"Close navigation",className:"fixed inset-0 z-40 bg-slate-900/40 backdrop-blur-[1px] lg:hidden",onClick:()=>A(!1)}),m.jsx("div",{className:"fixed inset-y-0 left-0 z-50 p-3 lg:hidden",children:m.jsx(h.Suspense,{fallback:u,children:m.jsx(yo,{mode:"mobile",onRequestClose:()=>A(!1),activeTab:l,setActiveTab:V,userRole:n,onOpenSettings:()=>{z(!0),A(!1)},onLogout:()=>{j(!0),A(!1)},sidebarCollapsed:!1})})})]}),m.jsxs("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 bg-gradient-to-br from-indigo-200 via-fuchsia-50 to-orange-100 relative z-10 shadow-[rgba(124,58,237,0.05)_0px_0px_30px_inset]",children:[m.jsx("div",{className:"absolute inset-0 bg-math-pattern opacity-30 pointer-events-none mix-blend-multiply z-0"}),m.jsxs("header",{className:"bg-white/90 backdrop-blur-md border-b border-[#dde3eb] px-3 sm:px-6 py-3 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 sticky top-0 z-30 shadow-sm",children:[m.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[m.jsx("button",{className:"lg:hidden p-2 rounded-xl bg-[#edf1f7] hover:bg-[#dde3eb] text-[#5a6578] hover:text-primary transition-colors",onClick:()=>A(!0),"aria-label":"Open navigation",children:m.jsx(tp,{size:20})}),m.jsxs("div",{className:"min-w-0",children:[m.jsx("h1",{className:"text-lg sm:text-xl font-display font-bold text-[#0a1628] leading-tight truncate",children:l}),m.jsxs("p",{className:"text-xs text-[#5a6578] font-body truncate",children:["Welcome back, ",Re.name.split(" ")[0],"!"]})]}),m.jsxs("div",{className:"hidden md:flex items-center gap-2 ml-2",children:[m.jsxs("button",{onClick:()=>te(!0),className:"flex items-center gap-1.5 px-3 py-1.5 bg-rose-50 hover:bg-rose-100 border border-rose-200/60 rounded-lg transition-colors cursor-pointer group",title:"View Rewards & Progress",children:[m.jsx(Qh,{className:"h-3.5 w-3.5 text-rose-500","aria-hidden":"true"}),m.jsxs("span",{className:"text-xs font-display font-bold text-rose-700",children:["Lv ",b]})]}),m.jsxs("button",{onClick:()=>te(!0),className:"flex items-center gap-1.5 px-3 py-1.5 bg-violet-50 hover:bg-violet-100 border border-violet-200/60 rounded-lg transition-colors cursor-pointer",title:`${oe}/${L} XP to next level`,children:[m.jsx(rp,{className:"h-3.5 w-3.5 text-violet-500","aria-hidden":"true"}),m.jsxs("span",{className:"text-xs font-display font-bold text-violet-700",children:[S," XP"]}),m.jsx("div",{className:"w-12 h-1.5 bg-violet-100 rounded-full overflow-hidden",children:m.jsx("div",{className:"h-full bg-violet-500 rounded-full transition-all",style:{width:`${oe/L*100}%`}})})]}),m.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-orange-50 border border-orange-200/60 rounded-lg",children:[m.jsx(Jh,{className:"h-3.5 w-3.5 text-orange-500","aria-hidden":"true"}),m.jsxs("span",{className:"text-xs font-display font-bold text-orange-700",children:[ee," day",ee!==1?"s":""]})]})]})]}),m.jsxs("div",{className:"flex flex-wrap md:flex-nowrap items-center gap-2 min-w-0",children:[m.jsx("div",{className:"hidden md:block flex-1 min-w-0 max-w-[420px]",children:m.jsx(h.Suspense,{fallback:c,children:m.jsx(qm,{onSelect:C=>{}})})}),m.jsx("button",{onClick:()=>K(C=>!C),className:"p-3 rounded-xl bg-[#edf1f7] hover:bg-[#dde3eb] text-[#5a6578] hover:text-primary transition-all group",title:"Scientific Calculator (Alt+K)",children:m.jsx(Xh,{size:20,className:"group-hover:scale-110 transition-transform"})}),m.jsx(h.Suspense,{fallback:a,children:m.jsx(Hm,{userRole:n})}),m.jsxs("button",{onClick:()=>N(!0),className:"flex items-center gap-2.5 h-11 shrink-0 bg-[#edf1f7] hover:bg-[#dde3eb] p-1.5 pr-3 rounded-lg cursor-pointer transition-all group","aria-label":`Profile: ${Re.name}`,children:[m.jsx("img",{src:Re.photo,alt:Re.name,className:"w-8 h-8 rounded-lg object-cover"}),m.jsx("div",{className:"hidden sm:block text-left min-w-0 flex-1",children:m.jsx("p",{className:"text-sm font-semibold text-[#0a1628] leading-none group-hover:text-primary transition-colors font-body truncate",children:Bi})})]})]})]}),m.jsx("main",{ref:g,className:`flex-1 min-h-0 p-3 lg:p-4 ${l==="AI Chat"?"overflow-hidden":"overflow-y-auto pb-24 sm:pb-28"}`,children:m.jsx(Lf,{mode:"wait",children:m.jsx(Nn.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:-16},transition:{duration:.25,ease:[.22,1,.36,1]},className:l==="AI Chat"?"h-full min-h-0":"",children:l==="Dashboard"?m.jsx("div",{className:"px-4 sm:px-6 xl:px-10 py-6 sm:py-8",children:m.jsxs("div",{className:"grid grid-cols-12 gap-6 sm:gap-8 lg:gap-10",children:[m.jsxs("div",{className:"col-span-12 xl:col-span-9 flex flex-col gap-10 lg:gap-14 pt-0",children:[m.jsx(h.Suspense,{fallback:d,children:m.jsx(zm,{userName:Bi,userLevel:b,avatarLayers:Re.avatarLayers,onContinueLearning:()=>V("Modules"),showAssessmentTooltip:xn,onOpenAssessment:le})}),et&&Ht&&Dt.length>0&&m.jsxs("div",{className:"rounded-2xl border border-amber-300 bg-amber-50 px-5 py-4 shadow-sm dark:border-amber-400/40 dark:bg-amber-400/10",children:[m.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[m.jsxs("div",{children:[m.jsxs("p",{className:"inline-flex items-center gap-2 text-sm font-black text-amber-900 dark:text-amber-200",children:[m.jsx(sp,{className:"h-4 w-4"}),"Assessment Focus Review"]}),m.jsx("p",{className:"mt-1 text-sm text-amber-900/85 dark:text-amber-100/90",children:"Your latest diagnostic flagged these topics for review. Modules are prioritized based on this focus order."})]}),m.jsxs("button",{type:"button",onClick:()=>V("Modules"),className:"inline-flex items-center gap-1.5 rounded-xl bg-amber-600 px-3 py-2 text-xs font-bold text-white transition-colors hover:bg-amber-700",children:["Open Modules",m.jsx(Hh,{className:"h-3.5 w-3.5"})]})]}),m.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:O.map((C,M)=>m.jsxs("span",{className:"rounded-full bg-white/90 px-3 py-1 text-xs font-semibold text-amber-900 shadow-sm dark:bg-amber-100/20 dark:text-amber-100",children:[M+1,". ",Om[C]]},C))})]}),et&&Ce&&m.jsx(h.Suspense,{fallback:r,children:m.jsx(Km,{variant:"full",atRiskSubjects:_e,onDismiss:pt,onAction:()=>{pt(),V("Modules")}})}),Ee&&et&&m.jsx(h.Suspense,{fallback:r,children:m.jsx("div",{className:"pb-4",children:m.jsx(Gm,{onNavigateToModules:C=>V("Modules",C),atRiskSubjects:_e,priorityTopics:O})})}),Ee&&et&&m.jsx(h.Suspense,{fallback:r,children:m.jsx("div",{className:"pb-4",children:m.jsx(Xm,{})})})]}),m.jsx("div",{className:"col-span-12 xl:col-span-3 pt-2",children:et?m.jsx(h.Suspense,{fallback:d,children:m.jsx(Um,{onOpenRewards:()=>te(!0),onOpenLeaderboard:()=>f("Leaderboard"),onNavigateToModules:()=>f("Modules"),userLevel:b,currentXP:oe,xpToNextLevel:L,overallXP:S,streak:ee,streakHistory:y?.streakHistory||[]})}):d})]})}):l==="Modules"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Ym,{onEarnXP:Ie,atRiskSubjects:_e,priorityTopics:O,initialModuleId:he})}):l==="Leaderboard"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Jm,{currentUserPhoto:Re.photo})}):l==="Quiz Battle"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(eg,{})}):l==="AI Chat"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Qm,{})}):l==="Grades"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Zm,{})}):l==="Avatar Studio"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(tg,{})}):m.jsxs("div",{className:"flex-1 flex items-center justify-center text-[#a8a5b3] font-medium font-body",children:[l," Content Coming Soon"]})},l)})}),l!=="AI Chat"&&m.jsx(h.Suspense,{fallback:null,children:m.jsx("div",{className:"fixed bottom-4 right-4 sm:bottom-8 sm:right-8 z-50",children:m.jsx(ng,{constraintsRef:p,onFullScreen:Le})})}),m.jsx(h.Suspense,{fallback:null,children:m.jsx(Wm,{xp:G.xp,message:G.message,show:G.show,onComplete:()=>Q(C=>({...C,show:!1}))})}),W&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(sg,{isOpen:W,onClose:()=>te(!1),userLevel:b,currentXP:S,xpToNextLevel:L,totalXP:x,streak:ee})}),ne&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Cs,{isOpen:ne,onClose:()=>N(!1),profileData:Re,onSave:De})}),ye&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(ig,{isOpen:ye,onClose:()=>j(!1),onConfirm:kt,title:"Confirm Logout",message:"Are you sure you want to log out? Your progress is saved automatically.",confirmText:"Logout",cancelText:"Stay",type:"warning",icon:"logout"})}),B&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Ds,{isOpen:B,onClose:()=>z(!1),profileData:Re,onSave:De,settingsData:be,onSaveSettings:wn,onApplySettingsPreview:Ze,onUpdatePassword:Zn,onExportData:Jn,onClearCache:es,onDeleteAccount:ts,onResetData:ns})}),D&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(rg,{isOpen:D,onClose:()=>K(!1)})}),yn&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(og,{isOpen:yn,onClose:()=>tt(!1),onComplete:Rt,lrn:y?.lrn||t?.uid,gradeLevel:y?.grade,workflowMode:Ct,assessmentType:pe})})]})]})}),m.jsx(As,{position:"top-right",richColors:!0,closeButton:!0})]}):m.jsx(Xt,{message:"Preparing your dashboard..."}):m.jsx(h.Suspense,{fallback:m.jsx(Xt,{message:"Loading sign in..."}),children:m.jsx(Fm,{})})};let vo=!1;const bo=()=>{vo||(vo=!0,q(()=>Promise.resolve({}),__vite__mapDeps([101])).catch(e=>{console.error("[styles] Deferred full stylesheet failed to load:",e)}))};if(typeof window<"u"){const e=window.requestIdleCallback,t=window.cancelIdleCallback,n=e?.(()=>{bo()},{timeout:1200});window.setTimeout(()=>{n!==void 0&&t&&t(n),bo()},1200)}const Tl=document.getElementById("root");if(!Tl)throw new Error("Root element not found");Al.createRoot(Tl).render(m.jsx(mp,{children:m.jsx(ag,{})}));export{Hh as A,Kh as B,Xh as C,On as D,Cg as E,Jh as F,Ag as G,gg as H,lt as I,ap as J,Dg as K,ws as L,tp as M,Eg as N,im as O,Ni as P,Lp as Q,sp as T,rp as Z,q as _,vg as a,bg as b,ut as c,H as d,Lf as e,Sg as f,om as g,Pg as h,Tg as i,Sl as j,lm as k,Qh as l,Nn as m,wg as n,Es as o,Vg as p,Rg as q,Lg as r,yg as s,Se as t,ul as u,Mg as v,kg as w,Ig as x,Om as y,xg as z}; diff --git a/assets/index-DGWrSMOK.js b/assets/index-DGWrSMOK.js deleted file mode 100644 index ad3890d0511bdcd5ccd471258c72d629d653da9f..0000000000000000000000000000000000000000 --- a/assets/index-DGWrSMOK.js +++ /dev/null @@ -1,558 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/automationService-1THdsq3v.js","assets/vendor-firebase-firestore-CkuVbeP5.js","assets/vendor-firebase-core-DQ-pMjxd.js","assets/vendor-react-Dexh7fmo.js","assets/vendor-firebase-auth-COrkgW0P.js","assets/vendor-firebase-storage-BOeKE_0n.js","assets/vendor-firebase-analytics-CCo6E2f7.js","assets/apiService-BuaHZ1Ho.js","assets/chatService-tsfogjaC.js","assets/LoginPage-BTBes4zQ.js","assets/button-DWdPuxDU.js","assets/vendor-radix-B-ht8aK0.js","assets/clsx-B-dksMZM.js","assets/utils-BQQgILNW.js","assets/input-DBkKXOmF.js","assets/sparkles-DxmNHQEo.js","assets/brain-DHmY5cbv.js","assets/trending-up-B2MPUPwk.js","assets/award-DpLN2BvV.js","assets/users-BRS21lR4.js","assets/graduation-cap-Cr-ek4Bs.js","assets/book-open-B5Xvd1JL.js","assets/mail-D-r4ZWDN.js","assets/lock-C6XEepuP.js","assets/eye-off-DCr0gD8u.js","assets/eye-pSTVqBYO.js","assets/shield-check-B-VFrdlh.js","assets/TeacherDashboard-CtdIzfjb.js","assets/ConfirmModal-B9CUrvQP.js","assets/x-Bj25rnWX.js","assets/trash-2-CBQVcuBL.js","assets/log-out-DYYu4gFF.js","assets/LogoutActionButton-D-8gok3U.js","assets/quizService-BkrCeM05.js","assets/loader-circle-BUf2fYcT.js","assets/send-nCgvy9cZ.js","assets/circle-alert-D8UKyVHS.js","assets/minus-BjTBUAx2.js","assets/plus-DVCmopn-.js","assets/check-BONc3QkK.js","assets/dialog-C0Vo-dln.js","assets/chart-column-CJzwyNMx.js","assets/skeleton-DgVR4gS7.js","assets/download-DINpalm9.js","assets/save-B5SCmCsP.js","assets/search-O5gEqRZi.js","assets/chevron-up-BJyzaJs7.js","assets/subjects-DDYtJwQO.js","assets/circle-check-big-mv2CRLCE.js","assets/user-Br5UzORP.js","assets/chevron-right-DxXkA9aZ.js","assets/ChatMarkdown-BI4vbcO7.js","assets/vendor-markdown-C5ikSDMA.js","assets/vendor-markdown-CBmFCdgC.css","assets/bell-DeNrtKrI.js","assets/check-check-BDU3hkDf.js","assets/clock-qHFbMxrB.js","assets/message-square-DIXhbelM.js","assets/trophy-73YPSH67.js","assets/target-7Gevl8jn.js","assets/calendar-19p2TrVX.js","assets/generateCategoricalChart-CiUYzAvW.js","assets/pen-line-CX1xh2Q2.js","assets/AdminDashboard-uzlVc26h.js","assets/Sidebar-BH3yU0R9.js","assets/tooltip-D9lDiW9U.js","assets/shield-Cin8984_.js","assets/swords-Bn50CmyM.js","assets/shirt-C4Gsu12G.js","assets/select-CH9gS87N.js","assets/circle-help-BOZYr6oH.js","assets/switch-DbjIWZtF.js","assets/trending-down-C7JHnrbb.js","assets/HeroBanner-DgRlQubI.js","assets/RightSidebar-kfU04N_d.js","assets/star-DqP0S0c5.js","assets/XPNotification-DOZFX3ET.js","assets/NotificationCenter-l7IdH4wu.js","assets/SearchBar-DYN0WTzx.js","assets/SupplementalBanner-COM6ABNZ.js","assets/LearningPath-CTKb6bQc.js","assets/ModuleFolderCard-BGJM_1PJ.js","assets/CompetencyRadarChart-Bv4P4qFs.js","assets/ModulesPage-C8056uyx.js","assets/confetti.module-C94ZD2ww.js","assets/ScientificCalculator-BP-XvW_h.js","assets/MathAnswerInput-Bx58557t.js","assets/AIChatPage-DDSYPYxd.js","assets/GradesPage-BIf0hX4r.js","assets/LeaderboardPage-C97hWKsZ.js","assets/QuizBattlePage-BhgM4TWz.js","assets/CompositeAvatar-CphZ-OWw.js","assets/avatarData-DykDiQ_Y.js","assets/tabs-BJVl1n4R.js","assets/AvatarShop-D-gwLcZq.js","assets/FloatingAITutor-DYvlvoVe.js","assets/RewardsModal-CtOcWG3R.js","assets/ProfileModal-CvubwvbT.js","assets/globe-CA6LY_zw.js","assets/SettingsModal-BFFZzSRx.js","assets/DiagnosticAssessmentModal-BoOvPWwv.js","assets/testResetService-Bzfj9Z1A.js","assets/index-6qUCYOVY.css"])))=>i.map(i=>d[i]); -import{r as h,j as m,c as E,b as Tl,e as Pl}from"./vendor-react-Dexh7fmo.js";import{g as Al,G as El,c as Cl,u as Dl,s as Rl,a as kl,d as Ml,b as Ll,o as Il}from"./vendor-firebase-auth-COrkgW0P.js";import{R as Vl,T as _l,U as jl,V as Nl}from"./vendor-firebase-core-DQ-pMjxd.js";import{g as Ol,d as se,s as He,a as he,b as ke,c as Fl,w as Oe,o as tn,l as nn,q as rt,e as We,f as xo,h as un,u as Bt,i as Bl,j as Fn}from"./vendor-firebase-firestore-CkuVbeP5.js";import{g as $l}from"./vendor-firebase-storage-BOeKE_0n.js";import{g as zl}from"./vendor-firebase-analytics-CCo6E2f7.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&s(r)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();const Ul="modulepreload",Wl=function(e){return"/"+e},zi={},H=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let r=function(u){return Promise.all(u.map(d=>Promise.resolve(d).then(l=>({status:"fulfilled",value:l}),l=>({status:"rejected",reason:l}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),c=a?.nonce||a?.getAttribute("nonce");i=r(n.map(u=>{if(u=Wl(u),u in zi)return;zi[u]=!0;const d=u.endsWith(".css"),l=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${l}`))return;const f=document.createElement("link");if(f.rel=d?"stylesheet":Ul,d||(f.as="script"),f.crossOrigin="",f.href=u,c&&f.setAttribute("nonce",c),document.head.appendChild(f),d)return new Promise((p,g)=>{f.addEventListener("load",p),f.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(r){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return i.then(r=>{for(const a of r||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},ii=h.createContext({});function ri(e){const t=h.useRef(null);return t.current===null&&(t.current=e()),t.current}const wo=typeof window<"u",So=wo?h.useLayoutEffect:h.useEffect,Gn=h.createContext(null);function oi(e,t){e.indexOf(t)===-1&&e.push(t)}function Bn(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Qe=(e,t,n)=>n>t?t:n{};const Je={},To=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function Po(e){return typeof e=="object"&&e!==null}const Ao=e=>/^0[^.\s]+$/u.test(e);function li(e){let t;return()=>(t===void 0&&(t=e()),t)}const Fe=e=>e,Hl=(e,t)=>n=>t(e(n)),dn=(...e)=>e.reduce(Hl),sn=(e,t,n)=>{const s=t-e;return s===0?1:(n-e)/s};class ci{constructor(){this.subscriptions=[]}add(t){return oi(this.subscriptions,t),()=>Bn(this.subscriptions,t)}notify(t,n,s){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,s);else for(let o=0;oe*1e3,Ne=e=>e/1e3;function Eo(e,t){return t?e*(1e3/t):0}const Co=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,ql=1e-7,Kl=12;function Gl(e,t,n,s,i){let o,r,a=0;do r=t+(n-t)/2,o=Co(r,s,i)-e,o>0?n=r:t=r;while(Math.abs(o)>ql&&++aGl(o,0,1,e,n);return o=>o===0||o===1?o:Co(i(o),t,s)}const Do=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Ro=e=>t=>1-e(1-t),ko=fn(.33,1.53,.69,.99),ui=Ro(ko),Mo=Do(ui),Lo=e=>(e*=2)<1?.5*ui(e):.5*(2-Math.pow(2,-10*(e-1))),di=e=>1-Math.sin(Math.acos(e)),Io=Ro(di),Vo=Do(di),Xl=fn(.42,0,1,1),Yl=fn(0,0,.58,1),_o=fn(.42,0,.58,1),Ql=e=>Array.isArray(e)&&typeof e[0]!="number",jo=e=>Array.isArray(e)&&typeof e[0]=="number",Zl={linear:Fe,easeIn:Xl,easeInOut:_o,easeOut:Yl,circIn:di,circInOut:Vo,circOut:Io,backIn:ui,backInOut:Mo,backOut:ko,anticipate:Lo},Jl=e=>typeof e=="string",Ui=e=>{if(jo(e)){ai(e.length===4);const[t,n,s,i]=e;return fn(t,n,s,i)}else if(Jl(e))return Zl[e];return e},Sn=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function ec(e,t){let n=new Set,s=new Set,i=!1,o=!1;const r=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function c(d){r.has(d)&&(u.schedule(d),e()),d(a)}const u={schedule:(d,l=!1,f=!1)=>{const g=f&&i?n:s;return l&&r.add(d),g.has(d)||g.add(d),d},cancel:d=>{s.delete(d),r.delete(d)},process:d=>{if(a=d,i){o=!0;return}i=!0,[n,s]=[s,n],n.forEach(c),n.clear(),i=!1,o&&(o=!1,u.process(d))}};return u}const tc=40;function No(e,t){let n=!1,s=!0;const i={delta:0,timestamp:0,isProcessing:!1},o=()=>n=!0,r=Sn.reduce((y,b)=>(y[b]=ec(o),y),{}),{setup:a,read:c,resolveKeyframes:u,preUpdate:d,update:l,preRender:f,render:p,postRender:g}=r,w=()=>{const y=Je.useManualTiming?i.timestamp:performance.now();n=!1,Je.useManualTiming||(i.delta=s?1e3/60:Math.max(Math.min(y-i.timestamp,tc),1)),i.timestamp=y,i.isProcessing=!0,a.process(i),c.process(i),u.process(i),d.process(i),l.process(i),f.process(i),p.process(i),g.process(i),i.isProcessing=!1,n&&t&&(s=!1,e(w))},T=()=>{n=!0,s=!0,i.isProcessing||e(w)};return{schedule:Sn.reduce((y,b)=>{const P=r[b];return y[b]=(S,I=!1,x=!1)=>(n||T(),P.schedule(S,I,x)),y},{}),cancel:y=>{for(let b=0;b(kn===void 0&&Te.set(me.isProcessing||Je.useManualTiming?me.timestamp:performance.now()),kn),set:e=>{kn=e,queueMicrotask(nc)}},Oo=e=>t=>typeof t=="string"&&t.startsWith(e),Fo=Oo("--"),sc=Oo("var(--"),fi=e=>sc(e)?ic.test(e.split("/*")[0].trim()):!1,ic=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Wi(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const $t={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},rn={...$t,transform:e=>Qe(0,1,e)},Tn={...$t,default:1},Qt=e=>Math.round(e*1e5)/1e5,hi=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function rc(e){return e==null}const oc=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,pi=(e,t)=>n=>!!(typeof n=="string"&&oc.test(n)&&n.startsWith(e)||t&&!rc(n)&&Object.prototype.hasOwnProperty.call(n,t)),Bo=(e,t,n)=>s=>{if(typeof s!="string")return s;const[i,o,r,a]=s.match(hi);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(r),alpha:a!==void 0?parseFloat(a):1}},ac=e=>Qe(0,255,e),rs={...$t,transform:e=>Math.round(ac(e))},vt={test:pi("rgb","red"),parse:Bo("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:s=1})=>"rgba("+rs.transform(e)+", "+rs.transform(t)+", "+rs.transform(n)+", "+Qt(rn.transform(s))+")"};function lc(e){let t="",n="",s="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),s=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),s=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,s+=s,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(s,16),alpha:i?parseInt(i,16)/255:1}}const Rs={test:pi("#"),parse:lc,transform:vt.transform},hn=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),st=hn("deg"),Ye=hn("%"),k=hn("px"),cc=hn("vh"),uc=hn("vw"),Hi={...Ye,parse:e=>Ye.parse(e)/100,transform:e=>Ye.transform(e*100)},Lt={test:pi("hsl","hue"),parse:Bo("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:s=1})=>"hsla("+Math.round(e)+", "+Ye.transform(Qt(t))+", "+Ye.transform(Qt(n))+", "+Qt(rn.transform(s))+")"},ce={test:e=>vt.test(e)||Rs.test(e)||Lt.test(e),parse:e=>vt.test(e)?vt.parse(e):Lt.test(e)?Lt.parse(e):Rs.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?vt.transform(e):Lt.transform(e),getAnimatableNone:e=>{const t=ce.parse(e);return t.alpha=0,ce.transform(t)}},dc=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function fc(e){return isNaN(e)&&typeof e=="string"&&(e.match(hi)?.length||0)+(e.match(dc)?.length||0)>0}const $o="number",zo="color",hc="var",pc="var(",qi="${}",mc=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function on(e){const t=e.toString(),n=[],s={color:[],number:[],var:[]},i=[];let o=0;const a=t.replace(mc,c=>(ce.test(c)?(s.color.push(o),i.push(zo),n.push(ce.parse(c))):c.startsWith(pc)?(s.var.push(o),i.push(hc),n.push(c)):(s.number.push(o),i.push($o),n.push(parseFloat(c))),++o,qi)).split(qi);return{values:n,split:a,indexes:s,types:i}}function Uo(e){return on(e).values}function Wo(e){const{split:t,types:n}=on(e),s=t.length;return i=>{let o="";for(let r=0;rtypeof e=="number"?0:ce.test(e)?ce.getAnimatableNone(e):e;function yc(e){const t=Uo(e);return Wo(e)(t.map(gc))}const at={test:fc,parse:Uo,createTransformer:Wo,getAnimatableNone:yc};function os(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function vc({hue:e,saturation:t,lightness:n,alpha:s}){e/=360,t/=100,n/=100;let i=0,o=0,r=0;if(!t)i=o=r=n;else{const a=n<.5?n*(1+t):n+t-n*t,c=2*n-a;i=os(c,a,e+1/3),o=os(c,a,e),r=os(c,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(r*255),alpha:s}}function $n(e,t){return n=>n>0?t:e}const Z=(e,t,n)=>e+(t-e)*n,as=(e,t,n)=>{const s=e*e,i=n*(t*t-s)+s;return i<0?0:Math.sqrt(i)},bc=[Rs,vt,Lt],xc=e=>bc.find(t=>t.test(e));function Ki(e){const t=xc(e);if(!t)return!1;let n=t.parse(e);return t===Lt&&(n=vc(n)),n}const Gi=(e,t)=>{const n=Ki(e),s=Ki(t);if(!n||!s)return $n(e,t);const i={...n};return o=>(i.red=as(n.red,s.red,o),i.green=as(n.green,s.green,o),i.blue=as(n.blue,s.blue,o),i.alpha=Z(n.alpha,s.alpha,o),vt.transform(i))},ks=new Set(["none","hidden"]);function wc(e,t){return ks.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Sc(e,t){return n=>Z(e,t,n)}function mi(e){return typeof e=="number"?Sc:typeof e=="string"?fi(e)?$n:ce.test(e)?Gi:Ac:Array.isArray(e)?Ho:typeof e=="object"?ce.test(e)?Gi:Tc:$n}function Ho(e,t){const n=[...e],s=n.length,i=e.map((o,r)=>mi(o)(o,t[r]));return o=>{for(let r=0;r{for(const o in s)n[o]=s[o](i);return n}}function Pc(e,t){const n=[],s={color:0,var:0,number:0};for(let i=0;i{const n=at.createTransformer(t),s=on(e),i=on(t);return s.indexes.var.length===i.indexes.var.length&&s.indexes.color.length===i.indexes.color.length&&s.indexes.number.length>=i.indexes.number.length?ks.has(e)&&!i.values.length||ks.has(t)&&!s.values.length?wc(e,t):dn(Ho(Pc(s,i),i.values),n):$n(e,t)};function qo(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Z(e,t,n):mi(e)(e,t)}const Ec=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>Y.update(t,n),stop:()=>ot(t),now:()=>me.isProcessing?me.timestamp:Te.now()}},Ko=(e,t,n=10)=>{let s="";const i=Math.max(Math.round(t/n),2);for(let o=0;o=zn?1/0:t}function Cc(e,t=100,n){const s=n({...e,keyframes:[0,t]}),i=Math.min(gi(s),zn);return{type:"keyframes",ease:o=>s.next(i*o).value/t,duration:Ne(i)}}const Dc=5;function Go(e,t,n){const s=Math.max(t-Dc,0);return Eo(n-e(s),t-s)}const ne={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ls=.001;function Rc({duration:e=ne.duration,bounce:t=ne.bounce,velocity:n=ne.velocity,mass:s=ne.mass}){let i,o,r=1-t;r=Qe(ne.minDamping,ne.maxDamping,r),e=Qe(ne.minDuration,ne.maxDuration,Ne(e)),r<1?(i=u=>{const d=u*r,l=d*e,f=d-n,p=Ms(u,r),g=Math.exp(-l);return ls-f/p*g},o=u=>{const l=u*r*e,f=l*n+n,p=Math.pow(r,2)*Math.pow(u,2)*e,g=Math.exp(-l),w=Ms(Math.pow(u,2),r);return(-i(u)+ls>0?-1:1)*((f-p)*g)/w}):(i=u=>{const d=Math.exp(-u*e),l=(u-n)*e+1;return-ls+d*l},o=u=>{const d=Math.exp(-u*e),l=(n-u)*(e*e);return d*l});const a=5/e,c=Mc(i,o,a);if(e=Ue(e),isNaN(c))return{stiffness:ne.stiffness,damping:ne.damping,duration:e};{const u=Math.pow(c,2)*s;return{stiffness:u,damping:r*2*Math.sqrt(s*u),duration:e}}}const kc=12;function Mc(e,t,n){let s=n;for(let i=1;ie[n]!==void 0)}function Vc(e){let t={velocity:ne.velocity,stiffness:ne.stiffness,damping:ne.damping,mass:ne.mass,isResolvedFromDuration:!1,...e};if(!Xi(e,Ic)&&Xi(e,Lc))if(e.visualDuration){const n=e.visualDuration,s=2*Math.PI/(n*1.2),i=s*s,o=2*Qe(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:ne.mass,stiffness:i,damping:o}}else{const n=Rc(e);t={...t,...n,mass:ne.mass},t.isResolvedFromDuration=!0}return t}function Un(e=ne.visualDuration,t=ne.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:s,restDelta:i}=n;const o=n.keyframes[0],r=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:c,damping:u,mass:d,duration:l,velocity:f,isResolvedFromDuration:p}=Vc({...n,velocity:-Ne(n.velocity||0)}),g=f||0,w=u/(2*Math.sqrt(c*d)),T=r-o,v=Ne(Math.sqrt(c/d)),A=Math.abs(T)<5;s||(s=A?ne.restSpeed.granular:ne.restSpeed.default),i||(i=A?ne.restDelta.granular:ne.restDelta.default);let y;if(w<1){const P=Ms(v,w);y=S=>{const I=Math.exp(-w*v*S);return r-I*((g+w*v*T)/P*Math.sin(P*S)+T*Math.cos(P*S))}}else if(w===1)y=P=>r-Math.exp(-v*P)*(T+(g+v*T)*P);else{const P=v*Math.sqrt(w*w-1);y=S=>{const I=Math.exp(-w*v*S),x=Math.min(P*S,300);return r-I*((g+w*v*T)*Math.sinh(x)+P*T*Math.cosh(x))/P}}const b={calculatedDuration:p&&l||null,next:P=>{const S=y(P);if(p)a.done=P>=l;else{let I=P===0?g:0;w<1&&(I=P===0?Ue(g):Go(y,P,S));const x=Math.abs(I)<=s,R=Math.abs(r-S)<=i;a.done=x&&R}return a.value=a.done?r:S,a},toString:()=>{const P=Math.min(gi(b),zn),S=Ko(I=>b.next(P*I).value,P,30);return P+"ms "+S},toTransition:()=>{}};return b}Un.applyToOptions=e=>{const t=Cc(e,100,Un);return e.ease=t.ease,e.duration=Ue(t.duration),e.type="keyframes",e};function Ls({keyframes:e,velocity:t=0,power:n=.8,timeConstant:s=325,bounceDamping:i=10,bounceStiffness:o=500,modifyTarget:r,min:a,max:c,restDelta:u=.5,restSpeed:d}){const l=e[0],f={done:!1,value:l},p=x=>a!==void 0&&xc,g=x=>a===void 0?c:c===void 0||Math.abs(a-x)-w*Math.exp(-x/s),y=x=>v+A(x),b=x=>{const R=A(x),L=y(x);f.done=Math.abs(R)<=u,f.value=f.done?v:L};let P,S;const I=x=>{p(f.value)&&(P=x,S=Un({keyframes:[f.value,g(f.value)],velocity:Go(y,x,f.value),damping:i,stiffness:o,restDelta:u,restSpeed:d}))};return I(0),{calculatedDuration:null,next:x=>{let R=!1;return!S&&P===void 0&&(R=!0,b(x),I(x)),P!==void 0&&x>=P?S.next(x-P):(!R&&b(x),f)}}}function _c(e,t,n){const s=[],i=n||Je.mix||qo,o=e.length-1;for(let r=0;rt[0];if(o===2&&t[0]===t[1])return()=>t[1];const r=e[0]===e[1];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=_c(t,s,i),c=a.length,u=d=>{if(r&&d1)for(;lu(Qe(e[0],e[o-1],d)):u}function Nc(e,t){const n=e[e.length-1];for(let s=1;s<=t;s++){const i=sn(0,t,s);e.push(Z(n,1,i))}}function Oc(e){const t=[0];return Nc(t,e.length-1),t}function Fc(e,t){return e.map(n=>n*t)}function Bc(e,t){return e.map(()=>t||_o).splice(0,e.length-1)}function Zt({duration:e=300,keyframes:t,times:n,ease:s="easeInOut"}){const i=Ql(s)?s.map(Ui):Ui(s),o={done:!1,value:t[0]},r=Fc(n&&n.length===t.length?n:Oc(t),e),a=jc(r,t,{ease:Array.isArray(i)?i:Bc(t,i)});return{calculatedDuration:e,next:c=>(o.value=a(c),o.done=c>=e,o)}}const $c=e=>e!==null;function yi(e,{repeat:t,repeatType:n="loop"},s,i=1){const o=e.filter($c),a=i<0||t&&n!=="loop"&&t%2===1?0:o.length-1;return!a||s===void 0?o[a]:s}const zc={decay:Ls,inertia:Ls,tween:Zt,keyframes:Zt,spring:Un};function Xo(e){typeof e.type=="string"&&(e.type=zc[e.type])}class vi{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const Uc=e=>e/100;class bi extends vi{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==Te.now()&&this.tick(Te.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;Xo(t);const{type:n=Zt,repeat:s=0,repeatDelay:i=0,repeatType:o,velocity:r=0}=t;let{keyframes:a}=t;const c=n||Zt;c!==Zt&&typeof a[0]!="number"&&(this.mixKeyframes=dn(Uc,qo(a[0],a[1])),a=[0,100]);const u=c({...t,keyframes:a});o==="mirror"&&(this.mirroredGenerator=c({...t,keyframes:[...a].reverse(),velocity:-r})),u.calculatedDuration===null&&(u.calculatedDuration=gi(u));const{calculatedDuration:d}=u;this.calculatedDuration=d,this.resolvedDuration=d+i,this.totalDuration=this.resolvedDuration*(s+1)-i,this.generator=u}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:s,totalDuration:i,mixKeyframes:o,mirroredGenerator:r,resolvedDuration:a,calculatedDuration:c}=this;if(this.startTime===null)return s.next(0);const{delay:u=0,keyframes:d,repeat:l,repeatType:f,repeatDelay:p,type:g,onUpdate:w,finalKeyframe:T}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const v=this.currentTime-u*(this.playbackSpeed>=0?1:-1),A=this.playbackSpeed>=0?v<0:v>i;this.currentTime=Math.max(v,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let y=this.currentTime,b=s;if(l){const x=Math.min(this.currentTime,i)/a;let R=Math.floor(x),L=x%1;!L&&x>=1&&(L=1),L===1&&R--,R=Math.min(R,l+1),!!(R%2)&&(f==="reverse"?(L=1-L,p&&(L-=p/a)):f==="mirror"&&(b=r)),y=Qe(0,1,L)*a}const P=A?{done:!1,value:d[0]}:b.next(y);o&&(P.value=o(P.value));let{done:S}=P;!A&&c!==null&&(S=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const I=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return I&&g!==Ls&&(P.value=yi(d,this.options,T,this.speed)),w&&w(P.value),I&&this.finish(),P}then(t,n){return this.finished.then(t,n)}get duration(){return Ne(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ne(t)}get time(){return Ne(this.currentTime)}set time(t){t=Ue(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(Te.now());const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Ne(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=Ec,startTime:n}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),this.options.onPlay?.();const s=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=s):this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime||(this.startTime=n??s),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Te.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function Wc(e){for(let t=1;te*180/Math.PI,Is=e=>{const t=bt(Math.atan2(e[1],e[0]));return Vs(t)},Hc={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:Is,rotateZ:Is,skewX:e=>bt(Math.atan(e[1])),skewY:e=>bt(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Vs=e=>(e=e%360,e<0&&(e+=360),e),Yi=Is,Qi=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),Zi=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),qc={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Qi,scaleY:Zi,scale:e=>(Qi(e)+Zi(e))/2,rotateX:e=>Vs(bt(Math.atan2(e[6],e[5]))),rotateY:e=>Vs(bt(Math.atan2(-e[2],e[0]))),rotateZ:Yi,rotate:Yi,skewX:e=>bt(Math.atan(e[4])),skewY:e=>bt(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function _s(e){return e.includes("scale")?1:0}function js(e,t){if(!e||e==="none")return _s(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let s,i;if(n)s=qc,i=n;else{const a=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);s=Hc,i=a}if(!i)return _s(t);const o=s[t],r=i[1].split(",").map(Gc);return typeof o=="function"?o(r):r[o]}const Kc=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return js(n,t)};function Gc(e){return parseFloat(e.trim())}const zt=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Ut=new Set(zt),Ji=e=>e===$t||e===k,Xc=new Set(["x","y","z"]),Yc=zt.filter(e=>!Xc.has(e));function Qc(e){const t=[];return Yc.forEach(n=>{const s=e.getValue(n);s!==void 0&&(t.push([n,s.get()]),s.set(n.startsWith("scale")?1:0))}),t}const it={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>js(t,"x"),y:(e,{transform:t})=>js(t,"y")};it.translateX=it.x;it.translateY=it.y;const xt=new Set;let Ns=!1,Os=!1,Fs=!1;function Yo(){if(Os){const e=Array.from(xt).filter(s=>s.needsMeasurement),t=new Set(e.map(s=>s.element)),n=new Map;t.forEach(s=>{const i=Qc(s);i.length&&(n.set(s,i),s.render())}),e.forEach(s=>s.measureInitialState()),t.forEach(s=>{s.render();const i=n.get(s);i&&i.forEach(([o,r])=>{s.getValue(o)?.set(r)})}),e.forEach(s=>s.measureEndState()),e.forEach(s=>{s.suspendedScrollY!==void 0&&window.scrollTo(0,s.suspendedScrollY)})}Os=!1,Ns=!1,xt.forEach(e=>e.complete(Fs)),xt.clear()}function Qo(){xt.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Os=!0)})}function Zc(){Fs=!0,Qo(),Yo(),Fs=!1}class xi{constructor(t,n,s,i,o,r=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=s,this.motionValue=i,this.element=o,this.isAsync=r}scheduleResolve(){this.state="scheduled",this.isAsync?(xt.add(this),Ns||(Ns=!0,Y.read(Qo),Y.resolveKeyframes(Yo))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:s,motionValue:i}=this;if(t[0]===null){const o=i?.get(),r=t[t.length-1];if(o!==void 0)t[0]=o;else if(s&&n){const a=s.readValue(n,r);a!=null&&(t[0]=a)}t[0]===void 0&&(t[0]=r),i&&o===void 0&&i.set(t[0])}Wc(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),xt.delete(this)}cancel(){this.state==="scheduled"&&(xt.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const Jc=e=>e.startsWith("--");function eu(e,t,n){Jc(t)?e.style.setProperty(t,n):e.style[t]=n}const tu=li(()=>window.ScrollTimeline!==void 0),nu={};function su(e,t){const n=li(e);return()=>nu[t]??n()}const Zo=su(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Yt=([e,t,n,s])=>`cubic-bezier(${e}, ${t}, ${n}, ${s})`,er={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Yt([0,.65,.55,1]),circOut:Yt([.55,0,1,.45]),backIn:Yt([.31,.01,.66,-.59]),backOut:Yt([.33,1.53,.69,.99])};function Jo(e,t){if(e)return typeof e=="function"?Zo()?Ko(e,t):"ease-out":jo(e)?Yt(e):Array.isArray(e)?e.map(n=>Jo(n,t)||er.easeOut):er[e]}function iu(e,t,n,{delay:s=0,duration:i=300,repeat:o=0,repeatType:r="loop",ease:a="easeOut",times:c}={},u=void 0){const d={[t]:n};c&&(d.offset=c);const l=Jo(a,i);Array.isArray(l)&&(d.easing=l);const f={delay:s,duration:i,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:o+1,direction:r==="reverse"?"alternate":"normal"};return u&&(f.pseudoElement=u),e.animate(d,f)}function ea(e){return typeof e=="function"&&"applyToOptions"in e}function ru({type:e,...t}){return ea(e)&&Zo()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class ta extends vi{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:n,name:s,keyframes:i,pseudoElement:o,allowFlatten:r=!1,finalKeyframe:a,onComplete:c}=t;this.isPseudoElement=!!o,this.allowFlatten=r,this.options=t,ai(typeof t.type!="string");const u=ru(t);this.animation=iu(n,s,i,u,o),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!o){const d=yi(i,this.options,a,this.speed);this.updateMotionValue?this.updateMotionValue(d):eu(n,s,d),this.animation.cancel()}c?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return Ne(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ne(t)}get time(){return Ne(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Ue(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&tu()?(this.animation.timeline=t,Fe):n(this)}}const na={anticipate:Lo,backInOut:Mo,circInOut:Vo};function ou(e){return e in na}function au(e){typeof e.ease=="string"&&ou(e.ease)&&(e.ease=na[e.ease])}const cs=10;class lu extends ta{constructor(t){au(t),Xo(t),super(t),t.startTime!==void 0&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:s,onComplete:i,element:o,...r}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const a=new bi({...r,autoplay:!1}),c=Math.max(cs,Te.now()-this.startTime),u=Qe(0,cs,c-cs);n.setWithVelocity(a.sample(Math.max(0,c-u)).value,a.sample(c).value,u),a.stop()}}const tr=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(at.test(e)||e==="0")&&!e.startsWith("url("));function cu(e){const t=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function hu(e){const{motionValue:t,name:n,repeatDelay:s,repeatType:i,damping:o,type:r}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=t.owner.getProps();return fu()&&n&&du.has(n)&&(n!=="transform"||!u)&&!c&&!s&&i!=="mirror"&&o!==0&&r!=="inertia"}const pu=40;class mu extends vi{constructor({autoplay:t=!0,delay:n=0,type:s="keyframes",repeat:i=0,repeatDelay:o=0,repeatType:r="loop",keyframes:a,name:c,motionValue:u,element:d,...l}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Te.now();const f={autoplay:t,delay:n,type:s,repeat:i,repeatDelay:o,repeatType:r,name:c,motionValue:u,element:d,...l},p=d?.KeyframeResolver||xi;this.keyframeResolver=new p(a,(g,w,T)=>this.onKeyframesResolved(g,w,f,!T),c,u,d),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,n,s,i){this.keyframeResolver=void 0;const{name:o,type:r,velocity:a,delay:c,isHandoff:u,onUpdate:d}=s;this.resolvedAt=Te.now(),uu(t,o,r,a)||((Je.instantAnimations||!c)&&d?.(yi(t,s,n)),t[0]=t[t.length-1],Bs(s),s.repeat=0);const f={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>pu?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...s,keyframes:t},p=!u&&hu(f),g=f.motionValue?.owner?.current,w=p?new lu({...f,element:g}):new bi(f);w.finished.then(()=>{this.notifyFinished()}).catch(Fe),this.pendingTimeline&&(this.stopTimeline=w.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=w}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Zc()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function sa(e,t,n,s=0,i=1){const o=Array.from(e).sort((u,d)=>u.sortNodePosition(d)).indexOf(t),r=e.size,a=(r-1)*s;return typeof n=="function"?n(o,r):i===1?o*s:a-o*s}const gu=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function yu(e){const t=gu.exec(e);if(!t)return[,];const[,n,s,i]=t;return[`--${n??s}`,i]}function ia(e,t,n=1){const[s,i]=yu(e);if(!s)return;const o=window.getComputedStyle(t).getPropertyValue(s);if(o){const r=o.trim();return To(r)?parseFloat(r):r}return fi(i)?ia(i,t,n+1):i}const vu={type:"spring",stiffness:500,damping:25,restSpeed:10},bu=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),xu={type:"keyframes",duration:.8},wu={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Su=(e,{keyframes:t})=>t.length>2?xu:Ut.has(e)?e.startsWith("scale")?bu(t[1]):vu:wu,Tu=e=>e!==null;function Pu(e,{repeat:t,repeatType:n="loop"},s){const i=e.filter(Tu),o=t&&n!=="loop"&&t%2===1?0:i.length-1;return i[o]}function ra(e,t){if(e?.inherit&&t){const{inherit:n,...s}=e;return{...t,...s}}return e}function wi(e,t){const n=e?.[t]??e?.default??e;return n!==e?ra(n,e):n}function Au({when:e,delay:t,delayChildren:n,staggerChildren:s,staggerDirection:i,repeat:o,repeatType:r,repeatDelay:a,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Si=(e,t,n,s={},i,o)=>r=>{const a=wi(s,e)||{},c=a.delay||s.delay||0;let{elapsed:u=0}=s;u=u-Ue(c);const d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-u,onUpdate:f=>{t.set(f),a.onUpdate&&a.onUpdate(f)},onComplete:()=>{r(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:o?void 0:i};Au(a)||Object.assign(d,Su(e,d)),d.duration&&(d.duration=Ue(d.duration)),d.repeatDelay&&(d.repeatDelay=Ue(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let l=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(Bs(d),d.delay===0&&(l=!0)),(Je.instantAnimations||Je.skipAnimations||i?.shouldSkipAnimations)&&(l=!0,Bs(d),d.delay=0),d.allowFlatten=!a.type&&!a.ease,l&&!o&&t.get()!==void 0){const f=Pu(d.keyframes,a);if(f!==void 0){Y.update(()=>{d.onUpdate(f),d.onComplete()});return}}return a.isSync?new bi(d):new mu(d)};function nr(e){const t=[{},{}];return e?.values.forEach((n,s)=>{t[0][s]=n.get(),t[1][s]=n.getVelocity()}),t}function Ti(e,t,n,s){if(typeof t=="function"){const[i,o]=nr(s);t=t(n!==void 0?n:e.custom,i,o)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,o]=nr(s);t=t(n!==void 0?n:e.custom,i,o)}return t}function Nt(e,t,n){const s=e.getProps();return Ti(s,t,n!==void 0?n:s.custom,e)}const oa=new Set(["width","height","top","left","right","bottom",...zt]),sr=30,Eu=e=>!isNaN(parseFloat(e));class Cu{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=s=>{const i=Te.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(s),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const o of this.dependents)o.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Te.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=Eu(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new ci);const s=this.events[t].add(n);return t==="change"?()=>{s(),Y.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,n,s){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-s}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Te.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>sr)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,sr);return Eo(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ft(e,t){return new Cu(e,t)}const $s=e=>Array.isArray(e);function Du(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Ft(n))}function Ru(e){return $s(e)?e[e.length-1]||0:e}function ku(e,t){const n=Nt(e,t);let{transitionEnd:s={},transition:i={},...o}=n||{};o={...o,...s};for(const r in o){const a=Ru(o[r]);Du(e,r,a)}}const xe=e=>!!(e&&e.getVelocity);function Mu(e){return!!(xe(e)&&e.add)}function zs(e,t){const n=e.getValue("willChange");if(Mu(n))return n.add(t);if(!n&&Je.WillChange){const s=new Je.WillChange("auto");e.addValue("willChange",s),s.add(t)}}function Pi(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const Lu="framerAppearId",aa="data-"+Pi(Lu);function la(e){return e.props[aa]}function Iu({protectedKeys:e,needsAnimating:t},n){const s=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,s}function ca(e,t,{delay:n=0,transitionOverride:s,type:i}={}){let{transition:o,transitionEnd:r,...a}=t;const c=e.getDefaultTransition();o=o?ra(o,c):c;const u=o?.reduceMotion;s&&(o=s);const d=[],l=i&&e.animationState&&e.animationState.getState()[i];for(const f in a){const p=e.getValue(f,e.latestValues[f]??null),g=a[f];if(g===void 0||l&&Iu(l,f))continue;const w={delay:n,...wi(o||{},f)},T=p.get();if(T!==void 0&&!p.isAnimating&&!Array.isArray(g)&&g===T&&!w.velocity)continue;let v=!1;if(window.MotionHandoffAnimation){const b=la(e);if(b){const P=window.MotionHandoffAnimation(b,f,Y);P!==null&&(w.startTime=P,v=!0)}}zs(e,f);const A=u??e.shouldReduceMotion;p.start(Si(f,p,g,A&&oa.has(f)?{type:!1}:w,e,v));const y=p.animation;y&&d.push(y)}if(r){const f=()=>Y.update(()=>{r&&ku(e,r)});d.length?Promise.all(d).then(f):f()}return d}function Us(e,t,n={}){const s=Nt(e,t,n.type==="exit"?e.presenceContext?.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const o=s?()=>Promise.all(ca(e,s,n)):()=>Promise.resolve(),r=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:l}=i;return Vu(e,t,c,u,d,l,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[c,u]=a==="beforeChildren"?[o,r]:[r,o];return c().then(()=>u())}else return Promise.all([o(),r(n.delay)])}function Vu(e,t,n=0,s=0,i=0,o=1,r){const a=[];for(const c of e.variantChildren)c.notify("AnimationStart",t),a.push(Us(c,t,{...r,delay:n+(typeof s=="function"?0:s)+sa(e.variantChildren,c,s,i,o)}).then(()=>c.notify("AnimationComplete",t)));return Promise.all(a)}function _u(e,t,n={}){e.notify("AnimationStart",t);let s;if(Array.isArray(t)){const i=t.map(o=>Us(e,o,n));s=Promise.all(i)}else if(typeof t=="string")s=Us(e,t,n);else{const i=typeof t=="function"?Nt(e,t,n.custom):t;s=Promise.all(ca(e,i,n))}return s.then(()=>{e.notify("AnimationComplete",t)})}const ju={test:e=>e==="auto",parse:e=>e},ua=e=>t=>t.test(e),da=[$t,k,Ye,st,uc,cc,ju],ir=e=>da.find(ua(e));function Nu(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||Ao(e):!0}const Ou=new Set(["brightness","contrast","saturate","opacity"]);function Fu(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[s]=n.match(hi)||[];if(!s)return e;const i=n.replace(s,"");let o=Ou.has(t)?1:0;return s!==n&&(o*=100),t+"("+o+i+")"}const Bu=/\b([a-z-]*)\(.*?\)/gu,Ws={...at,getAnimatableNone:e=>{const t=e.match(Bu);return t?t.map(Fu).join(" "):e}},rr={...$t,transform:Math.round},$u={rotate:st,rotateX:st,rotateY:st,rotateZ:st,scale:Tn,scaleX:Tn,scaleY:Tn,scaleZ:Tn,skew:st,skewX:st,skewY:st,distance:k,translateX:k,translateY:k,translateZ:k,x:k,y:k,z:k,perspective:k,transformPerspective:k,opacity:rn,originX:Hi,originY:Hi,originZ:k},Ai={borderWidth:k,borderTopWidth:k,borderRightWidth:k,borderBottomWidth:k,borderLeftWidth:k,borderRadius:k,borderTopLeftRadius:k,borderTopRightRadius:k,borderBottomRightRadius:k,borderBottomLeftRadius:k,width:k,maxWidth:k,height:k,maxHeight:k,top:k,right:k,bottom:k,left:k,inset:k,insetBlock:k,insetBlockStart:k,insetBlockEnd:k,insetInline:k,insetInlineStart:k,insetInlineEnd:k,padding:k,paddingTop:k,paddingRight:k,paddingBottom:k,paddingLeft:k,paddingBlock:k,paddingBlockStart:k,paddingBlockEnd:k,paddingInline:k,paddingInlineStart:k,paddingInlineEnd:k,margin:k,marginTop:k,marginRight:k,marginBottom:k,marginLeft:k,marginBlock:k,marginBlockStart:k,marginBlockEnd:k,marginInline:k,marginInlineStart:k,marginInlineEnd:k,fontSize:k,backgroundPositionX:k,backgroundPositionY:k,...$u,zIndex:rr,fillOpacity:rn,strokeOpacity:rn,numOctaves:rr},zu={...Ai,color:ce,backgroundColor:ce,outlineColor:ce,fill:ce,stroke:ce,borderColor:ce,borderTopColor:ce,borderRightColor:ce,borderBottomColor:ce,borderLeftColor:ce,filter:Ws,WebkitFilter:Ws},fa=e=>zu[e];function ha(e,t){let n=fa(e);return n!==Ws&&(n=at),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const Uu=new Set(["auto","none","0"]);function Wu(e,t,n){let s=0,i;for(;s{t.getValue(a).set(c)}),this.resolveNoneKeyframes()}}const qu=new Set(["opacity","clipPath","filter","transform"]);function pa(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){let s=document;const i=n?.[e]??s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(s=>s!=null)}const ma=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function Hs(e){return Po(e)&&"offsetHeight"in e}const{schedule:Ei}=No(queueMicrotask,!1),ze={x:!1,y:!1};function ga(){return ze.x||ze.y}function Ku(e){return e==="x"||e==="y"?ze[e]?null:(ze[e]=!0,()=>{ze[e]=!1}):ze.x||ze.y?null:(ze.x=ze.y=!0,()=>{ze.x=ze.y=!1})}function ya(e,t){const n=pa(e),s=new AbortController,i={passive:!0,...t,signal:s.signal};return[n,i,()=>s.abort()]}function Gu(e){return!(e.pointerType==="touch"||ga())}function Xu(e,t,n={}){const[s,i,o]=ya(e,n);return s.forEach(r=>{let a=!1,c=!1,u;const d=()=>{r.removeEventListener("pointerleave",g)},l=T=>{u&&(u(T),u=void 0),d()},f=T=>{a=!1,window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",f),c&&(c=!1,l(T))},p=()=>{a=!0,window.addEventListener("pointerup",f,i),window.addEventListener("pointercancel",f,i)},g=T=>{if(T.pointerType!=="touch"){if(a){c=!0;return}l(T)}},w=T=>{if(!Gu(T))return;c=!1;const v=t(r,T);typeof v=="function"&&(u=v,r.addEventListener("pointerleave",g,i))};r.addEventListener("pointerenter",w,i),r.addEventListener("pointerdown",p,i)}),o}const va=(e,t)=>t?e===t?!0:va(e,t.parentElement):!1,Ci=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,Yu=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Qu(e){return Yu.has(e.tagName)||e.isContentEditable===!0}const Zu=new Set(["INPUT","SELECT","TEXTAREA"]);function Ju(e){return Zu.has(e.tagName)||e.isContentEditable===!0}const Mn=new WeakSet;function or(e){return t=>{t.key==="Enter"&&e(t)}}function us(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const ed=(e,t)=>{const n=e.currentTarget;if(!n)return;const s=or(()=>{if(Mn.has(n))return;us(n,"down");const i=or(()=>{us(n,"up")}),o=()=>us(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",o,t)});n.addEventListener("keydown",s,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",s),t)};function ar(e){return Ci(e)&&!ga()}const lr=new WeakSet;function td(e,t,n={}){const[s,i,o]=ya(e,n),r=a=>{const c=a.currentTarget;if(!ar(a)||lr.has(a))return;Mn.add(c),n.stopPropagation&&lr.add(a);const u=t(c,a),d=(p,g)=>{window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",f),Mn.has(c)&&Mn.delete(c),ar(p)&&typeof u=="function"&&u(p,{success:g})},l=p=>{d(p,c===window||c===document||n.useGlobalTarget||va(c,p.target))},f=p=>{d(p,!1)};window.addEventListener("pointerup",l,i),window.addEventListener("pointercancel",f,i)};return s.forEach(a=>{(n.useGlobalTarget?window:a).addEventListener("pointerdown",r,i),Hs(a)&&(a.addEventListener("focus",u=>ed(u,i)),!Qu(a)&&!a.hasAttribute("tabindex")&&(a.tabIndex=0))}),o}function Di(e){return Po(e)&&"ownerSVGElement"in e}const Ln=new WeakMap;let In;const ba=(e,t,n)=>(s,i)=>i&&i[0]?i[0][e+"Size"]:Di(s)&&"getBBox"in s?s.getBBox()[t]:s[n],nd=ba("inline","width","offsetWidth"),sd=ba("block","height","offsetHeight");function id({target:e,borderBoxSize:t}){Ln.get(e)?.forEach(n=>{n(e,{get width(){return nd(e,t)},get height(){return sd(e,t)}})})}function rd(e){e.forEach(id)}function od(){typeof ResizeObserver>"u"||(In=new ResizeObserver(rd))}function ad(e,t){In||od();const n=pa(e);return n.forEach(s=>{let i=Ln.get(s);i||(i=new Set,Ln.set(s,i)),i.add(t),In?.observe(s)}),()=>{n.forEach(s=>{const i=Ln.get(s);i?.delete(t),i?.size||In?.unobserve(s)})}}const Vn=new Set;let It;function ld(){It=()=>{const e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Vn.forEach(t=>t(e))},window.addEventListener("resize",It)}function cd(e){return Vn.add(e),It||ld(),()=>{Vn.delete(e),!Vn.size&&typeof It=="function"&&(window.removeEventListener("resize",It),It=void 0)}}function cr(e,t){return typeof e=="function"?cd(e):ad(e,t)}function ud(e){return Di(e)&&e.tagName==="svg"}const dd=[...da,ce,at],fd=e=>dd.find(ua(e)),ur=()=>({translate:0,scale:1,origin:0,originPoint:0}),Vt=()=>({x:ur(),y:ur()}),dr=()=>({min:0,max:0}),de=()=>({x:dr(),y:dr()}),hd=new WeakMap;function Xn(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function an(e){return typeof e=="string"||Array.isArray(e)}const Ri=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],ki=["initial",...Ri];function Yn(e){return Xn(e.animate)||ki.some(t=>an(e[t]))}function xa(e){return!!(Yn(e)||e.variants)}function pd(e,t,n){for(const s in t){const i=t[s],o=n[s];if(xe(i))e.addValue(s,i);else if(xe(o))e.addValue(s,Ft(i,{owner:e}));else if(o!==i)if(e.hasValue(s)){const r=e.getValue(s);r.liveStyle===!0?r.jump(i):r.hasAnimated||r.set(i)}else{const r=e.getStaticValue(s);e.addValue(s,Ft(r!==void 0?r:i,{owner:e}))}}for(const s in n)t[s]===void 0&&e.removeValue(s);return t}const qs={current:null},wa={current:!1},md=typeof window<"u";function gd(){if(wa.current=!0,!!md)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>qs.current=e.matches;e.addEventListener("change",t),t()}else qs.current=!1}const fr=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Wn={};function Sa(e){Wn=e}function yd(){return Wn}class vd{scrapeMotionValuesFromProps(t,n,s){return{}}constructor({parent:t,props:n,presenceContext:s,reducedMotionConfig:i,skipAnimations:o,blockInitialAnimation:r,visualState:a},c={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=xi,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=Te.now();this.renderScheduledAtthis.bindToMotionValue(s,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(wa.current||gd(),this.shouldReduceMotion=qs.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),ot(this.notifyUpdate),ot(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,n){if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),n.accelerate&&qu.has(t)&&this.current instanceof HTMLElement){const{factory:r,keyframes:a,times:c,ease:u,duration:d}=n.accelerate,l=new ta({element:this.current,name:t,keyframes:a,times:c,ease:u,duration:Ue(d)}),f=r(l);this.valueSubscriptions.set(t,()=>{f(),l.cancel()});return}const s=Ut.has(t);s&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",r=>{this.latestValues[t]=r,this.props.onUpdate&&Y.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let o;typeof window<"u"&&window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Wn){const n=Wn[t];if(!n)continue;const{isEnabled:s,Feature:i}=n;if(!this.features[t]&&i&&s(this.props)&&(this.features[t]=new i(this)),this.features[t]){const o=this.features[t];o.isMounted?o.update():(o.mount(),o.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):de()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let s=0;sn.variantChildren.delete(t)}addValue(t,n){const s=this.values.get(t);n!==s&&(s&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let s=this.values.get(t);return s===void 0&&n!==void 0&&(s=Ft(n===null?void 0:n,{owner:this}),this.addValue(t,s)),s}readValue(t,n){let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(To(s)||Ao(s))?s=parseFloat(s):!fd(s)&&at.test(n)&&(s=ha(t,n)),this.setBaseTarget(t,xe(s)?s.get():s)),xe(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){const{initial:n}=this.props;let s;if(typeof n=="string"||typeof n=="object"){const o=Ti(this.props,n,this.presenceContext?.custom);o&&(s=o[t])}if(n&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!xe(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new ci),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){Ei.render(this.render)}}class Ta extends vd{constructor(){super(...arguments),this.KeyframeResolver=Hu}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){const s=t.style;return s?s[n]:void 0}removeValueFromRenderState(t,{vars:n,style:s}){delete n[t],delete s[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;xe(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class ct{constructor(t){this.isMounted=!1,this.node=t}update(){}}function Pa({top:e,left:t,right:n,bottom:s}){return{x:{min:t,max:n},y:{min:e,max:s}}}function bd({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function xd(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),s=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:s.y,right:s.x}}function ds(e){return e===void 0||e===1}function Ks({scale:e,scaleX:t,scaleY:n}){return!ds(e)||!ds(t)||!ds(n)}function yt(e){return Ks(e)||Aa(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Aa(e){return hr(e.x)||hr(e.y)}function hr(e){return e&&e!=="0%"}function Hn(e,t,n){const s=e-n,i=t*s;return n+i}function pr(e,t,n,s,i){return i!==void 0&&(e=Hn(e,i,s)),Hn(e,n,s)+t}function Gs(e,t=0,n=1,s,i){e.min=pr(e.min,t,n,s,i),e.max=pr(e.max,t,n,s,i)}function Ea(e,{x:t,y:n}){Gs(e.x,t.translate,t.scale,t.originPoint),Gs(e.y,n.translate,n.scale,n.originPoint)}const mr=.999999999999,gr=1.0000000000001;function wd(e,t,n,s=!1){const i=n.length;if(!i)return;t.x=t.y=1;let o,r;for(let a=0;amr&&(t.x=1),t.ymr&&(t.y=1)}function _t(e,t){e.min=e.min+t,e.max=e.max+t}function yr(e,t,n,s,i=.5){const o=Z(e.min,e.max,i);Gs(e,t,n,o,s)}function jt(e,t){yr(e.x,t.x,t.scaleX,t.scale,t.originX),yr(e.y,t.y,t.scaleY,t.scale,t.originY)}function Ca(e,t){return Pa(xd(e.getBoundingClientRect(),t))}function Sd(e,t,n){const s=Ca(e,n),{scroll:i}=t;return i&&(_t(s.x,i.offset.x),_t(s.y,i.offset.y)),s}const Td={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Pd=zt.length;function Ad(e,t,n){let s="",i=!0;for(let o=0;o{if(!t.target)return e;if(typeof e=="string")if(k.test(e))e=parseFloat(e);else return e;const n=vr(e,t.target.x),s=vr(e,t.target.y);return`${n}% ${s}%`}},Ed={correct:(e,{treeScale:t,projectionDelta:n})=>{const s=e,i=at.parse(e);if(i.length>5)return s;const o=at.createTransformer(e),r=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,c=n.y.scale*t.y;i[0+r]/=a,i[1+r]/=c;const u=Z(a,c,.5);return typeof i[2+r]=="number"&&(i[2+r]/=u),typeof i[3+r]=="number"&&(i[3+r]/=u),o(i)}},Xs={borderRadius:{...Gt,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Gt,borderTopRightRadius:Gt,borderBottomLeftRadius:Gt,borderBottomRightRadius:Gt,boxShadow:Ed};function Ra(e,{layout:t,layoutId:n}){return Ut.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Xs[e]||e==="opacity")}function Li(e,t,n){const s=e.style,i=t?.style,o={};if(!s)return o;for(const r in s)(xe(s[r])||i&&xe(i[r])||Ra(r,e)||n?.getValue(r)?.liveStyle!==void 0)&&(o[r]=s[r]);return o}function Cd(e){return window.getComputedStyle(e)}class Dd extends Ta{constructor(){super(...arguments),this.type="html",this.renderInstance=Da}readValueFromInstance(t,n){if(Ut.has(n))return this.projection?.isProjecting?_s(n):Kc(t,n);{const s=Cd(t),i=(Fo(n)?s.getPropertyValue(n):s[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Ca(t,n)}build(t,n,s){Mi(t,n,s.transformTemplate)}scrapeMotionValuesFromProps(t,n,s){return Li(t,n,s)}}const Rd={offset:"stroke-dashoffset",array:"stroke-dasharray"},kd={offset:"strokeDashoffset",array:"strokeDasharray"};function Md(e,t,n=1,s=0,i=!0){e.pathLength=1;const o=i?Rd:kd;e[o.offset]=`${-s}`,e[o.array]=`${t} ${n}`}const Ld=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function ka(e,{attrX:t,attrY:n,attrScale:s,pathLength:i,pathSpacing:o=1,pathOffset:r=0,...a},c,u,d){if(Mi(e,a,u),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:l,style:f}=e;l.transform&&(f.transform=l.transform,delete l.transform),(f.transform||l.transformOrigin)&&(f.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),f.transform&&(f.transformBox=d?.transformBox??"fill-box",delete l.transformBox);for(const p of Ld)l[p]!==void 0&&(f[p]=l[p],delete l[p]);t!==void 0&&(l.x=t),n!==void 0&&(l.y=n),s!==void 0&&(l.scale=s),i!==void 0&&Md(l,i,o,r,!1)}const Ma=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),La=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Id(e,t,n,s){Da(e,t,void 0,s);for(const i in t.attrs)e.setAttribute(Ma.has(i)?i:Pi(i),t.attrs[i])}function Ia(e,t,n){const s=Li(e,t,n);for(const i in e)if(xe(e[i])||xe(t[i])){const o=zt.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;s[o]=e[i]}return s}class Vd extends Ta{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=de}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Ut.has(n)){const s=fa(n);return s&&s.default||0}return n=Ma.has(n)?n:Pi(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,s){return Ia(t,n,s)}build(t,n,s){ka(t,n,this.isSVGTag,s.transformTemplate,s.style)}renderInstance(t,n,s,i){Id(t,n,s,i)}mount(t){this.isSVGTag=La(t.tagName),super.mount(t)}}const _d=ki.length;function Va(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Va(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<_d;n++){const s=ki[n],i=e.props[s];(an(i)||i===!1)&&(t[s]=i)}return t}function _a(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let s=0;sPromise.all(t.map(({animation:n,options:s})=>_u(e,n,s)))}function Fd(e){let t=Od(e),n=br(),s=!0;const i=c=>(u,d)=>{const l=Nt(e,d,c==="exit"?e.presenceContext?.custom:void 0);if(l){const{transition:f,transitionEnd:p,...g}=l;u={...u,...g,...p}}return u};function o(c){t=c(e)}function r(c){const{props:u}=e,d=Va(e.parent)||{},l=[],f=new Set;let p={},g=1/0;for(let T=0;Tg&&b,R=!1;const L=Array.isArray(y)?y:[y];let _=L.reduce(i(v),{});P===!1&&(_={});const{prevResolvedValues:oe={}}=A,J={...oe,..._},ge=V=>{x=!0,f.has(V)&&(R=!0,f.delete(V)),A.needsAnimating[V]=!0;const W=e.getValue(V);W&&(W.liveStyle=!1)};for(const V in J){const W=_[V],ee=oe[V];if(p.hasOwnProperty(V))continue;let G=!1;$s(W)&&$s(ee)?G=!_a(W,ee):G=W!==ee,G?W!=null?ge(V):f.add(V):W!==void 0&&f.has(V)?ge(V):A.protectedKeys[V]=!0}A.prevProp=y,A.prevResolvedValues=_,A.isActive&&(p={...p,..._}),s&&e.blockInitialAnimation&&(x=!1);const Me=S&&I;x&&(!Me||R)&&l.push(...L.map(V=>{const W={type:v};if(typeof V=="string"&&s&&!Me&&e.manuallyAnimateOnMount&&e.parent){const{parent:ee}=e,G=Nt(ee,V);if(ee.enteringChildren&&G){const{delayChildren:Q}=G.transition||{};W.delay=sa(ee.enteringChildren,e,Q)}}return{animation:V,options:W}}))}if(f.size){const T={};if(typeof u.initial!="boolean"){const v=Nt(e,Array.isArray(u.initial)?u.initial[0]:u.initial);v&&v.transition&&(T.transition=v.transition)}f.forEach(v=>{const A=e.getBaseTarget(v),y=e.getValue(v);y&&(y.liveStyle=!0),T[v]=A??null}),l.push({animation:T})}let w=!!l.length;return s&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(w=!1),s=!1,w?t(l):Promise.resolve()}function a(c,u){if(n[c].isActive===u)return Promise.resolve();e.variantChildren?.forEach(l=>l.animationState?.setActive(c,u)),n[c].isActive=u;const d=r(c);for(const l in n)n[l].protectedKeys={};return d}return{animateChanges:r,setActive:a,setAnimateFunction:o,getState:()=>n,reset:()=>{n=br()}}}function Bd(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!_a(t,e):!1}function mt(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function br(){return{animate:mt(!0),whileInView:mt(),whileHover:mt(),whileTap:mt(),whileDrag:mt(),whileFocus:mt(),exit:mt()}}function xr(e,t){e.min=t.min,e.max=t.max}function $e(e,t){xr(e.x,t.x),xr(e.y,t.y)}function wr(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const ja=1e-4,$d=1-ja,zd=1+ja,Na=.01,Ud=0-Na,Wd=0+Na;function Pe(e){return e.max-e.min}function Hd(e,t,n){return Math.abs(e-t)<=n}function Sr(e,t,n,s=.5){e.origin=s,e.originPoint=Z(t.min,t.max,e.origin),e.scale=Pe(n)/Pe(t),e.translate=Z(n.min,n.max,e.origin)-e.originPoint,(e.scale>=$d&&e.scale<=zd||isNaN(e.scale))&&(e.scale=1),(e.translate>=Ud&&e.translate<=Wd||isNaN(e.translate))&&(e.translate=0)}function Jt(e,t,n,s){Sr(e.x,t.x,n.x,s?s.originX:void 0),Sr(e.y,t.y,n.y,s?s.originY:void 0)}function Tr(e,t,n){e.min=n.min+t.min,e.max=e.min+Pe(t)}function qd(e,t,n){Tr(e.x,t.x,n.x),Tr(e.y,t.y,n.y)}function Pr(e,t,n){e.min=t.min-n.min,e.max=e.min+Pe(t)}function qn(e,t,n){Pr(e.x,t.x,n.x),Pr(e.y,t.y,n.y)}function Ar(e,t,n,s,i){return e-=t,e=Hn(e,1/n,s),i!==void 0&&(e=Hn(e,1/i,s)),e}function Kd(e,t=0,n=1,s=.5,i,o=e,r=e){if(Ye.test(t)&&(t=parseFloat(t),t=Z(r.min,r.max,t/100)-r.min),typeof t!="number")return;let a=Z(o.min,o.max,s);e===o&&(a-=t),e.min=Ar(e.min,t,n,a,i),e.max=Ar(e.max,t,n,a,i)}function Er(e,t,[n,s,i],o,r){Kd(e,t[n],t[s],t[i],t.scale,o,r)}const Gd=["x","scaleX","originX"],Xd=["y","scaleY","originY"];function Cr(e,t,n,s){Er(e.x,t,Gd,n?n.x:void 0,s?s.x:void 0),Er(e.y,t,Xd,n?n.y:void 0,s?s.y:void 0)}function Dr(e){return e.translate===0&&e.scale===1}function Oa(e){return Dr(e.x)&&Dr(e.y)}function Rr(e,t){return e.min===t.min&&e.max===t.max}function Yd(e,t){return Rr(e.x,t.x)&&Rr(e.y,t.y)}function kr(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Fa(e,t){return kr(e.x,t.x)&&kr(e.y,t.y)}function Mr(e){return Pe(e.x)/Pe(e.y)}function Lr(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Xe(e){return[e("x"),e("y")]}function Qd(e,t,n){let s="";const i=e.x.translate/t.x,o=e.y.translate/t.y,r=n?.z||0;if((i||o||r)&&(s=`translate3d(${i}px, ${o}px, ${r}px) `),(t.x!==1||t.y!==1)&&(s+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:l,rotateY:f,skewX:p,skewY:g}=n;u&&(s=`perspective(${u}px) ${s}`),d&&(s+=`rotate(${d}deg) `),l&&(s+=`rotateX(${l}deg) `),f&&(s+=`rotateY(${f}deg) `),p&&(s+=`skewX(${p}deg) `),g&&(s+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,c=e.y.scale*t.y;return(a!==1||c!==1)&&(s+=`scale(${a}, ${c})`),s||"none"}const Ba=["TopLeft","TopRight","BottomLeft","BottomRight"],Zd=Ba.length,Ir=e=>typeof e=="string"?parseFloat(e):e,Vr=e=>typeof e=="number"||k.test(e);function Jd(e,t,n,s,i,o){i?(e.opacity=Z(0,n.opacity??1,ef(s)),e.opacityExit=Z(t.opacity??1,0,tf(s))):o&&(e.opacity=Z(t.opacity??1,n.opacity??1,s));for(let r=0;rst?1:n(sn(e,t,s))}function nf(e,t,n){const s=xe(e)?e:Ft(e);return s.start(Si("",s,t,n)),s.animation}function ln(e,t,n,s={passive:!0}){return e.addEventListener(t,n,s),()=>e.removeEventListener(t,n)}const sf=(e,t)=>e.depth-t.depth;class rf{constructor(){this.children=[],this.isDirty=!1}add(t){oi(this.children,t),this.isDirty=!0}remove(t){Bn(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(sf),this.isDirty=!1,this.children.forEach(t)}}function of(e,t){const n=Te.now(),s=({timestamp:i})=>{const o=i-n;o>=t&&(ot(s),e(o-t))};return Y.setup(s,!0),()=>ot(s)}function _n(e){return xe(e)?e.get():e}class af{constructor(){this.members=[]}add(t){oi(this.members,t);for(let n=this.members.length-1;n>=0;n--){const s=this.members[n];if(s===t||s===this.lead||s===this.prevLead)continue;const i=s.instance;i&&i.isConnected===!1&&s.isPresent!==!1&&!s.snapshot&&Bn(this.members,s)}t.scheduleRender()}remove(t){if(Bn(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let s;for(let i=n;i>=0;i--){const o=this.members[i],r=o.instance;if(o.isPresent!==!1&&(!r||r.isConnected!==!1)){s=o;break}}return s?(this.promote(s),!0):!1}promote(t,n){const s=this.lead;if(t!==s&&(this.prevLead=s,this.lead=t,t.show(),s)){s.instance&&s.scheduleRender(),t.scheduleRender();const i=s.options.layoutDependency,o=t.options.layoutDependency;if(!(i!==void 0&&o!==void 0&&i===o)){const c=s.instance;c&&c.isConnected===!1&&!s.snapshot||(t.resumeFrom=s,n&&(t.resumeFrom.preserveOpacity=!0),s.snapshot&&(t.snapshot=s.snapshot,t.snapshot.latestValues=s.animationValues||s.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0))}const{crossfade:a}=t.options;a===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:s}=t;n.onExitComplete&&n.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}const jn={hasAnimatedSinceResize:!0,hasEverUpdated:!1},fs=["","X","Y","Z"],lf=1e3;let cf=0;function hs(e,t,n,s){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),s&&(s[e]=0))}function za(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=la(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:o}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Y,!(i||o))}const{parent:s}=e;s&&!s.hasCheckedOptimisedAppear&&za(s)}function Ua({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:s,resetTransform:i}){return class{constructor(r={},a=t?.()){this.id=cf++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(ff),this.nodes.forEach(gf),this.nodes.forEach(yf),this.nodes.forEach(hf)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=r,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;Y.read(()=>{l=window.innerWidth}),e(r,()=>{const p=window.innerWidth;p!==l&&(l=p,this.root.updateBlockedByResize=!0,d&&d(),d=of(f,250),jn.hasAnimatedSinceResize&&(jn.hasAnimatedSinceResize=!1,this.nodes.forEach(Or)))})}a&&this.root.registerSharedNode(a,this),this.options.animate!==!1&&u&&(a||c)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:l,hasRelativeLayoutChanged:f,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||u.getDefaultTransition()||Sf,{onLayoutAnimationStart:w,onLayoutAnimationComplete:T}=u.getProps(),v=!this.targetLayout||!Fa(this.targetLayout,p),A=!l&&f;if(this.options.layoutRoot||this.resumeFrom||A||l&&(v||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const y={...wi(g,"layout"),onPlay:w,onComplete:T};(u.shouldReduceMotion||this.options.layoutRoot)&&(y.delay=0,y.type=!1),this.startAnimation(y),this.setAnimationOrigin(d,A)}else l||Or(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const r=this.getStack();r&&r.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),ot(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(vf),this.animationId++)}getTransformTemplate(){const{visualElement:r}=this.options;return r&&r.getProps().transformTemplate}willUpdate(r=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&za(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Pe(this.snapshot.measuredBox.x)&&!Pe(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const P=b/1e3;Fr(l.x,r.x,P),Fr(l.y,r.y,P),this.setTargetDelta(l),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(qn(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),xf(this.relativeTarget,this.relativeTargetOrigin,f,P),y&&Yd(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=de()),$e(y,this.relativeTarget)),w&&(this.animationValues=d,Jd(d,u,this.latestValues,P,A,v)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=P},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(r){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(ot(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Y.update(()=>{jn.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ft(0)),this.currentAnimation=nf(this.motionValue,[0,1e3],{...r,velocity:0,isSync:!0,onUpdate:a=>{this.mixTargetDelta(a),r.onUpdate&&r.onUpdate(a)},onStop:()=>{},onComplete:()=>{r.onComplete&&r.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const r=this.getStack();r&&r.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(lf),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const r=this.getLead();let{targetWithTransforms:a,target:c,layout:u,latestValues:d}=r;if(!(!a||!c||!u)){if(this!==r&&this.layout&&u&&Wa(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||de();const l=Pe(this.layout.layoutBox.x);c.x.min=r.target.x.min,c.x.max=c.x.min+l;const f=Pe(this.layout.layoutBox.y);c.y.min=r.target.y.min,c.y.max=c.y.min+f}$e(a,c),jt(a,d),Jt(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(r,a){this.sharedNodes.has(r)||this.sharedNodes.set(r,new af),this.sharedNodes.get(r).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const r=this.getStack();return r?r.lead===this:!0}getLead(){const{layoutId:r}=this.options;return r?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:r}=this.options;return r?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:r}=this.options;if(r)return this.root.sharedNodes.get(r)}promote({needsReset:r,transition:a,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),r&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const r=this.getStack();return r?r.relegate(this):!1}resetSkewAndRotation(){const{visualElement:r}=this.options;if(!r)return;let a=!1;const{latestValues:c}=r;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(a=!0),!a)return;const u={};c.z&&hs("z",r,u,this.animationValues);for(let d=0;dr.currentAnimation?.stop()),this.root.nodes.forEach(jr),this.root.sharedNodes.clear()}}}function uf(e){e.updateLayout()}function df(e){const t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:s}=e.layout,{animationType:i}=e.options,o=t.source!==e.layout.source;i==="size"?Xe(d=>{const l=o?t.measuredBox[d]:t.layoutBox[d],f=Pe(l);l.min=n[d].min,l.max=l.min+f}):Wa(i,t.layoutBox,n)&&Xe(d=>{const l=o?t.measuredBox[d]:t.layoutBox[d],f=Pe(n[d]);l.max=l.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+f)});const r=Vt();Jt(r,n,t.layoutBox);const a=Vt();o?Jt(a,e.applyTransform(s,!0),t.measuredBox):Jt(a,n,t.layoutBox);const c=!Oa(r);let u=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:l,layout:f}=d;if(l&&f){const p=de();qn(p,t.layoutBox,l.layoutBox);const g=de();qn(g,n,f.layoutBox),Fa(p,g)||(u=!0),d.options.layoutRoot&&(e.relativeTarget=g,e.relativeTargetOrigin=p,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:t,delta:a,layoutDelta:r,hasLayoutChanged:c,hasRelativeLayoutChanged:u})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function ff(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hf(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function pf(e){e.clearSnapshot()}function jr(e){e.clearMeasurements()}function Nr(e){e.isLayoutDirty=!1}function mf(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Or(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function gf(e){e.resolveTargetDelta()}function yf(e){e.calcProjection()}function vf(e){e.resetSkewAndRotation()}function bf(e){e.removeLeadSnapshot()}function Fr(e,t,n){e.translate=Z(t.translate,0,n),e.scale=Z(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Br(e,t,n,s){e.min=Z(t.min,n.min,s),e.max=Z(t.max,n.max,s)}function xf(e,t,n,s){Br(e.x,t.x,n.x,s),Br(e.y,t.y,n.y,s)}function wf(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Sf={duration:.45,ease:[.4,0,.1,1]},$r=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),zr=$r("applewebkit/")&&!$r("chrome/")?Math.round:Fe;function Ur(e){e.min=zr(e.min),e.max=zr(e.max)}function Tf(e){Ur(e.x),Ur(e.y)}function Wa(e,t,n){return e==="position"||e==="preserve-aspect"&&!Hd(Mr(t),Mr(n),.2)}function Pf(e){return e!==e.root&&e.scroll?.wasRoot}const Af=Ua({attachResizeListener:(e,t)=>ln(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),ps={current:void 0},Ha=Ua({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!ps.current){const e=new Af({});e.mount(window),e.setOptions({layoutScroll:!0}),ps.current=e}return ps.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Ii=h.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function Wr(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ef(...e){return t=>{let n=!1;const s=e.map(i=>{const o=Wr(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{width:f,height:p,top:g,left:w,right:T,bottom:v}=c.current;if(t||o===!1||!a.current||!f||!p)return;const A=n==="left"?`left: ${w}`:`right: ${T}`,y=s==="bottom"?`bottom: ${v}`:`top: ${g}`;a.current.dataset.motionPopId=r;const b=document.createElement("style");u&&(b.nonce=u);const P=i??document.head;return P.appendChild(b),b.sheet&&b.sheet.insertRule(` - [data-motion-pop-id="${r}"] { - position: absolute !important; - width: ${f}px !important; - height: ${p}px !important; - ${A}px !important; - ${y}px !important; - } - `),()=>{P.contains(b)&&P.removeChild(b)}},[t]),m.jsx(Df,{isPresent:t,childRef:a,sizeRef:c,pop:o,children:o===!1?e:h.cloneElement(e,{ref:l})})}const kf=({children:e,initial:t,isPresent:n,onExitComplete:s,custom:i,presenceAffectsLayout:o,mode:r,anchorX:a,anchorY:c,root:u})=>{const d=ri(Mf),l=h.useId();let f=!0,p=h.useMemo(()=>(f=!1,{id:l,initial:t,isPresent:n,custom:i,onExitComplete:g=>{d.set(g,!0);for(const w of d.values())if(!w)return;s&&s()},register:g=>(d.set(g,!1),()=>d.delete(g))}),[n,d,s]);return o&&f&&(p={...p}),h.useMemo(()=>{d.forEach((g,w)=>d.set(w,!1))},[n]),h.useEffect(()=>{!n&&!d.size&&s&&s()},[n]),e=m.jsx(Rf,{pop:r==="popLayout",isPresent:n,anchorX:a,anchorY:c,root:u,children:e}),m.jsx(Gn.Provider,{value:p,children:e})};function Mf(){return new Map}function qa(e=!0){const t=h.useContext(Gn);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:s,register:i}=t,o=h.useId();h.useEffect(()=>{if(e)return i(o)},[e]);const r=h.useCallback(()=>e&&s&&s(o),[o,s,e]);return!n&&s?[!1,r]:[!0]}const Pn=e=>e.key||"";function Hr(e){const t=[];return h.Children.forEach(e,n=>{h.isValidElement(n)&&t.push(n)}),t}const Lf=({children:e,custom:t,initial:n=!0,onExitComplete:s,presenceAffectsLayout:i=!0,mode:o="sync",propagate:r=!1,anchorX:a="left",anchorY:c="top",root:u})=>{const[d,l]=qa(r),f=h.useMemo(()=>Hr(e),[e]),p=r&&!d?[]:f.map(Pn),g=h.useRef(!0),w=h.useRef(f),T=ri(()=>new Map),v=h.useRef(new Set),[A,y]=h.useState(f),[b,P]=h.useState(f);So(()=>{g.current=!1,w.current=f;for(let x=0;x{const R=Pn(x),L=r&&!d?!1:f===b||p.includes(R),_=()=>{if(v.current.has(R))return;if(v.current.add(R),T.has(R))T.set(R,!0);else return;let oe=!0;T.forEach(J=>{J||(oe=!1)}),oe&&(I?.(),P(w.current),r&&l?.(),s&&s())};return m.jsx(kf,{isPresent:L,initial:!g.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:o,root:u,onExitComplete:L?void 0:_,anchorX:a,anchorY:c,children:x},R)})})},Ka=h.createContext({strict:!1}),qr={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Kr=!1;function If(){if(Kr)return;const e={};for(const t in qr)e[t]={isEnabled:n=>qr[t].some(s=>!!n[s])};Sa(e),Kr=!0}function Ga(){return If(),yd()}function Vf(e){const t=Ga();for(const n in e)t[n]={...t[n],...e[n]};Sa(t)}const _f=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Kn(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||_f.has(e)}let Xa=e=>!Kn(e);function jf(e){typeof e=="function"&&(Xa=t=>t.startsWith("on")?!Kn(t):e(t))}try{jf(require("@emotion/is-prop-valid").default)}catch{}function Nf(e,t,n){const s={};for(const i in e)i==="values"&&typeof e.values=="object"||(Xa(i)||n===!0&&Kn(i)||!t&&!Kn(i)||e.draggable&&i.startsWith("onDrag"))&&(s[i]=e[i]);return s}const Qn=h.createContext({});function Of(e,t){if(Yn(e)){const{initial:n,animate:s}=e;return{initial:n===!1||an(n)?n:void 0,animate:an(s)?s:void 0}}return e.inherit!==!1?t:{}}function Ff(e){const{initial:t,animate:n}=Of(e,h.useContext(Qn));return h.useMemo(()=>({initial:t,animate:n}),[Gr(t),Gr(n)])}function Gr(e){return Array.isArray(e)?e.join(" "):e}const Vi=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Ya(e,t,n){for(const s in t)!xe(t[s])&&!Ra(s,n)&&(e[s]=t[s])}function Bf({transformTemplate:e},t){return h.useMemo(()=>{const n=Vi();return Mi(n,t,e),Object.assign({},n.vars,n.style)},[t])}function $f(e,t){const n=e.style||{},s={};return Ya(s,n,e),Object.assign(s,Bf(e,t)),s}function zf(e,t){const n={},s=$f(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=s,n}const Qa=()=>({...Vi(),attrs:{}});function Uf(e,t,n,s){const i=h.useMemo(()=>{const o=Qa();return ka(o,t,La(s),e.transformTemplate,e.style),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};Ya(o,e.style,e),i.style={...o,...i.style}}return i}const Wf=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function _i(e){return typeof e!="string"||e.includes("-")?!1:!!(Wf.indexOf(e)>-1||/[A-Z]/u.test(e))}function Hf(e,t,n,{latestValues:s},i,o=!1,r){const c=(r??_i(e)?Uf:zf)(t,s,i,e),u=Nf(t,typeof e=="string",o),d=e!==h.Fragment?{...u,...c,ref:n}:{},{children:l}=t,f=h.useMemo(()=>xe(l)?l.get():l,[l]);return h.createElement(e,{...d,children:f})}function qf({scrapeMotionValuesFromProps:e,createRenderState:t},n,s,i){return{latestValues:Kf(n,s,i,e),renderState:t()}}function Kf(e,t,n,s){const i={},o=s(e,{});for(const f in o)i[f]=_n(o[f]);let{initial:r,animate:a}=e;const c=Yn(e),u=xa(e);t&&u&&!c&&e.inherit!==!1&&(r===void 0&&(r=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||r===!1;const l=d?a:r;if(l&&typeof l!="boolean"&&!Xn(l)){const f=Array.isArray(l)?l:[l];for(let p=0;p(t,n)=>{const s=h.useContext(Qn),i=h.useContext(Gn),o=()=>qf(e,t,s,i);return n?o():ri(o)},Gf=Za({scrapeMotionValuesFromProps:Li,createRenderState:Vi}),Xf=Za({scrapeMotionValuesFromProps:Ia,createRenderState:Qa}),Yf=Symbol.for("motionComponentSymbol");function Qf(e,t,n){const s=h.useRef(n);h.useInsertionEffect(()=>{s.current=n});const i=h.useRef(null);return h.useCallback(o=>{o&&e.onMount?.(o),t&&(o?t.mount(o):t.unmount());const r=s.current;if(typeof r=="function")if(o){const a=r(o);typeof a=="function"&&(i.current=a)}else i.current?(i.current(),i.current=null):r(o);else r&&(r.current=o)},[t])}const Ja=h.createContext({});function Mt(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function Zf(e,t,n,s,i,o){const{visualElement:r}=h.useContext(Qn),a=h.useContext(Ka),c=h.useContext(Gn),u=h.useContext(Ii),d=u.reducedMotion,l=u.skipAnimations,f=h.useRef(null),p=h.useRef(!1);s=s||a.renderer,!f.current&&s&&(f.current=s(e,{visualState:t,parent:r,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d,skipAnimations:l,isSVG:o}),p.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));const g=f.current,w=h.useContext(Ja);g&&!g.projection&&i&&(g.type==="html"||g.type==="svg")&&Jf(f.current,n,i,w);const T=h.useRef(!1);h.useInsertionEffect(()=>{g&&T.current&&g.update(n,c)});const v=n[aa],A=h.useRef(!!v&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return So(()=>{p.current=!0,g&&(T.current=!0,window.MotionIsMounted=!0,g.updateFeatures(),g.scheduleRenderMicrotask(),A.current&&g.animationState&&g.animationState.animateChanges())}),h.useEffect(()=>{g&&(!A.current&&g.animationState&&g.animationState.animateChanges(),A.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),A.current=!1),g.enteringChildren=void 0)}),g}function Jf(e,t,n,s){const{layoutId:i,layout:o,drag:r,dragConstraints:a,layoutScroll:c,layoutRoot:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:el(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!r||a&&Mt(a),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:s,crossfade:d,layoutScroll:c,layoutRoot:u})}function el(e){if(e)return e.options.allowProjection!==!1?e.projection:el(e.parent)}function ms(e,{forwardMotionProps:t=!1,type:n}={},s,i){s&&Vf(s);const o=n?n==="svg":_i(e),r=o?Xf:Gf;function a(u,d){let l;const f={...h.useContext(Ii),...u,layoutId:eh(u)},{isStatic:p}=f,g=Ff(u),w=r(u,p);if(!p&&wo){th();const T=nh(f);l=T.MeasureLayout,g.visualElement=Zf(e,w,f,i,T.ProjectionNode,o)}return m.jsxs(Qn.Provider,{value:g,children:[l&&g.visualElement?m.jsx(l,{visualElement:g.visualElement,...f}):null,Hf(e,u,Qf(w,g.visualElement,d),w,p,t,o)]})}a.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const c=h.forwardRef(a);return c[Yf]=e,c}function eh({layoutId:e}){const t=h.useContext(ii).id;return t&&e!==void 0?t+"-"+e:e}function th(e,t){h.useContext(Ka).strict}function nh(e){const t=Ga(),{drag:n,layout:s}=t;if(!n&&!s)return{};const i={...n,...s};return{MeasureLayout:n?.isEnabled(e)||s?.isEnabled(e)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function sh(e,t){if(typeof Proxy>"u")return ms;const n=new Map,s=(o,r)=>ms(o,r,e,t),i=(o,r)=>s(o,r);return new Proxy(i,{get:(o,r)=>r==="create"?s:(n.has(r)||n.set(r,ms(r,void 0,e,t)),n.get(r))})}const ih=(e,t)=>t.isSVG??_i(e)?new Vd(t):new Dd(t,{allowProjection:e!==h.Fragment});class rh extends ct{constructor(t){super(t),t.animationState||(t.animationState=Fd(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Xn(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let oh=0;class ah extends ct{constructor(){super(...arguments),this.id=oh++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const lh={animation:{Feature:rh},exit:{Feature:ah}};function pn(e){return{point:{x:e.pageX,y:e.pageY}}}const ch=e=>t=>Ci(t)&&e(t,pn(t));function en(e,t,n,s){return ln(e,t,ch(n),s)}const tl=({current:e})=>e?e.ownerDocument.defaultView:null,Xr=(e,t)=>Math.abs(e-t);function uh(e,t){const n=Xr(e.x,t.x),s=Xr(e.y,t.y);return Math.sqrt(n**2+s**2)}const Yr=new Set(["auto","scroll"]);class nl{constructor(t,n,{transformPagePoint:s,contextWindow:i=window,dragSnapToOrigin:o=!1,distanceThreshold:r=3,element:a}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=p=>{this.handleScroll(p.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=ys(this.lastMoveEventInfo,this.history),g=this.startEvent!==null,w=uh(p.offset,{x:0,y:0})>=this.distanceThreshold;if(!g&&!w)return;const{point:T}=p,{timestamp:v}=me;this.history.push({...T,timestamp:v});const{onStart:A,onMove:y}=this.handlers;g||(A&&A(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,p)},this.handlePointerMove=(p,g)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=gs(g,this.transformPagePoint),Y.update(this.updatePoint,!0)},this.handlePointerUp=(p,g)=>{this.end();const{onEnd:w,onSessionEnd:T,resumeAnimation:v}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const A=ys(p.type==="pointercancel"?this.lastMoveEventInfo:gs(g,this.transformPagePoint),this.history);this.startEvent&&w&&w(p,A),T&&T(p,A)},!Ci(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=s,this.distanceThreshold=r,this.contextWindow=i||window;const c=pn(t),u=gs(c,this.transformPagePoint),{point:d}=u,{timestamp:l}=me;this.history=[{...d,timestamp:l}];const{onSessionStart:f}=n;f&&f(t,ys(u,this.history)),this.removeListeners=dn(en(this.contextWindow,"pointermove",this.handlePointerMove),en(this.contextWindow,"pointerup",this.handlePointerUp),en(this.contextWindow,"pointercancel",this.handlePointerUp)),a&&this.startScrollTracking(a)}startScrollTracking(t){let n=t.parentElement;for(;n;){const s=getComputedStyle(n);(Yr.has(s.overflowX)||Yr.has(s.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const s=t===window,i=s?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o={x:i.x-n.x,y:i.y-n.y};o.x===0&&o.y===0||(s?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o.x,this.lastMoveEventInfo.point.y+=o.y):this.history.length>0&&(this.history[0].x-=o.x,this.history[0].y-=o.y),this.scrollPositions.set(t,i),Y.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),ot(this.updatePoint)}}function gs(e,t){return t?{point:t(e.point)}:e}function Qr(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ys({point:e},t){return{point:e,delta:Qr(e,sl(t)),offset:Qr(e,dh(t)),velocity:fh(t,.1)}}function dh(e){return e[0]}function sl(e){return e[e.length-1]}function fh(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,s=null;const i=sl(e);for(;n>=0&&(s=e[n],!(i.timestamp-s.timestamp>Ue(t)));)n--;if(!s)return{x:0,y:0};s===e[0]&&e.length>2&&i.timestamp-s.timestamp>Ue(t)*2&&(s=e[1]);const o=Ne(i.timestamp-s.timestamp);if(o===0)return{x:0,y:0};const r={x:(i.x-s.x)/o,y:(i.y-s.y)/o};return r.x===1/0&&(r.x=0),r.y===1/0&&(r.y=0),r}function hh(e,{min:t,max:n},s){return t!==void 0&&en&&(e=s?Z(n,e,s.max):Math.min(e,n)),e}function Zr(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function ph(e,{top:t,left:n,bottom:s,right:i}){return{x:Zr(e.x,n,i),y:Zr(e.y,t,s)}}function Jr(e,t){let n=t.min-e.min,s=t.max-e.max;return t.max-t.mins?n=sn(t.min,t.max-s,e.min):s>i&&(n=sn(e.min,e.max-i,t.min)),Qe(0,1,n)}function yh(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Ys=.35;function vh(e=Ys){return e===!1?e=0:e===!0&&(e=Ys),{x:eo(e,"left","right"),y:eo(e,"top","bottom")}}function eo(e,t,n){return{min:to(e,t),max:to(e,n)}}function to(e,t){return typeof e=="number"?e:e[t]||0}const bh=new WeakMap;class xh{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=de(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:s}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const o=l=>{n&&this.snapToCursor(pn(l).point),this.stopAnimation()},r=(l,f)=>{const{drag:p,dragPropagation:g,onDragStart:w}=this.getProps();if(p&&!g&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Ku(p),!this.openDragLock))return;this.latestPointerEvent=l,this.latestPanInfo=f,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Xe(v=>{let A=this.getAxisMotionValue(v).get()||0;if(Ye.test(A)){const{projection:y}=this.visualElement;if(y&&y.layout){const b=y.layout.layoutBox[v];b&&(A=Pe(b)*(parseFloat(A)/100))}}this.originPoint[v]=A}),w&&Y.update(()=>w(l,f),!1,!0),zs(this.visualElement,"transform");const{animationState:T}=this.visualElement;T&&T.setActive("whileDrag",!0)},a=(l,f)=>{this.latestPointerEvent=l,this.latestPanInfo=f;const{dragPropagation:p,dragDirectionLock:g,onDirectionLock:w,onDrag:T}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:v}=f;if(g&&this.currentDirection===null){this.currentDirection=Sh(v),this.currentDirection!==null&&w&&w(this.currentDirection);return}this.updateAxis("x",f.point,v),this.updateAxis("y",f.point,v),this.visualElement.render(),T&&Y.update(()=>T(l,f),!1,!0)},c=(l,f)=>{this.latestPointerEvent=l,this.latestPanInfo=f,this.stop(l,f),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>{const{dragSnapToOrigin:l}=this.getProps();(l||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:d}=this.getProps();this.panSession=new nl(t,{onSessionStart:o,onStart:r,onMove:a,onSessionEnd:c,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,distanceThreshold:s,contextWindow:tl(this.visualElement),element:this.visualElement.current})}stop(t,n){const s=t||this.latestPointerEvent,i=n||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!i||!s)return;const{velocity:r}=i;this.startAnimation(r);const{onDragEnd:a}=this.getProps();a&&Y.postRender(()=>a(s,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:s}=this.getProps();!s&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,s){const{drag:i}=this.getProps();if(!s||!An(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let r=this.originPoint[t]+s[t];this.constraints&&this.constraints[t]&&(r=hh(r,this.constraints[t],this.elastic[t])),o.set(r)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;t&&Mt(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&s?this.constraints=ph(s.layoutBox,t):this.constraints=!1,this.elastic=vh(n),i!==this.constraints&&!Mt(t)&&s&&this.constraints&&!this.hasMutatedConstraints&&Xe(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=yh(s.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Mt(t))return!1;const s=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=Sd(s,i.root,this.visualElement.getTransformPagePoint());let r=mh(i.layout.layoutBox,o);if(n){const a=n(bd(r));this.hasMutatedConstraints=!!a,a&&(r=Pa(a))}return r}startAnimation(t){const{drag:n,dragMomentum:s,dragElastic:i,dragTransition:o,dragSnapToOrigin:r,onDragTransitionEnd:a}=this.getProps(),c=this.constraints||{},u=Xe(d=>{if(!An(d,n,this.currentDirection))return;let l=c&&c[d]||{};r&&(l={min:0,max:0});const f=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:s?t[d]:0,bounceStiffness:f,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...o,...l};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const s=this.getAxisMotionValue(t);return zs(this.visualElement,t),s.start(Si(t,s,0,n,this.visualElement,!1))}stopAnimation(){Xe(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,s=this.visualElement.getProps(),i=s[n];return i||this.visualElement.getValue(t,(s.initial?s.initial[t]:void 0)||0)}snapToCursor(t){Xe(n=>{const{drag:s}=this.getProps();if(!An(n,s,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:r,max:a}=i.layout.layoutBox[n],c=o.get()||0;o.set(t[n]-Z(r,a,.5)+c)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:s}=this.visualElement;if(!Mt(n)||!s||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Xe(r=>{const a=this.getAxisMotionValue(r);if(a&&this.constraints!==!1){const c=a.get();i[r]=gh({min:c,max:c},this.constraints[r])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.constraints=!1,this.resolveConstraints(),Xe(r=>{if(!An(r,t,null))return;const a=this.getAxisMotionValue(r),{min:c,max:u}=this.constraints[r];a.set(Z(c,u,i[r]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;bh.set(this.visualElement,this);const t=this.visualElement.current,n=en(t,"pointerdown",u=>{const{drag:d,dragListener:l=!0}=this.getProps(),f=u.target,p=f!==t&&Ju(f);d&&l&&!p&&this.start(u)});let s;const i=()=>{const{dragConstraints:u}=this.getProps();Mt(u)&&u.current&&(this.constraints=this.resolveRefConstraints(),s||(s=wh(t,u.current,()=>this.scalePositionWithinConstraints())))},{projection:o}=this.visualElement,r=o.addEventListener("measure",i);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),Y.read(i);const a=ln(window,"resize",()=>this.scalePositionWithinConstraints()),c=o.addEventListener("didUpdate",(({delta:u,hasLayoutChanged:d})=>{this.isDragging&&d&&(Xe(l=>{const f=this.getAxisMotionValue(l);f&&(this.originPoint[l]+=u[l].translate,f.set(f.get()+u[l].translate))}),this.visualElement.render())}));return()=>{a(),n(),r(),c&&c(),s&&s()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:s=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:r=Ys,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:s,dragPropagation:i,dragConstraints:o,dragElastic:r,dragMomentum:a}}}function no(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function wh(e,t,n){const s=cr(e,no(n)),i=cr(t,no(n));return()=>{s(),i()}}function An(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Sh(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Th extends ct{constructor(t){super(t),this.removeGroupControls=Fe,this.removeListeners=Fe,this.controls=new xh(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Fe}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const vs=e=>(t,n)=>{e&&Y.update(()=>e(t,n),!1,!0)};class Ph extends ct{constructor(){super(...arguments),this.removePointerDownListener=Fe}onPointerDown(t){this.session=new nl(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:tl(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:s,onPanEnd:i}=this.node.getProps();return{onSessionStart:vs(t),onStart:vs(n),onMove:vs(s),onEnd:(o,r)=>{delete this.session,i&&Y.postRender(()=>i(o,r))}}}mount(){this.removePointerDownListener=en(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let bs=!1;class Ah extends h.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s,layoutId:i}=this.props,{projection:o}=t;o&&(n.group&&n.group.add(o),s&&s.register&&i&&s.register(o),bs&&o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),jn.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:s,drag:i,isPresent:o}=this.props,{projection:r}=s;return r&&(r.isPresent=o,t.layoutDependency!==n&&r.setOptions({...r.options,layoutDependency:n}),bs=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==o?r.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?r.promote():r.relegate()||Y.postRender(()=>{const a=r.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),Ei.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s}=this.props,{projection:i}=t;bs=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),s&&s.deregister&&s.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function il(e){const[t,n]=qa(),s=h.useContext(ii);return m.jsx(Ah,{...e,layoutGroup:s,switchLayoutGroup:h.useContext(Ja),isPresent:t,safeToRemove:n})}const Eh={pan:{Feature:Ph},drag:{Feature:Th,ProjectionNode:Ha,MeasureLayout:il}};function so(e,t,n){const{props:s}=e;e.animationState&&s.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,o=s[i];o&&Y.postRender(()=>o(t,pn(t)))}class Ch extends ct{mount(){const{current:t}=this.node;t&&(this.unmount=Xu(t,(n,s)=>(so(this.node,s,"Start"),i=>so(this.node,i,"End"))))}unmount(){}}class Dh extends ct{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=dn(ln(this.node.current,"focus",()=>this.onFocus()),ln(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function io(e,t,n){const{props:s}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&s.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),o=s[i];o&&Y.postRender(()=>o(t,pn(t)))}class Rh extends ct{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:s}=this.node.props;this.unmount=td(t,(i,o)=>(io(this.node,o,"Start"),(r,{success:a})=>io(this.node,r,a?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:s?.tap===!1})}unmount(){}}const Qs=new WeakMap,xs=new WeakMap,kh=e=>{const t=Qs.get(e.target);t&&t(e)},Mh=e=>{e.forEach(kh)};function Lh({root:e,...t}){const n=e||document;xs.has(n)||xs.set(n,{});const s=xs.get(n),i=JSON.stringify(t);return s[i]||(s[i]=new IntersectionObserver(Mh,{root:e,...t})),s[i]}function Ih(e,t,n){const s=Lh(t);return Qs.set(e,n),s.observe(e),()=>{Qs.delete(e),s.unobserve(e)}}const Vh={some:0,all:1};class _h extends ct{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:s,amount:i="some",once:o}=t,r={root:n?n.current:void 0,rootMargin:s,threshold:typeof i=="number"?i:Vh[i]},a=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,o&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:l}=this.node.getProps(),f=u?d:l;f&&f(c)};return Ih(this.node.current,r,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(jh(t,n))&&this.startObserver()}unmount(){}}function jh({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const Nh={inView:{Feature:_h},tap:{Feature:Rh},focus:{Feature:Dh},hover:{Feature:Ch}},Oh={layout:{ProjectionNode:Ha,MeasureLayout:il}},Fh={...lh,...Nh,...Eh,...Oh},Nn=sh(Fh,ih);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bh=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),$h=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,s)=>s?s.toUpperCase():n.toLowerCase()),ro=e=>{const t=$h(e);return t.charAt(0).toUpperCase()+t.slice(1)},rl=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim();/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var zh={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Uh=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:i="",children:o,iconNode:r,...a},c)=>h.createElement("svg",{ref:c,...zh,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:rl("lucide",i),...a},[...r.map(([u,d])=>h.createElement(u,d)),...Array.isArray(o)?o:[o]]));/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ut=(e,t)=>{const n=h.forwardRef(({className:s,...i},o)=>h.createElement(Uh,{ref:o,iconNode:t,className:rl(`lucide-${Bh(ro(e))}`,`lucide-${e}`,s),...i}));return n.displayName=ro(e),n};/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wh=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Hh=ut("arrow-right",Wh);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qh=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Kh=ut("bot",qh);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gh=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]],Xh=ut("calculator",Gh);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Yh=[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]],Qh=ut("crown",Yh);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zh=[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]],Jh=ut("flame",Zh);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ep=[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]],tp=ut("menu",ep);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const np=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],sp=ut("triangle-alert",np);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ip=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],rp=ut("zap",ip),Xt=({message:e="Loading MathPulse AI..."})=>{const[t,n]=h.useState(!1),s={position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem",background:"#f7f9fc"},i={width:"min(100%, 24rem)",padding:"2rem",borderRadius:"2rem",border:"1px solid #dde3eb",background:"#ffffff",boxShadow:"0 24px 40px rgba(56, 189, 248, 0.12)",display:"flex",flexDirection:"column",alignItems:"center",gap:"1.5rem"},o={width:"6rem",height:"6rem",borderRadius:"1.5rem",border:"2px solid #ffffff",background:"linear-gradient(135deg, #e0f2fe 0%, #e0e7ff 100%)",boxShadow:"0 12px 24px rgba(15, 23, 42, 0.12)",display:"flex",alignItems:"center",justifyContent:"center"},r={width:"4rem",height:"4rem",objectFit:"contain",filter:"drop-shadow(0 8px 12px rgba(15, 23, 42, 0.2))"},a={marginTop:"0.5rem",display:"flex",alignItems:"center",justifyContent:"center",gap:"0.5rem"},c={width:"1rem",height:"1rem",borderRadius:"999px",border:"2px solid #0284c7",borderTopColor:"transparent"},u={margin:0,fontSize:"1.25rem",fontWeight:700,color:"#0a1628"},d={margin:0,fontSize:"0.875rem",fontWeight:600,color:"#64748b"};return m.jsx("div",{className:"app-loader-screen",style:s,role:"status","aria-live":"polite","aria-busy":"true","aria-label":e,children:m.jsxs(Nn.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},transition:{duration:.4,ease:"easeOut"},className:"app-loader-card",style:i,children:[m.jsxs(Nn.div,{animate:{y:[0,-10,0]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},className:"app-loader-avatar-shell",style:o,children:[m.jsx("img",{src:"/avatar/avatar_icon.png",alt:"Loading...",className:"app-loader-avatar",style:{...r,display:t?"none":"block"},onError:()=>{n(!0)}}),m.jsx(Kh,{className:"app-loader-bot-icon",style:{display:t?"block":"none"}})]}),m.jsxs("div",{className:"app-loader-copy",children:[m.jsx("h2",{className:"app-loader-title",style:u,children:"MathPulse AI"}),m.jsxs("div",{className:"app-loader-message-row",style:a,children:[m.jsx(Nn.div,{animate:{rotate:360},transition:{duration:1.5,repeat:1/0,ease:"linear"},className:"app-loader-spinner",style:c}),m.jsx("p",{className:"app-loader-message",style:d,children:e})]})]})]})})},op=e=>{if(!e||e.includes("your_project")||e.includes("your_database")||e.includes("your_"))return!1;try{const t=new URL(e);return t.protocol!=="https:"?!1:t.hostname.endsWith(".firebaseio.com")||t.hostname.endsWith(".firebasedatabase.app")}catch{return!1}},Zs="".trim(),cn=op(Zs)?Zs:"";Zs&&!cn&&console.warn("[FIREBASE] VITE_FIREBASE_DATABASE_URL is set but invalid. Expected an https URL ending in .firebaseio.com or .firebasedatabase.app. RTDB presence is disabled.");const Ot={apiKey:"AIzaSyBtKDbf3CoNSJHMX2W-Bfru8qEX2mKm03Y",authDomain:"mathpulse-ai-2026.firebaseapp.com",projectId:"mathpulse-ai-2026",storageBucket:"mathpulse-ai-2026.firebasestorage.app",messagingSenderId:"441656461",appId:"1:441656461:web:68f877c7bdde7065ec2ec4",measurementId:void 0,...cn?{databaseURL:cn}:{}};Ot.apiKey||console.error("[ERROR] Firebase API key is missing! Copy .env.example to .env.local and fill in your values.");console.log("[FIREBASE] Config:",{projectId:Ot.projectId,authDomain:Ot.authDomain,configured:!!Ot.apiKey});const Wt=Vl(Ot),lt=Al(Wt),q=Ol(Wt);$l(Wt);const ap=_l(Wt),lp="".toLowerCase()==="true";if(lp){const e="127.0.0.1".trim()||"127.0.0.1",t=5001,n=Number.isFinite(t)&&t>0?Math.floor(t):5001;jl(ap,e,n),console.log(`[FIREBASE] Functions emulator enabled at ${e}:${n}`)}const gg=cn?Nl(Wt,cn):null;typeof window<"u"&&Ot.measurementId&&zl(Wt);new El;const Js="mathpulse.pendingAuthRole",ol="mathpulse.lastAuthRole",cp=e=>{if(e==="admin")throw new Error("Admin account creation is restricted. Please contact an existing administrator.")},ji=(e,t)=>{const n=e,s=new Error(n.message||t);return n.code&&(s.code=n.code),s},yg=e=>{try{localStorage.setItem(Js,e),localStorage.setItem(ol,e)}catch{}},up=()=>{try{const e=localStorage.getItem(Js);return localStorage.removeItem(Js),e==="student"||e==="teacher"||e==="admin"?e:null}catch{return null}},dp=()=>{try{const e=localStorage.getItem(ol);return e==="student"||e==="teacher"||e==="admin"?e:null}catch{return null}},vg=async(e,t,n,s,i={})=>{try{cp(s);const r=(await Cl(lt,e,t)).user;return await Dl(r,{displayName:n}),await al(r,s,i)}catch(o){const r=o;throw console.error("[ERROR] Error signing up:",{code:r.code,message:r.message,fullError:o}),ji(o,"Failed to create account")}},bg=async(e,t)=>{try{console.log("[AUTH] Attempting sign in...",{email:e}),await Rl(lt,e,t),console.log("[OK] Sign in successful, AuthContext will handle profile creation")}catch(n){const s=n;throw console.error("[ERROR] Error signing in:",{code:s.code,message:s.message,fullError:n}),ji(n,"Failed to sign in")}},fp=async()=>{try{await kl(lt)}catch(e){throw console.error("Error signing out:",e),ji(e,"Failed to sign out")}},al=async(e,t,n)=>{const s=`${Date.now()}`.slice(-12).padStart(12,"0"),i={uid:e.uid,email:e.email||"",name:e.displayName||n.name||"User",role:t,photo:e.photoURL||"",createdAt:he(),updatedAt:he()},o=(()=>{switch(t){case"student":return{lrn:n.lrn||s,grade:n.grade||"Grade 11",section:n.section||"Section A",classSectionId:n.classSectionId||"",adviserTeacherId:n.adviserTeacherId||"",adviserTeacherName:n.adviserTeacherName||"",schoolYear:n.schoolYear||"",school:n.school||"",enrollmentDate:new Date().toISOString().split("T")[0],major:n.major||"General",gpa:n.gpa||"0.00",level:1,currentXP:0,totalXP:0,streak:0,atRiskSubjects:[],hasTakenDiagnostic:!1,iarAssessmentState:"not_started",startingQuarterG11:"Q1",recommendedPace:"normal"};case"teacher":return{teacherId:`TCH-${Date.now()}`,department:n.department||"Mathematics",subject:n.subject||"Mathematics",yearsOfExperience:n.yearsOfExperience||"0",qualification:n.qualification||"",students:[]};case"admin":return{adminId:`ADM-${Date.now()}`,position:n.position||"Administrator",department:n.department||"System"}}})(),r={...i,...o};return await He(se(q,"users",e.uid),r),r},ei=async e=>{try{const t=se(q,"users",e),n=await ke(t);return n.exists()?{...n.data(),uid:n.id}:null}catch(t){return console.error("Error getting user profile:",t),null}},ws=async(e,t)=>{try{const n=await ei(e);if(!n)throw new Error("Profile not found");const s=["name","email","phone","photo","avatarLayers"],i={student:["lrn","grade","section","school","enrollmentDate","major","gpa"],teacher:["department","subject","yearsOfExperience","qualification"],admin:["department","position"]},o=new Set([...s,...i[n.role]]),r={};Object.entries(t).forEach(([c,u])=>{u!==void 0&&o.has(c)&&(r[c]=u)});const a=se(q,"users",e);await He(a,{...r,updatedAt:he()},{merge:!0})}catch(n){throw console.error("Error updating user profile:",n),n}},hp=async e=>{if(!lt.currentUser)throw new Error("No user logged in");await Ll(lt.currentUser,e)},pp=async e=>{if(!lt.currentUser)throw new Error("No user logged in");await Ml(lt.currentUser);try{await Fl(se(q,"users",e))}catch(t){console.warn("User auth deleted but profile document cleanup failed:",t)}},ll=h.createContext({currentUser:null,userProfile:null,loading:!0,isLoggedIn:!1,userRole:"student",refreshProfile:async()=>{}}),cl=()=>{const e=h.useContext(ll);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},mp=({children:e})=>{const[t,n]=h.useState(null),[s,i]=h.useState(null),[o,r]=h.useState(!0),[a,c]=h.useState("student"),u=f=>{if(!f)return null;const p=f.trim().toLowerCase();return p==="testteacher@school.edu"?"teacher":p==="testadmin@school.edu"?"admin":p==="teststudent@school.edu"?"student":null};h.useEffect(()=>Il(lt,async p=>{if(r(!0),n(p),p){const g=up()||dp()||u(p.email)||"student",w=g==="admin"?"student":g;let T=await ei(p.uid);if(!T&&p.email){console.log("[WARN] AuthContext: Profile missing, auto-creating...");const v=w,A=p.displayName||"User";try{T=await al(p,v,{name:A}),console.log("[OK] AuthContext: Profile auto-created:",{role:v,name:A}),v==="student"&&H(async()=>{const{triggerStudentEnrolled:y}=await import("./automationService-1THdsq3v.js");return{triggerStudentEnrolled:y}},__vite__mapDeps([0,1,2,3,4,5,6])).then(({triggerStudentEnrolled:y})=>y({lrn:T?.lrn||p.uid,name:A,email:p.email||"",gradeLevel:""})).catch(y=>console.error("[WARN] Automation: enrollment pipeline failed:",y))}catch(y){console.error("[ERROR] AuthContext: Failed to auto-create profile:",y)}}T?(c(T.role),i(T)):(c(w),i({uid:p.uid,email:p.email||"",name:p.displayName||"User",role:w,photo:p.photoURL||"",createdAt:new Date,updatedAt:new Date}))}else c("student"),i(null);r(!1)}),[]);const d=async()=>{if(t){const f=await ei(t.uid);f&&i(f)}},l={currentUser:t,userProfile:s,loading:o,isLoggedIn:!!t,userRole:s?.role||a,refreshProfile:d};return m.jsx(ll.Provider,{value:l,children:e})},gp=/(```[\s\S]*?```|`[^`\n]+`)/g,yp=/(\$\$[\s\S]*?\$\$|\$[^$\n]+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\])/g,vp=/\\(?:boxed\{[^{}]+\}|frac\{[^{}]+\}\{[^{}]+\}|sqrt\{[^{}]+\}|(?:cdot|times|pm|mp|leq|geq|neq|approx|alpha|beta|gamma|delta|theta|pi|sum|int)(?:_[a-zA-Z0-9]+|_\{[^{}]+\})?(?:\^[a-zA-Z0-9]+|\^\{[^{}]+\})?)/g,bp=/<\s*think\b[^>]*>[\s\S]*?<\s*\/\s*think\s*>/gi,xp=/<\s*\/?\s*think\b[^>]*>/gi,wp=/<\s*\/\s*think\s*>/gi,Sp=/<\s*(\/?)\s*think\b([\s\S]*?)>/gi,Tp=/(?:<\s*\/?\s*t(?:h(?:i(?:n(?:k)?)?)?)?)\s*$/i,Pp=/(?:<\s*\/?\s*t(?:h(?:i(?:n(?:k)?)?)?)?)\s*$/i,Ap=/\bfinal\s+answer\s*:|(?:^|\n)\s*#{1,6}\s+\S|(?:^|\n)\s*(?:answer|solution)\s*:|(?:^|\n)\s*here(?:'s| is)\b|(?:^|\n)\s*(?:\d+[.)]|[-*])\s+\S/i,Ep=/^\s*(?:okay|alright|let\s+me|i\s+should|i\s+need\s+to|i\s+will|wait|hmm|maybe|the\s+user\s+asked|let\s+us|let's)\b/i;function ul(e){return e.replace(Sp,(t,n,s)=>`<${n?"/":""}think${s}>`)}function Cp(e,t){t.lastIndex=0;let n=-1,s=t.exec(e);for(;s;)n=s.index+s[0].length,s=t.exec(e);return n}function Dp(e){const t=ul(e);if(/<\s*think\b/i.test(t))return"";const n=Cp(t,wp);return n===-1?"":t.slice(n).trim()}function Rp(e){const t=e.replace(/\r\n?/g,` -`).trim();if(!t)return"";const n=Ap.exec(t);return n&&typeof n.index=="number"?t.slice(n.index).trim():t.split(` -`).map(o=>o.trim()).filter(o=>o&&Ep.test(o)).length>=2?"":t}function ti(e,t={}){if(!e||typeof e!="string")return"";let n=ul(e),s="";for(;n!==s;)s=n,n=n.replace(bp,"");if(!t.preserveUnclosedThinkBlocks){const i=n.toLowerCase(),o=i.lastIndexOf("");o!==-1&&o>r&&(n=n.slice(0,o))}return n=n.replace(xp,""),t.streamingSafeTail&&(n=n.replace(Tp,"").replace(Pp,"")),n}function kp(e){return ti(e,{streamingSafeTail:!0}).trim()}function je(e){const t=Dp(e);if(t)return t;const n=ti(e,{streamingSafeTail:!0}).trim();if(n)return n;const s=ti(e,{streamingSafeTail:!0,preserveUnclosedThinkBlocks:!0}).trim();return Rp(s)}function Mp(e){return e.replace(vp,t=>`$${t}$`)}function Lp(e){return!e||typeof e!="string"?"":je(e).replace(/\r\n?/g,` -`).split(gp).map((i,o)=>o%2===1?i:i.replace(/\\\\(?=(?:boxed|frac|sqrt|cdot|times|pm|mp|leq|geq|neq|approx|alpha|beta|gamma|delta|theta|pi|sum|int)\b|[()[\]{}])/g,"\\").replace(/\\n/g,` -`).split(yp).map((c,u)=>u%2===1?c:Mp(c)).join("")).join("")}const Ip=80;function Ss(e,t=Ip){if(!e||typeof e!="string")return"";const n=Lp(e).replace(/!\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").replace(/```(?:[a-zA-Z0-9_-]+\n)?([\s\S]*?)```/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\$\$([\s\S]+?)\$\$/g,"$1").replace(/\$([^$\n]+)\$/g,"$1").replace(/\\\(([\s\S]+?)\\\)/g,"$1").replace(/\\\[([\s\S]+?)\\\]/g,"$1").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}(?:[-*+]|\d+\.)\s+/gm,"").replace(/^\s{0,3}(?:[-*_]\s?){3,}$/gm," ").replace(/\\boxed\{([^{}]+)\}/g,"$1").replace(/\\frac\{([^{}]+)\}\{([^{}]+)\}/g,"$1/$2").replace(/\\sqrt\{([^{}]+)\}/g,"sqrt($1)").replace(/\\(?:cdot|times)/g,"*").replace(/\\(alpha|beta|gamma|delta|theta|pi|sum|int|pm|mp|leq|geq|neq|approx)\b/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/__([^_]+)__/g,"$1").replace(/\*([^*\n]+)\*/g,"$1").replace(/_([^_\n]+)_/g,"$1").replace(/~~([^~]+)~~/g,"$1").replace(/\*{2,}|_{2,}|~{2,}/g,"").replace(/`+/g,"").replace(/\|/g," ").replace(/\s+/g," ").trim();return n.length<=t?n:n.slice(0,t)}const Vp=/^\s*(?:hi|hello|hey|good\s+(?:morning|afternoon|evening))\b/i,_p=/\b(?:thanks|thank\s+you|thank\s+u|ty)\b/i,dl=["Hi! I am MathPulse, your math tutor. I can help with algebra, geometry, calculus, and more. What math question would you like to try?","Hello! Great to see you. I am here for math topics and step-by-step solutions whenever you are ready."],fl=["You are very welcome. If you want, send another math question and we can work through it together.","Glad I could help. I am here anytime you want to practice more math."],oo=["That topic is outside my math scope, but I would be happy to help with mathematics like algebra, calculus, geometry, trigonometry, or statistics.","I focus on math-only support, so I may not be the best for that request. Share a math question and I will guide you step by step.","I am built for math tutoring, so I can best help with mathematical problems and explanations. If you want, ask me any math question next."],jp=["math","mathematics","algebra","geometry","trigonometry","calculus","statistics","probability","arithmetic","equation","inequality","function","graph","slope","derivative","integral","limit","matrix","determinant","fraction","percentage","ratio","polynomial","quadratic","logarithm","exponent","angle","triangle","circle","perimeter","area","volume","mean","median","mode","standard deviation","solve","simplify","factor","evaluate","compute","calculate"],Np=[/\d+\s*[%+\-*/^=]\s*[-+]?\d*/,/\b(?:sin|cos|tan|cot|sec|csc|log|ln|sqrt)\s*\(?/,/\b(?:differentiate|integrate|derive|proof|prove)\b/,/\b(?:x|y|z)\s*[=+\-*/^]\s*[-+]?\d/],Op=new Set(["go","continue","yes","ok","next","more"]),Fp=[/\bshall\s+we\s+continue\b/i,/\b(?:would|do)\s+you\s+like\s+to\s+continue\b/i,/\b(?:want|need)\s+me\s+to\s+continue\b/i,/\bshould\s+(?:i|we)\s+continue\b/i,/\bcontinue\s*\?\s*$/i,/\b(?:ready\s+for|go\s+to)\s+the\s+next\s+step\b/i,/\bnext\s+step(?:s)?\s*\?\s*$/i,/\bkeep\s+going\s*\?\s*$/i],ao="I can continue once I know which math problem you mean. Please share the problem again or tell me which step to continue.";function En(e){return e.length===0?"":e[Math.floor(Math.random()*e.length)]??e[0]}function Bp(e){const t=(e??"").trim().toLowerCase();return t?jp.some(n=>t.includes(n))?!0:Np.some(n=>n.test(t)):!1}function $p(e){return(e??"").trim().toLowerCase().replace(/\s+/g," ").replace(/[\p{P}]+$/gu,"")}function hl(e){const t=$p(e);return t?Op.has(t):!1}function lo(e){const t=(e??"").trim();return t?Bp(t)?null:Vp.test(t)?En(dl):_p.test(t)?En(fl):En(oo):En(oo)}function zp(e){const t=(e?.latestAssistantMessage??"").trim();if(t)return t;const n=e?.history??[];for(let s=n.length-1;s>=0;s-=1){const i=n[s],o=(i?.role??"").toLowerCase(),r=(i?.content??"").trim();if(r&&(o==="assistant"||o==="ai"))return r}return null}function Up(e){const t=zp(e);return t?Fp.some(n=>n.test(t)):!1}function Wp(e){const t=e?.history??[];for(let n=t.length-1;n>=0;n-=1){const s=t[n],i=(s?.role??"").toLowerCase(),o=(s?.content??"").trim();if(o&&i==="user"&&!hl(o))return o}return null}function Hp(e){return dl.includes(e)||fl.includes(e)}function pl(e,t){const n=lo(e);if(n===null)return null;if(!hl(e))return n;if(Up(t))return null;const s=Wp(t);if(!s)return ao;const i=lo(s);return i===null?null:Hp(i)?ao:i}const ml=h.createContext(void 0);let Ts=null,Ps=null;const co=()=>(Ts||(Ts=H(()=>import("./apiService-BuaHZ1Ho.js"),__vite__mapDeps([7,3,4,2,1,5,6]))),Ts),gt=()=>(Ps||(Ps=H(()=>import("./chatService-tsfogjaC.js"),__vite__mapDeps([8,1,2,3,4,5,6]))),Ps),qp=new Set(["go","continue","next","more","yes","ok"]),Kp=[/\b(?:end|finish|stop)\s+with(?:\s+the\s+(?:exact\s+)?(?:marker|text))?\s*[:\-]?\s*(["'`]?)([A-Za-z0-9_:\-]{2,96})\1/i,/\b(?:include|append)\s+(?:the\s+)?marker\s*[:\-]?\s*(["'`]?)([A-Za-z0-9_:\-]{2,96})\1/i];function mn(e){if(!e)return null;let t=e.trim();return!t||(t.length>=2&&t[0]===t[t.length-1]&&['"',"'","`"].includes(t[0])&&(t=t.slice(1,-1).trim()),t=t.replace(/[.,;\s]+$/g,""),!t)?null:t.slice(0,120)}function Gp(e){return(e??"").trim().toLowerCase().replace(/\s+/g," ").replace(/[\p{P}]+$/gu,"")}function gl(e){const t=Gp(e);return t?qp.has(t):!1}function Xp(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.role!=="user")continue;const s=(n.content??"").trim();if(s&&!gl(s))return s}return null}function Yp(e){return["Continue the ongoing math explanation for the same user request.","Do not refuse or reset the topic if the request is mathematical.","Original user request:",e].join(` -`)}function Qp(e){const t=(e??"").trim();if(!t)return null;for(const n of Kp){const s=n.exec(t);if(!s)continue;const i=mn(s[2]);if(i)return i}return null}function Zp(e,t){const n=mn(t);return n?e.toLowerCase().includes(n.toLowerCase()):!1}function ni(e,t,n,s){return n&&!Zp(t,n)?!0:s?em(e,t):!1}function Jp(e){const t=e.trim();if(!t||[/```[^`]*$/,/\$\$[^$]*$/,/\$[^$\n]*$/,/\\\[[^\]]*$/,/\\\([^\)]*$/,/\\boxed\{[^}]*$/,/\\frac\{[^}]*\}\{?$/,/\\[a-zA-Z]+\s*$/,/(?:Step\s*\d+[:.]?)\s*$/i,/(?:Final\s*Answer[:.]?)\s*$/i].some(f=>f.test(t))||(t.match(/```/g)??[]).length%2!==0||(()=>{let f=0;for(let p=0;p=0&&t[w]==="\\";w-=1)g+=1;g%2===0&&(f+=1)}return f})()%2!==0)return!0;const o=(t.match(/\\left\b/g)??[]).length,r=(t.match(/\\right\b/g)??[]).length;if(o!==r)return!0;const a=[["(",")"],["[","]"],["{","}"]];for(const[f,p]of a){const g=(t.match(new RegExp(`\\${f}`,"g"))??[]).length,w=(t.match(new RegExp(`\\${p}`,"g"))??[]).length;if(g>w)return!0}if(t.length>=80&&/\b(?:and|or|but|because|since|so|then|which|that|where|when|with|for|to|from|of|in|on|at|by)\s*$/i.test(t))return!0;const c=t.split(/\r?\n/).map(f=>f.trim()).filter(Boolean),u=c.length>0?c[c.length-1]:t,d=/[.!?)]$/.test(u),l=/(?:=|\\boxed|\\int|d\/dx|f\(x\)|x\^\d+|\b\d+(?:\.\d+)?\b)\s*$/.test(u);return t.length>=140&&!d&&!l}function em(e,t){const n=t.trim(),s=e.toLowerCase();if(!n||Jp(n))return!0;const i=n.replace(/[#*_`>|\-]/g," ").replace(/\s+/g," ").trim();if(!i||i.length<24&&/(derivative|integral|equation|complete|explain|step)/.test(s))return!0;if(s.includes("derivative")&&s.includes("integral")){const o=n.toLowerCase(),r=/derivative|f'|d\/dx/.test(o),a=/integral|∫|\\int/.test(o);if(!r||!a)return!0}return!!((s.includes("complete equation")||s.includes("complete equations")||s.includes("step-by-step")||s.includes("step by step"))&&((n.match(/=|\\frac|\\int|∫|\\boxed|d\/dx|\b(dx|x\^\d+)\b/g)??[]).length<2||n.length<120))}function kt(e){const t=e.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);if(t.length<=1)return e.trim();const n=new Set,s=[];for(const i of t){const o=i.toLowerCase().replace(/[#*_`]/g,"").replace(/\s+/g," ").trim();!o||n.has(o)||(n.add(o),s.push(i))}return s.join(` - -`).trim()}function Cn(e,t){const n=e.trim(),s=t.trim();if(!n)return kt(s);if(!s)return kt(n);const i=Math.min(n.length,s.length,220);for(let o=i;o>=24;o-=1){const r=n.slice(-o),a=s.slice(0,o);if(r===a)return kt(`${n}${s.slice(o)}`.trim())}return n.endsWith(s)?kt(n):s.startsWith(n)?kt(s):kt(`${n} - -${s}`.trim())}function uo(e,t,n){const s=["Continue the same solution from exactly where it stopped.","Do not restart. Do not repeat completed parts. Keep the same formatting style.","Finish all remaining steps and provide a complete final answer.","",`Question: ${e}`,"","Current partial answer:",t],i=mn(n);return i&&(s.push(""),s.push(`Include the exact marker "${i}" at the very end when done.`)),s.join(` -`)}function fo(e,t,n){const s=["Continue and complete the answer in plain text only.","No markdown, no LaTeX, no code fences. Do not restart.","",`Question: ${e}`,"","Current partial answer:",t],i=mn(n);return i&&(s.push(""),s.push(`End with the exact marker "${i}".`)),s.join(` -`)}function ho(e,t){const n=["Provide a complete final tutoring answer for the student question below.","Do not include meta commentary, internal reasoning, or notes about instructions.","Cover every requested part explicitly and include final results.","",`Question: ${e}`],s=mn(t);return s&&(n.push(""),n.push(`Include the exact marker "${s}" once all requested parts are complete.`)),n.join(` -`)}function po(e,t,n,s=null,i=!0){const o=t.trim(),r=n.trim();if(!r)return o;if(!o)return r;const a=ni(e,o,s,i),c=ni(e,r,s,i);return a!==c?c?o:r:r.length>=o.length+80?r:o}function tm(e){const t=e.toLowerCase();return!["derivative","integral","equation","latex","step-by-step","step by step","formatting","proof","fraction","limit","matrix","sqrt","boxed","^","dx"].some(s=>t.includes(s))}function nm(e){const n=e.toLowerCase().trim();return!n||/^(hi|hello|hey|yo|sup|good morning|good afternoon|good evening)\b/.test(n)||/^(thanks|thank you|thx|ty)\b/.test(n)||/^(bye|goodbye|see you|later)\b/.test(n)||n.includes("fun fact")&&!/(solve|deriv|integr|equation|step|proof|show work|explain)/.test(n)?!1:["derivative","integral","equation","step-by-step","step by step","solve","differentiat","integrat","limit","proof","find","compute","simplify","factor","evaluate","calculate","graph","matrix","probability","statistics","trigonometry","algebra","geometry","calculus","show work","explain","define","describe","how","why","what is"].some(s=>n.includes(s))}function Dn(e,t=[]){const n=pl(e,{history:t});if(n)return n;const s=e.toLowerCase().trim();if(/^(hi|hello|hey|good morning|good afternoon|good evening)\b/.test(s))return"Hello! I'm your MathPulse AI tutor. I can help you with algebra, calculus, geometry, statistics, and more. What math topic would you like to explore today?";if(s.includes("thank")||s.includes("thanks"))return"You're welcome! I'm always here to help with math. Feel free to ask about any topic — algebra, calculus, geometry, statistics, or anything else. Keep up the great work!";if(/^(bye|goodbye|see you|later)\b/.test(s))return"Goodbye! Come back anytime you need math help. Happy studying!";const i=s.match(/(?:what(?:'s| is| are)|tell me (?:about|what)|explain|define|describe)\s+(.+)/);if(i){const o=i[1].replace(/[?.!]+$/,"").trim();return/\balgebra\b/.test(o)?`## What is Algebra? - -Algebra is a branch of mathematics that uses **letters and symbols** (like *x*, *y*, *a*, *b*) to represent numbers and quantities in equations and formulas. - -### Key concepts: -- **Variables** — symbols that stand for unknown values -- **Expressions** — combinations of numbers, variables, and operations (e.g., \`3x + 5\`) -- **Equations** — statements that two expressions are equal (e.g., \`2x + 3 = 11\`) -- **Functions** — rules that assign each input exactly one output - -### Why it matters: -Algebra is the foundation for almost all higher mathematics, including calculus, statistics, and physics. It teaches you to think abstractly and solve problems systematically. - -### Quick example: -Solve \`2x + 3 = 11\` -1. Subtract 3 from both sides → \`2x = 8\` -2. Divide by 2 → \`x = 4\` - -Would you like to dive deeper into any specific area of algebra?`:/\bcalculus\b/.test(o)?`## What is Calculus? - -Calculus is the mathematical study of **continuous change**. It has two main branches: - -### 1. Differential Calculus -Studies **rates of change** and slopes of curves. -- *Core tool:* the **derivative** — measures how fast a function changes at any point -- *Example:* If position = t², then velocity = 2t - -### 2. Integral Calculus -Studies **accumulation** of quantities and areas under curves. -- *Core tool:* the **integral** — adds up infinitely many tiny pieces -- *Example:* Area under y = x from 0 to 3 = ∫₀³ x dx = 9/2 = 4.5 - -### Why it matters: -Calculus is used in physics, engineering, economics, biology, and virtually every science. It lets you model anything that changes continuously. - -Want to start with derivatives, integrals, or limits?`:/\bgeometry\b/.test(o)?`## What is Geometry? - -Geometry is the branch of mathematics that studies **shapes, sizes, positions, and properties** of figures and spaces. - -### Key areas: -- **Euclidean Geometry** — points, lines, angles, triangles, circles, polygons -- **Coordinate Geometry** — shapes on the x-y plane using algebra -- **Solid Geometry** — 3D shapes like spheres, cylinders, cones -- **Transformations** — rotations, reflections, translations, dilations - -### Fundamental concepts: -- **Angles** — measured in degrees or radians -- **Congruence & Similarity** — same shape/size vs. same shape/different size -- **Pythagorean Theorem** — a² + b² = c² for right triangles -- **Area & Volume formulas** for common shapes - -What geometry topic would you like to explore?`:/\btrigonometry|trig\b/.test(o)?`## What is Trigonometry? - -Trigonometry is the study of relationships between **angles and sides** of triangles. - -### The core functions (SOH-CAH-TOA): -- **sin(θ)** = Opposite / Hypotenuse -- **cos(θ)** = Adjacent / Hypotenuse -- **tan(θ)** = Opposite / Adjacent - -### Beyond triangles: -Trig functions describe **periodic phenomena** like sound waves, light, tides, and circular motion. - -### Key identities: -- sin²θ + cos²θ = 1 -- tan(θ) = sin(θ)/cos(θ) - -Trigonometry is essential for calculus, physics, and engineering. What trig topic would you like help with?`:/\bstatistic/.test(o)?`## What is Statistics? - -Statistics is the branch of mathematics that deals with **collecting, analyzing, interpreting, and presenting data**. - -### Key areas: -- **Descriptive Statistics** — summarizing data with measures like mean, median, mode, and standard deviation -- **Inferential Statistics** — drawing conclusions about populations from samples -- **Probability** — the mathematics of chance and uncertainty - -### Common measures: -| Measure | Purpose | -|---------|--------| -| Mean | Average of all values | -| Median | Middle value when sorted | -| Mode | Most frequent value | -| Std Dev | How spread out values are | - -Want help with a specific statistics concept?`:/\bderivative/.test(o)?`## What is a Derivative? - -A derivative measures the **instantaneous rate of change** of a function — essentially, how fast something is changing at a specific point. - -### Formal definition: -f'(x) = lim(h→0) [f(x+h) - f(x)] / h - -### Intuition: -- The derivative of **position** is **velocity** -- The derivative of **velocity** is **acceleration** -- Geometrically, it's the **slope of the tangent line** to the curve - -### Key rules: -- **Power Rule:** d/dx[xⁿ] = nxⁿ⁻¹ -- **Product Rule:** d/dx[fg] = f'g + fg' -- **Chain Rule:** d/dx[f(g(x))] = f'(g(x)) · g'(x) - -Would you like to practice finding derivatives?`:/\bintegral|integration/.test(o)?`## What is Integration? - -Integration is the process of finding the **accumulated total** of a quantity. It's the reverse of differentiation. - -### Two types: -1. **Indefinite Integral** — finds a family of antiderivatives: ∫f(x) dx = F(x) + C -2. **Definite Integral** — calculates the area under a curve: ∫ₐᵇ f(x) dx - -### Intuition: -- If a derivative tells you *how fast* something changes, an integral tells you *how much* it accumulates -- Area under a velocity-time graph = total distance traveled - -### Key rule: -**Power Rule:** ∫xⁿ dx = xⁿ⁺¹/(n+1) + C (n ≠ -1) - -Want to try some integration problems?`:/\blimit/.test(o)?`## What is a Limit? - -A limit describes the value a function **approaches** as the input approaches some value. - -### Notation: -lim(x→a) f(x) = L means "as x gets closer and closer to a, f(x) gets closer and closer to L." - -### Why it matters: -Limits are the **foundation of calculus** — both derivatives and integrals are defined using limits. - -### How to evaluate: -1. **Direct substitution** — plug in the value first -2. **Factor & cancel** — if you get 0/0 -3. **L'Hôpital's Rule** — for 0/0 or ∞/∞ forms - -### Example: -lim(x→2) (x²-4)/(x-2) = lim(x→2) (x+2)(x-2)/(x-2) = lim(x→2) (x+2) = **4** - -What limit problem are you working on?`:/\bfraction/.test(o)?`## What is a Fraction? - -A fraction represents a **part of a whole**. It's written as **a/b**, where: -- **a** = numerator (parts you have) -- **b** = denominator (total equal parts) - -### Operations: -- **Addition:** a/b + c/d = (ad + bc) / bd -- **Multiplication:** a/b × c/d = ac / bd -- **Division:** a/b ÷ c/d = a/b × d/c (flip and multiply) - -### Example: -3/4 + 2/3 = 9/12 + 8/12 = **17/12** - -What fraction problem can I help you with?`:/\bpercent/.test(o)?`## What is a Percentage? - -A percentage is a way of expressing a number as a **fraction of 100**. The symbol **%** means "per hundred." - -### Key formulas: -- Percentage = (Part / Whole) × 100 -- Part = (Percentage × Whole) / 100 -- % Change = ((New - Old) / Old) × 100 - -### Examples: -- 25% of 200 = (25 × 200) / 100 = **50** -- 15 is what % of 60? → (15/60) × 100 = **25%** - -Need help with a specific percentage problem?`:/\bpythag/.test(o)?`## What is the Pythagorean Theorem? - -The Pythagorean Theorem states that in a **right triangle**, the square of the hypotenuse equals the sum of the squares of the other two sides: - -### **a² + b² = c²** - -where *c* is the hypotenuse (longest side, opposite the right angle). - -### Example: -If a = 3 and b = 4: -- 3² + 4² = 9 + 16 = 25 -- c = √25 = **5** - -### Common Pythagorean Triples: -- (3, 4, 5) -- (5, 12, 13) -- (8, 15, 17) - -Need help with a specific problem?`:`That's a great question about **${o}**! I'm currently in offline mode with limited responses. Here's what I can help with right now: - -- **Algebra** — equations, variables, functions -- **Calculus** — derivatives, integrals, limits -- **Geometry** — shapes, areas, volumes -- **Trigonometry** — angles, sin/cos/tan -- **Statistics** — data analysis, probability -- **Arithmetic** — fractions, percentages, ratios - -Try asking "What is algebra?" or "How do I solve quadratic equations?" for a detailed explanation. - -*Tip: The AI tutor works best when the server is online for full, personalized answers.*`}if(/\bhow (?:do|can|to|would|should)\b/.test(s)||/\bsolve\b/.test(s)||/\bfind\b/.test(s)||/\bcalculate\b/.test(s)){if(s.includes("quadratic")||s.includes("ax")&&s.includes("bx"))return`## Solving Quadratic Equations - -A quadratic equation has the form **ax² + bx + c = 0**. - -### Method 1: Quadratic Formula -**x = (-b ± √(b² - 4ac)) / 2a** - -### Steps: -1. Identify a, b, and c from your equation -2. Calculate the discriminant: **b² - 4ac** -3. If discriminant > 0 → two real solutions -4. If discriminant = 0 → one real solution -5. If discriminant < 0 → no real solutions - -### Example: x² - 5x + 6 = 0 -- a=1, b=-5, c=6 -- Discriminant = 25 - 24 = 1 -- x = (5 ± 1) / 2 → **x = 3** or **x = 2** - -### Method 2: Factoring -x² - 5x + 6 = (x - 3)(x - 2) = 0 - -Want me to help solve a specific quadratic?`;if(s.includes("derivative")||s.includes("differentiat"))return`## How to Find Derivatives - -The derivative measures the rate of change of a function. - -### Key Rules: -| Rule | Formula | -|------|--------| -| Power | d/dx[xⁿ] = nxⁿ⁻¹ | -| Constant | d/dx[c] = 0 | -| Sum | d/dx[f+g] = f' + g' | -| Product | d/dx[fg] = f'g + fg' | -| Chain | d/dx[f(g(x))] = f'(g(x)) · g'(x) | - -### Common Derivatives: -- d/dx[sin(x)] = cos(x) -- d/dx[cos(x)] = -sin(x) -- d/dx[eˣ] = eˣ -- d/dx[ln(x)] = 1/x - -### Example: f(x) = 3x² + 2x - 5 -f'(x) = 6x + 2 - -What function would you like to differentiate?`;if(s.includes("integral")||s.includes("integrat"))return`## How to Integrate - -Integration is the reverse of differentiation. - -### Key Rules: -- **Power Rule:** ∫xⁿ dx = xⁿ⁺¹/(n+1) + C (n ≠ -1) -- ∫1/x dx = ln|x| + C -- ∫eˣ dx = eˣ + C -- ∫sin(x) dx = -cos(x) + C -- ∫cos(x) dx = sin(x) + C - -### Techniques: -1. **Substitution (u-sub)** — simplify by substituting a part of the expression -2. **Integration by parts** — ∫u dv = uv - ∫v du -3. **Partial fractions** — break rational functions into simpler pieces - -Want help with a specific integral?`;if(s.includes("equation")||s.includes("solve"))return`## How to Solve Equations - -### Linear Equations (ax + b = c): -1. Move constants to one side -2. Divide by the coefficient of x - -**Example:** 3x + 7 = 22 -- 3x = 22 - 7 = 15 -- x = 15/3 = **5** - -### Systems of Equations: -- **Substitution** — solve one equation for a variable, plug into the other -- **Elimination** — add/subtract equations to eliminate a variable -- **Graphing** — find the intersection point - -### Tips: -- Always check your answer by substituting back -- Whatever you do to one side, do to the other - -Share your equation and I'll help solve it step by step!`;if(s.includes("area")||s.includes("perimeter")||s.includes("volume"))return`## Geometry Formulas - -### 2D Shapes: -| Shape | Area | Perimeter | -|-------|------|----------| -| Rectangle | l × w | 2(l + w) | -| Triangle | ½ × b × h | a + b + c | -| Circle | πr² | 2πr | -| Trapezoid | ½(a+b) × h | sum of sides | - -### 3D Shapes: -| Shape | Volume | Surface Area | -|-------|--------|--------------| -| Sphere | (4/3)πr³ | 4πr² | -| Cylinder | πr²h | 2πr² + 2πrh | -| Cone | (1/3)πr²h | πr² + πrl | - -What geometry problem do you need help with?`;if(s.includes("graph")||s.includes("plot")||s.includes("slope"))return`## Graphing & Linear Functions - -### Slope-Intercept Form: y = mx + b -- **m** = slope (rise / run) -- **b** = y-intercept (where the line crosses the y-axis) - -### Finding Slope: -m = (y₂ - y₁) / (x₂ - x₁) - -### Example: -Through (1, 3) and (4, 9): -- m = (9-3)/(4-1) = 6/3 = 2 -- Plug into y = mx + b: 3 = 2(1) + b → b = 1 -- Equation: **y = 2x + 1** - -What would you like to graph or understand?`;if(s.includes("factor"))return`## How to Factor - -### Common Techniques: -1. **GCF (Greatest Common Factor):** Factor out the largest shared factor - - 6x² + 9x = **3x(2x + 3)** - -2. **Difference of Squares:** a² - b² = (a+b)(a-b) - - x² - 25 = **(x+5)(x-5)** - -3. **Trinomial Factoring:** x² + bx + c = (x + p)(x + q) where p·q = c and p+q = b - - x² + 5x + 6 = **(x+2)(x+3)** - -4. **Grouping:** For 4-term polynomials - -What expression would you like to factor?`}return s.includes("pythag")||s.includes("right")&&s.includes("triangle")?`## Pythagorean Theorem - -For a right triangle with legs a and b, and hypotenuse c: - -### **a² + b² = c²** - -**Example:** If a = 3, b = 4: -- 9 + 16 = 25 -- c = √25 = **5** - -### Common Pythagorean Triples: -- (3, 4, 5) -- (5, 12, 13) -- (8, 15, 17) -- (7, 24, 25) - -Need help with a specific problem?`:s.includes("trig")||/\b(sin|cos|tan)\b/.test(s)?`## Trigonometry - -### SOH-CAH-TOA: -- **sin(θ)** = Opposite / Hypotenuse -- **cos(θ)** = Adjacent / Hypotenuse -- **tan(θ)** = Opposite / Adjacent - -### Key Identities: -- sin²θ + cos²θ = 1 -- tan(θ) = sin(θ)/cos(θ) -- sin(2θ) = 2sin(θ)cos(θ) - -### Unit Circle Values: -| Angle | sin | cos | -|-------|-----|-----| -| 0° | 0 | 1 | -| 30° | 1/2 | √3/2 | -| 45° | √2/2 | √2/2 | -| 90° | 1 | 0 | - -What trig topic would you like help with?`:s.includes("statistic")||s.includes("probability")||s.includes("mean")||s.includes("median")?`## Statistics & Probability - -### Measures of Central Tendency: -- **Mean:** Sum of all values ÷ number of values -- **Median:** Middle value when sorted -- **Mode:** Most frequent value - -### Probability Basics: -- P(event) = favorable outcomes / total outcomes -- 0 ≤ P(event) ≤ 1 -- P(A or B) = P(A) + P(B) - P(A and B) - -### Example: -For data {2, 5, 5, 8, 10}: -- Mean = 30/5 = **6** -- Median = **5** -- Mode = **5** - -What statistics concept do you need help with?`:s.includes("percent")||s.includes("%")?`## Percentages - -### Key Formulas: -- Percentage = (Part / Whole) × 100 -- Part = (Percentage × Whole) / 100 -- % Change = ((New - Old) / Old) × 100 - -### Examples: -- 25% of 200 = (25 × 200) / 100 = **50** -- 15 is what % of 60? → (15/60) × 100 = **25%** -- % increase from 80 to 100 = (20/80) × 100 = **25%** - -Need help with a specific percentage problem?`:s.includes("fraction")||s.includes("numerator")||s.includes("denominator")?`## Fractions - -### Operations: -- **Addition:** a/b + c/d = (ad + bc) / bd -- **Subtraction:** a/b - c/d = (ad - bc) / bd -- **Multiplication:** a/b × c/d = ac / bd -- **Division:** a/b ÷ c/d = a/b × d/c - -### Simplifying: -Divide both numerator and denominator by their GCD. - -### Example: -3/4 + 2/3 = 9/12 + 8/12 = **17/12** - -What fraction problem can I help you with?`:s.includes("limit")?`## Limits - -The limit describes what value a function **approaches** as x approaches some value. - -### How to evaluate: -1. **Direct substitution** — try plugging in the value first -2. **Factor & cancel** — if you get 0/0 -3. **L'Hôpital's Rule** — for 0/0 or ∞/∞ forms - -### Example: -lim(x→2) (x²-4)/(x-2) -= lim(x→2) (x+2)(x-2)/(x-2) -= lim(x→2) (x+2) = **4** - -What limit problem are you working on?`:s.includes("matrix")||s.includes("matrices")?`## Matrices - -A matrix is a rectangular array of numbers arranged in rows and columns. - -### Operations: -- **Addition:** Add corresponding elements (same dimensions required) -- **Scalar multiplication:** Multiply every element by a constant -- **Matrix multiplication:** Rows × Columns (dimensions must be compatible: m×n · n×p = m×p) - -### Determinant (2×2): -For matrix [[a, b], [c, d]]: det = **ad - bc** - -### Example: -| 2 3 | | 1 0 | | 3 3 | -| 4 1 | + | 2 5 | = | 6 6 | - -What matrix operation do you need help with?`:s.includes("logarithm")||s.includes("log")?`## Logarithms - -A logarithm answers: **"What exponent gives me this number?"** - -log_b(x) = y means b^y = x - -### Key Properties: -- log(ab) = log(a) + log(b) -- log(a/b) = log(a) - log(b) -- log(aⁿ) = n · log(a) -- log_b(b) = 1 -- log_b(1) = 0 - -### Common bases: -- **log** = log₁₀ (common log) -- **ln** = logₑ (natural log, e ≈ 2.718) - -### Example: -log₂(8) = 3 because 2³ = 8 - -What logarithm problem are you working on?`:s.includes("exponent")||s.includes("power")?`## Exponents - -An exponent tells you how many times to multiply a base by itself. - -### Key Rules: -- aᵐ · aⁿ = aᵐ⁺ⁿ -- aᵐ / aⁿ = aᵐ⁻ⁿ -- (aᵐ)ⁿ = aᵐⁿ -- a⁰ = 1 (any nonzero number) -- a⁻ⁿ = 1/aⁿ -- a^(1/n) = ⁿ√a - -### Example: -2³ × 2⁴ = 2⁷ = **128** - -What exponent problem can I help with?`:`I'm your **MathPulse AI** math tutor! - -I can help with a wide range of math topics. Try asking: - -- **"What is algebra?"** — get a clear explanation of any topic -- **"How do I solve quadratic equations?"** — step-by-step instructions -- **"Explain the Pythagorean theorem"** — concept breakdowns -- **"What is the derivative of x²?"** — specific problems - -### Topics I cover: -- Algebra, Geometry, Trigonometry -- Calculus (derivatives, integrals, limits) -- Statistics & Probability -- Arithmetic (fractions, percentages) -- Logarithms, Exponents, Matrices - -What would you like to learn about?`}const xg=()=>{const e=h.useContext(ml);if(!e)throw new Error("useChatContext must be used within ChatProvider");return e},sm=({children:e})=>{const{currentUser:t}=cl(),[n,s]=h.useState([]),[i,o]=h.useState(null),[r,a]=h.useState(!1),[c,u]=h.useState(null),[d,l]=h.useState(!1),f=h.useRef(new Map);h.useEffect(()=>{if(!t){s([]),l(!1);return}(async()=>{try{const P=await gt(),S=await P.getUserChatSessions(t.uid),I=await Promise.all(S.map(async x=>{const L=(await P.getSessionMessages(x.id)).map(_=>({id:_.id,sender:_.role==="user"?"user":"ai",text:_.role==="assistant"?je(_.content):_.content,timestamp:_.timestamp instanceof Date?_.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):new Date(_.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}));return{id:x.id,title:x.title,date:x.updatedAt instanceof Date?x.updatedAt.toLocaleDateString():new Date(x.updatedAt).toLocaleDateString(),messageCount:L.length,preview:L.length>0&&Ss(L[L.length-1].text)||"No messages yet",topics:[],messages:L,createdAt:x.createdAt instanceof Date?x.createdAt:new Date(x.createdAt),updatedAt:x.updatedAt instanceof Date?x.updatedAt:new Date(x.updatedAt)}}));s(I)}catch(P){console.error("Error loading chat sessions:",P)}finally{l(!0)}})()},[t]);const p=b=>{if(b.length===0)return"New Chat";const P=b.find(x=>x.sender==="user")?.text||"",S=P.toLowerCase();if(S.includes("quadratic")||S.includes("ax² + bx + c"))return"Quadratic Equations Help";if(S.includes("derivative")||S.includes("calculus"))return"Derivatives & Calculus";if(S.includes("pythagor")||S.includes("right triangle"))return"Pythagorean Theorem";if(S.includes("trig")||S.includes("sin")||S.includes("cos"))return"Trigonometry Help";if(S.includes("area")||S.includes("perimeter"))return"Geometry - Area & Perimeter";if(S.includes("algebra")||S.includes("solve")&&S.includes("x"))return"Algebra Problem Solving";if(S.includes("factor"))return"Factoring Practice";if(S.includes("graph")||S.includes("plot"))return"Graphing Functions";if(S.includes("matrix")||S.includes("matrices"))return"Matrix Operations";if(S.includes("integral")||S.includes("integrate"))return"Integration Problems";if(S.includes("limit"))return"Limits in Calculus";if(S.includes("statistic")||S.includes("probability"))return"Statistics & Probability";const I=P.slice(0,40);return I.length{const P=Date.now().toString(),S=new Date,I={id:P,title:b?p([b]):"New Chat",date:"Just now",messageCount:b?1:0,preview:b&&Ss(b.text)||"Start a new conversation...",topics:[],messages:b?[b]:[],createdAt:S,updatedAt:S};if(s(x=>[I,...x]),t){const x=b?p([b]):"New Chat",R=gt().then(async L=>{const _=await L.createChatSession(t.uid,x);return b&&await L.addMessageToSession(_.id,b.sender==="user"?"user":"assistant",b.text),_.id}).catch(L=>(console.error("Error creating Firebase session:",L),P));f.current.set(P,R)}return P},[t]),w=h.useCallback((b,P)=>{const S=P.sender==="ai"?{...P,text:je(P.text)}:P;s(x=>x.map(R=>{if(R.id===b){const L=[...R.messages,S];return{...R,messages:L,messageCount:L.length,preview:Ss(S.text)||R.preview,updatedAt:new Date,title:L.length===2?p(L):R.title}}return R}));const I=async x=>{const R=f.current.get(x);return R?await R:x};I(b).then(async x=>{await(await gt()).addMessageToSession(x,S.sender==="user"?"user":"assistant",S.text)}).catch(x=>console.error("Error persisting message:",x)),s(x=>{const R=x.find(L=>L.id===b);if(R&&R.messages.length===2){const L=p(R.messages);I(b).then(async _=>{await(await gt()).updateSessionTitle(_,L)}).catch(_=>console.error("Error updating title:",_))}return x})},[]),T=h.useCallback(async(b,P)=>{const S=P.trim(),I={id:Date.now().toString(),sender:"user",text:S,timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};w(b,I),u(b),a(!0);try{let x=null,R=null;const L=n.find(N=>N.id===b),_=(L?.messages||[]).map(N=>({role:N.sender==="user"?"user":"assistant",content:N.text})),oe=gl(S)?Xp(_):null,J=oe?Yp(oe):S,ge=oe??S,Me=pl(S,{history:_});if(Me){const N={id:(Date.now()+1).toString(),sender:"ai",text:Me,timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};w(b,N);return}try{const N=await co();x=N.apiService,R=N.ApiTimeoutError}catch(N){console.error("Failed to load API service for chat:",N);const D={id:(Date.now()+1).toString(),sender:"ai",text:Dn(ge),timestamp:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};w(b,D);return}const U=new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});let V="",W=null;const ee=tm(S),G=nm(S),Q=Qp(S),ye=G||!!Q,j=Q?{expectedEndMarker:Q,completionMode:"marker"}:void 0,B=N=>ni(S,N,Q,G),z=N=>{N.trim()&&s(D=>D.map(K=>{if(K.id!==b)return K;if(!W){W=`stream-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;const ae={id:W,sender:"ai",text:N,timestamp:U},F=[...K.messages,ae];return{...K,messages:F,messageCount:F.length,updatedAt:new Date}}return{...K,messages:K.messages.map(ae=>ae.id===W?{...ae,text:N}:ae),updatedAt:new Date}}))},te=()=>{if(!W)return;const N=W;s(D=>D.map(K=>{if(K.id!==b)return K;const ae=K.messages.filter(F=>F.id!==N);return{...K,messages:ae,messageCount:ae.length,updatedAt:new Date}}))};try{const{response:N}=await x.chat(J,_,F=>{V+=F,ee&&z(kp(V))},j);let D=je(N||V).trim();if(ye&&D&&B(D)){try{const F=await x.chatSafe(uo(S,D,Q),_,j),fe=je(F.data.response).trim();D=Cn(D,fe)}catch(F){console.warn("Streaming completion repair failed:",F)}if(ye&&D&&B(D))try{const F=await x.chatSafe(fo(S,D,Q),_,j),fe=je(F.data.response).trim();D=Cn(D,fe)}catch(F){console.warn("Streaming plain continuation repair failed:",F)}if(ye&&D&&B(D))try{const F=await x.chatSafe(ho(S,Q),_,j),fe=je(F.data.response).trim();fe&&(D=po(S,D,fe,Q,G))}catch(F){console.warn("Streaming full completion repair failed:",F)}}const K=B(D);(!D||K&&!ye)&&(D=Dn(ge,_)),W&&te();const ae={id:(Date.now()+1).toString(),sender:"ai",text:D,timestamp:U};w(b,ae)}catch(N){R&&N instanceof R?console.warn(`Streaming timed out after ${N.timeoutMs}ms, falling back to non-streaming chat.`,N):console.warn("Streaming failed, falling back to non-streaming chat:",N),W&&te();let D="";try{const F=x??(await co()).apiService,{data:fe}=await F.chatSafe(J,_,j);if(D=je(fe.response).trim(),ye&&D&&B(D))try{const ve=await F.chatSafe(uo(S,D,Q),_,j),be=je(ve.data.response).trim();D=Cn(D,be)}catch(ve){console.warn("Non-stream completion repair failed:",ve)}if(ye&&D&&B(D))try{const ve=await F.chatSafe(fo(S,D,Q),_,j),be=je(ve.data.response).trim();D=Cn(D,be)}catch(ve){console.warn("Non-stream plain continuation repair failed:",ve)}if(ye&&D&&B(D))try{const ve=await F.chatSafe(ho(S,Q),_,j),be=je(ve.data.response).trim();be&&(D=po(S,D,be,Q,G))}catch(ve){console.warn("Non-stream full completion repair failed:",ve)}}catch(F){console.warn("Chat request failed, using local fallback response:",F),D=Dn(ge,_)}const K=B(D);(!D||K&&!ye)&&(D=Dn(ge,_));const ae={id:(Date.now()+1).toString(),sender:"ai",text:je(D),timestamp:U};w(b,ae)}if(L&&L.messages.length===1){const N=n.find(D=>D.id===b);if(N&&N.messages.length>1){const D=p(N.messages),K=f.current.get(b);(K||Promise.resolve(b)).then(async F=>{await(await gt()).updateSessionTitle(F,D)}).catch(F=>console.error("Error updating title:",F))}}}finally{a(!1),u(null)}},[n,w]),v=h.useCallback((b,P)=>{s(x=>x.map(R=>R.id===b?{...R,title:P}:R));const S=f.current.get(b);(S||Promise.resolve(b)).then(async x=>{await(await gt()).updateSessionTitle(x,P)}).catch(x=>console.error("Error updating session title:",x))},[]),A=h.useCallback(b=>{s(I=>I.filter(x=>x.id!==b)),i===b&&o(null);const P=f.current.get(b);(P||Promise.resolve(b)).then(async I=>{await(await gt()).deleteSession(I)}).catch(I=>console.error("Error deleting session:",I)),f.current.delete(b)},[i]),y=h.useCallback(()=>n.find(b=>b.id===i)||null,[n,i]);return m.jsx(ml.Provider,{value:{sessions:n,activeSessionId:i,isLoading:r,loadingSessionId:c,sessionsLoaded:d,setActiveSessionId:o,createNewSession:g,addMessageToSession:w,sendMessage:T,updateSessionTitle:v,deleteSession:A,getActiveSession:y,generateTitleFromMessages:p},children:e})},yl=e=>{const t=e.data(),n=t.createdAt,s=typeof n?.toDate=="function"?n.toDate():n instanceof Date?n:new Date,i=t.actionUrl??t.link??void 0;return{...t,id:e.id,createdAt:s,actionUrl:i}},im=async(e,t,n,s,i)=>{try{const o=se(We(q,"notifications")),r={id:o.id,userId:e,type:t,title:n,message:s,read:!1,...i?{actionUrl:i}:{},createdAt:new Date},a={id:r.id,userId:r.userId,type:r.type,title:r.title,message:r.message,read:r.read,createdAt:he(),link:i||null};return await He(o,{...a}),r}catch(o){throw console.error("Error creating notification:",o),o}},wg=async(e,t=50,n=!1)=>{try{let s=rt(We(q,"notifications"),Oe("userId","==",e),tn("createdAt","desc"),nn(t));return n&&(s=rt(We(q,"notifications"),Oe("userId","==",e),Oe("read","==",!1),tn("createdAt","desc"),nn(t))),(await un(s)).docs.map(o=>yl(o))}catch(s){return console.error("Error getting notifications:",s),[]}},Sg=(e,t={},n,s)=>{if(!e)return n([]),()=>{};const{limitCount:i=50,unreadOnly:o=!1}=t,r=[Oe("userId","==",e),tn("createdAt","desc"),nn(i)],a=o?rt(We(q,"notifications"),Oe("userId","==",e),Oe("read","==",!1),tn("createdAt","desc"),nn(i)):rt(We(q,"notifications"),...r);return xo(a,c=>{n(c.docs.map(u=>yl(u)))},c=>{console.error("Error subscribing to notifications:",c),s?.(c)})},Tg=async e=>{try{const t=se(q,"notifications",e);await Bt(t,{read:!0})}catch(t){throw console.error("Error marking notification as read:",t),t}},Pg=async e=>{try{const t=rt(We(q,"notifications"),Oe("userId","==",e),Oe("read","==",!1)),n=await un(t);await Promise.all(n.docs.map(s=>Bt(s.ref,{read:!0})))}catch(t){throw console.error("Error marking all notifications as read:",t),t}},rm=async e=>{try{const t=se(q,"users",e),n=await ke(t);if(!n.exists())throw new Error("User not found");const s=n.data(),i=s.lastActivityDate?.toDate(),o=new Date;o.setHours(0,0,0,0);let r=s.streak||0;if(!i)r=1;else{const u=new Date(i);u.setHours(0,0,0,0);const d=Math.floor((o.getTime()-u.getTime())/(1e3*60*60*24));if(d===0)r=s.streak||1;else if(d===1){r=(s.streak||0)+1;const l=Math.min(r*5,50);await vl(e,l,"streak_bonus",`${r} day streak bonus!`)}else r=1}const a=new Date,c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`;return await Bt(t,{streak:r,streakHistory:Bl(c),lastActivityDate:he(),updatedAt:he()}),r}catch(t){return console.error("Error updating streak:",t),0}},vl=async(e,t,n,s)=>{try{const i=se(q,"users",e),o=await ke(i);if(!o.exists())throw new Error("User not found");const r=o.data(),a=r.currentXP||0,c=r.totalXP||0,u=a+t,d=c+t,l=r.level||1;console.log(`🏆 XP Award - User: ${e}, Amount: ${t}, Previous currentXP: ${a}, New: ${u}, Type: ${n}`);let f=l,p=d,g=!1;for(;;){const v=Math.floor(100*Math.pow(1.5,f-1));let A=0;for(let y=1;y<=f;y++)A+=Math.floor(100*Math.pow(1.5,y-1));if(d>=A)f++,g=!0;else break}const w={currentXP:u,totalXP:d,level:f,updatedAt:he()};await Bt(i,w),console.log(`💾 Firebase Update - currentXP: ${a} -> ${u}, totalXP: ${c} -> ${d}, level: ${f}`);const T=se(We(q,"xpActivities"));return await He(T,{activityId:T.id,userId:e,type:n,xpEarned:t,description:s,timestamp:he()}),{newLevel:f,leveledUp:g,xp:u,addedXp:t}}catch(i){throw console.error("Error awarding XP:",i),i}},Ag=async(e,t=!1,n="all",s=10)=>{try{const i=rt(We(q,"users"),Oe("role","==","student"),tn("totalXP","desc"),nn(s));return(await un(i)).docs.map((r,a)=>{const c=r.data();return{userId:r.id,name:c.name||"Unknown",photo:c.photo,xp:c.totalXP||0,level:c.level||1,rank:a+1,weeklyXP:c.weeklyXP||0,monthlyXP:c.monthlyXP||0}})}catch(i){return console.error("Error getting leaderboard:",i),[]}},Eg=async e=>{try{const t=await ke(se(q,"users",e));if(!t.exists())return 0;const n=t.data().totalXP||0,s=rt(We(q,"users"),Oe("role","==","student"),Oe("totalXP",">",n));return(await un(s)).size+1}catch(t){return console.error("Error getting user rank:",t),0}},Cg=async e=>{try{const t=await ke(se(q,"achievements",e));return t.exists()?t.data().achievements||[]:[]}catch(t){return console.error("Error getting user achievements:",t),[]}},Ni=async e=>{const t={userId:e,subjects:{},lessons:{},quizAttempts:[],totalLessonsCompleted:0,totalQuizzesCompleted:0,averageScore:0,updatedAt:new Date};return await He(se(q,"progress",e),t),t},om=async e=>{try{const t=se(q,"progress",e),n=await ke(t);if(n.exists()){const s=n.data();return{...s,updatedAt:s.updatedAt?.toDate()||new Date}}return await Ni(e)}catch(t){return console.error("Error getting user progress:",t),null}},Dg=(e,t)=>{const n=se(q,"progress",e);return xo(n,s=>{if(!s.exists()){t(null);return}const i=s.data();t({...i,updatedAt:i.updatedAt?.toDate?.()||new Date})},s=>{console.error("Error subscribing to user progress:",s),t(null)})},Rg=async(e,t,n)=>{const s=Math.max(0,Math.min(100,n)),i=se(q,"progress",e);await He(i,{[`lessons.${t}.lessonId`]:t,[`lessons.${t}.progressPercent`]:s,updatedAt:he()},{merge:!0})},kg=async(e,t,n,s,i)=>{const o=se(q,"progress",e),r=await ke(o);if(!r.exists())return 0;const c=r.data().subjects?.[t]?.modulesProgress?.[n];if(!c)return 0;const u=Math.max(1,s+i),d=c.lessonsCompleted?.length||0,l=c.quizzesCompleted?.length||0,f=Math.round((d+l)/u*100);return await He(o,{[`subjects.${t}.modulesProgress.${n}.progress`]:f,[`subjects.${t}.modulesProgress.${n}.lastAccessedAt`]:he(),updatedAt:he()},{merge:!0}),f},Mg=async(e,t,n,s,i,o=50)=>{try{const r=se(q,"progress",e);let a=await ke(r);a.exists()||(await Ni(e),a=await ke(r));const c=a.data(),u={lessonId:s,completed:!0,completedAt:new Date,timeSpent:i};c.subjects||(c.subjects={}),c.subjects[t]||(c.subjects[t]={subjectId:t,progress:0,completedModules:0,totalModules:0,modulesProgress:{}});const d=c.subjects[t];d.modulesProgress[n]||(d.modulesProgress[n]={moduleId:n,subjectId:t,progress:0,lessonsCompleted:[],quizzesCompleted:[],startedAt:new Date,lastAccessedAt:new Date});const l=d.modulesProgress[n],f=!l.lessonsCompleted.includes(s);f&&(l.lessonsCompleted.push(s),l.lastAccessedAt=new Date),await He(r,{[`lessons.${s}`]:u,[`subjects.${t}.modulesProgress.${n}`]:l,...f&&{totalLessonsCompleted:Fn(1)},updatedAt:he()},{merge:!0}),await bl(e,o,"lesson_complete",`Completed lesson: ${s}`)}catch(r){throw console.error("Error completing lesson:",r),r}},Lg=async(e,t,n,s,i,o,r)=>{try{const a=se(q,"progress",e);let c=await ke(a);c.exists()||(await Ni(e),c=await ke(a));const u=c.data(),d={quizId:s,attemptNumber:(u.quizAttempts?.filter(w=>w.quizId===s).length||0)+1,score:i,completedAt:new Date,timeSpent:r,answers:o},l=Math.floor(i/100*100);u.subjects||(u.subjects={}),u.subjects[t]||(u.subjects[t]={subjectId:t,progress:0,completedModules:0,totalModules:0,modulesProgress:{}});const f=u.subjects[t];f.modulesProgress[n]||(f.modulesProgress[n]={moduleId:n,subjectId:t,progress:0,lessonsCompleted:[],quizzesCompleted:[],startedAt:new Date,lastAccessedAt:new Date});const p=f.modulesProgress[n],g=!p.quizzesCompleted.includes(s);g&&(p.quizzesCompleted.push(s),p.lastAccessedAt=new Date),await Bt(a,{quizAttempts:[...u.quizAttempts||[],d],[`subjects.${t}.modulesProgress.${n}`]:p,...g&&{totalQuizzesCompleted:Fn(1)},updatedAt:he()}),await bl(e,l,"quiz_complete",`Completed quiz: ${s} (Score: ${i}%)`)}catch(a){throw console.error("Error completing quiz:",a),a}},bl=async(e,t,n,s)=>{try{const i=se(q,"users",e);await Bt(i,{currentXP:Fn(t),totalXP:Fn(t),updatedAt:he()});const o=se(We(q,"xpActivities"));await He(o,{activityId:o.id,userId:e,type:n,xpEarned:t,description:s,timestamp:he()})}catch(i){console.error("Error awarding XP:",i)}},On={notifications:{emailNotifications:!0,pushNotifications:!0,soundEnabled:!0,notificationTypes:{quizReminders:!0,newContent:!0,achievements:!0,streakAlerts:!0,weeklySummary:!0},quietHours:{start:"22:00",end:"08:00"}},appearance:{darkMode:!1,fontSize:16,compactView:!1,reduceAnimations:!1},privacy:{profileVisibility:"everyone",showActivityStatus:!0,dataSharing:!0},learning:{dailyXpGoal:100,preferredStudyTime:"evening",autoPlayLessons:!1,showHints:!0,quizDifficultyPreference:"adaptive",studyReminderTime:"18:00"},adminPanel:{siteName:"MathPulse AI",siteDescription:"AI-Powered Mathematics Learning Platform",defaultLanguage:"English",maintenanceMode:!1,enforceStrongPasswords:!0,sessionTimeoutMinutes:60,aiTutorEnabled:!0,aiAutoRecommendations:!0,aiRiskAlertsEnabled:!0,gradingScale:"percentage",passingGrade:75,parentSummaryEmails:!0,teacherDigestEmails:!0,weeklyPlatformReport:!0,autoBackupEnabled:!1,backupFrequency:"weekly"}},am="preferences",Oi=()=>JSON.parse(JSON.stringify(On)),xl=e=>{const t=Oi();return e?{...t,...e,notifications:{...t.notifications,...e.notifications,notificationTypes:{...t.notifications.notificationTypes,...e.notifications?.notificationTypes},quietHours:{...t.notifications.quietHours,...e.notifications?.quietHours}},appearance:{...t.appearance,...e.appearance},privacy:{...t.privacy,...e.privacy},learning:{...t.learning,...e.learning},adminPanel:{...t.adminPanel,...e.adminPanel}}:t},Fi=e=>se(q,"users",e,"settings",am),wl=async e=>{const t=Fi(e),n=await ke(t);if(!n.exists()){const s=Oi();return await He(t,{...s,createdAt:he(),updatedAt:he()}),s}return xl(n.data())},lm=async(e,t)=>{const n=await wl(e),s=xl({...n,...t});return await He(Fi(e),{...s,updatedAt:he()},{merge:!0}),s},cm=e=>{const t=document.documentElement;t.style.setProperty("--font-size",`${e.appearance.fontSize}px`),t.dataset.density=e.appearance.compactView?"compact":"comfortable",e.appearance.reduceAnimations?t.classList.add("reduced-motion"):t.classList.remove("reduced-motion"),e.appearance.darkMode?t.classList.add("smart-dark"):t.classList.remove("smart-dark")},um=async()=>{try{if(localStorage.clear(),sessionStorage.clear(),"caches"in window){const e=await caches.keys();await Promise.all(e.map(t=>caches.delete(t)))}}catch(e){throw console.error("Failed clearing client cache:",e),new Error("Unable to clear cache on this device.")}},dm=async e=>{const t=se(q,"users",e),n=await ke(t),s=await ke(Fi(e)),i=["progress","xpActivities","achievements","notifications","tasks","chatSessions","chatMessages"],o=await Promise.all(i.map(async r=>{const a=rt(We(q,r),Oe("userId","==",e)),c=await un(a);return{collectionName:r,items:c.docs.map(u=>({id:u.id,...u.data()}))}}));return{exportedAt:new Date().toISOString(),user:n.exists()?{id:n.id,...n.data()}:null,settings:s.exists()?s.data():Oi(),collections:o.reduce((r,a)=>(r[a.collectionName]=a.items,r),{})}};function fm(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const hm=e=>{switch(e){case"success":return gm;case"info":return vm;case"warning":return ym;case"error":return bm;default:return null}},pm=Array(12).fill(0),mm=({visible:e,className:t})=>E.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},E.createElement("div",{className:"sonner-spinner"},pm.map((n,s)=>E.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),gm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ym=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),vm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),bm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),xm=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},E.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),wm=()=>{const[e,t]=E.useState(document.hidden);return E.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let si=1;class Sm{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:s,...i}=t,o=typeof t?.id=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:si++,r=this.toasts.find(c=>c.id===o),a=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),r?this.toasts=this.toasts.map(c=>c.id===o?(this.publish({...c,...t,id:o,title:s}),{...c,...t,id:o,dismissible:a,title:s}):c):this.addToast({title:s,...i,dismissible:a,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(s=>s({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let s;n.loading!==void 0&&(s=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const i=Promise.resolve(t instanceof Function?t():t);let o=s!==void 0,r;const a=i.then(async u=>{if(r=["resolve",u],E.isValidElement(u))o=!1,this.create({id:s,type:"default",message:u});else if(Pm(u)&&!u.ok){o=!1;const l=typeof n.error=="function"?await n.error(`HTTP error! status: ${u.status}`):n.error,f=typeof n.description=="function"?await n.description(`HTTP error! status: ${u.status}`):n.description,g=typeof l=="object"&&!E.isValidElement(l)?l:{message:l};this.create({id:s,type:"error",description:f,...g})}else if(u instanceof Error){o=!1;const l=typeof n.error=="function"?await n.error(u):n.error,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof l=="object"&&!E.isValidElement(l)?l:{message:l};this.create({id:s,type:"error",description:f,...g})}else if(n.success!==void 0){o=!1;const l=typeof n.success=="function"?await n.success(u):n.success,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof l=="object"&&!E.isValidElement(l)?l:{message:l};this.create({id:s,type:"success",description:f,...g})}}).catch(async u=>{if(r=["reject",u],n.error!==void 0){o=!1;const d=typeof n.error=="function"?await n.error(u):n.error,l=typeof n.description=="function"?await n.description(u):n.description,p=typeof d=="object"&&!E.isValidElement(d)?d:{message:d};this.create({id:s,type:"error",description:l,...p})}}).finally(()=>{o&&(this.dismiss(s),s=void 0),n.finally==null||n.finally.call(n)}),c=()=>new Promise((u,d)=>a.then(()=>r[0]==="reject"?d(r[1]):u(r[1])).catch(d));return typeof s!="string"&&typeof s!="number"?{unwrap:c}:Object.assign(s,{unwrap:c})},this.custom=(t,n)=>{const s=n?.id||si++;return this.create({jsx:t(s),id:s,...n}),s},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Re=new Sm,Tm=(e,t)=>{const n=t?.id||si++;return Re.addToast({title:e,...t,id:n}),n},Pm=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Am=Tm,Em=()=>Re.toasts,Cm=()=>Re.getActiveToasts(),Se=Object.assign(Am,{success:Re.success,info:Re.info,warning:Re.warning,error:Re.error,custom:Re.custom,message:Re.message,promise:Re.promise,dismiss:Re.dismiss,loading:Re.loading},{getHistory:Em,getToasts:Cm});fm("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Rn(e){return e.label!==void 0}const Dm=3,Rm="24px",km="16px",mo=4e3,Mm=356,Lm=14,Im=45,Vm=200;function Ge(...e){return e.filter(Boolean).join(" ")}function _m(e){const[t,n]=e.split("-"),s=[];return t&&s.push(t),n&&s.push(n),s}const jm=e=>{var t,n,s,i,o,r,a,c,u;const{invert:d,toast:l,unstyled:f,interacting:p,setHeights:g,visibleToasts:w,heights:T,index:v,toasts:A,expanded:y,removeToast:b,defaultRichColors:P,closeButton:S,style:I,cancelButtonStyle:x,actionButtonStyle:R,className:L="",descriptionClassName:_="",duration:oe,position:J,gap:ge,expandByDefault:Me,classNames:U,icons:V,closeButtonAriaLabel:W="Close toast"}=e,[ee,G]=E.useState(null),[Q,ye]=E.useState(null),[j,B]=E.useState(!1),[z,te]=E.useState(!1),[N,D]=E.useState(!1),[K,ae]=E.useState(!1),[F,fe]=E.useState(!1),[ve,be]=E.useState(0),[Ze,gn]=E.useState(0),Be=E.useRef(l.duration||oe||mo),et=E.useRef(null),Ve=E.useRef(null),yn=v===0,tt=v+1<=w,pe=l.type,qe=l.dismissible!==!1,Ht=l.className||"",wt=l.descriptionClassName||"",_e=E.useMemo(()=>T.findIndex(O=>O.toastId===l.id)||0,[T,l.id]),St=E.useMemo(()=>{var O;return(O=l.closeButton)!=null?O:S},[l.closeButton,S]),Tt=E.useMemo(()=>l.duration||oe||mo,[l.duration,oe]),dt=E.useRef(0),nt=E.useRef(0),qt=E.useRef(0),Ke=E.useRef(null),[Kt,ft]=J.split("-"),ht=E.useMemo(()=>T.reduce((O,le,ie)=>ie>=_e?O:O+le.height,0),[T,_e]),Pt=wm(),At=l.invert||d,Et=pe==="loading";nt.current=E.useMemo(()=>_e*ge+ht,[_e,ht]),E.useEffect(()=>{Be.current=Tt},[Tt]),E.useEffect(()=>{B(!0)},[]),E.useEffect(()=>{const O=Ve.current;if(O){const le=O.getBoundingClientRect().height;return gn(le),g(ie=>[{toastId:l.id,height:le,position:l.position},...ie]),()=>g(ie=>ie.filter(re=>re.toastId!==l.id))}},[g,l.id]),E.useLayoutEffect(()=>{if(!j)return;const O=Ve.current,le=O.style.height;O.style.height="auto";const ie=O.getBoundingClientRect().height;O.style.height=le,gn(ie),g(re=>re.find(ue=>ue.toastId===l.id)?re.map(ue=>ue.toastId===l.id?{...ue,height:ie}:ue):[{toastId:l.id,height:ie,position:l.position},...re])},[j,l.title,l.description,g,l.id,l.jsx,l.action,l.cancel]);const Ae=E.useCallback(()=>{te(!0),be(nt.current),g(O=>O.filter(le=>le.toastId!==l.id)),setTimeout(()=>{b(l)},Vm)},[l,b,g,nt]);E.useEffect(()=>{if(l.promise&&pe==="loading"||l.duration===1/0||l.type==="loading")return;let O;return y||p||Pt?(()=>{if(qt.current{Be.current!==1/0&&(dt.current=new Date().getTime(),O=setTimeout(()=>{l.onAutoClose==null||l.onAutoClose.call(l,l),Ae()},Be.current))})(),()=>clearTimeout(O)},[y,p,l,pe,Pt,Ae]),E.useEffect(()=>{l.delete&&(Ae(),l.onDismiss==null||l.onDismiss.call(l,l))},[Ae,l.delete]);function vn(){var O;if(V?.loading){var le;return E.createElement("div",{className:Ge(U?.loader,l==null||(le=l.classNames)==null?void 0:le.loader,"sonner-loader"),"data-visible":pe==="loading"},V.loading)}return E.createElement(mm,{className:Ge(U?.loader,l==null||(O=l.classNames)==null?void 0:O.loader),visible:pe==="loading"})}const bn=l.icon||V?.[pe]||hm(pe);var xn,Ct;return E.createElement("li",{tabIndex:0,ref:Ve,className:Ge(L,Ht,U?.toast,l==null||(t=l.classNames)==null?void 0:t.toast,U?.default,U?.[pe],l==null||(n=l.classNames)==null?void 0:n[pe]),"data-sonner-toast":"","data-rich-colors":(xn=l.richColors)!=null?xn:P,"data-styled":!(l.jsx||l.unstyled||f),"data-mounted":j,"data-promise":!!l.promise,"data-swiped":F,"data-removed":z,"data-visible":tt,"data-y-position":Kt,"data-x-position":ft,"data-index":v,"data-front":yn,"data-swiping":N,"data-dismissible":qe,"data-type":pe,"data-invert":At,"data-swipe-out":K,"data-swipe-direction":Q,"data-expanded":!!(y||Me&&j),"data-testid":l.testId,style:{"--index":v,"--toasts-before":v,"--z-index":A.length-v,"--offset":`${z?ve:nt.current}px`,"--initial-height":Me?"auto":`${Ze}px`,...I,...l.style},onDragEnd:()=>{D(!1),G(null),Ke.current=null},onPointerDown:O=>{O.button!==2&&(Et||!qe||(et.current=new Date,be(nt.current),O.target.setPointerCapture(O.pointerId),O.target.tagName!=="BUTTON"&&(D(!0),Ke.current={x:O.clientX,y:O.clientY})))},onPointerUp:()=>{var O,le,ie;if(K||!qe)return;Ke.current=null;const re=Number(((O=Ve.current)==null?void 0:O.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),pt=Number(((le=Ve.current)==null?void 0:le.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),ue=new Date().getTime()-((ie=et.current)==null?void 0:ie.getTime()),Ee=ee==="x"?re:pt,Dt=Math.abs(Ee)/ue;if(Math.abs(Ee)>=Im||Dt>.11){be(nt.current),l.onDismiss==null||l.onDismiss.call(l,l),ye(ee==="x"?re>0?"right":"left":pt>0?"down":"up"),Ae(),ae(!0);return}else{var Le,Ie;(Le=Ve.current)==null||Le.style.setProperty("--swipe-amount-x","0px"),(Ie=Ve.current)==null||Ie.style.setProperty("--swipe-amount-y","0px")}fe(!1),D(!1),G(null)},onPointerMove:O=>{var le,ie,re;if(!Ke.current||!qe||((le=window.getSelection())==null?void 0:le.toString().length)>0)return;const ue=O.clientY-Ke.current.y,Ee=O.clientX-Ke.current.x;var Dt;const Le=(Dt=e.swipeDirections)!=null?Dt:_m(J);!ee&&(Math.abs(Ee)>1||Math.abs(ue)>1)&&G(Math.abs(Ee)>Math.abs(ue)?"x":"y");let Ie={x:0,y:0};const Rt=Ce=>1/(1.5+Math.abs(Ce)/20);if(ee==="y"){if(Le.includes("top")||Le.includes("bottom"))if(Le.includes("top")&&ue<0||Le.includes("bottom")&&ue>0)Ie.y=ue;else{const Ce=ue*Rt(ue);Ie.y=Math.abs(Ce)0)Ie.x=Ee;else{const Ce=Ee*Rt(Ee);Ie.x=Math.abs(Ce)0||Math.abs(Ie.y)>0)&&fe(!0),(ie=Ve.current)==null||ie.style.setProperty("--swipe-amount-x",`${Ie.x}px`),(re=Ve.current)==null||re.style.setProperty("--swipe-amount-y",`${Ie.y}px`)}},St&&!l.jsx&&pe!=="loading"?E.createElement("button",{"aria-label":W,"data-disabled":Et,"data-close-button":!0,onClick:Et||!qe?()=>{}:()=>{Ae(),l.onDismiss==null||l.onDismiss.call(l,l)},className:Ge(U?.closeButton,l==null||(s=l.classNames)==null?void 0:s.closeButton)},(Ct=V?.close)!=null?Ct:xm):null,(pe||l.icon||l.promise)&&l.icon!==null&&(V?.[pe]!==null||l.icon)?E.createElement("div",{"data-icon":"",className:Ge(U?.icon,l==null||(i=l.classNames)==null?void 0:i.icon)},l.promise||l.type==="loading"&&!l.icon?l.icon||vn():null,l.type!=="loading"?bn:null):null,E.createElement("div",{"data-content":"",className:Ge(U?.content,l==null||(o=l.classNames)==null?void 0:o.content)},E.createElement("div",{"data-title":"",className:Ge(U?.title,l==null||(r=l.classNames)==null?void 0:r.title)},l.jsx?l.jsx:typeof l.title=="function"?l.title():l.title),l.description?E.createElement("div",{"data-description":"",className:Ge(_,wt,U?.description,l==null||(a=l.classNames)==null?void 0:a.description)},typeof l.description=="function"?l.description():l.description):null),E.isValidElement(l.cancel)?l.cancel:l.cancel&&Rn(l.cancel)?E.createElement("button",{"data-button":!0,"data-cancel":!0,style:l.cancelButtonStyle||x,onClick:O=>{Rn(l.cancel)&&qe&&(l.cancel.onClick==null||l.cancel.onClick.call(l.cancel,O),Ae())},className:Ge(U?.cancelButton,l==null||(c=l.classNames)==null?void 0:c.cancelButton)},l.cancel.label):null,E.isValidElement(l.action)?l.action:l.action&&Rn(l.action)?E.createElement("button",{"data-button":!0,"data-action":!0,style:l.actionButtonStyle||R,onClick:O=>{Rn(l.action)&&(l.action.onClick==null||l.action.onClick.call(l.action,O),!O.defaultPrevented&&Ae())},className:Ge(U?.actionButton,l==null||(u=l.classNames)==null?void 0:u.actionButton)},l.action.label):null)};function go(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Nm(e,t){const n={};return[e,t].forEach((s,i)=>{const o=i===1,r=o?"--mobile-offset":"--offset",a=o?km:Rm;function c(u){["top","right","bottom","left"].forEach(d=>{n[`${r}-${d}`]=typeof u=="number"?`${u}px`:u})}typeof s=="number"||typeof s=="string"?c(s):typeof s=="object"?["top","right","bottom","left"].forEach(u=>{s[u]===void 0?n[`${r}-${u}`]=a:n[`${r}-${u}`]=typeof s[u]=="number"?`${s[u]}px`:s[u]}):c(a)}),n}const As=E.forwardRef(function(t,n){const{id:s,invert:i,position:o="bottom-right",hotkey:r=["altKey","KeyT"],expand:a,closeButton:c,className:u,offset:d,mobileOffset:l,theme:f="light",richColors:p,duration:g,style:w,visibleToasts:T=Dm,toastOptions:v,dir:A=go(),gap:y=Lm,icons:b,containerAriaLabel:P="Notifications"}=t,[S,I]=E.useState([]),x=E.useMemo(()=>s?S.filter(j=>j.toasterId===s):S.filter(j=>!j.toasterId),[S,s]),R=E.useMemo(()=>Array.from(new Set([o].concat(x.filter(j=>j.position).map(j=>j.position)))),[x,o]),[L,_]=E.useState([]),[oe,J]=E.useState(!1),[ge,Me]=E.useState(!1),[U,V]=E.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=E.useRef(null),ee=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),G=E.useRef(null),Q=E.useRef(!1),ye=E.useCallback(j=>{I(B=>{var z;return(z=B.find(te=>te.id===j.id))!=null&&z.delete||Re.dismiss(j.id),B.filter(({id:te})=>te!==j.id)})},[]);return E.useEffect(()=>Re.subscribe(j=>{if(j.dismiss){requestAnimationFrame(()=>{I(B=>B.map(z=>z.id===j.id?{...z,delete:!0}:z))});return}setTimeout(()=>{Tl.flushSync(()=>{I(B=>{const z=B.findIndex(te=>te.id===j.id);return z!==-1?[...B.slice(0,z),{...B[z],...j},...B.slice(z+1)]:[j,...B]})})})}),[S]),E.useEffect(()=>{if(f!=="system"){V(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?V("dark"):V("light")),typeof window>"u")return;const j=window.matchMedia("(prefers-color-scheme: dark)");try{j.addEventListener("change",({matches:B})=>{V(B?"dark":"light")})}catch{j.addListener(({matches:z})=>{try{V(z?"dark":"light")}catch(te){console.error(te)}})}},[f]),E.useEffect(()=>{S.length<=1&&J(!1)},[S]),E.useEffect(()=>{const j=B=>{var z;if(r.every(D=>B[D]||B.code===D)){var N;J(!0),(N=W.current)==null||N.focus()}B.code==="Escape"&&(document.activeElement===W.current||(z=W.current)!=null&&z.contains(document.activeElement))&&J(!1)};return document.addEventListener("keydown",j),()=>document.removeEventListener("keydown",j)},[r]),E.useEffect(()=>{if(W.current)return()=>{G.current&&(G.current.focus({preventScroll:!0}),G.current=null,Q.current=!1)}},[W.current]),E.createElement("section",{ref:n,"aria-label":`${P} ${ee}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},R.map((j,B)=>{var z;const[te,N]=j.split("-");return x.length?E.createElement("ol",{key:j,dir:A==="auto"?go():A,tabIndex:-1,ref:W,className:u,"data-sonner-toaster":!0,"data-sonner-theme":U,"data-y-position":te,"data-x-position":N,style:{"--front-toast-height":`${((z=L[0])==null?void 0:z.height)||0}px`,"--width":`${Mm}px`,"--gap":`${y}px`,...w,...Nm(d,l)},onBlur:D=>{Q.current&&!D.currentTarget.contains(D.relatedTarget)&&(Q.current=!1,G.current&&(G.current.focus({preventScroll:!0}),G.current=null))},onFocus:D=>{D.target instanceof HTMLElement&&D.target.dataset.dismissible==="false"||Q.current||(Q.current=!0,G.current=D.relatedTarget)},onMouseEnter:()=>J(!0),onMouseMove:()=>J(!0),onMouseLeave:()=>{ge||J(!1)},onDragEnd:()=>J(!1),onPointerDown:D=>{D.target instanceof HTMLElement&&D.target.dataset.dismissible==="false"||Me(!0)},onPointerUp:()=>Me(!1)},x.filter(D=>!D.position&&B===0||D.position===j).map((D,K)=>{var ae,F;return E.createElement(jm,{key:D.id,icons:b,index:K,toast:D,defaultRichColors:p,duration:(ae=v?.duration)!=null?ae:g,className:v?.className,descriptionClassName:v?.descriptionClassName,invert:i,visibleToasts:T,closeButton:(F=v?.closeButton)!=null?F:c,interacting:ge,position:j,style:v?.style,unstyled:v?.unstyled,classNames:v?.classNames,cancelButtonStyle:v?.cancelButtonStyle,actionButtonStyle:v?.actionButtonStyle,closeButtonAriaLabel:v?.closeButtonAriaLabel,removeToast:ye,toasts:x.filter(fe=>fe.position==D.position),heights:L.filter(fe=>fe.position==D.position),setHeights:_,expandByDefault:a,gap:y,expanded:oe,swipeDirections:t.swipeDirections})})):null}))}),Om={Functions:"Functions and Graphs",BusinessMath:"Business and Financial Mathematics",Logic:"Logic and Reasoning"},Ig={Functions:"gm-1",BusinessMath:"gm-2",Logic:"gm-3"},Es=e=>{const t=e.trim().toLowerCase();return t==="functions"||t.includes("function")?"Functions":t==="businessmath"||t.includes("business")?"BusinessMath":t==="logic"||t.includes("reason")?"Logic":null},Fm=h.lazy(()=>H(()=>import("./LoginPage-BTBes4zQ.js"),__vite__mapDeps([9,3,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,4,2,1,5,6]))),Bm=h.lazy(()=>H(()=>import("./TeacherDashboard-CtdIzfjb.js"),__vite__mapDeps([27,3,10,11,12,13,14,28,29,30,31,4,2,1,5,6,32,7,20,16,21,33,34,25,35,36,37,38,39,40,41,42,43,15,44,17,19,45,46,47,48,24,49,50,18,51,52,53,54,55,56,57,58,59,60,61,62]))),$m=h.lazy(()=>H(()=>import("./AdminDashboard-uzlVc26h.js"),__vite__mapDeps([63,3,64,32,13,12,31,65,11,29,50,19,21,41,66,57,20,67,58,68,4,2,1,5,6,28,10,30,14,40,69,46,39,7,38,34,48,62,45,70,60,36,25,71,54,44,59,56,18,16,72,43,37,17]))),yo=h.lazy(()=>H(()=>import("./Sidebar-BH3yU0R9.js"),__vite__mapDeps([64,3,32,13,12,31,65,11,29,50,19,21,41,66,57,20,67,58,68,4,2,1,5,6]))),zm=h.lazy(()=>H(()=>import("./HeroBanner-DgRlQubI.js"),__vite__mapDeps([73,3,16,4,2,1,5,6]))),Um=h.lazy(()=>H(()=>import("./RightSidebar-kfU04N_d.js"),__vite__mapDeps([74,3,48,65,11,13,12,58,50,75,4,2,1,5,6]))),Wm=h.lazy(()=>H(()=>import("./XPNotification-DOZFX3ET.js"),__vite__mapDeps([76,3,75,15,4,2,1,5,6]))),Hm=h.lazy(()=>H(()=>import("./NotificationCenter-l7IdH4wu.js"),__vite__mapDeps([77,3,54,55,29,21,57,36,58,4,2,1,5,6]))),qm=h.lazy(()=>H(()=>import("./SearchBar-DYN0WTzx.js"),__vite__mapDeps([78,3,45,29,56,21,17,19,20,4,2,1,5,6]))),Km=h.lazy(()=>H(()=>import("./SupplementalBanner-COM6ABNZ.js"),__vite__mapDeps([79,3,29,15,50,21,17,16,4,2,1,5,6]))),Gm=h.lazy(()=>H(()=>import("./LearningPath-CTKb6bQc.js"),__vite__mapDeps([80,3,47,17,41,81,21,56,4,2,1,5,6]))),Xm=h.lazy(()=>H(()=>import("./CompetencyRadarChart-Bv4P4qFs.js"),__vite__mapDeps([82,3,47,17,41,16,15,61,12,4,2,1,5,6])).then(e=>({default:e.CompetencyRadarChart}))),Ym=h.lazy(()=>H(()=>import("./ModulesPage-C8056uyx.js"),__vite__mapDeps([83,3,81,21,56,10,11,12,13,14,58,15,59,18,75,39,29,70,47,17,41,33,1,2,48,23,84,0,4,5,6,85,7,46,86,79,50,16,62,45]))),Qm=h.lazy(()=>H(()=>import("./AIChatPage-DDSYPYxd.js"),__vite__mapDeps([87,3,10,11,12,13,14,51,52,53,4,2,1,5,6,38,45,30,35]))),Zm=h.lazy(()=>H(()=>import("./GradesPage-BIf0hX4r.js"),__vite__mapDeps([88,3,10,11,12,13,47,17,41,18,59,60,43,72,50,4,2,1,5,6]))),Jm=h.lazy(()=>H(()=>import("./LeaderboardPage-C97hWKsZ.js"),__vite__mapDeps([89,3,29,21,59,18,56,58,17,34,75,49,4,2,1,5,6]))),eg=h.lazy(()=>H(()=>import("./QuizBattlePage-BhgM4TWz.js"),__vite__mapDeps([90,3,13,12,91,92,47,17,41,1,2,10,11,93,69,46,39,14,71,42,67,75,19,58,59,15,50,34,26,4,5,6]))),tg=h.lazy(()=>H(()=>import("./AvatarShop-D-gwLcZq.js"),__vite__mapDeps([94,3,93,11,13,12,10,68,15,34,4,2,1,5,6]))),ng=h.lazy(()=>H(()=>import("./FloatingAITutor-DYvlvoVe.js"),__vite__mapDeps([95,3,37,29,35,4,2,1,5,6]))),sg=h.lazy(()=>H(()=>import("./RewardsModal-CtOcWG3R.js"),__vite__mapDeps([96,3,29,75,58,59,21,18,60,19,17,4,2,1,5,6]))),Cs=h.lazy(()=>H(()=>import("./ProfileModal-CvubwvbT.js"),__vite__mapDeps([97,3,10,11,12,13,14,91,92,29,19,22,18,21,60,98,44,4,2,1,5,6]))),ig=h.lazy(()=>H(()=>import("./ConfirmModal-B9CUrvQP.js"),__vite__mapDeps([28,3,10,11,12,13,29,30,31,4,2,1,5,6]))),Ds=h.lazy(()=>H(()=>import("./SettingsModal-BFFZzSRx.js"),__vite__mapDeps([99,3,10,11,12,13,14,71,28,29,30,31,4,2,1,5,6,49,54,66,98,43,23,56]))),rg=h.lazy(()=>H(()=>import("./ScientificCalculator-BP-XvW_h.js"),__vite__mapDeps([85,3,7,4,2,1,5,6,46,29]))),og=h.lazy(()=>H(()=>import("./DiagnosticAssessmentModal-BoOvPWwv.js"),__vite__mapDeps([100,3,10,11,12,13,86,85,7,4,2,1,5,6,46,29,0,16,48,50,41,17]))),ag=()=>{const{isLoggedIn:e,userProfile:t,userRole:n,loading:s,refreshProfile:i}=cl(),o=m.jsx("div",{className:"flex min-h-[320px] items-center justify-center text-sm font-semibold text-slate-500",children:"Loading content..."}),r=m.jsx("div",{className:"pb-4 text-sm font-semibold text-slate-500",children:"Loading dashboard content..."}),a=m.jsx("div",{className:"h-11 w-11 shrink-0 rounded-xl bg-[#edf1f7]","aria-hidden":"true"}),c=m.jsx("div",{className:"h-11 w-full rounded-xl bg-[#edf1f7]","aria-hidden":"true"}),u=m.jsx("div",{className:"h-screen w-72 border-r border-[#dde3eb] bg-white/70","aria-hidden":"true"}),d=m.jsx("div",{className:"min-h-[240px] rounded-3xl border border-[#dde3eb] bg-white/70","aria-hidden":"true"}),[l,f]=h.useState("Dashboard"),p=h.useRef(null),g=h.useRef(null),[w,T]=h.useState(!1),[v,A]=h.useState(!1),y=t,[b,P]=h.useState(y?.level||1),[S,I]=h.useState(y?.currentXP||0),[x,R]=h.useState(y?.totalXP||0),L=Math.floor(100*Math.pow(1.5,b-1));let _=0;for(let C=1;C{if(C==="Modules"&&bn){Se.info(`Complete your deep diagnostic (${Pt} outstanding) to unlock modules and regular practice.`),qe("followup_diagnostic"),tt(!0),f("Dashboard");return}M?ve(M):C==="Modules"&&l!=="Modules"&&ve(null),C==="Quiz Battle"&&l!=="Quiz Battle"?(U({collapsed:w}),T(!0)):l==="Quiz Battle"&&C!=="Quiz Battle"&&T(Me.collapsed),f(C),A(!1)},[W,ee]=h.useState(!1),[G,Q]=h.useState({show:!1,xp:0,message:""}),[ye,j]=h.useState(!1),[B,z]=h.useState(!1),[te,N]=h.useState(!1),[D,K]=h.useState(!1),[ae,F]=h.useState({}),[fe,ve]=h.useState(null),[be,Ze]=h.useState(On),[gn,Be]=h.useState(""),[et,Ve]=h.useState(!1),[yn,tt]=h.useState(!1),[pe,qe]=h.useState("initial_assessment"),[Ht,wt]=h.useState(y?.hasTakenDiagnostic||!1),[_e,St]=h.useState(y?.atRiskSubjects||[]),[Tt,dt]=h.useState(y?.priorityTopics||[]),[nt,qt]=h.useState(y?.gpa||"0.00"),[Ke,Kt]=h.useState(y?.learningPathState||"unlocked"),[ft,ht]=h.useState(y?.iarAssessmentState||"not_started"),[Pt,At]=h.useState(0),Et="iar_only";h.useEffect(()=>{e&&n==="student"&&t&&om(t.uid).then(C=>{if(C&&C.averageScore>0){const M=Math.min(C.averageScore/25,4).toFixed(2);qt(M)}}).catch(C=>console.error("Error loading progress for GPA:",C))},[e,n,t]);const[Ae,vn]=h.useState(!1);h.useEffect(()=>{y&&n==="student"?(P(y.level||1),I(y.currentXP||0),R(y.totalXP||0),ge(y.streak||0),St(y.atRiskSubjects||[]),dt(y.priorityTopics||[]),wt(y.hasTakenDiagnostic||!1),Kt(y.learningPathState||"unlocked"),ht(y.iarAssessmentState||"not_started"),vn(!0)):n!=="student"&&vn(!0)},[t,n]),h.useEffect(()=>{if(!e||n!=="student"){Ve(!1);return}let C=!1;const M=()=>{C||Ve(!0)},$=window.requestIdleCallback,X=window.cancelIdleCallback,we=window.setTimeout(M,800),ss=window.requestAnimationFrame(()=>{$||M()}),$i=$?.(()=>{M()},{timeout:500});return()=>{C=!0,window.clearTimeout(we),window.cancelAnimationFrame(ss),$i!==void 0&&X&&X($i)}},[e,n]),h.useEffect(()=>{let C=!1;return(async()=>{if(!e||n!=="student"){At(0);return}const $=y?.lrn||t?.uid;if(!$||Ke!=="locked_pending_deep_diagnostic"){At(0);return}try{const{getPendingDeepDiagnosticCount:X}=await H(async()=>{const{getPendingDeepDiagnosticCount:ss}=await import("./automationService-1THdsq3v.js");return{getPendingDeepDiagnosticCount:ss}},__vite__mapDeps([0,1,2,3,4,5,6])),we=await X($);C||At(we)}catch(X){console.error("Error loading deep diagnostic assignments:",X)}})(),()=>{C=!0}},[e,n,t?.uid,y?.lrn,Ke]);const bn=n==="student"&&(Ke==="locked_pending_deep_diagnostic"||ft==="deep_diagnostic_required"||ft==="deep_diagnostic_in_progress")&&(Pt>0||ft==="deep_diagnostic_required"||ft==="deep_diagnostic_in_progress"),xn=n==="student"&&ft==="skipped_unassessed",Ct=h.useMemo(()=>{const C=new Set;return _e.map($=>Es($)).filter($=>$!==null).filter($=>C.has($)?!1:(C.add($),!0))},[_e]),O=h.useMemo(()=>{const C=Tt.length>0?Tt:Ct,M=new Set;return C.filter($=>M.has($)?!1:(M.add($),!0))},[Tt,Ct]),le=()=>{qe("initial_assessment"),tt(!0)};h.useEffect(()=>{e&&n==="student"&&t&&rm(t.uid).then(C=>{ge(C)})},[e,n,t]),h.useEffect(()=>{F({})},[t?.uid]);const ie=[..._e].sort().join("|"),re=t?.uid?`mathpulse_supplemental_dismissed_${t.uid}`:null;h.useEffect(()=>{if(!re){Be("");return}try{const C=localStorage.getItem(re)||"";Be(C)}catch{Be("")}},[re]);const pt=()=>{if(ie&&(Be(ie),!!re))try{localStorage.setItem(re,ie)}catch{}},ue=()=>{if(Be(""),!!re)try{localStorage.removeItem(re)}catch{}},Ee=_e.length>0&&gn!==ie;h.useEffect(()=>{(async()=>{if(!t?.uid){Ze(On);return}try{const M=await wl(t.uid);Ze(M)}catch(M){console.error("Error loading user settings:",M),Ze(On)}})()},[t?.uid]),h.useEffect(()=>{cm(be)},[be]),h.useEffect(()=>{if(e&&n==="student"&&Ae&&!Ht){const C=setTimeout(()=>{qe("initial_assessment"),tt(!0)},1e3);return()=>clearTimeout(C)}},[e,n,Ae,Ht]);const Dt=async C=>{const M=y?.lrn||t?.uid;if(C.status==="skipped"){if(St([]),dt([]),wt(!0),Kt("unlocked"),ht("skipped_unassessed"),t?.uid)try{await ws(t.uid,{hasTakenDiagnostic:!0,atRiskSubjects:[],priorityTopics:[],learningPathState:"unlocked",remediationState:"not_required",iarAssessmentState:"skipped_unassessed",recommendedNextTopicGroupId:"g11-q1-functions-foundations",recommendationRationale:"Default Grade 11 Q1 path after explicit IAR skip.",recommendedPace:"normal",startingQuarterG11:"Q1",currentCurriculumVersionSetId:y?.currentCurriculumVersionSetId||"g11-core-genmath-legacy-detail-strengthened-structure"}),await im(t.uid,"reminder","IAR Skipped: You are on default path","You are currently marked as Unassessed and placed on Grade 11 Quarter 1 default flow. Take the Initial Assessment anytime for personalized placement.")}catch(we){console.error("Failed to persist skipped IAR state:",we)}Se.message("Assessment skipped. Default Grade 11 Q1 path applied.",{description:"You can take the Initial Assessment later for personalized recommendations."}),tt(!1),f("Dashboard");return}ue();const $=(C.atRiskSubjectIds||[]).map(we=>Es(we)).filter(we=>we!==null),X=(C.priorityTopics||[]).map(we=>Es(we)).filter(we=>we!==null);if(St($.length>0?$:C.atRiskSubjectIds||[]),dt(X),wt(!0),ht("in_progress"),t?.uid)try{await ws(t.uid,{hasTakenDiagnostic:!0,atRiskSubjects:$,priorityTopics:X,topicScores:C.topicScores,iarTopicClassifications:C.topicClassifications,g12ReadinessIndicators:C.g12ReadinessIndicators,iarAssessmentState:"in_progress",iarQuestionSetVersion:C.questionSetVersion})}catch(we){console.error("Failed to persist completed IAR payload:",we)}pe==="followup_diagnostic"&&Se.success("Deep diagnostic submitted. Module unlock will update after assignment-state verification."),pe==="initial_assessment"&&M&&((C.atRiskSubjectIds||[]).length>0&&Et==="iar_plus_diagnostic"||Se.success("Initial assessment completed. Personalized path is now active.")),tt(!1),f("Dashboard")},Le=()=>{f("AI Chat")},Ie=async(C,M)=>{if(t)try{const $=await vl(t.uid,C,"manual",M);I($.xp),$.leveledUp&&P($.newLevel),R(X=>X+C),await i(),Q({show:!0,xp:C,message:M})}catch($){console.error("Error awarding XP:",$)}},Rt=async()=>{try{await fp(),F({}),f("Dashboard"),j(!1)}catch(C){console.error("Error logging out:",C)}},Ce=async C=>{if(!t){N(!1),z(!1);return}const M={};["name","email","phone","photo","avatarLayers","lrn","grade","section","school","enrollmentDate","major","gpa","department","subject","yearsOfExperience","qualification","position"].forEach(X=>{C[X]!==void 0&&(M[X]=C[X])});try{await ws(t.uid,M),F(X=>({...X,...M})),N(!1),z(!1),Se.success("Profile updated successfully")}catch(X){console.error("Error saving profile:",X),Se.error("Failed to update profile")}},wn=async C=>{if(t?.uid)try{const M=await lm(t.uid,C);Ze(M),Se.success("Settings saved successfully")}catch(M){throw console.error("Error saving settings:",M),Se.error("Failed to save settings"),M}},Zn=async C=>{try{await hp(C),Se.success("Password updated successfully")}catch(M){const $=M instanceof Error?M.message:"Unable to update password";throw Se.error($),M}},Jn=async()=>{if(!t?.uid)return;const C=await dm(t.uid),M=new Blob([JSON.stringify(C,null,2)],{type:"application/json"}),$=URL.createObjectURL(M),X=document.createElement("a");X.href=$,X.download=`mathpulse-data-export-${t.uid}-${Date.now()}.json`,document.body.appendChild(X),X.click(),document.body.removeChild(X),URL.revokeObjectURL($),Se.success("Data export downloaded")},es=async()=>{await um(),Se.success("Local cache cleared")},ts=async()=>{if(!t?.uid||n!=="admin")throw new Error("Only admin accounts can delete this account from settings.");try{await pp(t.uid),Se.success("Account deleted successfully")}catch(C){const M=C instanceof Error?C.message:"Unable to delete account";throw Se.error(M),C}},ns=async()=>{if(!t)throw new Error("No active profile found.");const C=n==="student"?y?.lrn||t.uid:void 0,{resetTestingDataForRole:M}=await H(async()=>{const{resetTestingDataForRole:X}=await import("./testResetService-Bzfj9Z1A.js");return{resetTestingDataForRole:X}},__vite__mapDeps([101,1,2,3,4,5,6])),$=await M({uid:t.uid,role:n,lrn:C});n==="student"&&(P(1),I(0),R(0),ge(0),St([]),wt(!1),Kt("unlocked"),ht("not_started"),qt("0.00"),At(0),f("Dashboard")),Se.success($.summary)},De=t?{uid:t.uid,name:t.name,email:t.email,phone:t.phone||"",photo:t.photo||"https://images.unsplash.com/photo-1633332755192-727a05c4013d?w=200&h=200&fit=crop",avatarLayers:t.avatarLayers,role:t.role,...n==="student"&&y?{lrn:y.lrn,grade:y.grade,section:y.section,school:y.school,enrollmentDate:y.enrollmentDate,major:y.major,gpa:nt}:{},...ae}:{uid:void 0,name:"User",email:"",phone:"",photo:"https://images.unsplash.com/photo-1633332755192-727a05c4013d?w=200&h=200&fit=crop",avatarLayers:void 0,role:n},Bi=De.name.trim().split(/\s+/).find(C=>/\p{L}/u.test(C))||De.name.trim()||"User";return h.useEffect(()=>{const C=M=>{if(!(M.target instanceof HTMLInputElement||M.target instanceof HTMLTextAreaElement)&&M.altKey)switch(M.key.toLowerCase()){case"d":M.preventDefault(),V("Dashboard");break;case"m":M.preventDefault(),V("Modules");break;case"c":M.preventDefault(),V("AI Chat");break;case"g":M.preventDefault(),V("Grades");break;case"b":M.preventDefault(),V("Quiz Battle");break;case"s":M.preventDefault(),z(!0);break;case"p":M.preventDefault(),N(!0);break;case"k":M.preventDefault(),K($=>!$);break}};if(e&&n==="student")return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[e,n,bn,Pt]),s?m.jsx(Xt,{}):e?n!=="student"||Ae?n==="teacher"?m.jsxs(m.Fragment,{children:[m.jsx(h.Suspense,{fallback:m.jsx(Xt,{message:"Loading teacher dashboard..."}),children:m.jsx(Bm,{onLogout:Rt,onOpenProfile:()=>N(!0),onOpenSettings:()=>z(!0)})}),te&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Cs,{isOpen:te,onClose:()=>N(!1),profileData:De,onSave:Ce})}),B&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Ds,{isOpen:B,onClose:()=>z(!1),profileData:De,onSave:Ce,settingsData:be,onSaveSettings:wn,onApplySettingsPreview:Ze,onUpdatePassword:Zn,onExportData:Jn,onClearCache:es,onDeleteAccount:ts,onResetData:ns})}),m.jsx(As,{position:"top-right",richColors:!0,closeButton:!0})]}):n==="admin"?m.jsxs(m.Fragment,{children:[m.jsx(h.Suspense,{fallback:m.jsx(Xt,{message:"Loading admin dashboard..."}),children:m.jsx($m,{onLogout:Rt,onOpenProfile:()=>N(!0)})}),te&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Cs,{isOpen:te,onClose:()=>N(!1),profileData:De,onSave:Ce})}),B&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Ds,{isOpen:B,onClose:()=>z(!1),profileData:De,onSave:Ce,settingsData:be,onSaveSettings:wn,onApplySettingsPreview:Ze,onUpdatePassword:Zn,onExportData:Jn,onClearCache:es,onDeleteAccount:ts,onResetData:ns})}),m.jsx(As,{position:"top-right",richColors:!0,closeButton:!0})]}):m.jsxs(m.Fragment,{children:[m.jsx(sm,{children:m.jsxs("div",{className:"flex h-screen w-full bg-[#f8faff] overflow-hidden",children:[m.jsx("div",{className:"hidden lg:block",children:m.jsx(h.Suspense,{fallback:u,children:m.jsx(yo,{activeTab:l,setActiveTab:V,userRole:n,onOpenSettings:()=>z(!0),onLogout:()=>j(!0),sidebarCollapsed:w,setSidebarCollapsed:T,forceCollapsed:l==="Quiz Battle"})})}),v&&m.jsxs(m.Fragment,{children:[m.jsx("button",{"aria-label":"Close navigation",className:"fixed inset-0 z-40 bg-slate-900/40 backdrop-blur-[1px] lg:hidden",onClick:()=>A(!1)}),m.jsx("div",{className:"fixed inset-y-0 left-0 z-50 p-3 lg:hidden",children:m.jsx(h.Suspense,{fallback:u,children:m.jsx(yo,{mode:"mobile",onRequestClose:()=>A(!1),activeTab:l,setActiveTab:V,userRole:n,onOpenSettings:()=>{z(!0),A(!1)},onLogout:()=>{j(!0),A(!1)},sidebarCollapsed:!1})})})]}),m.jsxs("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 bg-gradient-to-br from-indigo-200 via-fuchsia-50 to-orange-100 relative z-10 shadow-[rgba(124,58,237,0.05)_0px_0px_30px_inset]",children:[m.jsx("div",{className:"absolute inset-0 bg-math-pattern opacity-30 pointer-events-none mix-blend-multiply z-0"}),m.jsxs("header",{className:"bg-white/90 backdrop-blur-md border-b border-[#dde3eb] px-3 sm:px-6 py-3 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 sticky top-0 z-30 shadow-sm",children:[m.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[m.jsx("button",{className:"lg:hidden p-2 rounded-xl bg-[#edf1f7] hover:bg-[#dde3eb] text-[#5a6578] hover:text-primary transition-colors",onClick:()=>A(!0),"aria-label":"Open navigation",children:m.jsx(tp,{size:20})}),m.jsxs("div",{className:"min-w-0",children:[m.jsx("h1",{className:"text-lg sm:text-xl font-display font-bold text-[#0a1628] leading-tight truncate",children:l}),m.jsxs("p",{className:"text-xs text-[#5a6578] font-body truncate",children:["Welcome back, ",De.name.split(" ")[0],"!"]})]}),m.jsxs("div",{className:"hidden md:flex items-center gap-2 ml-2",children:[m.jsxs("button",{onClick:()=>ee(!0),className:"flex items-center gap-1.5 px-3 py-1.5 bg-rose-50 hover:bg-rose-100 border border-rose-200/60 rounded-lg transition-colors cursor-pointer group",title:"View Rewards & Progress",children:[m.jsx(Qh,{className:"h-3.5 w-3.5 text-rose-500","aria-hidden":"true"}),m.jsxs("span",{className:"text-xs font-display font-bold text-rose-700",children:["Lv ",b]})]}),m.jsxs("button",{onClick:()=>ee(!0),className:"flex items-center gap-1.5 px-3 py-1.5 bg-violet-50 hover:bg-violet-100 border border-violet-200/60 rounded-lg transition-colors cursor-pointer",title:`${oe}/${L} XP to next level`,children:[m.jsx(rp,{className:"h-3.5 w-3.5 text-violet-500","aria-hidden":"true"}),m.jsxs("span",{className:"text-xs font-display font-bold text-violet-700",children:[S," XP"]}),m.jsx("div",{className:"w-12 h-1.5 bg-violet-100 rounded-full overflow-hidden",children:m.jsx("div",{className:"h-full bg-violet-500 rounded-full transition-all",style:{width:`${oe/L*100}%`}})})]}),m.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-orange-50 border border-orange-200/60 rounded-lg",children:[m.jsx(Jh,{className:"h-3.5 w-3.5 text-orange-500","aria-hidden":"true"}),m.jsxs("span",{className:"text-xs font-display font-bold text-orange-700",children:[J," day",J!==1?"s":""]})]})]})]}),m.jsxs("div",{className:"flex flex-wrap md:flex-nowrap items-center gap-2 min-w-0",children:[m.jsx("div",{className:"hidden md:block flex-1 min-w-0 max-w-[420px]",children:m.jsx(h.Suspense,{fallback:c,children:m.jsx(qm,{onSelect:C=>{}})})}),m.jsx("button",{onClick:()=>K(C=>!C),className:"p-3 rounded-xl bg-[#edf1f7] hover:bg-[#dde3eb] text-[#5a6578] hover:text-primary transition-all group",title:"Scientific Calculator (Alt+K)",children:m.jsx(Xh,{size:20,className:"group-hover:scale-110 transition-transform"})}),m.jsx(h.Suspense,{fallback:a,children:m.jsx(Hm,{userRole:n})}),m.jsxs("button",{onClick:()=>N(!0),className:"flex items-center gap-2.5 h-11 shrink-0 bg-[#edf1f7] hover:bg-[#dde3eb] p-1.5 pr-3 rounded-lg cursor-pointer transition-all group","aria-label":`Profile: ${De.name}`,children:[m.jsx("img",{src:De.photo,alt:De.name,className:"w-8 h-8 rounded-lg object-cover"}),m.jsx("div",{className:"hidden sm:block text-left min-w-0 flex-1",children:m.jsx("p",{className:"text-sm font-semibold text-[#0a1628] leading-none group-hover:text-primary transition-colors font-body truncate",children:Bi})})]})]})]}),m.jsx("main",{ref:g,className:`flex-1 min-h-0 p-3 lg:p-4 ${l==="AI Chat"?"overflow-hidden":"overflow-y-auto pb-24 sm:pb-28"}`,children:m.jsx(Lf,{mode:"wait",children:m.jsx(Nn.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:-16},transition:{duration:.25,ease:[.22,1,.36,1]},className:l==="AI Chat"?"h-full min-h-0":"",children:l==="Dashboard"?m.jsx("div",{className:"px-4 sm:px-6 xl:px-10 py-6 sm:py-8",children:m.jsxs("div",{className:"grid grid-cols-12 gap-6 sm:gap-8 lg:gap-10",children:[m.jsxs("div",{className:"col-span-12 xl:col-span-9 flex flex-col gap-10 lg:gap-14 pt-0",children:[m.jsx(h.Suspense,{fallback:d,children:m.jsx(zm,{userName:Bi,userLevel:b,avatarLayers:De.avatarLayers,onContinueLearning:()=>V("Modules"),showAssessmentTooltip:xn,onOpenAssessment:le})}),et&&Ht&&Ct.length>0&&m.jsxs("div",{className:"rounded-2xl border border-amber-300 bg-amber-50 px-5 py-4 shadow-sm dark:border-amber-400/40 dark:bg-amber-400/10",children:[m.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[m.jsxs("div",{children:[m.jsxs("p",{className:"inline-flex items-center gap-2 text-sm font-black text-amber-900 dark:text-amber-200",children:[m.jsx(sp,{className:"h-4 w-4"}),"Assessment Focus Review"]}),m.jsx("p",{className:"mt-1 text-sm text-amber-900/85 dark:text-amber-100/90",children:"Your latest diagnostic flagged these topics for review. Modules are prioritized based on this focus order."})]}),m.jsxs("button",{type:"button",onClick:()=>V("Modules"),className:"inline-flex items-center gap-1.5 rounded-xl bg-amber-600 px-3 py-2 text-xs font-bold text-white transition-colors hover:bg-amber-700",children:["Open Modules",m.jsx(Hh,{className:"h-3.5 w-3.5"})]})]}),m.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:O.map((C,M)=>m.jsxs("span",{className:"rounded-full bg-white/90 px-3 py-1 text-xs font-semibold text-amber-900 shadow-sm dark:bg-amber-100/20 dark:text-amber-100",children:[M+1,". ",Om[C]]},C))})]}),et&&Ee&&m.jsx(h.Suspense,{fallback:r,children:m.jsx(Km,{variant:"full",atRiskSubjects:_e,onDismiss:pt,onAction:()=>{pt(),V("Modules")}})}),Ae&&et&&m.jsx(h.Suspense,{fallback:r,children:m.jsx("div",{className:"pb-4",children:m.jsx(Gm,{onNavigateToModules:C=>V("Modules",C),atRiskSubjects:_e,priorityTopics:O})})}),Ae&&et&&m.jsx(h.Suspense,{fallback:r,children:m.jsx("div",{className:"pb-4",children:m.jsx(Xm,{})})})]}),m.jsx("div",{className:"col-span-12 xl:col-span-3 pt-2",children:et?m.jsx(h.Suspense,{fallback:d,children:m.jsx(Um,{onOpenRewards:()=>ee(!0),onOpenLeaderboard:()=>f("Leaderboard"),onNavigateToModules:()=>f("Modules"),userLevel:b,currentXP:oe,xpToNextLevel:L,overallXP:S,streak:J,streakHistory:y?.streakHistory||[]})}):d})]})}):l==="Modules"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Ym,{onEarnXP:Ie,atRiskSubjects:_e,priorityTopics:O,initialModuleId:fe})}):l==="Leaderboard"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Jm,{currentUserPhoto:De.photo})}):l==="Quiz Battle"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(eg,{})}):l==="AI Chat"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Qm,{})}):l==="Grades"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(Zm,{})}):l==="Avatar Studio"?m.jsx(h.Suspense,{fallback:o,children:m.jsx(tg,{})}):m.jsxs("div",{className:"flex-1 flex items-center justify-center text-[#a8a5b3] font-medium font-body",children:[l," Content Coming Soon"]})},l)})}),l!=="AI Chat"&&m.jsx(h.Suspense,{fallback:null,children:m.jsx("div",{className:"fixed bottom-4 right-4 sm:bottom-8 sm:right-8 z-50",children:m.jsx(ng,{constraintsRef:p,onFullScreen:Le})})}),m.jsx(h.Suspense,{fallback:null,children:m.jsx(Wm,{xp:G.xp,message:G.message,show:G.show,onComplete:()=>Q(C=>({...C,show:!1}))})}),W&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(sg,{isOpen:W,onClose:()=>ee(!1),userLevel:b,currentXP:S,xpToNextLevel:L,totalXP:x,streak:J})}),te&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Cs,{isOpen:te,onClose:()=>N(!1),profileData:De,onSave:Ce})}),ye&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(ig,{isOpen:ye,onClose:()=>j(!1),onConfirm:Rt,title:"Confirm Logout",message:"Are you sure you want to log out? Your progress is saved automatically.",confirmText:"Logout",cancelText:"Stay",type:"warning",icon:"logout"})}),B&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(Ds,{isOpen:B,onClose:()=>z(!1),profileData:De,onSave:Ce,settingsData:be,onSaveSettings:wn,onApplySettingsPreview:Ze,onUpdatePassword:Zn,onExportData:Jn,onClearCache:es,onDeleteAccount:ts,onResetData:ns})}),D&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(rg,{isOpen:D,onClose:()=>K(!1)})}),yn&&m.jsx(h.Suspense,{fallback:null,children:m.jsx(og,{isOpen:yn,onClose:()=>tt(!1),onComplete:Dt,lrn:y?.lrn||t?.uid,gradeLevel:y?.grade,workflowMode:Et,assessmentType:pe})})]})]})}),m.jsx(As,{position:"top-right",richColors:!0,closeButton:!0})]}):m.jsx(Xt,{message:"Preparing your dashboard..."}):m.jsx(h.Suspense,{fallback:m.jsx(Xt,{message:"Loading sign in..."}),children:m.jsx(Fm,{})})};let vo=!1;const bo=()=>{vo||(vo=!0,H(()=>Promise.resolve({}),__vite__mapDeps([102])).catch(e=>{console.error("[styles] Deferred full stylesheet failed to load:",e)}))};if(typeof window<"u"){const e=window.requestIdleCallback,t=window.cancelIdleCallback,n=e?.(()=>{bo()},{timeout:1200});window.setTimeout(()=>{n!==void 0&&t&&t(n),bo()},1200)}const Sl=document.getElementById("root");if(!Sl)throw new Error("Root element not found");Pl.createRoot(Sl).render(m.jsx(mp,{children:m.jsx(ag,{})}));export{Hh as A,Kh as B,Xh as C,On as D,Cg as E,Jh as F,Ag as G,gg as H,lt as I,ap as J,ws as K,Eg as L,tp as M,im as N,Ni as O,Lp as P,sp as T,rp as Z,H as _,vg as a,bg as b,ut as c,q as d,Lf as e,Sg as f,om as g,Pg as h,Tg as i,wl as j,lm as k,Qh as l,Nn as m,wg as n,Es as o,Ig as p,Dg as q,Mg as r,yg as s,Se as t,cl as u,kg as v,Rg as w,Lg as x,Om as y,xg as z}; diff --git a/assets/index-cj9iAdlk.css b/assets/index-cj9iAdlk.css new file mode 100644 index 0000000000000000000000000000000000000000..986b7e2bc25ce389d0235bd451b56721be89e0dc --- /dev/null +++ b/assets/index-cj9iAdlk.css @@ -0,0 +1 @@ +/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-300:oklch(90.5% .182 98.111);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-900:oklch(38.6% .063 188.416);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:var(--color-violet-200);--color-sky-700:var(--color-violet-700);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-700:oklch(37% .013 285.805);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--drop-shadow-sm:0 1px 2px #00000026;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--drop-shadow-xl:0 9px 7px #0000001a;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h1{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700;line-height:1.3}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;font-weight:700;line-height:1.35}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:1.4}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h4{font-family:var(--font-display);font-size:var(--text-base);font-weight:600;line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) label{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) button{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) input{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\[container-type\:inline-size\]{container-type:inline-size}.\[container-type\:size\]{container-type:size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-x-6{inset-inline:calc(var(--spacing)*6)}.inset-x-\[-20px\]{inset-inline:-20px}.inset-y-0{inset-block:calc(var(--spacing)*0)}.end-1{inset-inline-end:calc(var(--spacing)*1)}.-top-1{top:calc(var(--spacing)*-1)}.-top-2{top:calc(var(--spacing)*-2)}.-top-3{top:calc(var(--spacing)*-3)}.-top-4{top:calc(var(--spacing)*-4)}.-top-5{top:calc(var(--spacing)*-5)}.-top-6{top:calc(var(--spacing)*-6)}.-top-8{top:calc(var(--spacing)*-8)}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.-top-32{top:calc(var(--spacing)*-32)}.-top-40{top:calc(var(--spacing)*-40)}.top-0{top:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.top-6{top:calc(var(--spacing)*6)}.top-8{top:calc(var(--spacing)*8)}.top-24{top:calc(var(--spacing)*24)}.top-\[-10\%\]{top:-10%}.top-\[1px\]{top:1px}.top-\[10\%\]{top:10%}.top-\[40\%\]{top:40%}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-right-1{right:calc(var(--spacing)*-1)}.-right-2{right:calc(var(--spacing)*-2)}.-right-3{right:calc(var(--spacing)*-3)}.-right-4{right:calc(var(--spacing)*-4)}.-right-8{right:calc(var(--spacing)*-8)}.-right-12{right:calc(var(--spacing)*-12)}.-right-24{right:calc(var(--spacing)*-24)}.-right-32{right:calc(var(--spacing)*-32)}.-right-40{right:calc(var(--spacing)*-40)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-1\/3{right:33.3333%}.right-1\/4{right:25%}.right-2{right:calc(var(--spacing)*2)}.right-2\.5{right:calc(var(--spacing)*2.5)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.right-8{right:calc(var(--spacing)*8)}.right-12{right:calc(var(--spacing)*12)}.right-16{right:calc(var(--spacing)*16)}.right-\[-5\%\]{right:-5%}.right-\[-5px\]{right:-5px}.right-\[-10\%\]{right:-10%}.right-\[-15px\]{right:-15px}.right-\[-20\%\]{right:-20%}.right-\[150px\]{right:150px}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-2{bottom:calc(var(--spacing)*-2)}.-bottom-5{bottom:calc(var(--spacing)*-5)}.-bottom-6{bottom:calc(var(--spacing)*-6)}.-bottom-8{bottom:calc(var(--spacing)*-8)}.-bottom-10{bottom:calc(var(--spacing)*-10)}.-bottom-12{bottom:calc(var(--spacing)*-12)}.-bottom-32{bottom:calc(var(--spacing)*-32)}.-bottom-40{bottom:calc(var(--spacing)*-40)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-5{bottom:calc(var(--spacing)*5)}.bottom-8{bottom:calc(var(--spacing)*8)}.bottom-12{bottom:calc(var(--spacing)*12)}.bottom-16{bottom:calc(var(--spacing)*16)}.bottom-20{bottom:calc(var(--spacing)*20)}.bottom-\[-10\%\]{bottom:-10%}.bottom-\[-50px\]{bottom:-50px}.bottom-\[-500px\]{bottom:-500px}.bottom-\[40px\]{bottom:40px}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing)*-1)}.-left-2{left:calc(var(--spacing)*-2)}.-left-4{left:calc(var(--spacing)*-4)}.-left-6{left:calc(var(--spacing)*-6)}.-left-10{left:calc(var(--spacing)*-10)}.-left-12{left:calc(var(--spacing)*-12)}.-left-32{left:calc(var(--spacing)*-32)}.-left-40{left:calc(var(--spacing)*-40)}.-left-\[150\%\]{left:-150%}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-1\/3{left:33.3333%}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.left-3\.5{left:calc(var(--spacing)*3.5)}.left-4{left:calc(var(--spacing)*4)}.left-6{left:calc(var(--spacing)*6)}.left-12{left:calc(var(--spacing)*12)}.left-\[-10\%\]{left:-10%}.left-\[-20px\]{left:-20px}.left-\[40\%\]{left:40%}.left-\[50\%\]{left:50%}.left-\[54px\]{left:54px}.left-\[56px\]{left:56px}.left-\[var\(--x\)\]{left:var(--x)}.left-full{left:100%}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.z-\[4\]{z-index:4}.z-\[11\]{z-index:11}.z-\[12\]{z-index:12}.z-\[13\]{z-index:13}.z-\[50\]{z-index:50}.z-\[51\]{z-index:51}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[130\]{z-index:130}.col-span-2{grid-column:span 2/span 2}.col-span-12{grid-column:span 12/span 12}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.-mx-3{margin-inline:calc(var(--spacing)*-3)}.-mx-\[4px\]{margin-inline:-4px}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-\[-20px\]{margin-inline:-20px}.mx-\[1px\]{margin-inline:1px}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-4{margin-block:calc(var(--spacing)*4)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.-mt-0\.5{margin-top:calc(var(--spacing)*-.5)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.-mt-3{margin-top:calc(var(--spacing)*-3)}.-mt-4{margin-top:calc(var(--spacing)*-4)}.-mt-10{margin-top:calc(var(--spacing)*-10)}.-mt-24{margin-top:calc(var(--spacing)*-24)}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-\[-10px\]{margin-top:-10px}.mt-\[-20px\]{margin-top:-20px}.mt-\[5px\]{margin-top:5px}.mt-auto{margin-top:auto}.-mr-3{margin-right:calc(var(--spacing)*-3)}.-mr-10{margin-right:calc(var(--spacing)*-10)}.-mr-24{margin-right:calc(var(--spacing)*-24)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.-mb-2{margin-bottom:calc(var(--spacing)*-2)}.-mb-8{margin-bottom:calc(var(--spacing)*-8)}.-mb-10{margin-bottom:calc(var(--spacing)*-10)}.-mb-18{margin-bottom:calc(var(--spacing)*-18)}.-mb-\[1px\]{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-\[-10px\]{margin-bottom:-10px}.mb-\[2px\]{margin-bottom:2px}.-ml-3{margin-left:calc(var(--spacing)*-3)}.-ml-4{margin-left:calc(var(--spacing)*-4)}.-ml-10{margin-left:calc(var(--spacing)*-10)}.-ml-18{margin-left:calc(var(--spacing)*-18)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-11{margin-left:calc(var(--spacing)*11)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.\[aspect-ratio\:1\/var\(--aspect-ratio\)\]{aspect-ratio:1/var(--aspect-ratio)}.aspect-\[4\/5\]{aspect-ratio:4/5}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.\[height\:100cqmax\]{height:100cqmax}.h-0{height:calc(var(--spacing)*0)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-3\/4{height:75%}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-28{height:calc(var(--spacing)*28)}.h-32{height:calc(var(--spacing)*32)}.h-36{height:calc(var(--spacing)*36)}.h-40{height:calc(var(--spacing)*40)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-80{height:calc(var(--spacing)*80)}.h-96{height:calc(var(--spacing)*96)}.h-\[1\.15rem\]{height:1.15rem}.h-\[1px\]{height:1px}.h-\[3px\]{height:3px}.h-\[5px\]{height:5px}.h-\[6px\]{height:6px}.h-\[14px\]{height:14px}.h-\[16px\]{height:16px}.h-\[18px\]{height:18px}.h-\[25px\]{height:25px}.h-\[34px\]{height:34px}.h-\[35px\]{height:35px}.h-\[40\%\]{height:40%}.h-\[40px\]{height:40px}.h-\[45vh\]{height:45vh}.h-\[50px\]{height:50px}.h-\[52px\]{height:52px}.h-\[54px\]{height:54px}.h-\[60\%\]{height:60%}.h-\[60px\]{height:60px}.h-\[70\%\]{height:70%}.h-\[70px\]{height:70px}.h-\[72px\]{height:72px}.h-\[75px\]{height:75px}.h-\[80\%\]{height:80%}.h-\[80vh\]{height:80vh}.h-\[100px\]{height:100px}.h-\[100vh\]{height:100vh}.h-\[105\%\]{height:105%}.h-\[110\%\]{height:110%}.h-\[120\%\]{height:120%}.h-\[120px\]{height:120px}.h-\[125px\]{height:125px}.h-\[140px\]{height:140px}.h-\[150vh\]{height:150vh}.h-\[155px\]{height:155px}.h-\[170px\]{height:170px}.h-\[205px\]{height:205px}.h-\[280px\]{height:280px}.h-\[300px\]{height:300px}.h-\[300vw\]{height:300vw}.h-\[400px\]{height:400px}.h-\[420px\]{height:420px}.h-\[500px\]{height:500px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(100\%-24px\)\]{height:calc(100% - 24px)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-72{max-height:calc(var(--spacing)*72)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[300px\]{max-height:300px}.max-h-\[500px\]{max-height:500px}.max-h-\[600px\]{max-height:600px}.max-h-\[700px\]{max-height:700px}.max-h-\[calc\(85vh-280px\)\]{max-height:calc(85vh - 280px)}.max-h-\[calc\(90vh-200px\)\]{max-height:calc(90vh - 200px)}.max-h-\[calc\(90vh-320px\)\]{max-height:calc(90vh - 320px)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-24{min-height:calc(var(--spacing)*24)}.min-h-\[24px\]{min-height:24px}.min-h-\[48px\]{min-height:48px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[56px\]{min-height:56px}.min-h-\[78px\]{min-height:78px}.min-h-\[80px\]{min-height:80px}.min-h-\[140px\]{min-height:140px}.min-h-\[170px\]{min-height:170px}.min-h-\[200px\]{min-height:200px}.min-h-\[240px\]{min-height:240px}.min-h-\[250px\]{min-height:250px}.min-h-\[290px\]{min-height:290px}.min-h-\[320px\]{min-height:320px}.min-h-\[450px\]{min-height:450px}.min-h-\[500px\]{min-height:500px}.min-h-\[calc\(100vh-3\.5rem\)\]{min-height:calc(100vh - 3.5rem)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.\!w-auto{width:auto!important}.\[width\:100cqh\]{width:100cqh}.\[width\:100cqi\]{width:100cqi}.\[width\:var\(--width\)\]{width:var(--width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing)*0)}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-8\/12{width:66.6667%}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-10\/12{width:83.3333%}.w-11{width:calc(var(--spacing)*11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-44{width:calc(var(--spacing)*44)}.w-48{width:calc(var(--spacing)*48)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-96{width:calc(var(--spacing)*96)}.w-\[5px\]{width:5px}.w-\[16px\]{width:16px}.w-\[28\%\]{width:28%}.w-\[34px\]{width:34px}.w-\[35\%\]{width:35%}.w-\[35px\]{width:35px}.w-\[40\%\]{width:40%}.w-\[46px\]{width:46px}.w-\[52px\]{width:52px}.w-\[55\%\]{width:55%}.w-\[55px\]{width:55px}.w-\[60\%\]{width:60%}.w-\[60px\]{width:60px}.w-\[65px\]{width:65px}.w-\[70\%\]{width:70%}.w-\[70px\]{width:70px}.w-\[75px\]{width:75px}.w-\[78px\]{width:78px}.w-\[85\%\]{width:85%}.w-\[90\%\]{width:90%}.w-\[95\%\]{width:95%}.w-\[100\%\]{width:100%}.w-\[100px\]{width:100px}.w-\[110\%\]{width:110%}.w-\[150px\]{width:150px}.w-\[150vw\]{width:150vw}.w-\[152px\]{width:152px}.w-\[168px\]{width:168px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[250vw\]{width:250vw}.w-\[260px\]{width:260px}.w-\[280px\]{width:280px}.w-\[300vw\]{width:300vw}.w-\[350px\]{width:350px}.w-\[400px\]{width:400px}.w-\[420px\]{width:420px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing)*20)}.max-w-\[70\%\]{max-width:70%}.max-w-\[75\%\]{max-width:75%}.max-w-\[90\%\]{max-width:90%}.max-w-\[120px\]{max-width:120px}.max-w-\[140px\]{max-width:140px}.max-w-\[145px\]{max-width:145px}.max-w-\[190px\]{max-width:190px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[280px\]{max-width:280px}.max-w-\[340px\]{max-width:340px}.max-w-\[420px\]{max-width:420px}.max-w-\[450px\]{max-width:450px}.max-w-\[800px\]{max-width:800px}.max-w-\[1000px\]{max-width:1000px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[calc\(100vw-24px\)\]{max-width:calc(100vw - 24px)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-8{min-width:calc(var(--spacing)*8)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-10{min-width:calc(var(--spacing)*10)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[60px\]{min-width:60px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[260px\]{min-width:260px}.min-w-\[280px\]{min-width:280px}.min-w-\[760px\]{min-width:760px}.min-w-\[980px\]{min-width:980px}.min-w-\[1920px\]{min-width:1920px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-spacing-y-2{--tw-border-spacing-y:calc(var(--spacing)*2);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.\[transform-origin\:0\%_0\%\]{transform-origin:0 0}.\[transform-origin\:50\%_0\%\]{transform-origin:50% 0}.\[transform-origin\:100\%_0\%\]{transform-origin:100% 0}.origin-\(--radix-context-menu-content-transform-origin\){transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-menubar-content-transform-origin\){transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.origin-\[50\%_45\%\]{transform-origin:50% 45%}.origin-bottom{transform-origin:bottom}.origin-bottom-right{transform-origin:100% 100%}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/3{--tw-translate-x:calc(calc(1/3*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/4{--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-\[45px\]{--tw-translate-x: -45px ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/3{--tw-translate-x:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/4{--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-10px\]{--tw-translate-x:-10px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-100\%\]{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[45px\]{--tw-translate-x:45px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/3{--tw-translate-y:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-10{--tw-translate-y:calc(var(--spacing)*10);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[21\%\]{--tw-translate-y:21%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-x-\[-1\]{--tw-scale-x:-1;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-y-75{--tw-scale-y:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\[0\.75\]{scale:.75}.scale-\[0\.80\]{scale:.8}.scale-\[0\.98\]{scale:.98}.scale-\[1\.1\]{scale:1.1}.scale-\[1\.02\]{scale:1.02}.scale-\[1\.05\]{scale:1.05}.scale-\[1\.25\]{scale:1.25}.-rotate-12{rotate:-12deg}.-rotate-90{rotate:-90deg}.-rotate-\[15deg\]{rotate:-15deg}.rotate-12{rotate:12deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.rotate-\[-3deg\]{rotate:-3deg}.rotate-\[15deg\]{rotate:15deg}.-skew-x-12{--tw-skew-x:skewX( -12deg );transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.\[transform\:rotate\(-90deg\)_rotateX\(-90deg\)\]{transform:rotate(-90deg)rotateX(-90deg)}.\[transform\:rotate\(90deg\)_rotateX\(-90deg\)\]{transform:rotate(90deg)rotateX(-90deg)}.\[transform\:rotateX\(-90deg\)\]{transform:rotateX(-90deg)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\[shimmer_2s_infinite\]{animation:2s infinite shimmer}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[48px_280px_120px_120px_120px_120px_120px_140px_170px_170px_220px\]{grid-template-columns:48px 280px 120px 120px 120px 120px 120px 140px 170px 170px 220px}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-7>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*7)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*7)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*10)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*10)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\[1px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px*var(--tw-space-y-reverse));margin-block-end:calc(1px*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}:where(.-space-x-2\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-2.5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-2.5)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-8{row-gap:calc(var(--spacing)*8)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[\#dde3eb\]>:not(:last-child)){border-color:#dde3eb}:where(.divide-\[\#edf1f7\]>:not(:last-child)){border-color:#edf1f7}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[-20px\]{border-radius:-20px}.rounded-\[1\.4rem\]{border-radius:1.4rem}.rounded-\[1\.5rem\]{border-radius:1.5rem}.rounded-\[1rem\]{border-radius:1rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[12px\]{border-radius:12px}.rounded-\[14px\]{border-radius:14px}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[32px\]{border-radius:32px}.rounded-\[40px\]{border-radius:40px}.rounded-\[50\%\]{border-radius:50%}.rounded-\[50\%_50\%_0_0\/100\%_100\%_0_0\]{border-radius:50% 50% 0 0/100% 100% 0 0}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-\[2\.5rem\]{border-top-left-radius:2.5rem;border-top-right-radius:2.5rem}.rounded-t-\[40px\]{border-top-left-radius:40px;border-top-right-radius:40px}.rounded-t-xl{border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}.rounded-l-2xl{border-top-left-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-tl-none{border-top-left-radius:0}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-r-2xl{border-top-right-radius:var(--radius-2xl);border-bottom-right-radius:var(--radius-2xl)}.rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-\[2px\]{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.rounded-b-\[50\%\]{border-bottom-right-radius:50%;border-bottom-left-radius:50%}.rounded-b-\[60px\]{border-bottom-right-radius:60px;border-bottom-left-radius:60px}.rounded-b-md{border-bottom-right-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.border-\[4px\]{border-style:var(--tw-border-style);border-width:4px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-t-\[3px\]{border-top-style:var(--tw-border-style);border-top-width:3px}.border-t-\[6px\]{border-top-style:var(--tw-border-style);border-top-width:6px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-4{border-right-style:var(--tw-border-style);border-right-width:4px}.border-r-\[6px\]{border-right-style:var(--tw-border-style);border-right-width:6px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\(--color-border\){border-color:var(--color-border)}.border-\[\#1FA7E1\]\/20{border-color:#1fa7e133}.border-\[\#1FA7E1\]\/30{border-color:#1fa7e14d}.border-\[\#1FA7E1\]\/40{border-color:#1fa7e166}.border-\[\#2a3648\]{border-color:#2a3648}.border-\[\#8A3FD3\]\/20{border-color:#8a3fd333}.border-\[\#8A3FD3\]\/30{border-color:#8a3fd34d}.border-\[\#8B5CF6\]\/40{border-color:#8b5cf666}.border-\[\#75D06A\]{border-color:#75d06a}.border-\[\#75D06A\]\/35{border-color:#75d06a59}.border-\[\#9956DE\]{border-color:#9956de}.border-\[\#9956DE\]\/25{border-color:#9956de40}.border-\[\#9956DE\]\/30{border-color:#9956de4d}.border-\[\#9956DE\]\/45{border-color:#9956de73}.border-\[\#F1F5F9\]{border-color:#f1f5f9}.border-\[\#F08386\]{border-color:#f08386}.border-\[\#F08386\]\/30{border-color:#f083864d}.border-\[\#FF8B8B\]{border-color:#ff8b8b}.border-\[\#FF8B8B\]\/35{border-color:#ff8b8b59}.border-\[\#FFB356\]{border-color:#ffb356}.border-\[\#FFB356\]\/38{border-color:#ffb35661}.border-\[\#d1cec6\]{border-color:#d1cec6}.border-\[\#dadce0\]{border-color:#dadce0}.border-\[\#dde3eb\]{border-color:#dde3eb}.border-\[\#fde68a\]{border-color:#fde68a}.border-\[color-mix\(in_srgb\,var\(--primary\)_30\%\,transparent\)\]{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--primary\)_30\%\,transparent\)\]{border-color:color-mix(in srgb,var(--primary)30%,transparent)}}.border-amber-50{border-color:var(--color-amber-50)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-200\/60{border-color:#fee68599}@supports (color:color-mix(in lab,red,red)){.border-amber-200\/60{border-color:color-mix(in oklab,var(--color-amber-200)60%,transparent)}}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-400{border-color:var(--color-amber-400)}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-current{border-color:currentColor}.border-destructive\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-200\/60{border-color:#a4f4cf99}@supports (color:color-mix(in lab,red,red)){.border-emerald-200\/60{border-color:color-mix(in oklab,var(--color-emerald-200)60%,transparent)}}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-400{border-color:var(--color-emerald-400)}.border-emerald-400\/30{border-color:#00d2944d}@supports (color:color-mix(in lab,red,red)){.border-emerald-400\/30{border-color:color-mix(in oklab,var(--color-emerald-400)30%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-emerald-500\/50{border-color:#00bb7f80}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/50{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-green-300{border-color:var(--color-green-300)}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab,red,red)){.border-green-500\/40{border-color:color-mix(in oklab,var(--color-green-500)40%,transparent)}}.border-indigo-100{border-color:var(--color-indigo-100)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/20{border-color:#625fff33}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/20{border-color:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500)30%,transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\/15{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/15{border-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.border-orange-100{border-color:var(--color-orange-100)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-200\/60{border-color:#ffd7a899}@supports (color:color-mix(in lab,red,red)){.border-orange-200\/60{border-color:color-mix(in oklab,var(--color-orange-200)60%,transparent)}}.border-orange-400{border-color:var(--color-orange-400)}.border-orange-500\/40{border-color:#fe6e0066}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/40{border-color:color-mix(in oklab,var(--color-orange-500)40%,transparent)}}.border-primary,.border-primary\/60{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,var(--primary)60%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-500\/20{border-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/20{border-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500)30%,transparent)}}.border-red-100{border-color:var(--color-red-100)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-400{border-color:var(--color-red-400)}.border-red-500{border-color:var(--color-red-500)}.border-rose-100{border-color:var(--color-rose-100)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-200\/50{border-color:#ffccd380}@supports (color:color-mix(in lab,red,red)){.border-rose-200\/50{border-color:color-mix(in oklab,var(--color-rose-200)50%,transparent)}}.border-rose-200\/60{border-color:#ffccd399}@supports (color:color-mix(in lab,red,red)){.border-rose-200\/60{border-color:color-mix(in oklab,var(--color-rose-200)60%,transparent)}}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-400{border-color:var(--color-rose-400)}.border-rose-500\/20{border-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/20{border-color:color-mix(in oklab,var(--color-rose-500)20%,transparent)}}.border-rose-500\/30{border-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/30{border-color:color-mix(in oklab,var(--color-rose-500)30%,transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-sky-100{border-color:var(--color-violet-100)}.border-sky-100\/80{border-color:#ede9fecc}@supports (color:color-mix(in lab,red,red)){.border-sky-100\/80{border-color:color-mix(in oklab,var(--color-violet-100)80%,transparent)}}.border-sky-200{border-color:var(--color-violet-200)}.border-sky-200\/50{border-color:#ddd6ff80}@supports (color:color-mix(in lab,red,red)){.border-sky-200\/50{border-color:color-mix(in oklab,var(--color-violet-200)50%,transparent)}}.border-sky-200\/60{border-color:#ddd6ff99}@supports (color:color-mix(in lab,red,red)){.border-sky-200\/60{border-color:color-mix(in oklab,var(--color-violet-200)60%,transparent)}}.border-sky-300{border-color:var(--color-violet-300)}.border-sky-400{border-color:var(--color-violet-400)}.border-sky-500{border-color:var(--color-violet-500)}.border-sky-500\/20{border-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/20{border-color:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.border-sky-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/30{border-color:color-mix(in oklab,var(--color-violet-500)30%,transparent)}}.border-sky-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/40{border-color:color-mix(in oklab,var(--color-violet-500)40%,transparent)}}.border-slate-50{border-color:var(--color-slate-50)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\/60{border-color:#e2e8f099}@supports (color:color-mix(in lab,red,red)){.border-slate-200\/60{border-color:color-mix(in oklab,var(--color-slate-200)60%,transparent)}}.border-slate-200\/70{border-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.border-slate-200\/70{border-color:color-mix(in oklab,var(--color-slate-200)70%,transparent)}}.border-slate-200\/80{border-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.border-slate-200\/80{border-color:color-mix(in oklab,var(--color-slate-200)80%,transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-300\/70{border-color:#cad5e2b3}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/70{border-color:color-mix(in oklab,var(--color-slate-300)70%,transparent)}}.border-slate-700{border-color:var(--color-slate-700)}.border-slate-700\/50{border-color:#31415880}@supports (color:color-mix(in lab,red,red)){.border-slate-700\/50{border-color:color-mix(in oklab,var(--color-slate-700)50%,transparent)}}.border-slate-800{border-color:var(--color-slate-800)}.border-slate-800\/10{border-color:#1d293d1a}@supports (color:color-mix(in lab,red,red)){.border-slate-800\/10{border-color:color-mix(in oklab,var(--color-slate-800)10%,transparent)}}.border-teal-100{border-color:var(--color-teal-100)}.border-teal-200{border-color:var(--color-teal-200)}.border-teal-400{border-color:var(--color-teal-400)}.border-teal-500{border-color:var(--color-teal-500)}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-200\/60{border-color:#ddd6ff99}@supports (color:color-mix(in lab,red,red)){.border-violet-200\/60{border-color:color-mix(in oklab,var(--color-violet-200)60%,transparent)}}.border-violet-400{border-color:var(--color-violet-400)}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500)30%,transparent)}}.border-violet-800{border-color:var(--color-violet-800)}.border-white{border-color:var(--color-white)}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-white\/25{border-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.border-white\/25{border-color:color-mix(in oklab,var(--color-white)25%,transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.border-white\/30{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.border-white\/35{border-color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.border-white\/35{border-color:color-mix(in oklab,var(--color-white)35%,transparent)}}.border-white\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\/40{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.border-white\/50{border-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.border-white\/50{border-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.border-zinc-200{border-color:var(--color-zinc-200)}.border-t-slate-800{border-top-color:var(--color-slate-800)}.border-t-transparent{border-top-color:#0000}.border-t-violet-500{border-top-color:var(--color-violet-500)}.border-t-white{border-top-color:var(--color-white)}.border-r-\[\#0a1628\]{border-right-color:#0a1628}.border-r-\[\#2a2535\]{border-right-color:#2a2535}.border-r-amber-300{border-right-color:var(--color-amber-300)}.border-r-transparent{border-right-color:#0000}.border-b-amber-300{border-bottom-color:var(--color-amber-300)}.border-l-transparent{border-left-color:#0000}.\!bg-\[\#6ED1CF\]\/35{background-color:#6ed1cf59!important}.\!bg-\[\#7274ED\]{background-color:#7274ed!important}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-\[\#0A1128\]{background-color:#0a1128}.bg-\[\#0B0F19\]{background-color:#0b0f19}.bg-\[\#0B1021\]{background-color:#0b1021}.bg-\[\#0a1628\]{background-color:#0a1628}.bg-\[\#0f1422\]{background-color:#0f1422}.bg-\[\#00a86b\]{background-color:#00a86b}.bg-\[\#1FA7E1\]{background-color:#1fa7e1}.bg-\[\#1FA7E1\]\/10{background-color:#1fa7e11a}.bg-\[\#1a2030\]{background-color:#1a2030}.bg-\[\#1e2536\]{background-color:#1e2536}.bg-\[\#2f3547\]{background-color:#2f3547}.bg-\[\#3b3a82\]{background-color:#3b3a82}.bg-\[\#5a6578\]{background-color:#5a6578}.bg-\[\#6ED1CF\]{background-color:#6ed1cf}.bg-\[\#6ED1CF\]\/20{background-color:#6ed1cf33}.bg-\[\#6ED1CF\]\/30{background-color:#6ed1cf4d}.bg-\[\#6F2BAF\]{background-color:#6f2baf}.bg-\[\#8A3FD3\]{background-color:#8a3fd3}.bg-\[\#8A3FD3\]\/5{background-color:#8a3fd30d}.bg-\[\#8A3FD3\]\/10{background-color:#8a3fd31a}.bg-\[\#8B5CF6\]{background-color:#8b5cf6}.bg-\[\#8b0d0d\]{background-color:#8b0d0d}.bg-\[\#34d399\]{background-color:#34d399}.bg-\[\#50B8B6\]{background-color:#50b8b6}.bg-\[\#58B34D\]{background-color:#58b34d}.bg-\[\#75D06A\]{background-color:#75d06a}.bg-\[\#75D06A\]\/10{background-color:#75d06a1a}.bg-\[\#75D06A\]\/14{background-color:#75d06a24}.bg-\[\#75D06A\]\/22{background-color:#75d06a38}.bg-\[\#127DA6\]{background-color:#127da6}.bg-\[\#181d27\]{background-color:#181d27}.bg-\[\#198abf\]{background-color:#198abf}.bg-\[\#533ab6\]{background-color:#533ab6}.bg-\[\#662AA8\]{background-color:#662aa8}.bg-\[\#7274ED\]{background-color:#7274ed}.bg-\[\#7274ED\]\/15{background-color:#7274ed26}.bg-\[\#8248c2\]{background-color:#8248c2}.bg-\[\#9956DE\]{background-color:#9956de}.bg-\[\#9956DE\]\/12{background-color:#9956de1f}.bg-\[\#9956DE\]\/20{background-color:#9956de33}.bg-\[\#9956DE\]\/32{background-color:#9956de52}.bg-\[\#12192b\]{background-color:#12192b}.bg-\[\#42389d\]{background-color:#42389d}.bg-\[\#111827\]{background-color:#111827}.bg-\[\#D96C6A\]{background-color:#d96c6a}.bg-\[\#DE7949\]{background-color:#de7949}.bg-\[\#E06A6A\]{background-color:#e06a6a}.bg-\[\#F08386\]{background-color:#f08386}.bg-\[\#F08386\]\/12{background-color:#f083861f}.bg-\[\#F08386\]\/20{background-color:#f0838633}.bg-\[\#FB96BB\]{background-color:#fb96bb}.bg-\[\#FB96BB\]\/20{background-color:#fb96bb33}.bg-\[\#FF8B8B\]{background-color:#ff8b8b}.bg-\[\#FF8B8B\]\/10{background-color:#ff8b8b1a}.bg-\[\#FF8B8B\]\/14{background-color:#ff8b8b24}.bg-\[\#FF8B8B\]\/22{background-color:#ff8b8b38}.bg-\[\#FFB356\]{background-color:#ffb356}.bg-\[\#FFB356\]\/16{background-color:#ffb35629}.bg-\[\#FFB356\]\/20{background-color:#ffb35633}.bg-\[\#FFB356\]\/24{background-color:#ffb3563d}.bg-\[\#a8a5b3\]{background-color:#a8a5b3}.bg-\[\#b61515\]{background-color:#b61515}.bg-\[\#d24b4b\]{background-color:#d24b4b}.bg-\[\#dde3eb\]{background-color:#dde3eb}.bg-\[\#de7b9f\]{background-color:#de7b9f}.bg-\[\#e1f5f7\]{background-color:#e1f5f7}.bg-\[\#e09841\]{background-color:#e09841}.bg-\[\#edf1f7\]{background-color:#edf1f7}.bg-\[\#edf1f7\]\/50{background-color:#edf1f780}.bg-\[\#edf1f7\]\/80{background-color:#edf1f7cc}.bg-\[\#f0eaff\]{background-color:#f0eaff}.bg-\[\#f6f9ff\]{background-color:#f6f9ff}.bg-\[\#f7f9fc\]{background-color:#f7f9fc}.bg-\[\#f7fbff\]{background-color:#f7fbff}.bg-\[\#f8fafc\]{background-color:#f8fafc}.bg-\[\#f8faff\]{background-color:#f8faff}.bg-\[\#f8fbff\]{background-color:#f8fbff}.bg-\[\#f2812d\]{background-color:#f2812d}.bg-\[\#fa9746\]{background-color:#fa9746}.bg-\[\#fb7185\]{background-color:#fb7185}.bg-\[\#fbbf24\]{background-color:#fbbf24}.bg-\[\#fcfdff\]{background-color:#fcfdff}.bg-\[\#fdeceb\]{background-color:#fdeceb}.bg-\[\#fe5c5c\]{background-color:#fe5c5c}.bg-\[\#fef5e7\]{background-color:#fef5e7}.bg-\[color-mix\(in_srgb\,var\(--chart-1\)_10\%\,transparent\)\]{background-color:var(--chart-1)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-1\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-1)10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_10\%\,transparent\)\]{background-color:var(--chart-2)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-2)10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_14\%\,transparent\)\]{background-color:var(--chart-2)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-2\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-2)14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_10\%\,transparent\)\]{background-color:var(--chart-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-3)10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_14\%\,transparent\)\]{background-color:var(--chart-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-3\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-3)14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--chart-4\)_14\%\,transparent\)\]{background-color:var(--chart-4)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--chart-4\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--chart-4)14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--primary\)_10\%\,transparent\)\]{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--primary\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--primary)10%,transparent)}}.bg-\[var\(--chart-2\)\]{background-color:var(--chart-2)}.bg-\[var\(--chart-3\)\]{background-color:var(--chart-3)}.bg-\[var\(--chart-4\)\]{background-color:var(--chart-4)}.bg-\[var\(--primary\)\],.bg-\[var\(--primary\)\]\/60{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--primary\)\]\/60{background-color:color-mix(in oklab,var(--primary)60%,transparent)}}.bg-accent{background-color:var(--accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400\/20{background-color:#fcbb0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/20{background-color:color-mix(in oklab,var(--color-amber-400)20%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-amber-600{background-color:var(--color-amber-600)}.bg-background{background-color:var(--background)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\/20{background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-100\/40{background-color:#dbeafe66}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/40{background-color:color-mix(in oklab,var(--color-blue-100)40%,transparent)}}.bg-blue-300\/40{background-color:#90c5ff66}@supports (color:color-mix(in lab,red,red)){.bg-blue-300\/40{background-color:color-mix(in oklab,var(--color-blue-300)40%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/20{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,var(--card)20%,transparent)}}.bg-card\/80{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/80{background-color:color-mix(in oklab,var(--card)80%,transparent)}}.bg-current{background-color:currentColor}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-400\/30{background-color:#00d2ef4d}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/30{background-color:color-mix(in oklab,var(--color-cyan-400)30%,transparent)}}.bg-destructive,.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--destructive)5%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-100\/50{background-color:#d0fae580}@supports (color:color-mix(in lab,red,red)){.bg-emerald-100\/50{background-color:color-mix(in oklab,var(--color-emerald-100)50%,transparent)}}.bg-emerald-200{background-color:var(--color-emerald-200)}.bg-emerald-300{background-color:var(--color-emerald-300)}.bg-emerald-400\/20{background-color:#00d29433}@supports (color:color-mix(in lab,red,red)){.bg-emerald-400\/20{background-color:color-mix(in oklab,var(--color-emerald-400)20%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-fuchsia-400\/30{background-color:#ec6cff4d}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-400\/30{background-color:color-mix(in oklab,var(--color-fuchsia-400)30%,transparent)}}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-50\/30{background-color:#f0fdf44d}@supports (color:color-mix(in lab,red,red)){.bg-green-50\/30{background-color:color-mix(in oklab,var(--color-green-50)30%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/50{background-color:#e0e7ff80}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/50{background-color:color-mix(in oklab,var(--color-indigo-100)50%,transparent)}}.bg-indigo-400\/20{background-color:#7d87ff33}@supports (color:color-mix(in lab,red,red)){.bg-indigo-400\/20{background-color:color-mix(in oklab,var(--color-indigo-400)20%,transparent)}}.bg-indigo-400\/30{background-color:#7d87ff4d}@supports (color:color-mix(in lab,red,red)){.bg-indigo-400\/30{background-color:color-mix(in oklab,var(--color-indigo-400)30%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-input-background{background-color:var(--input-background)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-400\/20{background-color:#ff8b1a33}@supports (color:color-mix(in lab,red,red)){.bg-orange-400\/20{background-color:color-mix(in oklab,var(--color-orange-400)20%,transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500)20%,transparent)}}.bg-orange-500\/30{background-color:#fe6e004d}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/30{background-color:color-mix(in oklab,var(--color-orange-500)30%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/30{background-color:#f3e8ff4d}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/30{background-color:color-mix(in oklab,var(--color-purple-100)30%,transparent)}}.bg-purple-400\/20{background-color:#c07eff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-400\/20{background-color:color-mix(in oklab,var(--color-purple-400)20%,transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-50\/30{background-color:#fef2f24d}@supports (color:color-mix(in lab,red,red)){.bg-red-50\/30{background-color:color-mix(in oklab,var(--color-red-50)30%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-100\/30{background-color:#ffe4e64d}@supports (color:color-mix(in lab,red,red)){.bg-rose-100\/30{background-color:color-mix(in oklab,var(--color-rose-100)30%,transparent)}}.bg-rose-100\/40{background-color:#ffe4e666}@supports (color:color-mix(in lab,red,red)){.bg-rose-100\/40{background-color:color-mix(in oklab,var(--color-rose-100)40%,transparent)}}.bg-rose-100\/60{background-color:#ffe4e699}@supports (color:color-mix(in lab,red,red)){.bg-rose-100\/60{background-color:color-mix(in oklab,var(--color-rose-100)60%,transparent)}}.bg-rose-200{background-color:var(--color-rose-200)}.bg-rose-200\/60{background-color:#ffccd399}@supports (color:color-mix(in lab,red,red)){.bg-rose-200\/60{background-color:color-mix(in oklab,var(--color-rose-200)60%,transparent)}}.bg-rose-200\/70{background-color:#ffccd3b3}@supports (color:color-mix(in lab,red,red)){.bg-rose-200\/70{background-color:color-mix(in oklab,var(--color-rose-200)70%,transparent)}}.bg-rose-300{background-color:var(--color-rose-300)}.bg-rose-400\/5{background-color:#ff667f0d}@supports (color:color-mix(in lab,red,red)){.bg-rose-400\/5{background-color:color-mix(in oklab,var(--color-rose-400)5%,transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-500\/5{background-color:#ff23570d}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/5{background-color:color-mix(in oklab,var(--color-rose-500)5%,transparent)}}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/10{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/20{background-color:color-mix(in oklab,var(--color-rose-500)20%,transparent)}}.bg-rose-500\/30{background-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/30{background-color:color-mix(in oklab,var(--color-rose-500)30%,transparent)}}.bg-rose-600{background-color:var(--color-rose-600)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sky-50{background-color:var(--color-violet-50)}.bg-sky-50\/40{background-color:#f5f3ff66}@supports (color:color-mix(in lab,red,red)){.bg-sky-50\/40{background-color:color-mix(in oklab,var(--color-violet-50)40%,transparent)}}.bg-sky-50\/50{background-color:#f5f3ff80}@supports (color:color-mix(in lab,red,red)){.bg-sky-50\/50{background-color:color-mix(in oklab,var(--color-violet-50)50%,transparent)}}.bg-sky-50\/70{background-color:#f5f3ffb3}@supports (color:color-mix(in lab,red,red)){.bg-sky-50\/70{background-color:color-mix(in oklab,var(--color-violet-50)70%,transparent)}}.bg-sky-100{background-color:var(--color-violet-100)}.bg-sky-100\/40{background-color:#ede9fe66}@supports (color:color-mix(in lab,red,red)){.bg-sky-100\/40{background-color:color-mix(in oklab,var(--color-violet-100)40%,transparent)}}.bg-sky-200{background-color:var(--color-violet-200)}.bg-sky-300{background-color:var(--color-violet-300)}.bg-sky-400{background-color:var(--color-violet-400)}.bg-sky-400\/20{background-color:#a685ff33}@supports (color:color-mix(in lab,red,red)){.bg-sky-400\/20{background-color:color-mix(in oklab,var(--color-violet-400)20%,transparent)}}.bg-sky-400\/30{background-color:#a685ff4d}@supports (color:color-mix(in lab,red,red)){.bg-sky-400\/30{background-color:color-mix(in oklab,var(--color-violet-400)30%,transparent)}}.bg-sky-500{background-color:var(--color-violet-500)}.bg-sky-500\/5{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/5{background-color:color-mix(in oklab,var(--color-violet-500)5%,transparent)}}.bg-sky-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.bg-sky-500\/20{background-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/20{background-color:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.bg-sky-600{background-color:var(--color-violet-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\/50{background-color:#f8fafc80}@supports (color:color-mix(in lab,red,red)){.bg-slate-50\/50{background-color:color-mix(in oklab,var(--color-slate-50)50%,transparent)}}.bg-slate-50\/80{background-color:#f8fafccc}@supports (color:color-mix(in lab,red,red)){.bg-slate-50\/80{background-color:color-mix(in oklab,var(--color-slate-50)80%,transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100)70%,transparent)}}.bg-slate-100\/80{background-color:#f1f5f9cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/80{background-color:color-mix(in oklab,var(--color-slate-100)80%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-300\/80{background-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-300\/80{background-color:color-mix(in oklab,var(--color-slate-300)80%,transparent)}}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-800\/5{background-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/5{background-color:color-mix(in oklab,var(--color-slate-800)5%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/40{background-color:#0f172b66}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\/85{background-color:#0f172bd9}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/85{background-color:color-mix(in oklab,var(--color-slate-900)85%,transparent)}}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-100{background-color:var(--color-teal-100)}.bg-teal-300{background-color:var(--color-teal-300)}.bg-teal-400\/20{background-color:#00d3bd33}@supports (color:color-mix(in lab,red,red)){.bg-teal-400\/20{background-color:color-mix(in oklab,var(--color-teal-400)20%,transparent)}}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-600{background-color:var(--color-teal-600)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-400\/5{background-color:#a685ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-400\/5{background-color:color-mix(in oklab,var(--color-violet-400)5%,transparent)}}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.bg-violet-600{background-color:var(--color-violet-600)}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.bg-white\/15{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.bg-white\/25{background-color:color-mix(in oklab,var(--color-white)25%,transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.bg-white\/35{background-color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.bg-white\/35{background-color:color-mix(in oklab,var(--color-white)35%,transparent)}}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab,red,red)){.bg-white\/40{background-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\/70{background-color:color-mix(in oklab,var(--color-white)70%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-white\/85{background-color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.bg-white\/85{background-color:color-mix(in oklab,var(--color-white)85%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.\!bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab!important;background-image:linear-gradient(var(--tw-gradient-stops))!important}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(circle_at_14\%_12\%\,rgba\(251\,150\,187\,0\.35\)\,transparent_42\%\)\,radial-gradient\(circle_at_80\%_80\%\,rgba\(117\,208\,106\,0\.25\)\,transparent_38\%\)\]{background-image:radial-gradient(circle at 14% 12%,#fb96bb59,#0000 42%),radial-gradient(circle at 80% 80%,#75d06a40,#0000 38%)}.bg-\[radial-gradient\(circle_at_18\%_8\%\,rgba\(251\,150\,187\,0\.32\)\,transparent_42\%\)\,radial-gradient\(circle_at_85\%_84\%\,rgba\(117\,208\,106\,0\.24\)\,transparent_40\%\)\]{background-image:radial-gradient(circle at 18% 8%,#fb96bb52,#0000 42%),radial-gradient(circle at 85% 84%,#75d06a3d,#0000 40%)}.bg-\[radial-gradient\(circle_at_50\%_100\%\,\#9333ea_0\%\,\#c084fc_40\%\,transparent_80\%\)\]{background-image:radial-gradient(circle at 50% 100%,#9333ea,#c084fc,#0000 80%)}.bg-\[radial-gradient\(circle_at_top_left\,\#f8fbff_0\%\,\#eef4ff_40\%\,\#f8f4ff_100\%\)\]{background-image:radial-gradient(circle at 0 0,#f8fbff,#eef4ff 40%,#f8f4ff)}.bg-\[radial-gradient\(circle_at_top_right\,rgba\(153\,86\,222\,0\.08\)\,transparent_45\%\)\,radial-gradient\(circle_at_bottom_left\,rgba\(31\,167\,225\,0\.08\)\,transparent_45\%\)\]{background-image:radial-gradient(circle at 100% 0,#9956de14,#0000 45%),radial-gradient(circle at 0 100%,#1fa7e114,#0000 45%)}.bg-\[radial-gradient\(ellipse_at_50\%_100\%\,\#7e22ce_10\%\,transparent_60\%\)\]{background-image:radial-gradient(at 50% 100%,#7e22ce 10%,#0000 60%)}.bg-\[url\(\'data\:image\/svg\+xml\;base64\,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAiLz4KPHBhdGggZD0iTTAgMEgxdjFIMHoiIGZpbGw9IiM2MzY2ZjEiIGZpbGwtb3BhY2l0eT0iMC4wNSIvPgo8L3N2Zz4\=\'\)\]{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAiLz4KPHBhdGggZD0iTTAgMEgxdjFIMHoiIGZpbGw9IiM2MzY2ZjEiIGZpbGwtb3BhY2l0eT0iMC4wNSIvPgo8L3N2Zz4=)}.bg-\[url\(\'data\:image\/svg\+xml\;base64\,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPgo8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMSI\+PC9yZWN0Pgo8L3N2Zz4\=\'\)\]{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPgo8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMSI+PC9yZWN0Pgo8L3N2Zz4=)}.\!from-\[\#6ED1CF\]{--tw-gradient-from:#6ed1cf!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.from-\[\#3b3a82\]{--tw-gradient-from:#3b3a82;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#6ED1CF\]{--tw-gradient-from:#6ed1cf;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#7274ED\]{--tw-gradient-from:#7274ed;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#9956DE\]{--tw-gradient-from:#9956de;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#9956DE\]\/12{--tw-gradient-from:oklab(59.4745% .111053 -.167638/.12);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#FFB356\]{--tw-gradient-from:#ffb356;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-100{--tw-gradient-from:var(--color-amber-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-400{--tw-gradient-from:var(--color-amber-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-500{--tw-gradient-from:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-500\/20{--tw-gradient-from:#f99c0033}@supports (color:color-mix(in lab,red,red)){.from-amber-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.from-amber-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-amber-600{--tw-gradient-from:var(--color-amber-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500\/20{--tw-gradient-from:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.from-emerald-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.from-emerald-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-600{--tw-gradient-from:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-green-500{--tw-gradient-from:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-50{--tw-gradient-from:var(--color-indigo-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-200{--tw-gradient-from:var(--color-indigo-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500\/20{--tw-gradient-from:#625fff33}@supports (color:color-mix(in lab,red,red)){.from-indigo-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.from-indigo-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-600{--tw-gradient-from:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-orange-50{--tw-gradient-from:var(--color-orange-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-orange-500{--tw-gradient-from:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-400\/20{--tw-gradient-from:#c07eff33}@supports (color:color-mix(in lab,red,red)){.from-purple-400\/20{--tw-gradient-from:color-mix(in oklab,var(--color-purple-400)20%,transparent)}}.from-purple-400\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-500{--tw-gradient-from:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-500\/20{--tw-gradient-from:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.from-purple-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.from-purple-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-600{--tw-gradient-from:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-rose-50{--tw-gradient-from:var(--color-rose-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-rose-400{--tw-gradient-from:var(--color-rose-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-50{--tw-gradient-from:var(--color-violet-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-100{--tw-gradient-from:var(--color-violet-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-500{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-500\/20{--tw-gradient-from:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.from-sky-500\/20{--tw-gradient-from:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.from-sky-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-600{--tw-gradient-from:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-sky-700{--tw-gradient-from:var(--color-violet-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-50\/30{--tw-gradient-from:#f8fafc4d}@supports (color:color-mix(in lab,red,red)){.from-slate-50\/30{--tw-gradient-from:color-mix(in oklab,var(--color-slate-50)30%,transparent)}}.from-slate-50\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-200{--tw-gradient-from:var(--color-slate-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-teal-50{--tw-gradient-from:var(--color-teal-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-teal-500{--tw-gradient-from:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-violet-500{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/0{--tw-gradient-from:#0000}@supports (color:color-mix(in lab,red,red)){.from-white\/0{--tw-gradient-from:color-mix(in oklab,var(--color-white)0%,transparent)}}.from-white\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/20{--tw-gradient-from:#fff3}@supports (color:color-mix(in lab,red,red)){.from-white\/20{--tw-gradient-from:color-mix(in oklab,var(--color-white)20%,transparent)}}.from-white\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-\[\#75D06A\]{--tw-gradient-via:#75d06a;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-\[\#7274ED\]{--tw-gradient-via:#7274ed;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-amber-400\/40{--tw-gradient-via:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.via-amber-400\/40{--tw-gradient-via:color-mix(in oklab,var(--color-amber-400)40%,transparent)}}.via-amber-400\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-cyan-500{--tw-gradient-via:var(--color-cyan-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-cyan-500\/10{--tw-gradient-via:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.via-cyan-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-cyan-500)10%,transparent)}}.via-cyan-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-emerald-500{--tw-gradient-via:var(--color-emerald-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-emerald-500\/40{--tw-gradient-via:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.via-emerald-500\/40{--tw-gradient-via:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.via-emerald-500\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-fuchsia-50{--tw-gradient-via:var(--color-fuchsia-50);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-fuchsia-500\/10{--tw-gradient-via:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.via-fuchsia-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.via-fuchsia-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-orange-500{--tw-gradient-via:var(--color-orange-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-orange-500\/10{--tw-gradient-via:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.via-orange-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.via-orange-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-pink-500{--tw-gradient-via:var(--color-pink-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-pink-600{--tw-gradient-via:var(--color-pink-600);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-purple-500\/10{--tw-gradient-via:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.via-purple-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.via-purple-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-rose-500\/40{--tw-gradient-via:#ff235766}@supports (color:color-mix(in lab,red,red)){.via-rose-500\/40{--tw-gradient-via:color-mix(in oklab,var(--color-rose-500)40%,transparent)}}.via-rose-500\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-50\/30{--tw-gradient-via:#f5f3ff4d}@supports (color:color-mix(in lab,red,red)){.via-sky-50\/30{--tw-gradient-via:color-mix(in oklab,var(--color-violet-50)30%,transparent)}}.via-sky-50\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-50\/50{--tw-gradient-via:#f5f3ff80}@supports (color:color-mix(in lab,red,red)){.via-sky-50\/50{--tw-gradient-via:color-mix(in oklab,var(--color-violet-50)50%,transparent)}}.via-sky-50\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-400\/30{--tw-gradient-via:#a685ff4d}@supports (color:color-mix(in lab,red,red)){.via-sky-400\/30{--tw-gradient-via:color-mix(in oklab,var(--color-violet-400)30%,transparent)}}.via-sky-400\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-400\/50{--tw-gradient-via:#a685ff80}@supports (color:color-mix(in lab,red,red)){.via-sky-400\/50{--tw-gradient-via:color-mix(in oklab,var(--color-violet-400)50%,transparent)}}.via-sky-400\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-500{--tw-gradient-via:var(--color-violet-500);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-600{--tw-gradient-via:var(--color-violet-600);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-teal-500\/10{--tw-gradient-via:#00baa71a}@supports (color:color-mix(in lab,red,red)){.via-teal-500\/10{--tw-gradient-via:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.via-teal-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/15{--tw-gradient-via:#ffffff26}@supports (color:color-mix(in lab,red,red)){.via-white\/15{--tw-gradient-via:color-mix(in oklab,var(--color-white)15%,transparent)}}.via-white\/15{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/30{--tw-gradient-via:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.via-white\/30{--tw-gradient-via:color-mix(in oklab,var(--color-white)30%,transparent)}}.via-white\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/40{--tw-gradient-via:#fff6}@supports (color:color-mix(in lab,red,red)){.via-white\/40{--tw-gradient-via:color-mix(in oklab,var(--color-white)40%,transparent)}}.via-white\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.\!to-\[\#1FA7E1\]{--tw-gradient-to:#1fa7e1!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.to-\[\#1FA7E1\]{--tw-gradient-to:#1fa7e1;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#6ED1CF\]\/18{--tw-gradient-to:oklab(80.0346% -.0906707 -.0221346/.18);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#9956DE\]{--tw-gradient-to:#9956de;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#FF8B8B\]{--tw-gradient-to:#ff8b8b;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#FFB356\]{--tw-gradient-to:#ffb356;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-amber-50{--tw-gradient-to:var(--color-amber-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-amber-600\/5{--tw-gradient-to:#dd74000d}@supports (color:color-mix(in lab,red,red)){.to-amber-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-amber-600)5%,transparent)}}.to-amber-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-50{--tw-gradient-to:var(--color-cyan-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-100{--tw-gradient-to:var(--color-cyan-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-500{--tw-gradient-to:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-50{--tw-gradient-to:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-500{--tw-gradient-to:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-600{--tw-gradient-to:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-600\/5{--tw-gradient-to:#0097670d}@supports (color:color-mix(in lab,red,red)){.to-emerald-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-emerald-600)5%,transparent)}}.to-emerald-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-fuchsia-500{--tw-gradient-to:var(--color-fuchsia-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-100{--tw-gradient-to:var(--color-indigo-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-600{--tw-gradient-to:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-600\/5{--tw-gradient-to:#4f39f60d}@supports (color:color-mix(in lab,red,red)){.to-indigo-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-indigo-600)5%,transparent)}}.to-indigo-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-700{--tw-gradient-to:var(--color-indigo-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-800{--tw-gradient-to:var(--color-indigo-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-50{--tw-gradient-to:var(--color-orange-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-100{--tw-gradient-to:var(--color-orange-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-500{--tw-gradient-to:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-600{--tw-gradient-to:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-400\/20{--tw-gradient-to:#fb64b633}@supports (color:color-mix(in lab,red,red)){.to-pink-400\/20{--tw-gradient-to:color-mix(in oklab,var(--color-pink-400)20%,transparent)}}.to-pink-400\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-500{--tw-gradient-to:var(--color-pink-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-500{--tw-gradient-to:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600\/5{--tw-gradient-to:#9810fa0d}@supports (color:color-mix(in lab,red,red)){.to-purple-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-purple-600)5%,transparent)}}.to-purple-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-red-500{--tw-gradient-to:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-rose-500{--tw-gradient-to:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-rose-600{--tw-gradient-to:var(--color-rose-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-100{--tw-gradient-to:var(--color-violet-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-400{--tw-gradient-to:var(--color-violet-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-500{--tw-gradient-to:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-600{--tw-gradient-to:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-sky-600\/5{--tw-gradient-to:#7f22fe0d}@supports (color:color-mix(in lab,red,red)){.to-sky-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-violet-600)5%,transparent)}}.to-sky-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-50{--tw-gradient-to:var(--color-slate-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-100{--tw-gradient-to:var(--color-slate-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-100{--tw-gradient-to:var(--color-teal-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-300{--tw-gradient-to:var(--color-teal-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-500{--tw-gradient-to:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-600{--tw-gradient-to:var(--color-teal-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-700{--tw-gradient-to:var(--color-teal-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-violet-700{--tw-gradient-to:var(--color-violet-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab,red,red)){.to-white\/0{--tw-gradient-to:color-mix(in oklab,var(--color-white)0%,transparent)}}.to-white\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[background-size\:var\(--beam-size\)_var\(--beam-size\)\]{background-size:var(--beam-size)var(--beam-size)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-amber-300{fill:var(--color-amber-300)}.fill-amber-400{fill:var(--color-amber-400)}.fill-blue-500{fill:var(--color-blue-500)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.fill-white{fill:var(--color-white)}.fill-yellow-300{fill:var(--color-yellow-300)}.stroke-\[2\.5\]{stroke-width:2.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-bottom{object-position:bottom}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-3\.5{padding:calc(var(--spacing)*3.5)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-7{padding:calc(var(--spacing)*7)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-7{padding-block:calc(var(--spacing)*7)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.py-20{padding-block:calc(var(--spacing)*20)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pr-0{padding-right:calc(var(--spacing)*0)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-10{padding-right:calc(var(--spacing)*10)}.pr-11{padding-right:calc(var(--spacing)*11)}.pr-24{padding-right:calc(var(--spacing)*24)}.pr-40{padding-right:calc(var(--spacing)*40)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.pb-32{padding-bottom:calc(var(--spacing)*32)}.pb-48{padding-bottom:calc(var(--spacing)*48)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-10{padding-left:calc(var(--spacing)*10)}.pl-11{padding-left:calc(var(--spacing)*11)}.pl-16{padding-left:calc(var(--spacing)*16)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[6px\]{font-size:6px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[32px\]{font-size:32px}.text-\[36px\]{font-size:36px}.text-\[40px\]{font-size:40px}.text-\[50px\]{font-size:50px}.text-\[60px\]{font-size:60px}.text-\[80px\]{font-size:80px}.text-\[140px\]{font-size:140px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.7\]{--tw-leading:1.7;line-height:1.7}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.3px\]{--tw-tracking:.3px;letter-spacing:.3px}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.25em\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-\[\#1FA7E1\]{color:#1fa7e1!important}.\!text-white{color:var(--color-white)!important}.text-\[\#0a1628\]{color:#0a1628}.text-\[\#1E293B\]{color:#1e293b}.text-\[\#1FA7E1\]{color:#1fa7e1}.text-\[\#2e2b5e\]{color:#2e2b5e}.text-\[\#3E8538\]{color:#3e8538}.text-\[\#3c4043\]{color:#3c4043}.text-\[\#4D9F46\]{color:#4d9f46}.text-\[\#5E3388\]{color:#5e3388}.text-\[\#5E3388\]\/80{color:#5e3388cc}.text-\[\#5a6578\]{color:#5a6578}.text-\[\#5f6368\]{color:#5f6368}.text-\[\#6ED1CF\]{color:#6ed1cf}.text-\[\#7A44B3\]{color:#7a44b3}.text-\[\#7b8798\]{color:#7b8798}.text-\[\#7eafbe\]{color:#7eafbe}.text-\[\#8A1A1A\]{color:#8a1a1a}.text-\[\#8A3FD3\]{color:#8a3fd3}.text-\[\#8a7fbc\]{color:#8a7fbc}.text-\[\#8f5ae2\]{color:#8f5ae2}.text-\[\#35a8bc\]\/10{color:#35a8bc1a}.text-\[\#75D06A\]{color:#75d06a}.text-\[\#141b2d\]{color:#141b2d}.text-\[\#319ab4\]{color:#319ab4}.text-\[\#6620a2\]{color:#6620a2}.text-\[\#7274ED\]{color:#7274ed}.text-\[\#9956DE\]{color:#9956de}.text-\[\#36326e\]{color:#36326e}.text-\[\#202124\]{color:#202124}.text-\[\#334155\]{color:#334155}.text-\[\#A56D29\]{color:#a56d29}.text-\[\#A74B50\]{color:#a74b50}.text-\[\#C65E63\]{color:#c65e63}.text-\[\#CC8A37\]{color:#cc8a37}.text-\[\#D66A6A\]{color:#d66a6a}.text-\[\#EAFBFF\]{color:#eafbff}.text-\[\#F1E4FF\]{color:#f1e4ff}.text-\[\#F08386\]{color:#f08386}.text-\[\#FF8B8B\]{color:#ff8b8b}.text-\[\#FFB356\]{color:#ffb356}.text-\[\#a0aec0\]{color:#a0aec0}.text-\[\#a3b1ee\]{color:#a3b1ee}.text-\[\#a06aec\]\/10{color:#a06aec1a}.text-\[\#a8a5b3\]{color:#a8a5b3}.text-\[\#baa4df\]{color:#baa4df}.text-\[\#c2cad8\]{color:#c2cad8}.text-\[\#d1abff\]{color:#d1abff}.text-\[\#d1cec6\]{color:#d1cec6}.text-\[\#d2a893\]{color:#d2a893}.text-\[\#d05c54\]{color:#d05c54}.text-\[\#db734b\]{color:#db734b}.text-\[\#dd9a9a\]{color:#dd9a9a}.text-\[\#dde3eb\]{color:#dde3eb}.text-\[\#df655a\]\/10{color:#df655a1a}.text-\[\#e87a42\]\/10{color:#e87a421a}.text-\[\#f8fafc\]{color:#f8fafc}.text-\[\#fcd34d\]{color:#fcd34d}.text-\[\#fde047\]{color:#fde047}.text-\[var\(--chart-1\)\]{color:var(--chart-1)}.text-\[var\(--chart-2\)\]{color:var(--chart-2)}.text-\[var\(--chart-3\)\]{color:var(--chart-3)}.text-\[var\(--chart-4\)\]{color:var(--chart-4)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-800\/80{color:#953d00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-800\/80{color:color-mix(in oklab,var(--color-amber-800)80%,transparent)}}.text-amber-900{color:var(--color-amber-900)}.text-amber-900\/80{color:#7b3306cc}@supports (color:color-mix(in lab,red,red)){.text-amber-900\/80{color:color-mix(in oklab,var(--color-amber-900)80%,transparent)}}.text-amber-900\/85{color:#7b3306d9}@supports (color:color-mix(in lab,red,red)){.text-amber-900\/85{color:color-mix(in oklab,var(--color-amber-900)85%,transparent)}}.text-black\/25{color:#00000040}@supports (color:color-mix(in lab,red,red)){.text-black\/25{color:color-mix(in oklab,var(--color-black)25%,transparent)}}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-cyan-100{color:var(--color-cyan-100)}.text-cyan-200{color:var(--color-cyan-200)}.text-destructive{color:var(--destructive)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-800\/80{color:#005f46cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-800\/80{color:color-mix(in oklab,var(--color-emerald-800)80%,transparent)}}.text-emerald-900{color:var(--color-emerald-900)}.text-emerald-950{color:var(--color-emerald-950)}.text-foreground{color:var(--foreground)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-800{color:var(--color-indigo-800)}.text-indigo-800\/80{color:#372aaccc}@supports (color:color-mix(in lab,red,red)){.text-indigo-800\/80{color:color-mix(in oklab,var(--color-indigo-800)80%,transparent)}}.text-muted-foreground,.text-muted-foreground\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--muted-foreground)40%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground)60%,transparent)}}.text-orange-300{color:var(--color-orange-300)}.text-orange-400{color:var(--color-orange-400)}.text-orange-400\/60{color:#ff8b1a99}@supports (color:color-mix(in lab,red,red)){.text-orange-400\/60{color:color-mix(in oklab,var(--color-orange-400)60%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{color:var(--color-purple-600)}.text-purple-600\/80{color:#9810facc}@supports (color:color-mix(in lab,red,red)){.text-purple-600\/80{color:color-mix(in oklab,var(--color-purple-600)80%,transparent)}}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-rose-200{color:var(--color-rose-200)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-rose-900{color:var(--color-rose-900)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.text-sky-100{color:var(--color-violet-100)}.text-sky-200{color:var(--color-violet-200)}.text-sky-300{color:var(--color-violet-300)}.text-sky-400{color:var(--color-violet-400)}.text-sky-500{color:var(--color-violet-500)}.text-sky-600{color:var(--color-violet-600)}.text-sky-600\/80{color:#7f22fecc}@supports (color:color-mix(in lab,red,red)){.text-sky-600\/80{color:color-mix(in oklab,var(--color-violet-600)80%,transparent)}}.text-sky-700{color:var(--color-violet-700)}.text-sky-800{color:var(--color-violet-800)}.text-sky-900{color:var(--color-violet-900)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-400\/80{color:#90a1b9cc}@supports (color:color-mix(in lab,red,red)){.text-slate-400\/80{color:color-mix(in oklab,var(--color-slate-400)80%,transparent)}}.text-slate-500{color:var(--color-slate-500)}.text-slate-500\/60{color:#62748e99}@supports (color:color-mix(in lab,red,red)){.text-slate-500\/60{color:color-mix(in oklab,var(--color-slate-500)60%,transparent)}}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-teal-200{color:var(--color-teal-200)}.text-teal-400{color:var(--color-teal-400)}.text-teal-500{color:var(--color-teal-500)}.text-teal-600{color:var(--color-teal-600)}.text-teal-700{color:var(--color-teal-700)}.text-teal-800{color:var(--color-teal-800)}.text-teal-900{color:var(--color-teal-900)}.text-transparent{color:#0000}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.text-white\/5{color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.text-white\/5{color:color-mix(in oklab,var(--color-white)5%,transparent)}}.text-white\/10{color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.text-white\/10{color:color-mix(in oklab,var(--color-white)10%,transparent)}}.text-white\/30{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.text-white\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white)85%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.text-yellow-300{color:var(--color-yellow-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-700{color:var(--color-zinc-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.decoration-slate-400{-webkit-text-decoration-color:var(--color-slate-400);text-decoration-color:var(--color-slate-400)}.underline-offset-4{text-underline-offset:4px}.placeholder-\[\#a8a5b3\]::placeholder{color:#a8a5b3}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.opacity-\[0\.2\]{opacity:.2}.opacity-\[0\.03\]{opacity:.03}.opacity-\[0\.15\]{opacity:.15}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-screen{mix-blend-mode:screen}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_-15px_50px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 -15px 50px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(139\,92\,246\,0\.2\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#8b5cf633);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(245\,158\,11\,0\.2\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#f59e0b33);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(255\,255\,255\,0\.5\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#ffffff80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(16\,185\,129\,0\.2\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#10b98133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(99\,102\,241\,0\.2\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#6366f133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(158\,143\,255\,0\.4\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#9e8fff66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(245\,158\,11\,0\.2\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#f59e0b33);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_18px_rgba\(255\,139\,139\,0\.6\)\]{--tw-shadow:0 0 18px var(--tw-shadow-color,#ff8b8b99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_18px_rgba\(255\,179\,86\,0\.6\)\]{--tw-shadow:0 0 18px var(--tw-shadow-color,#ffb35699);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_24px_rgba\(250\,204\,21\,0\.6\)\]{--tw-shadow:0 0 24px var(--tw-shadow-color,#facc1599);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(16\,185\,129\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#10b98133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(31\,167\,225\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#1fa7e133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(99\,102\,241\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#6366f133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(138\,63\,211\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#8a3fd333);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_-10px_rgba\(245\,158\,11\,0\.2\)\]{--tw-shadow:0 0 40px -10px var(--tw-shadow-color,#f59e0b33);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_15px_-3px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:0 2px 15px -3px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_8px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 4px 8px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_5px_12px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:0 5px 12px var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(2\,132\,199\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#0284c7);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(5\,150\,105\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#059669);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(109\,40\,217\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#6d28d9);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_0_rgba\(225\,29\,72\,1\)\]{--tw-shadow:0 8px 0 var(--tw-shadow-color,#e11d48);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_16px_rgba\(0\,0\,0\,0\.15\)\]{--tw-shadow:0 8px 16px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_16px_rgba\(18\,25\,43\,0\.3\)\]{--tw-shadow:0 8px 16px var(--tw-shadow-color,#12192b4d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_20px_-8px_rgba\(79\,70\,229\,0\.5\)\]{--tw-shadow:0 8px 20px -8px var(--tw-shadow-color,#4f46e580);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_24px_-10px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:0 8px 24px -10px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_-12px_rgba\(0\,0\,0\,0\.06\)\]{--tw-shadow:0 8px 30px -12px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgb\(0\,0\,0\,0\.04\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(31\,167\,225\,0\.2\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#1fa7e133);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(59\,58\,130\,0\.3\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#3b3a824d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(138\,63\,211\,0\.2\)\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#8a3fd333);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_30px_-10px_rgba\(37\,99\,235\,0\.6\)\]{--tw-shadow:0 10px 30px -10px var(--tw-shadow-color,#2563eb99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_40px_-10px_rgba\(0\,0\,0\,0\.15\)\]{--tw-shadow:0 10px 40px -10px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_25px_rgba\(0\,0\,0\,0\.08\)\]{--tw-shadow:0 12px 25px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_30px_-10px_rgba\(79\,70\,229\,0\.5\)\]{--tw-shadow:0 12px 30px -10px var(--tw-shadow-color,#4f46e580);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_15px_25px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:0 15px 25px var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_18px_30px_-20px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow:0 18px 30px -20px var(--tw-shadow-color,#00000073);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_30px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 30px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_40px_-10px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 40px -10px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_40px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 40px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_45px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 45px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_50px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 50px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_50px_rgba\(15\,20\,34\,0\.2\)\]{--tw-shadow:0 20px 50px var(--tw-shadow-color,#0f142233);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_-15px_rgba\(168\,85\,247\,0\.15\)\]{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#a855f726);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_30px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 30px 60px -15px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_30px_80px_rgba\(0\,0\,0\,0\.8\)\]{--tw-shadow:0 30px 80px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-4px_6px_rgba\(0\,0\,0\,0\.05\)\,0_4px_6px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:inset 0 -4px 6px var(--tw-shadow-color,#0000000d),0 4px 6px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-4px_6px_rgba\(249\,115\,22\,0\.05\)\,0_4px_6px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow:inset 0 -4px 6px var(--tw-shadow-color,#f973160d),0 4px 6px var(--tw-shadow-color,#00000005);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-4px_8px_rgba\(251\,191\,36\,0\.1\)\,0_6px_8px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:inset 0 -4px 8px var(--tw-shadow-color,#fbbf241a),0 6px 8px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_2px_4px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_2px_4px_rgba\(255\,255\,255\,0\.1\)\,_inset_0_-4px_4px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#ffffff1a),inset 0 -4px 4px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_6px_15px_rgba\(255\,255\,255\,0\.4\)\]{--tw-shadow:inset 0 6px 15px var(--tw-shadow-color,#fff6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow\/elevation{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[6px\]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(6px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[\#1FA7E1\]\/20{--tw-shadow-color:#1fa7e133}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#1FA7E1\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(68.7044% -.0807821 -.10979/.2) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#1FA7E1\]\/30{--tw-shadow-color:#1fa7e14d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#1FA7E1\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(68.7044% -.0807821 -.10979/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#1FA7E1\]\/40{--tw-shadow-color:#1fa7e166}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#1FA7E1\]\/40{--tw-shadow-color:color-mix(in oklab,oklab(68.7044% -.0807821 -.10979/.4) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#8A3FD3\]\/30{--tw-shadow-color:#8a3fd34d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#8A3FD3\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(54.1025% .117281 -.181162/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#8A3FD3\]\/40{--tw-shadow-color:#8a3fd366}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#8A3FD3\]\/40{--tw-shadow-color:color-mix(in oklab,oklab(54.1025% .117281 -.181162/.4) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#8B5CF6\]\/20{--tw-shadow-color:#8b5cf633}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#8B5CF6\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(60.5631% .0845415 -.201932/.2) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#9956DE\]\/20{--tw-shadow-color:#9956de33}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#9956DE\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(59.4745% .111053 -.167638/.2) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#9956DE\]\/30{--tw-shadow-color:#9956de4d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#9956DE\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(59.4745% .111053 -.167638/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#FB96BB\]\/30{--tw-shadow-color:#fb96bb4d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#FB96BB\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(78.801% .12777 -.00670064/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[\#FFB356\]\/30{--tw-shadow-color:#ffb3564d}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#FFB356\]\/30{--tw-shadow-color:color-mix(in oklab,oklab(82.2219% .0499055 .130321/.3) var(--tw-shadow-alpha),transparent)}}.shadow-\[rgba\(124\,58\,237\,0\.05\)_0px_0px_30px_inset\]{--tw-shadow-color:#7c3aed0d}@supports (color:color-mix(in lab,red,red)){.shadow-\[rgba\(124\,58\,237\,0\.05\)_0px_0px_30px_inset\]{--tw-shadow-color:color-mix(in oklab,#7c3aed0d 0px 0px 30px inset var(--tw-shadow-alpha),transparent)}}.shadow-purple-500\/20{--tw-shadow-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.shadow-purple-500\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-purple-500)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-purple-600\/25{--tw-shadow-color:#9810fa40}@supports (color:color-mix(in lab,red,red)){.shadow-purple-600\/25{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-purple-600)25%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-red-100{--tw-shadow-color:oklch(93.6% .032 17.717)}@supports (color:color-mix(in lab,red,red)){.shadow-red-100{--tw-shadow-color:color-mix(in oklab,var(--color-red-100)var(--tw-shadow-alpha),transparent)}}.shadow-red-900\/10{--tw-shadow-color:#82181a1a}@supports (color:color-mix(in lab,red,red)){.shadow-red-900\/10{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-red-900)10%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-rose-200{--tw-shadow-color:oklch(89.2% .058 10.001)}@supports (color:color-mix(in lab,red,red)){.shadow-rose-200{--tw-shadow-color:color-mix(in oklab,var(--color-rose-200)var(--tw-shadow-alpha),transparent)}}.shadow-sky-200{--tw-shadow-color:oklch(89.4% .057 293.283)}@supports (color:color-mix(in lab,red,red)){.shadow-sky-200{--tw-shadow-color:color-mix(in oklab,var(--color-violet-200)var(--tw-shadow-alpha),transparent)}}.shadow-sky-500\/20{--tw-shadow-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.shadow-sky-500\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-violet-500)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-slate-900\/\[0\.04\]{--tw-shadow-color:#0f172b0a}@supports (color:color-mix(in lab,red,red)){.shadow-slate-900\/\[0\.04\]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-slate-900)4%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-teal-100{--tw-shadow-color:oklch(95.3% .051 180.801)}@supports (color:color-mix(in lab,red,red)){.shadow-teal-100{--tw-shadow-color:color-mix(in oklab,var(--color-teal-100)var(--tw-shadow-alpha),transparent)}}.shadow-teal-200{--tw-shadow-color:oklch(91% .096 180.426)}@supports (color:color-mix(in lab,red,red)){.shadow-teal-200{--tw-shadow-color:color-mix(in oklab,var(--color-teal-200)var(--tw-shadow-alpha),transparent)}}.shadow-teal-500\/30{--tw-shadow-color:#00baa74d}@supports (color:color-mix(in lab,red,red)){.shadow-teal-500\/30{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-teal-500)30%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-\[\#1FA7E1\]\/35{--tw-ring-color:oklab(68.7044% -.0807821 -.10979/.35)}.ring-\[\#8B5CF6\]\/10{--tw-ring-color:oklab(60.5631% .0845415 -.201932/.1)}.ring-\[\#9956DE\]\/45{--tw-ring-color:oklab(59.4745% .111053 -.167638/.45)}.ring-\[\#9956DE\]\/50{--tw-ring-color:oklab(59.4745% .111053 -.167638/.5)}.ring-\[color-mix\(in_srgb\,var\(--chart-2\)_40\%\,transparent\)\]{--tw-ring-color:var(--chart-2)}@supports (color:color-mix(in lab,red,red)){.ring-\[color-mix\(in_srgb\,var\(--chart-2\)_40\%\,transparent\)\]{--tw-ring-color:color-mix(in srgb,var(--chart-2)40%,transparent)}}.ring-\[color-mix\(in_srgb\,var\(--chart-3\)_40\%\,transparent\)\]{--tw-ring-color:var(--chart-3)}@supports (color:color-mix(in lab,red,red)){.ring-\[color-mix\(in_srgb\,var\(--chart-3\)_40\%\,transparent\)\]{--tw-ring-color:color-mix(in srgb,var(--chart-3)40%,transparent)}}.ring-\[color-mix\(in_srgb\,var\(--chart-4\)_40\%\,transparent\)\]{--tw-ring-color:var(--chart-4)}@supports (color:color-mix(in lab,red,red)){.ring-\[color-mix\(in_srgb\,var\(--chart-4\)_40\%\,transparent\)\]{--tw-ring-color:color-mix(in srgb,var(--chart-4)40%,transparent)}}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-green-300{--tw-ring-color:var(--color-green-300)}.ring-indigo-100{--tw-ring-color:var(--color-indigo-100)}.ring-primary,.ring-primary\/40{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab,var(--primary)40%,transparent)}}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-red-300{--tw-ring-color:var(--color-red-300)}.ring-red-500{--tw-ring-color:var(--color-red-500)}.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.ring-rose-300{--tw-ring-color:var(--color-rose-300)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-sky-100{--tw-ring-color:var(--color-violet-100)}.ring-sky-300\/50{--tw-ring-color:#c4b4ff80}@supports (color:color-mix(in lab,red,red)){.ring-sky-300\/50{--tw-ring-color:color-mix(in oklab,var(--color-violet-300)50%,transparent)}}.ring-sky-500\/10{--tw-ring-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.ring-sky-500\/10{--tw-ring-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.ring-teal-200{--tw-ring-color:var(--color-teal-200)}.ring-white{--tw-ring-color:var(--color-white)}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.ring-white\/20{--tw-ring-color:#fff3}@supports (color:color-mix(in lab,red,red)){.ring-white\/20{--tw-ring-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-\[6px\]{--tw-ring-offset-width:6px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-\[\#0B0F19\]{--tw-ring-offset-color:#0b0f19}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));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,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.blur-\[1px\]{--tw-blur:blur(1px);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,)}.blur-\[32px\]{--tw-blur:blur(32px);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,)}.blur-\[60px\]{--tw-blur:blur(60px);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,)}.blur-\[100px\]{--tw-blur:blur(100px);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,)}.blur-\[120px\]{--tw-blur:blur(120px);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,)}.blur-\[140px\]{--tw-blur:blur(140px);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,)}.blur-\[160px\]{--tw-blur:blur(160px);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,)}.blur-xl{--tw-blur:blur(var(--blur-xl));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,)}.contrast-50{--tw-contrast:contrast(50%);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.drop-shadow-\[-2px_-2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(-2px -2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[-2px_2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(-2px 2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[-2px_3px_0px_rgba\(0\,0\,0\,0\.8\)\]{--tw-drop-shadow-size:drop-shadow(-2px 3px 0px var(--tw-drop-shadow-color,#000c));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[-3px_0px_0px_white\]{--tw-drop-shadow-size:drop-shadow(-3px 0px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(16\,185\,129\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#10b98180));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(31\,167\,225\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#1fa7e180));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(99\,102\,241\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#6366f180));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(138\,63\,211\,0\.5\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#8a3fd380));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_8px_rgba\(251\,191\,36\,0\.9\)\]{--tw-drop-shadow-size:drop-shadow(0 0 8px var(--tw-drop-shadow-color,#fbbf24e6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_12px_rgba\(245\,158\,11\,0\.6\)\]{--tw-drop-shadow-size:drop-shadow(0 0 12px var(--tw-drop-shadow-color,#f59e0b99));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_12px_rgba\(250\,204\,21\,0\.9\)\]{--tw-drop-shadow-size:drop-shadow(0 0 12px var(--tw-drop-shadow-color,#facc15e6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_12px_rgba\(255\,255\,255\,0\.4\)\]{--tw-drop-shadow-size:drop-shadow(0 0 12px var(--tw-drop-shadow-color,#fff6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_15px_rgba\(253\,224\,71\,0\.6\)\]{--tw-drop-shadow-size:drop-shadow(0 0 15px var(--tw-drop-shadow-color,#fde04799));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_0_25px_rgba\(252\,211\,77\,0\.9\)\]{--tw-drop-shadow-size:drop-shadow(0 0 25px var(--tw-drop-shadow-color,#fcd34de6));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_12px_15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-drop-shadow-size:drop-shadow(0 12px 15px var(--tw-drop-shadow-color,#0000004d));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0_15px_15px_rgba\(0\,0\,0\,0\.3\)\]{--tw-drop-shadow-size:drop-shadow(0 15px 15px var(--tw-drop-shadow-color,#0000004d));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0px_-3px_0px_white\]{--tw-drop-shadow-size:drop-shadow(0px -3px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[0px_3px_0px_white\]{--tw-drop-shadow-size:drop-shadow(0px 3px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[2px_-2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(2px -2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[2px_2px_0px_white\]{--tw-drop-shadow-size:drop-shadow(2px 2px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-\[3px_0px_0px_white\]{--tw-drop-shadow-size:drop-shadow(3px 0px 0px var(--tw-drop-shadow-color,white));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));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,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));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,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));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,)}.drop-shadow-xl{--tw-drop-shadow-size:drop-shadow(0 9px 7px var(--tw-drop-shadow-color,#0000001a));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xl));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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.saturate-50{--tw-saturate:saturate(50%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-75{transition-delay:75ms}.duration-0{--tw-duration:0s;transition-duration:0s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.prose-slate{--tw-prose-body:oklch(37.2% .044 257.287);--tw-prose-headings:oklch(20.8% .042 265.755);--tw-prose-lead:oklch(44.6% .043 257.281);--tw-prose-links:oklch(20.8% .042 265.755);--tw-prose-bold:oklch(20.8% .042 265.755);--tw-prose-counters:oklch(55.4% .046 257.417);--tw-prose-bullets:oklch(86.9% .022 252.894);--tw-prose-hr:oklch(92.9% .013 255.508);--tw-prose-quotes:oklch(20.8% .042 265.755);--tw-prose-quote-borders:oklch(92.9% .013 255.508);--tw-prose-captions:oklch(55.4% .046 257.417);--tw-prose-kbd:oklch(20.8% .042 265.755);--tw-prose-kbd-shadows:oklab(20.8% -.00310889 -.0418848/.1);--tw-prose-code:oklch(20.8% .042 265.755);--tw-prose-pre-code:oklch(92.9% .013 255.508);--tw-prose-pre-bg:oklch(27.9% .041 260.031);--tw-prose-th-borders:oklch(86.9% .022 252.894);--tw-prose-td-borders:oklch(92.9% .013 255.508);--tw-prose-invert-body:oklch(86.9% .022 252.894);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.4% .04 256.788);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.4% .04 256.788);--tw-prose-invert-bullets:oklch(44.6% .043 257.281);--tw-prose-invert-hr:oklch(37.2% .044 257.287);--tw-prose-invert-quotes:oklch(96.8% .007 247.896);--tw-prose-invert-quote-borders:oklch(37.2% .044 257.287);--tw-prose-invert-captions:oklch(70.4% .04 256.788);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(86.9% .022 252.894);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .043 257.281);--tw-prose-invert-td-borders:oklch(37.2% .044 257.287)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}.\[background\:linear-gradient\(var\(--grid-color\)_0_1px\,_transparent_1px_var\(--beam-size\)\)_50\%_-0\.5px_\/var\(--beam-size\)_var\(--beam-size\)\,linear-gradient\(90deg\,_var\(--grid-color\)_0_1px\,_transparent_1px_var\(--beam-size\)\)_50\%_50\%_\/var\(--beam-size\)_var\(--beam-size\)\]{background:linear-gradient(var(--grid-color)0 1px,transparent 1px var(--beam-size))50% -.5px/var(--beam-size)var(--beam-size),linear-gradient(90deg,var(--grid-color)0 1px,transparent 1px var(--beam-size))50% 50%/var(--beam-size)var(--beam-size)}.\[background\:var\(--background\)\]{background:var(--background)}.\[clip-path\:inset\(0\)\]{clip-path:inset(0)}.\[perspective\:var\(--perspective\)\]{perspective:var(--perspective)}.\[transform-style\:preserve-3d\]{transform-style:preserve-3d}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:left-\[150\%\]:is(:where(.group):hover *){left:150%}.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:-translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-4:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-1:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-2:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-4:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-4);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-125:is(:where(.group):hover *){--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-\[1\.3\]:is(:where(.group):hover *){scale:1.3}.group-hover\:-rotate-6:is(:where(.group):hover *){rotate:-6deg}.group-hover\:rotate-3:is(:where(.group):hover *){rotate:3deg}.group-hover\:rotate-12:is(:where(.group):hover *){rotate:12deg}.group-hover\:rotate-45:is(:where(.group):hover *){rotate:45deg}.group-hover\:animate-\[shimmer_1\.5s_ease-out\]:is(:where(.group):hover *){animation:1.5s ease-out shimmer}.group-hover\:border-\[\#dde3eb\]:is(:where(.group):hover *){border-color:#dde3eb}.group-hover\:border-amber-400:is(:where(.group):hover *){border-color:var(--color-amber-400)}.group-hover\:border-sky-300:is(:where(.group):hover *){border-color:var(--color-violet-300)}.group-hover\:border-r-amber-400:is(:where(.group):hover *){border-right-color:var(--color-amber-400)}.group-hover\:border-b-amber-400:is(:where(.group):hover *){border-bottom-color:var(--color-amber-400)}.group-hover\:bg-amber-50:is(:where(.group):hover *){background-color:var(--color-amber-50)}.group-hover\:bg-amber-100\/50:is(:where(.group):hover *){background-color:#fef3c680}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-amber-100\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-amber-100)50%,transparent)}}.group-hover\:bg-slate-50:is(:where(.group):hover *){background-color:var(--color-slate-50)}.group-hover\:bg-slate-600:is(:where(.group):hover *){background-color:var(--color-slate-600)}.group-hover\:bg-white\/20:is(:where(.group):hover *){background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-white\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.group-hover\:text-\[\#9956DE\]:is(:where(.group):hover *){color:#9956de}.group-hover\:text-\[var\(--hover-color\)\]:is(:where(.group):hover *){color:var(--hover-color)}.group-hover\:text-amber-500:is(:where(.group):hover *){color:var(--color-amber-500)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\:text-sky-500:is(:where(.group):hover *){color:var(--color-violet-500)}.group-hover\:text-sky-600:is(:where(.group):hover *){color:var(--color-violet-600)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:shadow-\[0_24px_40px_-15px_rgba\(0\,0\,0\,0\.5\)\]:is(:where(.group):hover *){--tw-shadow:0 24px 40px -15px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-hover\:shadow-xl:is(:where(.group):hover *){--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-hover\:duration-\[800ms\]:is(:where(.group):hover *){--tw-duration:.8s;transition-duration:.8s}.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[viewport\=false\]\/navigation-menu\:top-full:is(:where(.group\/navigation-menu)[data-viewport=false] *){top:100%}.group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5:is(:where(.group\/navigation-menu)[data-viewport=false] *){margin-top:calc(var(--spacing)*1.5)}.group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden:is(:where(.group\/navigation-menu)[data-viewport=false] *){overflow:hidden}.group-data-\[viewport\=false\]\/navigation-menu\:rounded-md:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-radius:calc(var(--radius) - 2px)}.group-data-\[viewport\=false\]\/navigation-menu\:border:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[viewport\=false\]\/navigation-menu\:bg-popover:is(:where(.group\/navigation-menu)[data-viewport=false] *){background-color:var(--popover)}.group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground:is(:where(.group\/navigation-menu)[data-viewport=false] *){color:var(--popover-foreground)}.group-data-\[viewport\=false\]\/navigation-menu\:shadow:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[viewport\=false\]\/navigation-menu\:duration-200:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-duration:.2s;transition-duration:.2s}.peer-checked\:bg-\[\#5a6578\]:is(:where(.peer):checked~*){background-color:#5a6578}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-focus\:outline-none:is(:where(.peer):focus~*){--tw-outline-style:none;outline-style:none}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:font-medium::placeholder{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.placeholder\:text-slate-400::placeholder{color:var(--color-slate-400)}.placeholder\:text-slate-500::placeholder{color:var(--color-slate-500)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing)*.5)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing)*1)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-\[\#dde3eb\]:after{content:var(--tw-content);border-color:#dde3eb}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}@media(hover:hover){.hover\:z-10:hover{z-index:10}.hover\:-translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.01\]:hover{scale:1.01}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:rotate-0:hover{rotate:none}.hover\:gap-2:hover{gap:calc(var(--spacing)*2)}.hover\:border-\[\#1FA7E1\]\/50:hover{border-color:#1fa7e180}.hover\:border-\[\#8A3FD3\]\/50:hover{border-color:#8a3fd380}.hover\:border-\[\#75D06A\]:hover{border-color:#75d06a}.hover\:border-\[\#75D06A\]\/60:hover{border-color:#75d06a99}.hover\:border-\[\#9956DE\]:hover{border-color:#9956de}.hover\:border-\[\#9956DE\]\/30:hover{border-color:#9956de4d}.hover\:border-\[\#9956DE\]\/60:hover{border-color:#9956de99}.hover\:border-\[\#F08386\]:hover{border-color:#f08386}.hover\:border-\[\#F08386\]\/60:hover{border-color:#f0838699}.hover\:border-\[\#d1cec6\]:hover{border-color:#d1cec6}.hover\:border-\[\#dde3eb\]:hover{border-color:#dde3eb}.hover\:border-amber-200\/60:hover{border-color:#fee68599}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-200\/60:hover{border-color:color-mix(in oklab,var(--color-amber-200)60%,transparent)}}.hover\:border-emerald-100:hover{border-color:var(--color-emerald-100)}.hover\:border-emerald-300:hover{border-color:var(--color-emerald-300)}.hover\:border-indigo-100:hover{border-color:var(--color-indigo-100)}.hover\:border-indigo-300:hover{border-color:var(--color-indigo-300)}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-orange-300:hover{border-color:var(--color-orange-300)}.hover\:border-rose-300:hover{border-color:var(--color-rose-300)}.hover\:border-sky-200:hover{border-color:var(--color-violet-200)}.hover\:border-sky-300:hover{border-color:var(--color-violet-300)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-teal-300:hover{border-color:var(--color-teal-300)}.hover\:border-violet-100:hover{border-color:var(--color-violet-100)}.hover\:bg-\[\#1C96CB\]:hover{background-color:#1c96cb}.hover\:bg-\[\#1FA7E1\]\/5:hover{background-color:#1fa7e10d}.hover\:bg-\[\#1a95c9\]:hover{background-color:#1a95c9}.hover\:bg-\[\#5AB84E\]:hover{background-color:#5ab84e}.hover\:bg-\[\#7A44B3\]:hover{background-color:#7a44b3}.hover\:bg-\[\#7b35c0\]:hover{background-color:#7b35c0}.hover\:bg-\[\#008f5d\]:hover{background-color:#008f5d}.hover\:bg-\[\#8A3FD3\]\/5:hover{background-color:#8a3fd30d}.hover\:bg-\[\#8A4DCA\]:hover{background-color:#8a4dca}.hover\:bg-\[\#75D06A\]\/14:hover{background-color:#75d06a24}.hover\:bg-\[\#9956DE\]\/12:hover{background-color:#9956de1f}.hover\:bg-\[\#F08386\]\/12:hover{background-color:#f083861f}.hover\:bg-\[\#FA7DA9\]:hover{background-color:#fa7da9}.hover\:bg-\[\#FF8B8B\]\/20:hover{background-color:#ff8b8b33}.hover\:bg-\[\#FF7373\]:hover{background-color:#ff7373}.hover\:bg-\[\#dde3eb\]:hover{background-color:#dde3eb}.hover\:bg-\[\#edf1f7\]:hover{background-color:#edf1f7}.hover\:bg-\[\#edf1f7\]\/50:hover{background-color:#edf1f780}.hover\:bg-accent:hover,.hover\:bg-accent\/40:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab,var(--accent)40%,transparent)}}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-cyan-200:hover{background-color:var(--color-cyan-200)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-emerald-200:hover{background-color:var(--color-emerald-200)}.hover\:bg-emerald-400:hover{background-color:var(--color-emerald-400)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-orange-50:hover{background-color:var(--color-orange-50)}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-primary:hover,.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-rose-50:hover{background-color:var(--color-rose-50)}.hover\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\:bg-rose-400:hover{background-color:var(--color-rose-400)}.hover\:bg-rose-500:hover{background-color:var(--color-rose-500)}.hover\:bg-rose-500\/10:hover{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-rose-500\/10:hover{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.hover\:bg-rose-700:hover{background-color:var(--color-rose-700)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-sky-50:hover{background-color:var(--color-violet-50)}.hover\:bg-sky-50\/80:hover{background-color:#f5f3ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sky-50\/80:hover{background-color:color-mix(in oklab,var(--color-violet-50)80%,transparent)}}.hover\:bg-sky-100:hover{background-color:var(--color-violet-100)}.hover\:bg-sky-300:hover{background-color:var(--color-violet-300)}.hover\:bg-sky-400:hover{background-color:var(--color-violet-400)}.hover\:bg-sky-600:hover{background-color:var(--color-violet-600)}.hover\:bg-sky-700:hover{background-color:var(--color-violet-700)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-50\/70:hover{background-color:color-mix(in oklab,var(--color-slate-50)70%,transparent)}}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:bg-slate-200\/50:hover{background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/50:hover{background-color:color-mix(in oklab,var(--color-slate-200)50%,transparent)}}.hover\:bg-slate-200\/70:hover{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/70:hover{background-color:color-mix(in oklab,var(--color-slate-200)70%,transparent)}}.hover\:bg-teal-600:hover{background-color:var(--color-teal-600)}.hover\:bg-violet-100:hover{background-color:var(--color-violet-100)}.hover\:bg-violet-400:hover{background-color:var(--color-violet-400)}.hover\:bg-violet-500:hover{background-color:var(--color-violet-500)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:bg-white\/30:hover{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/30:hover{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:bg-white\/80:hover{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/80:hover{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\:\!from-\[\#8FE4DA\]:hover{--tw-gradient-from:#8fe4da!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.hover\:from-amber-600:hover{--tw-gradient-from:var(--color-amber-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:from-purple-500:hover{--tw-gradient-from:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:from-sky-700:hover{--tw-gradient-from:var(--color-violet-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:\!to-\[\#49BDEB\]:hover{--tw-gradient-to:#49bdeb!important;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))!important}.hover\:to-orange-600:hover{--tw-gradient-to:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-pink-400:hover{--tw-gradient-to:var(--color-pink-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-sky-600:hover{--tw-gradient-to:var(--color-violet-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:text-\[\#0a1628\]:hover{color:#0a1628}.hover\:text-\[\#5a6578\]:hover{color:#5a6578}.hover\:text-\[\#75D06A\]:hover{color:#75d06a}.hover\:text-\[\#9956DE\]:hover{color:#9956de}.hover\:text-\[\#F08386\]:hover{color:#f08386}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-emerald-600:hover{color:var(--color-emerald-600)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-green-600:hover{color:var(--color-green-600)}.hover\:text-indigo-600:hover{color:var(--color-indigo-600)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-primary-foreground:hover{color:var(--primary-foreground)}.hover\:text-purple-700:hover{color:var(--color-purple-700)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-rose-300:hover{color:var(--color-rose-300)}.hover\:text-rose-700:hover{color:var(--color-rose-700)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:text-sky-300:hover{color:var(--color-violet-300)}.hover\:text-sky-500:hover{color:var(--color-violet-500)}.hover\:text-sky-600:hover{color:var(--color-violet-600)}.hover\:text-sky-700:hover{color:var(--color-violet-700)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_-20px_60px_rgba\(0\,0\,0\,0\.3\)\]:hover{--tw-shadow:0 -20px 60px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_8px_24px_rgba\(0\,0\,0\,0\.2\)\]:hover{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_12px_45px_rgba\(31\,167\,225\,0\.4\)\]:hover{--tw-shadow:0 12px 45px var(--tw-shadow-color,#1fa7e166);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_12px_45px_rgba\(138\,63\,211\,0\.4\)\]:hover{--tw-shadow:0 12px 45px var(--tw-shadow-color,#8a3fd366);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_16px_30px_rgba\(0\,0\,0\,0\.12\)\]:hover{--tw-shadow:0 16px 30px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_16px_40px_-15px_rgba\(0\,0\,0\,0\.12\)\]:hover{--tw-shadow:0 16px 40px -15px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_16px_40px_rgba\(114\,116\,237\,0\.28\)\]:hover{--tw-shadow:0 16px 40px var(--tw-shadow-color,#7274ed47);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-pink-500\/35:hover{--tw-shadow-color:#f6339a59}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-pink-500\/35:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-pink-500)35%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-purple-500\/30:hover{--tw-shadow-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-purple-500\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-purple-500)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-sky-300\/50:hover{--tw-shadow-color:#c4b4ff80}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-sky-300\/50:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-violet-300)50%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-teal-500\/25:hover{--tw-shadow-color:#00baa740}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-teal-500\/25:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-teal-500)25%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:z-10:focus{z-index:10}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:border-indigo-600:focus{border-color:var(--color-indigo-600)}.focus\:border-primary:focus{border-color:var(--primary)}.focus\:border-sky-400:focus{border-color:var(--color-violet-400)}.focus\:border-sky-500:focus{border-color:var(--color-violet-500)}.focus\:border-sky-600:focus{border-color:var(--color-violet-600)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-primary:focus{background-color:var(--primary)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-primary-foreground:focus{color:var(--primary-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-indigo-100:focus{--tw-ring-color:var(--color-indigo-100)}.focus\:ring-indigo-500\/30:focus{--tw-ring-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.focus\:ring-indigo-500\/30:focus{--tw-ring-color:color-mix(in oklab,var(--color-indigo-500)30%,transparent)}}.focus\:ring-primary\/20:focus{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab,var(--primary)20%,transparent)}}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-sky-100:focus{--tw-ring-color:var(--color-violet-100)}.focus\:ring-sky-200:focus{--tw-ring-color:var(--color-violet-200)}.focus\:ring-sky-400\/15:focus{--tw-ring-color:#a685ff26}@supports (color:color-mix(in lab,red,red)){.focus\:ring-sky-400\/15:focus{--tw-ring-color:color-mix(in oklab,var(--color-violet-400)15%,transparent)}}.focus\:ring-sky-400\/20:focus{--tw-ring-color:#a685ff33}@supports (color:color-mix(in lab,red,red)){.focus\:ring-sky-400\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-violet-400)20%,transparent)}}.focus\:ring-sky-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-sky-500\/20:focus{--tw-ring-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.focus\:ring-sky-500\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[\#8A3FD3\]\/50:focus-visible{--tw-ring-color:oklab(54.1025% .117281 -.181162/.5)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-red-500:focus-visible{--tw-ring-color:var(--color-red-500)}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-sky-400:focus-visible{--tw-ring-color:var(--color-violet-400)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-\[4px\]:active{--tw-translate-y:4px;translate:var(--tw-translate-x)var(--tw-translate-y)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.active\:border-b-0:active{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.active\:bg-emerald-600:active{background-color:var(--color-emerald-600)}.active\:bg-rose-600:active{background-color:var(--color-rose-600)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:bg-sky-600:active,.active\:bg-violet-600:active{background-color:var(--color-violet-600)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:opacity-100:disabled{opacity:1}.disabled\:shadow-none:disabled{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.disabled\:hover\:translate-y-0:disabled:hover{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-disabled\:opacity-50:has(:disabled){opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.aria-selected\:bg-accent[aria-selected=true]{background-color:var(--accent)}.aria-selected\:bg-primary[aria-selected=true]{background-color:var(--primary)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:var(--accent-foreground)}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.aria-selected\:text-primary-foreground[aria-selected=true]{color:var(--primary-foreground)}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:var(--ring)}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:var(--accent-foreground)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}@media(hover:hover){.data-\[active\=true\]\:hover\:bg-accent[data-active=true]:hover{background-color:var(--accent)}}.data-\[active\=true\]\:focus\:bg-accent[data-active=true]:focus{background-color:var(--accent)}.data-\[active\=true\]\:aria-invalid\:border-destructive[data-active=true][aria-invalid=true]{border-color:var(--destructive)}.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-4[data-orientation=horizontal]{height:calc(var(--spacing)*4)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing)*44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing)*1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:calc(var(--spacing)*0)}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:calc(var(--spacing)*1)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:ring-0 *)[data-slot=navigation-menu-link]:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:outline-none *)[data-slot=navigation-menu-link]:focus{--tw-outline-style:none;outline-style:none}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-card[data-state=active]{background-color:var(--card)}.data-\[state\=active\]\:bg-gradient-to-r[data-state=active]{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.data-\[state\=active\]\:from-blue-600[data-state=active]{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.data-\[state\=active\]\:to-sky-500[data-state=active]{--tw-gradient-to:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.data-\[state\=active\]\:text-white[data-state=active]{color:var(--color-white)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:bg-red-600[data-state=checked]{background-color:var(--color-red-600)}.data-\[state\=checked\]\:bg-sky-600[data-state=checked]{background-color:var(--color-violet-600)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent)}.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-\[\#dde3eb\][data-state=unchecked]{background-color:#dde3eb}.data-\[state\=unchecked\]\:bg-switch-background[data-state=unchecked]{background-color:var(--switch-background)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=outline\]\:border-l-0[data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\[variant\=outline\]\:shadow-xs[data-variant=outline]{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[variant\=outline\]\:first\:border-l[data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media(min-width:40rem){.sm\:-top-\[30px\]{top:-30px}.sm\:top-4{top:calc(var(--spacing)*4)}.sm\:right-8{right:calc(var(--spacing)*8)}.sm\:bottom-8{bottom:calc(var(--spacing)*8)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:mt-2{margin-top:calc(var(--spacing)*2)}.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:mb-4{margin-bottom:calc(var(--spacing)*4)}.sm\:ml-0{margin-left:calc(var(--spacing)*0)}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:h-8{height:calc(var(--spacing)*8)}.sm\:h-10{height:calc(var(--spacing)*10)}.sm\:h-14{height:calc(var(--spacing)*14)}.sm\:h-\[95px\]{height:95px}.sm\:h-\[115\%\]{height:115%}.sm\:h-\[125\%\]{height:125%}.sm\:h-\[140px\]{height:140px}.sm\:h-\[145px\]{height:145px}.sm\:h-\[165px\]{height:165px}.sm\:h-\[245px\]{height:245px}.sm\:h-\[360px\]{height:360px}.sm\:w-8{width:calc(var(--spacing)*8)}.sm\:w-10{width:calc(var(--spacing)*10)}.sm\:w-14{width:calc(var(--spacing)*14)}.sm\:w-\[30\%\]{width:30%}.sm\:w-\[38\%\]{width:38%}.sm\:w-\[65px\]{width:65px}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[170px\]{width:170px}.sm\:w-\[300px\]{width:300px}.sm\:w-auto{width:auto}.sm\:w-max{width:max-content}.sm\:max-w-\[425px\]{max-width:425px}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:flex-none{flex:none}.sm\:-translate-x-\[60px\]{--tw-translate-x: -60px ;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:translate-x-\[60px\]{--tw-translate-x:60px;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:scale-\[0\.80\]{scale:.8}.sm\:scale-\[0\.85\]{scale:.85}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:gap-8{gap:calc(var(--spacing)*8)}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:p-7{padding:calc(var(--spacing)*7)}.sm\:p-8{padding:calc(var(--spacing)*8)}.sm\:px-4{padding-inline:calc(var(--spacing)*4)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:px-8{padding-inline:calc(var(--spacing)*8)}.sm\:px-10{padding-inline:calc(var(--spacing)*10)}.sm\:py-4{padding-block:calc(var(--spacing)*4)}.sm\:py-8{padding-block:calc(var(--spacing)*8)}.sm\:pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.sm\:pb-28{padding-bottom:calc(var(--spacing)*28)}.sm\:pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[11px\]{font-size:11px}.sm\:text-\[12px\]{font-size:12px}.sm\:text-\[14px\]{font-size:14px}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--container-sm)}}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:-top-7{top:calc(var(--spacing)*-7)}.md\:-top-8{top:calc(var(--spacing)*-8)}.md\:right-10{right:calc(var(--spacing)*10)}.md\:-bottom-7{bottom:calc(var(--spacing)*-7)}.md\:-bottom-8{bottom:calc(var(--spacing)*-8)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-9{grid-column:span 9/span 9}.md\:mt-2{margin-top:calc(var(--spacing)*2)}.md\:mt-12{margin-top:calc(var(--spacing)*12)}.md\:mt-\[-40px\]{margin-top:-40px}.md\:mr-2{margin-right:calc(var(--spacing)*2)}.md\:mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.md\:mb-4{margin-bottom:calc(var(--spacing)*4)}.md\:mb-5{margin-bottom:calc(var(--spacing)*5)}.md\:mb-8{margin-bottom:calc(var(--spacing)*8)}.md\:ml-2{margin-left:calc(var(--spacing)*2)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-2{height:calc(var(--spacing)*2)}.md\:h-9{height:calc(var(--spacing)*9)}.md\:h-10{height:calc(var(--spacing)*10)}.md\:h-11{height:calc(var(--spacing)*11)}.md\:h-12{height:calc(var(--spacing)*12)}.md\:h-14{height:calc(var(--spacing)*14)}.md\:h-16{height:calc(var(--spacing)*16)}.md\:h-20{height:calc(var(--spacing)*20)}.md\:h-32{height:calc(var(--spacing)*32)}.md\:h-36{height:calc(var(--spacing)*36)}.md\:h-40{height:calc(var(--spacing)*40)}.md\:h-\[72px\]{height:72px}.md\:h-\[86px\]{height:86px}.md\:h-\[100px\]{height:100px}.md\:h-\[130px\]{height:130px}.md\:h-\[180px\]{height:180px}.md\:h-\[200vw\]{height:200vw}.md\:h-\[310px\]{height:310px}.md\:w-2{width:calc(var(--spacing)*2)}.md\:w-9{width:calc(var(--spacing)*9)}.md\:w-11{width:calc(var(--spacing)*11)}.md\:w-12{width:calc(var(--spacing)*12)}.md\:w-14{width:calc(var(--spacing)*14)}.md\:w-20{width:calc(var(--spacing)*20)}.md\:w-36{width:calc(var(--spacing)*36)}.md\:w-\[72px\]{width:72px}.md\:w-\[86px\]{width:86px}.md\:w-\[200vw\]{width:200vw}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[250px\]{max-width:250px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-3{gap:calc(var(--spacing)*3)}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:gap-5{gap:calc(var(--spacing)*5)}.md\:gap-6{gap:calc(var(--spacing)*6)}.md\:gap-8{gap:calc(var(--spacing)*8)}.md\:gap-10{gap:calc(var(--spacing)*10)}.md\:rounded-b-\[80px\]{border-bottom-right-radius:80px;border-bottom-left-radius:80px}.md\:p-3{padding:calc(var(--spacing)*3)}.md\:p-4{padding:calc(var(--spacing)*4)}.md\:p-5{padding:calc(var(--spacing)*5)}.md\:p-6{padding:calc(var(--spacing)*6)}.md\:p-10{padding:calc(var(--spacing)*10)}.md\:p-12{padding:calc(var(--spacing)*12)}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:px-8{padding-inline:calc(var(--spacing)*8)}.md\:px-10{padding-inline:calc(var(--spacing)*10)}.md\:py-2{padding-block:calc(var(--spacing)*2)}.md\:py-6{padding-block:calc(var(--spacing)*6)}.md\:pt-8{padding-top:calc(var(--spacing)*8)}.md\:pr-4{padding-right:calc(var(--spacing)*4)}.md\:pr-10{padding-right:calc(var(--spacing)*10)}.md\:pr-\[240px\]{padding-right:240px}.md\:pl-12{padding-left:calc(var(--spacing)*12)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.md\:text-\[10px\]{font-size:10px}.md\:text-\[11px\]{font-size:11px}.md\:text-\[12px\]{font-size:12px}.md\:text-\[13px\]{font-size:13px}.md\:text-\[15px\]{font-size:15px}.md\:text-\[16px\]{font-size:16px}.md\:text-\[17px\]{font-size:17px}.md\:text-\[18px\]{font-size:18px}.md\:text-\[22px\]{font-size:22px}.md\:text-\[26px\]{font-size:26px}.md\:text-\[32px\]{font-size:32px}.md\:text-\[44px\]{font-size:44px}.md\:text-\[70px\]{font-size:70px}.md\:text-\[80px\]{font-size:80px}.md\:text-\[110px\]{font-size:110px}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:static{position:static}.lg\:top-\[5px\]{top:5px}.lg\:right-10{right:calc(var(--spacing)*10)}.lg\:right-\[-15px\]{right:-15px}.lg\:right-\[250px\]{right:250px}.lg\:bottom-20{bottom:calc(var(--spacing)*20)}.lg\:z-auto{z-index:auto}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:-mx-4{margin-inline:calc(var(--spacing)*-4)}.lg\:-mt-4{margin-top:calc(var(--spacing)*-4)}.lg\:mb-8{margin-bottom:calc(var(--spacing)*8)}.lg\:ml-10{margin-left:calc(var(--spacing)*10)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-8{height:calc(var(--spacing)*8)}.lg\:h-12{height:calc(var(--spacing)*12)}.lg\:h-\[265px\]{height:265px}.lg\:min-h-\[160px\]{min-height:160px}.lg\:w-8{width:calc(var(--spacing)*8)}.lg\:w-12{width:calc(var(--spacing)*12)}.lg\:w-\[70px\]{width:70px}.lg\:w-\[260px\]{width:260px}.lg\:w-\[270px\]{width:270px}.lg\:origin-center{transform-origin:50%}.lg\:translate-y-\[19\%\]{--tw-translate-y:19%;translate:var(--tw-translate-x)var(--tw-translate-y)}.lg\:scale-\[0\.85\]{scale:.85}.lg\:scale-\[1\.3\]{scale:1.3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[1fr_300px\]{grid-template-columns:1fr 300px}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:justify-end{justify-content:flex-end}.lg\:gap-5{gap:calc(var(--spacing)*5)}.lg\:gap-6{gap:calc(var(--spacing)*6)}.lg\:gap-10{gap:calc(var(--spacing)*10)}.lg\:gap-12{gap:calc(var(--spacing)*12)}.lg\:gap-14{gap:calc(var(--spacing)*14)}:where(.lg\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.lg\:space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:calc(var(--spacing)*4)}.lg\:p-8{padding:calc(var(--spacing)*8)}.lg\:px-16{padding-inline:calc(var(--spacing)*16)}.lg\:pt-6{padding-top:calc(var(--spacing)*6)}.lg\:pr-\[280px\]{padding-right:280px}.lg\:pl-6{padding-left:calc(var(--spacing)*6)}.lg\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.lg\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.lg\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.lg\:text-\[7px\]{font-size:7px}.lg\:text-\[16px\]{font-size:16px}.lg\:text-\[46px\]{font-size:46px}}@media(min-width:80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:mx-0{margin-inline:calc(var(--spacing)*0)}.xl\:mb-8{margin-bottom:calc(var(--spacing)*8)}.xl\:flex{display:flex}.xl\:w-\[50\%\]{width:50%}.xl\:w-\[75px\]{width:75px}.xl\:w-\[350px\]{width:350px}.xl\:max-w-\[1400px\]{max-width:1400px}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.xl\:grid-cols-\[400px_1fr\]{grid-template-columns:400px 1fr}.xl\:flex-row{flex-direction:row}.xl\:justify-start{justify-content:flex-start}.xl\:gap-8{gap:calc(var(--spacing)*8)}.xl\:self-center{align-self:center}.xl\:px-10{padding-inline:calc(var(--spacing)*10)}.xl\:text-\[3\.4rem\]{font-size:3.4rem}}@media(min-width:96rem){.\32xl\:block{display:block}}.dark\:border-\[\#1FA7E1\]\/20:is(.dark *){border-color:#1fa7e133}.dark\:border-\[\#2b3140\]:is(.dark *){border-color:#2b3140}.dark\:border-\[\#2f3547\]:is(.dark *){border-color:#2f3547}.dark\:border-\[\#8A3FD3\]\/20:is(.dark *){border-color:#8a3fd333}.dark\:border-\[\#8A3FD3\]\/30:is(.dark *){border-color:#8a3fd34d}.dark\:border-\[\#8d7fff\]:is(.dark *){border-color:#8d7fff}.dark\:border-amber-300\/40:is(.dark *){border-color:#ffd23666}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-300\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-300)40%,transparent)}}.dark\:border-amber-400\/40:is(.dark *){border-color:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-400\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-400)40%,transparent)}}.dark\:border-amber-700\/50:is(.dark *){border-color:#b7500080}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-700)50%,transparent)}}.dark\:border-emerald-300\/40:is(.dark *){border-color:#5ee9b566}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-300\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-300)40%,transparent)}}.dark\:border-emerald-400\/40:is(.dark *){border-color:#00d29466}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-400\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-400)40%,transparent)}}.dark\:border-emerald-500\/40:is(.dark *){border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-500\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.dark\:border-emerald-700\/50:is(.dark *){border-color:#00795680}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-emerald-700)50%,transparent)}}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-indigo-700\/50:is(.dark *){border-color:#432dd780}@supports (color:color-mix(in lab,red,red)){.dark\:border-indigo-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-indigo-700)50%,transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-purple-700\/50:is(.dark *){border-color:#8200da80}@supports (color:color-mix(in lab,red,red)){.dark\:border-purple-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-purple-700)50%,transparent)}}.dark\:border-rose-300\/40:is(.dark *){border-color:#ffa2ae66}@supports (color:color-mix(in lab,red,red)){.dark\:border-rose-300\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-rose-300)40%,transparent)}}.dark\:border-rose-400\/40:is(.dark *){border-color:#ff667f66}@supports (color:color-mix(in lab,red,red)){.dark\:border-rose-400\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-rose-400)40%,transparent)}}.dark\:border-rose-500\/20:is(.dark *){border-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.dark\:border-rose-500\/20:is(.dark *){border-color:color-mix(in oklab,var(--color-rose-500)20%,transparent)}}.dark\:border-rose-900:is(.dark *){border-color:var(--color-rose-900)}.dark\:border-sky-700\/50:is(.dark *){border-color:#7008e780}@supports (color:color-mix(in lab,red,red)){.dark\:border-sky-700\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-violet-700)50%,transparent)}}.dark\:border-slate-700:is(.dark *){border-color:var(--color-slate-700)}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/10:is(.dark *){border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\:bg-\[\#1a1f2e\]\/90:is(.dark *){background-color:#1a1f2ee6}.dark\:bg-\[\#2a3143\]:is(.dark *){background-color:#2a3143}.dark\:bg-\[\#2b2b5f\]:is(.dark *){background-color:#2b2b5f}.dark\:bg-\[\#8A3FD3\]\/10:is(.dark *){background-color:#8a3fd31a}.dark\:bg-\[\#181d27\]:is(.dark *){background-color:#181d27}.dark\:bg-\[\#11151d\]:is(.dark *){background-color:#11151d}.dark\:bg-\[\#15803d\]:is(.dark *){background-color:#15803d}.dark\:bg-\[\#b0e6eb\]:is(.dark *){background-color:#b0e6eb}.dark\:bg-\[\#b45309\]:is(.dark *){background-color:#b45309}.dark\:bg-\[\#be123c\]:is(.dark *){background-color:#be123c}.dark\:bg-\[\#d6ccf5\]:is(.dark *){background-color:#d6ccf5}.dark\:bg-\[\#f6ebd2\]:is(.dark *){background-color:#f6ebd2}.dark\:bg-\[\#fbd3d3\]:is(.dark *){background-color:#fbd3d3}.dark\:bg-amber-100\/20:is(.dark *){background-color:#fef3c633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-100\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-100)20%,transparent)}}.dark\:bg-amber-400\/10:is(.dark *){background-color:#fcbb001a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-400\/10:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-400)10%,transparent)}}.dark\:bg-amber-900\/20:is(.dark *){background-color:#7b330633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-900)20%,transparent)}}.dark\:bg-amber-900\/50:is(.dark *){background-color:#7b330680}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-900)50%,transparent)}}.dark\:bg-black\/30:is(.dark *){background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.dark\:bg-black\/40:is(.dark *){background-color:#0006}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.dark\:bg-black\/50:is(.dark *){background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.dark\:bg-black\/80:is(.dark *){background-color:#000c}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/80:is(.dark *){background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-500\/10:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.dark\:bg-emerald-500\/30:is(.dark *){background-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-500\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#004e3b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)20%,transparent)}}.dark\:bg-emerald-900\/50:is(.dark *){background-color:#004e3b80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)50%,transparent)}}.dark\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-indigo-900\/50:is(.dark *){background-color:#312c8580}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-indigo-900)50%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-purple-900\/50:is(.dark *){background-color:#59168b80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-900)50%,transparent)}}.dark\:bg-rose-500\/10:is(.dark *){background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-rose-500\/10:is(.dark *){background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.dark\:bg-rose-900\/20:is(.dark *){background-color:#8b083633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-rose-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-rose-900)20%,transparent)}}.dark\:bg-sky-500\/5:is(.dark *){background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-500\/5:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-500)5%,transparent)}}.dark\:bg-sky-500\/15:is(.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-500\/15:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-500)15%,transparent)}}.dark\:bg-sky-900\/50:is(.dark *){background-color:#4d179a80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-sky-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-900)50%,transparent)}}.dark\:from-\[\#2b2b5f\]:is(.dark *){--tw-gradient-from:#2b2b5f;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-amber-300:is(.dark *){--tw-gradient-from:var(--color-amber-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-amber-600\/20:is(.dark *){--tw-gradient-from:#dd740033}@supports (color:color-mix(in lab,red,red)){.dark\:from-amber-600\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-amber-600)20%,transparent)}}.dark\:from-amber-600\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-emerald-300:is(.dark *){--tw-gradient-from:var(--color-emerald-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-from:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-indigo-300:is(.dark *){--tw-gradient-from:var(--color-indigo-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-from:#625fff33}@supports (color:color-mix(in lab,red,red)){.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-indigo-500)20%,transparent)}}.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-purple-300:is(.dark *){--tw-gradient-from:var(--color-purple-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-purple-500\/20:is(.dark *){--tw-gradient-from:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.dark\:from-purple-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.dark\:from-purple-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-sky-300:is(.dark *){--tw-gradient-from:var(--color-violet-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-from:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-violet-500)20%,transparent)}}.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:via-cyan-500\/10:is(.dark *){--tw-gradient-via:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.dark\:via-cyan-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-cyan-500)10%,transparent)}}.dark\:via-cyan-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-fuchsia-500\/10:is(.dark *){--tw-gradient-via:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.dark\:via-fuchsia-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.dark\:via-fuchsia-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-orange-500\/10:is(.dark *){--tw-gradient-via:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.dark\:via-orange-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.dark\:via-orange-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-purple-500\/10:is(.dark *){--tw-gradient-via:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.dark\:via-purple-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.dark\:via-purple-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:via-teal-500\/10:is(.dark *){--tw-gradient-via:#00baa71a}@supports (color:color-mix(in lab,red,red)){.dark\:via-teal-500\/10:is(.dark *){--tw-gradient-via:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.dark\:via-teal-500\/10:is(.dark *){--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:to-cyan-200:is(.dark *){--tw-gradient-to:var(--color-cyan-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-fuchsia-200:is(.dark *){--tw-gradient-to:var(--color-fuchsia-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-orange-200:is(.dark *){--tw-gradient-to:var(--color-orange-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-orange-900\/10:is(.dark *){--tw-gradient-to:#7e2a0c1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-orange-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-orange-900)10%,transparent)}}.dark\:to-orange-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-purple-200:is(.dark *){--tw-gradient-to:var(--color-purple-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-purple-900\/10:is(.dark *){--tw-gradient-to:#59168b1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-purple-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-purple-900)10%,transparent)}}.dark\:to-purple-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-sky-900\/10:is(.dark *){--tw-gradient-to:#4d179a1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-sky-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-violet-900)10%,transparent)}}.dark\:to-sky-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-teal-200:is(.dark *){--tw-gradient-to:var(--color-teal-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-teal-900\/10:is(.dark *){--tw-gradient-to:#0b4f4a1a}@supports (color:color-mix(in lab,red,red)){.dark\:to-teal-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-teal-900)10%,transparent)}}.dark\:to-teal-900\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:text-\[\#4bc1f2\]:is(.dark *){color:#4bc1f2}.dark\:text-\[\#7ad8ff\]:is(.dark *){color:#7ad8ff}.dark\:text-\[\#7f88a3\]:is(.dark *){color:#7f88a3}.dark\:text-\[\#8b95ad\]:is(.dark *){color:#8b95ad}.dark\:text-\[\#9aa4be\]:is(.dark *){color:#9aa4be}.dark\:text-\[\#9da7bf\]:is(.dark *){color:#9da7bf}.dark\:text-\[\#9e8fff\]:is(.dark *){color:#9e8fff}.dark\:text-\[\#95a0bb\]:is(.dark *){color:#95a0bb}.dark\:text-\[\#98a2bc\]:is(.dark *){color:#98a2bc}.dark\:text-\[\#a8b2c9\]:is(.dark *){color:#a8b2c9}.dark\:text-\[\#a9b3ca\]:is(.dark *){color:#a9b3ca}.dark\:text-\[\#a35ceb\]:is(.dark *){color:#a35ceb}.dark\:text-\[\#aab3c7\]:is(.dark *){color:#aab3c7}.dark\:text-\[\#b2bad0\]:is(.dark *){color:#b2bad0}.dark\:text-\[\#c48bfc\]:is(.dark *){color:#c48bfc}.dark\:text-\[\#d3a8ff\]:is(.dark *){color:#d3a8ff}.dark\:text-\[\#e4e7f1\]:is(.dark *){color:#e4e7f1}.dark\:text-\[\#ecf0fb\]:is(.dark *){color:#ecf0fb}.dark\:text-\[\#f5f7fb\]:is(.dark *){color:#f5f7fb}.dark\:text-amber-100:is(.dark *){color:var(--color-amber-100)}.dark\:text-amber-100\/70:is(.dark *){color:#fef3c6b3}@supports (color:color-mix(in lab,red,red)){.dark\:text-amber-100\/70:is(.dark *){color:color-mix(in oklab,var(--color-amber-100)70%,transparent)}}.dark\:text-amber-100\/90:is(.dark *){color:#fef3c6e6}@supports (color:color-mix(in lab,red,red)){.dark\:text-amber-100\/90:is(.dark *){color:color-mix(in oklab,var(--color-amber-100)90%,transparent)}}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-emerald-100\/70:is(.dark *){color:#d0fae5b3}@supports (color:color-mix(in lab,red,red)){.dark\:text-emerald-100\/70:is(.dark *){color:color-mix(in oklab,var(--color-emerald-100)70%,transparent)}}.dark\:text-emerald-300:is(.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-indigo-100\/70:is(.dark *){color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-indigo-100\/70:is(.dark *){color:color-mix(in oklab,var(--color-indigo-100)70%,transparent)}}.dark\:text-indigo-300:is(.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-400:is(.dark *){color:var(--color-indigo-400)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-purple-300:is(.dark *){color:var(--color-purple-300)}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}.dark\:text-purple-400\/80:is(.dark *){color:#c07effcc}@supports (color:color-mix(in lab,red,red)){.dark\:text-purple-400\/80:is(.dark *){color:color-mix(in oklab,var(--color-purple-400)80%,transparent)}}.dark\:text-rose-300:is(.dark *){color:var(--color-rose-300)}.dark\:text-rose-400:is(.dark *){color:var(--color-rose-400)}.dark\:text-sky-300:is(.dark *){color:var(--color-violet-300)}.dark\:text-sky-400:is(.dark *){color:var(--color-violet-400)}.dark\:text-sky-400\/80:is(.dark *){color:#a685ffcc}@supports (color:color-mix(in lab,red,red)){.dark\:text-sky-400\/80:is(.dark *){color:color-mix(in oklab,var(--color-violet-400)80%,transparent)}}.dark\:text-slate-200:is(.dark *){color:var(--color-slate-200)}.dark\:text-slate-400:is(.dark *){color:var(--color-slate-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}.dark\:opacity-10:is(.dark *){opacity:.1}.dark\:opacity-\[0\.25\]:is(.dark *){opacity:.25}.dark\:mix-blend-screen:is(.dark *){mix-blend-mode:screen}.dark\:shadow-\[0_12px_24px_rgba\(0\,0\,0\,0\.22\)\]:is(.dark *){--tw-shadow:0 12px 24px var(--tw-shadow-color,#00000038);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-offset-\[\#0B0F19\]:is(.dark *){--tw-ring-offset-color:#0b0f19}@media(hover:hover){.dark\:hover\:bg-\[\#1FA7E1\]\/10:is(.dark *):hover{background-color:#1fa7e11a}.dark\:hover\:bg-\[\#8A3FD3\]\/10:is(.dark *):hover{background-color:#8a3fd31a}.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-black\/50:is(.dark *):hover{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-black\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.dark\:hover\:bg-black\/60:is(.dark *):hover{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-black\/60:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.dark\:hover\:bg-emerald-500\/20:is(.dark *):hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-emerald-500\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-rose-900\/30:is(.dark *):hover{background-color:#8b08364d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-rose-900\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-rose-900)30%,transparent)}}.dark\:hover\:bg-slate-800:is(.dark *):hover{background-color:var(--color-slate-800)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-card-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--card-foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:var(--border)}@supports (color:color-mix(in lab,red,red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:color-mix(in oklab,var(--border)50%,transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:m-0 p{margin:calc(var(--spacing)*0)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:var(--accent)}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:first-child:has([aria-selected]){border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:last-child:has([aria-selected]),.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\:last-child\]\:pb-6:last-child{padding-bottom:calc(var(--spacing)*6)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing)*2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing)*3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing)*2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing)*3)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}:root{--font-size:16px;--font-display:"Nunito",ui-sans-serif,system-ui,sans-serif;--font-body:"Nunito",ui-sans-serif,system-ui,sans-serif;--background:#f7f9fc;--foreground:#0a1628;--card:#fff;--card-foreground:#0a1628;--popover:#fff;--popover-foreground:#0a1628;--amethyst:#9956de;--slate-blue:#7274ed;--summer-sky:#1fa7e1;--downy:#6ed1cf;--pastel-green:#75d06a;--texas-rose:#ffb356;--mona-lisa:#ff8b8b;--illusion:#fb96bb;--primary:#9956de;--primary-foreground:#fff;--secondary:#7274ed;--secondary-foreground:#fff;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#1fa7e1;--accent-foreground:#fff;--destructive:#ff8b8b;--destructive-foreground:#fff;--border:#e4e4e7;--input:transparent;--input-background:#f4f4f5;--switch-background:#d4d4d8;--font-weight-medium:500;--font-weight-normal:400;--ring:#9956de;--chart-1:#9956de;--chart-2:#ff8b8b;--chart-3:#75d06a;--chart-4:#ffb356;--chart-5:#1fa7e1;--radius:1.25rem;--sidebar:#fff;--sidebar-foreground:#09090b;--sidebar-primary:#7c3aed;--sidebar-primary-foreground:#fff;--sidebar-accent:#f3f0ff;--sidebar-accent-foreground:#5b21b6;--sidebar-border:#e4e4e7;--sidebar-ring:#7c3aed}.dark{--background:#050d18;--foreground:#f0f7ff;--card:#0a1628;--card-foreground:#f0f7ff;--popover:#0a1628;--popover-foreground:#f0f7ff;--primary:#a78bfa;--primary-foreground:#fff;--secondary:#2e1065;--secondary-foreground:#c4b5fd;--muted:#27272a;--muted-foreground:#a1a1aa;--accent:#27272a;--accent-foreground:#f43f5e;--destructive:#ef4444;--destructive-foreground:#09090b;--border:#27272a;--input:#27272a;--input-background:#27272a;--switch-background:#3f3f46;--ring:#a78bfa;--font-weight-medium:500;--font-weight-normal:400;--chart-1:#a78bfa;--chart-2:#fb7185;--chart-3:#34d399;--chart-4:#fb923c;--chart-5:#38bdf8;--sidebar:#09090b;--sidebar-foreground:#fafafa;--sidebar-primary:#a78bfa;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#fafafa;--sidebar-border:#27272a;--sidebar-ring:#a78bfa}html{font-size:var(--font-size)}html,body,#root{height:100%}html[data-density=compact]{--radius:.9rem}html.reduced-motion *,html.reduced-motion :before,html.reduced-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.smart-dark{filter:invert()hue-rotate(180deg);background:#101217}html.smart-dark img,html.smart-dark picture,html.smart-dark video,html.smart-dark canvas,html.smart-dark svg,html.smart-dark iframe,html.smart-dark [data-preserve-color=true]{filter:invert()hue-rotate(180deg)}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.glow-blue{box-shadow:0 0 24px #0284c71f,0 0 64px #0284c70a}.glow-violet{box-shadow:0 0 24px #7c3aed1f,0 0 64px #7c3aed0a}.glow-rose{box-shadow:0 0 24px #f43f5e1f,0 0 64px #f43f5e0a}.glow-emerald{box-shadow:0 0 24px #0596691f,0 0 64px #0596690a}.bg-dot-pattern{background-image:radial-gradient(circle,#7c3aed14 1px,#0000 1px);background-size:24px 24px}.dark .bg-dot-pattern{background-image:radial-gradient(circle,#a78bfa1f 1px,#0000 1px)}.bg-math-pattern{background-color:var(--background);background-image:url("data:image/svg+xml,%3Csvg width='150' height='150' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='rgba(124, 58, 237, 0.05)' font-family='sans-serif' font-weight='bold' font-size='28'%3E%3Ctext x='20' y='40'%3E%2B%3C/text%3E%3Ctext x='90' y='60'%3E%3D%3C/text%3E%3Ctext x='40' y='110'%3E%25%3C/text%3E%3Ctext x='110' y='130'%3E%C3%97%3C/text%3E%3Ctext x='130' y='30'%3E%C3%B7%3C/text%3E%3C/g%3E%3C/svg%3E");background-size:150px 150px}.bg-noise{position:relative}.bg-noise:before{content:"";opacity:.03;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:absolute;inset:0}.card-elevated{box-shadow:0 16px 40px -8px #7c3aed26,0 0 24px -5px #7c3aed14}.card-elevated-lg{box-shadow:0 24px 60px -12px #7c3aed33,0 0 32px -10px #7c3aed1a}.shadow-3d-button{box-shadow:0 12px 24px -6px var(--tw-shadow-color,#f9731666),0 6px 12px -4px var(--tw-shadow-color,#f973164d)}.dark .card-elevated{box-shadow:0 1px 2px #0003,0 4px 16px #00000026}.dark .card-elevated-lg{box-shadow:0 2px 4px #0003,0 8px 32px #0003}*{scrollbar-width:thin;scrollbar-color:transparent transparent}:hover{scrollbar-color:#0284c733 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#0000;border-radius:10px;transition:background-color .3s}:hover::-webkit-scrollbar-thumb{background-color:#0284c733}::-webkit-scrollbar-thumb:hover{background-color:#0284c766}.scrollbar-hide{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-hide::-webkit-scrollbar{display:none}.accent-line{position:relative}.accent-line:after{content:"";background:linear-gradient(90deg,#0284c7,#f43f5e);border-radius:2px;width:48px;height:3px;position:absolute;bottom:0;left:0}.surface-raised{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc}.surface-inset{background:linear-gradient(135deg,#f1f5f9,#e8eef6);border:1px solid #cbd5e180}.card-accent-sky{border-left:3px solid #0284c7}.card-accent-rose{border-left:3px solid #f43f5e}.card-accent-emerald{border-left:3px solid #059669}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.chat-markdown{font-family:var(--font-body);overflow-wrap:anywhere;word-break:break-word;font-size:.875rem;line-height:1.625}.chat-markdown h1{font-family:var(--font-display);color:var(--foreground);margin-top:.75rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.chat-markdown h2{font-family:var(--font-display);color:var(--foreground);margin-top:.75rem;margin-bottom:.375rem;font-size:1.1rem;font-weight:700}.chat-markdown h3{font-family:var(--font-display);color:var(--muted-foreground);margin-top:.5rem;margin-bottom:.25rem;font-size:1rem;font-weight:600}.chat-markdown p{margin-top:.375rem;margin-bottom:.375rem}.chat-markdown ul,.chat-markdown ol{margin-top:.375rem;margin-bottom:.375rem;padding-left:1.25rem}.chat-markdown ul{list-style-type:disc}.chat-markdown ol{list-style-type:decimal}.chat-markdown li{margin-top:.125rem;margin-bottom:.125rem}.chat-markdown strong{color:var(--foreground);font-weight:700}.chat-markdown em{font-style:italic}.chat-markdown code{background:var(--secondary);color:var(--primary);border-radius:.25rem;padding:.125rem .375rem;font-size:.8125rem}.chat-markdown pre{background:var(--muted);border:1px solid var(--border);border-radius:.5rem;margin-top:.5rem;margin-bottom:.5rem;padding:.75rem;overflow-x:auto}.chat-markdown pre code{color:inherit;background:0 0;padding:0}.chat-markdown hr{border-color:#94a3b873;margin:.75rem 0}.chat-markdown table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.8125rem}.chat-markdown th{background:var(--muted);text-align:left;border:1px solid var(--border);padding:.375rem .5rem;font-weight:600}.chat-markdown td{border:1px solid var(--border);padding:.375rem .5rem}.chat-markdown blockquote{border-left:3px solid var(--primary);color:var(--muted-foreground);margin:.5rem 0;padding-left:.75rem;font-style:italic}.chat-markdown a{color:var(--primary);text-decoration:underline}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown .katex-display{padding-bottom:.15rem;overflow:auto hidden}@property --tw-border-spacing-x{syntax:"";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} diff --git a/assets/loader-circle-BUf2fYcT.js b/assets/loader-circle-BfAbw6jC.js similarity index 87% rename from assets/loader-circle-BUf2fYcT.js rename to assets/loader-circle-BfAbw6jC.js index 2a04dcf4fb528111ffd5382a8efb95867fcce28b..e0be311fe609b59018716212cb8f824ef9869516 100644 --- a/assets/loader-circle-BUf2fYcT.js +++ b/assets/loader-circle-BfAbw6jC.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/lock-C6XEepuP.js b/assets/lock-Dt6Po_Oi.js similarity index 89% rename from assets/lock-C6XEepuP.js rename to assets/lock-Dt6Po_Oi.js index add175286c37ad336b8cf84141bb612bed08f8d7..566ff9775b25c70da0a47fc5f42ce6bc18ea481a 100644 --- a/assets/lock-C6XEepuP.js +++ b/assets/lock-Dt6Po_Oi.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/log-out-DYYu4gFF.js b/assets/log-out-QZHYEhcR.js similarity index 89% rename from assets/log-out-DYYu4gFF.js rename to assets/log-out-QZHYEhcR.js index 7a594d1a6e7c6fc725a3b739a45506b9613ee502..0c0a7f0a3a573de417a61c26bf9dfe9336c1c09f 100644 --- a/assets/log-out-DYYu4gFF.js +++ b/assets/log-out-QZHYEhcR.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/mail-D-r4ZWDN.js b/assets/mail-BuupduAm.js similarity index 89% rename from assets/mail-D-r4ZWDN.js rename to assets/mail-BuupduAm.js index 17a6aae75aa87cf1c829bb659b48248cdc5c3736..868b21ffbdafda6c64b8d99178ad23fc8ab0d464 100644 --- a/assets/mail-D-r4ZWDN.js +++ b/assets/mail-BuupduAm.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/message-square-DIXhbelM.js b/assets/message-square-BxgAV6zJ.js similarity index 87% rename from assets/message-square-DIXhbelM.js rename to assets/message-square-BxgAV6zJ.js index 333e56e04f8bf37d846fd0b6f6198c59495717a4..cbf1cca1a43e9c6ccfc557b02ff6f3ad91a8a585 100644 --- a/assets/message-square-DIXhbelM.js +++ b/assets/message-square-BxgAV6zJ.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/minus-BjTBUAx2.js b/assets/minus-8VjeOOlm.js similarity index 84% rename from assets/minus-BjTBUAx2.js rename to assets/minus-8VjeOOlm.js index ccc76a7097d658ce4b5b7154f390124edff728a1..2bf1d7f0986e540bf8917a1b640e403e8404c277 100644 --- a/assets/minus-BjTBUAx2.js +++ b/assets/minus-8VjeOOlm.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/pen-line-CX1xh2Q2.js b/assets/pen-line-CBic_SY8.js similarity index 90% rename from assets/pen-line-CX1xh2Q2.js rename to assets/pen-line-CBic_SY8.js index 12cada8aed13d2e5db334a3328db5bdc53a7d9ab..7c19ee9e4432c881109057e741ec7dd9dcd2e8c7 100644 --- a/assets/pen-line-CX1xh2Q2.js +++ b/assets/pen-line-CBic_SY8.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/plus-DVCmopn-.js b/assets/plus-Dip_RqNl.js similarity index 86% rename from assets/plus-DVCmopn-.js rename to assets/plus-Dip_RqNl.js index d6f7eb0a838c4aad2e4361aa25176160776afd38..c91d4b2ccabb6feb7a11d3534248af8687e83b2d 100644 --- a/assets/plus-DVCmopn-.js +++ b/assets/plus-Dip_RqNl.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/quizService-BkrCeM05.js b/assets/quizService-YBJVdiN1.js similarity index 98% rename from assets/quizService-BkrCeM05.js rename to assets/quizService-YBJVdiN1.js index ae65f00ec437d7ca8f1d4b1f63976e350d77f634..328e1aa0c042ce94711999c47ff01c39091d0a2a 100644 --- a/assets/quizService-BkrCeM05.js +++ b/assets/quizService-YBJVdiN1.js @@ -1,4 +1,4 @@ -import{c as A,d as i}from"./index-DGWrSMOK.js";import{d as o,e as r,s as f,q as z,w as m,o as L,h as b,u as g,c as M,a as d}from"./vendor-firebase-firestore-CkuVbeP5.js";/** +import{c as A,d as i}from"./index-CmBdDSkw.js";import{d as o,e as r,s as f,q as z,w as m,o as L,h as b,u as g,c as M,a as d}from"./vendor-firebase-firestore-CkuVbeP5.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/quiz_battle_avatar-vvxcW_MO.png b/assets/quiz_battle_avatar-vvxcW_MO.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3ec08ed26e7023bc5a92ddc32acc2d53b6779f --- /dev/null +++ b/assets/quiz_battle_avatar-vvxcW_MO.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af3c2bc5b0e60b954f13d58d88e12e11bd6da3ca784b9ae816fd24165fc6a549 +size 135857 diff --git a/assets/quiz_battle_avatar-yi62KvvC.png b/assets/quiz_battle_avatar-yi62KvvC.png deleted file mode 100644 index 49a2725e9aab792a5411a42ef02fab7ffaf12ef2..0000000000000000000000000000000000000000 --- a/assets/quiz_battle_avatar-yi62KvvC.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cede765642677671789a530040a196a8fa5838323becf00c326e5d6e68e77558 -size 110683 diff --git a/assets/save-B5SCmCsP.js b/assets/save-XQRYdTi9.js similarity index 91% rename from assets/save-B5SCmCsP.js rename to assets/save-XQRYdTi9.js index f2edbda70a4b736299f2f1b0f1aaeea2e33dff09..a20d23954294a125b266772870e67946508d04e3 100644 --- a/assets/save-B5SCmCsP.js +++ b/assets/save-XQRYdTi9.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/search-O5gEqRZi.js b/assets/search-zqCwfHe1.js similarity index 88% rename from assets/search-O5gEqRZi.js rename to assets/search-zqCwfHe1.js index 75ce2a8deb944cd809e28ea84278c0570bc2c1b9..5574e2d03908a50dc1cf1f957866f9e4ff668593 100644 --- a/assets/search-O5gEqRZi.js +++ b/assets/search-zqCwfHe1.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/select-CH9gS87N.js b/assets/select-CH9gS87N.js deleted file mode 100644 index 06ce6f127ba24af875d770837f039fb50d6ac329..0000000000000000000000000000000000000000 --- a/assets/select-CH9gS87N.js +++ /dev/null @@ -1 +0,0 @@ -import{j as e}from"./vendor-react-Dexh7fmo.js";import{h as l,i,j as d,V as c,k as u,l as m,m as p,n as f,o as x,p as g,S as v,q as h}from"./vendor-radix-B-ht8aK0.js";import{c as r}from"./utils-BQQgILNW.js";import{a as n,C as b}from"./chevron-up-BJyzaJs7.js";import{C as j}from"./check-BONc3QkK.js";function _({...t}){return e.jsx(l,{"data-slot":"select",...t})}function I({...t}){return e.jsx(c,{"data-slot":"select-value",...t})}function B({className:t,size:a="default",children:s,...o}){return e.jsxs(i,{"data-slot":"select-trigger","data-size":a,className:r("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-input-background px-3 py-2 text-sm whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o,children:[s,e.jsx(d,{asChild:!0,children:e.jsx(n,{className:"size-4 opacity-50"})})]})}function V({className:t,children:a,position:s="popper",...o}){return e.jsx(u,{children:e.jsxs(m,{"data-slot":"select-content",className:r("bg-popover text-popover-foreground 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",s==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:s,...o,children:[e.jsx(w,{}),e.jsx(p,{className:r("p-1",s==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),e.jsx(y,{})]})})}function D({className:t,children:a,...s}){return e.jsxs(f,{"data-slot":"select-item",className:r("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[e.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsx(x,{children:e.jsx(j,{className:"size-4"})})}),e.jsx(g,{children:a})]})}function w({className:t,...a}){return e.jsx(v,{"data-slot":"select-scroll-up-button",className:r("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(b,{className:"size-4"})})}function y({className:t,...a}){return e.jsx(h,{"data-slot":"select-scroll-down-button",className:r("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(n,{className:"size-4"})})}export{_ as S,B as a,I as b,V as c,D as d}; diff --git a/assets/select-D13dsNiO.js b/assets/select-D13dsNiO.js new file mode 100644 index 0000000000000000000000000000000000000000..8e6401ddf1773e6a22a54b393b4ef076f38b15fd --- /dev/null +++ b/assets/select-D13dsNiO.js @@ -0,0 +1 @@ +import{j as e}from"./vendor-react-Dexh7fmo.js";import{e as l,f as i,g as d,V as c,h as u,i as m,j as p,k as f,l as x,m as g,S as v,n as h}from"./vendor-radix-CxzAJozq.js";import{c as r}from"./utils-BQQgILNW.js";import{a as n,C as b}from"./chevron-up-CwQX0CFg.js";import{C as j}from"./check-D1XVAVXL.js";function _({...t}){return e.jsx(l,{"data-slot":"select",...t})}function I({...t}){return e.jsx(c,{"data-slot":"select-value",...t})}function B({className:t,size:a="default",children:s,...o}){return e.jsxs(i,{"data-slot":"select-trigger","data-size":a,className:r("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-input-background px-3 py-2 text-sm whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o,children:[s,e.jsx(d,{asChild:!0,children:e.jsx(n,{className:"size-4 opacity-50"})})]})}function V({className:t,children:a,position:s="popper",...o}){return e.jsx(u,{children:e.jsxs(m,{"data-slot":"select-content",className:r("bg-popover text-popover-foreground 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",s==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:s,...o,children:[e.jsx(w,{}),e.jsx(p,{className:r("p-1",s==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),e.jsx(y,{})]})})}function D({className:t,children:a,...s}){return e.jsxs(f,{"data-slot":"select-item",className:r("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[e.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsx(x,{children:e.jsx(j,{className:"size-4"})})}),e.jsx(g,{children:a})]})}function w({className:t,...a}){return e.jsx(v,{"data-slot":"select-scroll-up-button",className:r("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(b,{className:"size-4"})})}function y({className:t,...a}){return e.jsx(h,{"data-slot":"select-scroll-down-button",className:r("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(n,{className:"size-4"})})}export{_ as S,B as a,I as b,V as c,D as d}; diff --git a/assets/send-nCgvy9cZ.js b/assets/send-OMGWblBc.js similarity index 90% rename from assets/send-nCgvy9cZ.js rename to assets/send-OMGWblBc.js index 6fbfbe625f21a27933ca519486756c897be52974..b1124ac39977bfc85da96685988df421a18fa5b7 100644 --- a/assets/send-nCgvy9cZ.js +++ b/assets/send-OMGWblBc.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/shield-Cin8984_.js b/assets/shield-B-mvw6Dl.js similarity index 91% rename from assets/shield-Cin8984_.js rename to assets/shield-B-mvw6Dl.js index 364253e39fcc397074e39c740d52af637ace2b6e..9e77b9702a4d388bdd8a94352dfc073dd4ef3ac4 100644 --- a/assets/shield-Cin8984_.js +++ b/assets/shield-B-mvw6Dl.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/shield-check-B-VFrdlh.js b/assets/shield-check-CnzWVIYd.js similarity index 92% rename from assets/shield-check-B-VFrdlh.js rename to assets/shield-check-CnzWVIYd.js index 57619ad6f0d1df6b584fd472039d23644182f3c9..ad0ea31cad2d0ba8f393419fbc2f441d0ff48ce3 100644 --- a/assets/shield-check-B-VFrdlh.js +++ b/assets/shield-check-CnzWVIYd.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/shirt-C4Gsu12G.js b/assets/shirt-CHOJLYIJ.js similarity index 90% rename from assets/shirt-C4Gsu12G.js rename to assets/shirt-CHOJLYIJ.js index 7da7cabba6d2586c9a4c0fb960423235e368fd49..bdc474d6a7c58d3447a33e3b7715f5b7114cb96f 100644 --- a/assets/shirt-C4Gsu12G.js +++ b/assets/shirt-CHOJLYIJ.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/skeleton-DgVR4gS7.js b/assets/skeleton-CTGly9ab.js similarity index 89% rename from assets/skeleton-DgVR4gS7.js rename to assets/skeleton-CTGly9ab.js index f43833250fecbeff0a5af5ed5e726cd9a028e440..1753dafe219c883d0bcd371ff5b13a0dd3fcf6af 100644 --- a/assets/skeleton-DgVR4gS7.js +++ b/assets/skeleton-CTGly9ab.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";import{j as c}from"./vendor-react-Dexh7fmo.js";import{c as a}from"./utils-BQQgILNW.js";/** +import{c as o}from"./index-CmBdDSkw.js";import{j as c}from"./vendor-react-Dexh7fmo.js";import{c as a}from"./utils-BQQgILNW.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/sparkles-DxmNHQEo.js b/assets/sparkles-D6B_TX7M.js similarity index 93% rename from assets/sparkles-DxmNHQEo.js rename to assets/sparkles-D6B_TX7M.js index 7765349f6510dc6da01c79f5a9db2da631a0510a..bdd824fb79628c7c03ed8cda6724a5dafa649e88 100644 --- a/assets/sparkles-DxmNHQEo.js +++ b/assets/sparkles-D6B_TX7M.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/star-DqP0S0c5.js b/assets/star-B7mp4xEi.js similarity index 93% rename from assets/star-DqP0S0c5.js rename to assets/star-B7mp4xEi.js index 89de5757325983e68dfdaede361507780d53c42a..34ed180e4015f2a17236a4d88b718e3d98149d6b 100644 --- a/assets/star-DqP0S0c5.js +++ b/assets/star-B7mp4xEi.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/subjects-DDYtJwQO.js b/assets/subjects-wOHUanD9.js similarity index 99% rename from assets/subjects-DDYtJwQO.js rename to assets/subjects-wOHUanD9.js index 8979e05463998c5598d0c4fcaaeae17cb1d04536..476fecf8246385a30e2515693d00126ca8959210 100644 --- a/assets/subjects-DDYtJwQO.js +++ b/assets/subjects-wOHUanD9.js @@ -1,4 +1,4 @@ -import{c as a,C as o}from"./index-DGWrSMOK.js";import{T as l}from"./trending-up-B2MPUPwk.js";import{C as s}from"./chart-column-CJzwyNMx.js";/** +import{c as a,C as o}from"./index-CmBdDSkw.js";import{T as l}from"./trending-up-6u76yy2e.js";import{C as s}from"./chart-column-DzJCKCOe.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/switch-DbjIWZtF.js b/assets/switch-CISoEIXM.js similarity index 93% rename from assets/switch-DbjIWZtF.js rename to assets/switch-CISoEIXM.js index 9bd198f83cd0cb21aab943f38807f6fc486d34e2..49b38750b0905d74226cbc4ba815c1a10ca9f7bd 100644 --- a/assets/switch-DbjIWZtF.js +++ b/assets/switch-CISoEIXM.js @@ -1 +1 @@ -import{j as e}from"./vendor-react-Dexh7fmo.js";import{u as s,v as n}from"./vendor-radix-B-ht8aK0.js";import{c as t}from"./utils-BQQgILNW.js";function c({className:a,...r}){return e.jsx(s,{"data-slot":"switch",className:t("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-switch-background focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...r,children:e.jsx(n,{"data-slot":"switch-thumb",className:t("bg-card dark:data-[state=unchecked]:bg-card-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}export{c as S}; +import{j as e}from"./vendor-react-Dexh7fmo.js";import{u as s,v as n}from"./vendor-radix-CxzAJozq.js";import{c as t}from"./utils-BQQgILNW.js";function c({className:a,...r}){return e.jsx(s,{"data-slot":"switch",className:t("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-switch-background focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...r,children:e.jsx(n,{"data-slot":"switch-thumb",className:t("bg-card dark:data-[state=unchecked]:bg-card-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}export{c as S}; diff --git a/assets/swords-Bn50CmyM.js b/assets/swords-CJyIL97F.js similarity index 93% rename from assets/swords-Bn50CmyM.js rename to assets/swords-CJyIL97F.js index 07b4b7a080875d7610bd9f9113545127f2c62628..c6fb7e68b845fefd4e63412603f3be8b898c4bc4 100644 --- a/assets/swords-Bn50CmyM.js +++ b/assets/swords-CJyIL97F.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/tabs-BJVl1n4R.js b/assets/tabs-BJVl1n4R.js deleted file mode 100644 index 5d09013995fa439f3ce60c5208fc0dd1bba40878..0000000000000000000000000000000000000000 --- a/assets/tabs-BJVl1n4R.js +++ /dev/null @@ -1 +0,0 @@ -import{j as s}from"./vendor-react-Dexh7fmo.js";import{r,s as n,L as i,t as o}from"./vendor-radix-B-ht8aK0.js";import{c as a}from"./utils-BQQgILNW.js";function u({className:t,...e}){return s.jsx(r,{"data-slot":"tabs",className:a("flex flex-col gap-2",t),...e})}function f({className:t,...e}){return s.jsx(i,{"data-slot":"tabs-list",className:a("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-xl p-[3px] flex",t),...e})}function x({className:t,...e}){return s.jsx(o,{"data-slot":"tabs-trigger",className:a("data-[state=active]:bg-card dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-xl border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...e})}function b({className:t,...e}){return s.jsx(n,{"data-slot":"tabs-content",className:a("flex-1 outline-none",t),...e})}export{u as T,b as a,f as b,x as c}; diff --git a/assets/target-7Gevl8jn.js b/assets/target-BCguvjbb.js similarity index 90% rename from assets/target-7Gevl8jn.js rename to assets/target-BCguvjbb.js index 667046e9524a24050700276e8f8d2ab69ca855e4..97b6da7f04570317a665ec6e161bfee105029f32 100644 --- a/assets/target-7Gevl8jn.js +++ b/assets/target-BCguvjbb.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/testResetService-Bzfj9Z1A.js b/assets/testResetService-CokcUy_m.js similarity index 95% rename from assets/testResetService-Bzfj9Z1A.js rename to assets/testResetService-CokcUy_m.js index e9c48f7fb91e033278a589d305a0b52a7cab7130..6da6cd2288d209c5b1ed5884d82418bbb408788e 100644 --- a/assets/testResetService-Bzfj9Z1A.js +++ b/assets/testResetService-CokcUy_m.js @@ -1 +1 @@ -import{s as l,a as d,d as i,h as f,q as p,w as g,e as I,c as m,m as w}from"./vendor-firebase-firestore-CkuVbeP5.js";import{I as S,O as v,d as n}from"./index-DGWrSMOK.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const k=400,A="https://deign86-mathpulse-api-v3test.hf.space";async function T(e){const t=S.currentUser;if(!t)throw new Error("Authentication is required to reset testing data.");const s=await t.getIdToken(),o=await fetch(`${A}/api/testing/reset-data`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({role:e.role,...e.lrn?{lrn:e.lrn}:{}})}),r=await o.json().catch(()=>({}));if(!o.ok){const D=typeof r?.detail=="string"?r.detail:"";throw new Error(D||`Reset request failed with status ${o.status}.`)}const c=typeof r?.role=="string"?r.role:e.role,u=Number(r?.deletedDocs??0),h=Number(r?.updatedDocs??0),y=typeof r?.summary=="string"?r.summary:`${c} reset complete: ${u} records deleted, ${h} records reset.`;return{role:c,deletedDocs:u,updatedDocs:h,summary:y}}async function R(e){const t=await f(e);if(t.empty)return 0;let s=w(n),o=0,r=0;for(const c of t.docs)s.delete(c.ref),o+=1,r+=1,o>=k&&(await s.commit(),s=w(n),o=0);return o>0&&await s.commit(),r}async function B(e,t,s){return R(p(I(n,e),g(t,"==",s)))}async function a(e,t,s){try{return await B(e,t,s)}catch{return 0}}async function b(e,t){const s=t||e;let o=0,r=0;return await v(e),r+=1,await l(i(n,"users",e),{level:1,currentXP:0,totalXP:0,streak:0,streakHistory:[],atRiskSubjects:[],hasTakenDiagnostic:!1,iarAssessmentState:"not_started",learningPathState:"unlocked",remediationState:"not_required",subjectBadges:{},riskClassifications:{},overallRisk:"Low",updatedAt:d()},{merge:!0}),r+=1,o+=await a("notifications","userId",e),o+=await a("chatSessions","userId",e),o+=await a("chatMessages","userId",e),s!==e&&(o+=await a("notifications","userId",s)),await l(i(n,"achievements",e),{userId:e,achievements:[],totalAchievements:0,updatedAt:d()},{merge:!0}).catch(()=>{}),{deletedDocs:o,updatedDocs:r}}async function $(e){let t=0,s=0;const r=(await f(p(I(n,"classrooms"),g("teacherId","==",e)))).docs.map(c=>c.id);t+=await a("notifications","userId",e),t+=await a("chatSessions","userId",e),t+=await a("chatMessages","userId",e),t+=await a("announcements","teacherId",e),t+=await a("classSectionOwnership","ownerTeacherId",e),t+=await a("managedStudents","teacherId",e),t+=await a("classrooms","teacherId",e),t+=await a("normalizedClassRecords","teacherId",e),t+=await a("classRecordImports","teacherId",e),t+=await a("courseMaterials","teacherId",e),t+=await a("riskRefreshEvents","teacherId",e),t+=await a("riskRefreshJobs","teacherId",e),t+=await a("importGroundedFeedbackEvents","teacherId",e),t+=await a("accessAuditLogs","actorUid",e),t+=await a("accessAuditLogs","teacherId",e);for(const c of r)t+=await a("managedStudents","classroomId",c),t+=await a("activities","classroomId",c),t+=await a("announcements","classroomId",c),await m(i(n,"classrooms",c)).then(()=>{t+=1}).catch(()=>{});return await m(i(n,"riskRefreshStats",e)).then(()=>{t+=1}).catch(()=>{}),await l(i(n,"users",e),{testingResetAt:d(),updatedAt:d()},{merge:!0}).catch(()=>{}),s+=1,{deletedDocs:t,updatedDocs:s}}async function C(e){let t=0,s=0;return t+=await a("notifications","userId",e),t+=await a("chatSessions","userId",e),t+=await a("chatMessages","userId",e),t+=await a("curriculumContent","updatedBy",e),t+=await a("curriculumContent","deletedBy",e),await l(i(n,"users",e),{testingResetAt:d(),updatedAt:d()},{merge:!0}).catch(()=>{}),s+=1,{deletedDocs:t,updatedDocs:s}}async function F(e){const{uid:t,role:s,lrn:o}=e;if(!t)throw new Error("Missing user id for reset.");if(s==="teacher"||s==="admin")return T(e);let r;s==="student"?r=await b(t,o):s==="teacher"?r=await $(t):r=await C(t);const c=`${s} reset complete: ${r.deletedDocs} records deleted, ${r.updatedDocs} records reset.`;return{role:s,deletedDocs:r.deletedDocs,updatedDocs:r.updatedDocs,summary:c}}export{F as resetTestingDataForRole}; +import{s as l,a as d,d as i,h as f,q as p,w as g,e as I,c as m,m as w}from"./vendor-firebase-firestore-CkuVbeP5.js";import{I as S,P as v,d as n}from"./index-CmBdDSkw.js";import"./vendor-firebase-core-DQ-pMjxd.js";import"./vendor-react-Dexh7fmo.js";import"./vendor-firebase-auth-COrkgW0P.js";import"./vendor-firebase-storage-BOeKE_0n.js";import"./vendor-firebase-analytics-CCo6E2f7.js";const k=400,A="https://deign86-mathpulse-api-v3test.hf.space";async function T(e){const t=S.currentUser;if(!t)throw new Error("Authentication is required to reset testing data.");const s=await t.getIdToken(),o=await fetch(`${A}/api/testing/reset-data`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({role:e.role,...e.lrn?{lrn:e.lrn}:{}})}),r=await o.json().catch(()=>({}));if(!o.ok){const D=typeof r?.detail=="string"?r.detail:"";throw new Error(D||`Reset request failed with status ${o.status}.`)}const c=typeof r?.role=="string"?r.role:e.role,u=Number(r?.deletedDocs??0),h=Number(r?.updatedDocs??0),y=typeof r?.summary=="string"?r.summary:`${c} reset complete: ${u} records deleted, ${h} records reset.`;return{role:c,deletedDocs:u,updatedDocs:h,summary:y}}async function R(e){const t=await f(e);if(t.empty)return 0;let s=w(n),o=0,r=0;for(const c of t.docs)s.delete(c.ref),o+=1,r+=1,o>=k&&(await s.commit(),s=w(n),o=0);return o>0&&await s.commit(),r}async function B(e,t,s){return R(p(I(n,e),g(t,"==",s)))}async function a(e,t,s){try{return await B(e,t,s)}catch{return 0}}async function b(e,t){const s=t||e;let o=0,r=0;return await v(e),r+=1,await l(i(n,"users",e),{level:1,currentXP:0,totalXP:0,streak:0,streakHistory:[],atRiskSubjects:[],hasTakenDiagnostic:!1,iarAssessmentState:"not_started",learningPathState:"unlocked",remediationState:"not_required",subjectBadges:{},riskClassifications:{},overallRisk:"Low",updatedAt:d()},{merge:!0}),r+=1,o+=await a("notifications","userId",e),o+=await a("chatSessions","userId",e),o+=await a("chatMessages","userId",e),s!==e&&(o+=await a("notifications","userId",s)),await l(i(n,"achievements",e),{userId:e,achievements:[],totalAchievements:0,updatedAt:d()},{merge:!0}).catch(()=>{}),{deletedDocs:o,updatedDocs:r}}async function $(e){let t=0,s=0;const r=(await f(p(I(n,"classrooms"),g("teacherId","==",e)))).docs.map(c=>c.id);t+=await a("notifications","userId",e),t+=await a("chatSessions","userId",e),t+=await a("chatMessages","userId",e),t+=await a("announcements","teacherId",e),t+=await a("classSectionOwnership","ownerTeacherId",e),t+=await a("managedStudents","teacherId",e),t+=await a("classrooms","teacherId",e),t+=await a("normalizedClassRecords","teacherId",e),t+=await a("classRecordImports","teacherId",e),t+=await a("courseMaterials","teacherId",e),t+=await a("riskRefreshEvents","teacherId",e),t+=await a("riskRefreshJobs","teacherId",e),t+=await a("importGroundedFeedbackEvents","teacherId",e),t+=await a("accessAuditLogs","actorUid",e),t+=await a("accessAuditLogs","teacherId",e);for(const c of r)t+=await a("managedStudents","classroomId",c),t+=await a("activities","classroomId",c),t+=await a("announcements","classroomId",c),await m(i(n,"classrooms",c)).then(()=>{t+=1}).catch(()=>{});return await m(i(n,"riskRefreshStats",e)).then(()=>{t+=1}).catch(()=>{}),await l(i(n,"users",e),{testingResetAt:d(),updatedAt:d()},{merge:!0}).catch(()=>{}),s+=1,{deletedDocs:t,updatedDocs:s}}async function P(e){let t=0,s=0;return t+=await a("notifications","userId",e),t+=await a("chatSessions","userId",e),t+=await a("chatMessages","userId",e),t+=await a("curriculumContent","updatedBy",e),t+=await a("curriculumContent","deletedBy",e),await l(i(n,"users",e),{testingResetAt:d(),updatedAt:d()},{merge:!0}).catch(()=>{}),s+=1,{deletedDocs:t,updatedDocs:s}}async function F(e){const{uid:t,role:s,lrn:o}=e;if(!t)throw new Error("Missing user id for reset.");if(s==="teacher"||s==="admin")return T(e);let r;s==="student"?r=await b(t,o):s==="teacher"?r=await $(t):r=await P(t);const c=`${s} reset complete: ${r.deletedDocs} records deleted, ${r.updatedDocs} records reset.`;return{role:s,deletedDocs:r.deletedDocs,updatedDocs:r.updatedDocs,summary:c}}export{F as resetTestingDataForRole}; diff --git a/assets/tooltip-D9lDiW9U.js b/assets/tooltip-Bn7-0zmi.js similarity index 72% rename from assets/tooltip-D9lDiW9U.js rename to assets/tooltip-Bn7-0zmi.js index 8c41f648c322738954e56b24bb7b264e86bc0a22..b26ffdf957ea6b22a55c68fa20be88f9d934b3a1 100644 --- a/assets/tooltip-D9lDiW9U.js +++ b/assets/tooltip-Bn7-0zmi.js @@ -1 +1 @@ -import{j as o}from"./vendor-react-Dexh7fmo.js";import{c as e,d as s,e as n,f as d,A as l,g as m}from"./vendor-radix-B-ht8aK0.js";import{c as p}from"./utils-BQQgILNW.js";function c({delayDuration:t=0,...a}){return o.jsx(m,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function g({...t}){return o.jsx(c,{children:o.jsx(e,{"data-slot":"tooltip",...t})})}function j({...t}){return o.jsx(s,{"data-slot":"tooltip-trigger",...t})}function T({className:t,sideOffset:a=0,children:r,...i}){return o.jsx(n,{children:o.jsxs(d,{"data-slot":"tooltip-content",sideOffset:a,className:p("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...i,children:[r,o.jsx(l,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}export{g as T,j as a,T as b}; +import{j as o}from"./vendor-react-Dexh7fmo.js";import{p as e,q as s,r as n,s as d,A as l,t as p}from"./vendor-radix-CxzAJozq.js";import{c as m}from"./utils-BQQgILNW.js";function c({delayDuration:t=0,...a}){return o.jsx(p,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function g({...t}){return o.jsx(c,{children:o.jsx(e,{"data-slot":"tooltip",...t})})}function j({...t}){return o.jsx(s,{"data-slot":"tooltip-trigger",...t})}function T({className:t,sideOffset:a=0,children:r,...i}){return o.jsx(n,{children:o.jsxs(d,{"data-slot":"tooltip-content",sideOffset:a,className:m("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...i,children:[r,o.jsx(l,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}export{g as T,j as a,T as b}; diff --git a/assets/trash-2-CBQVcuBL.js b/assets/trash-2-BGLuKCox.js similarity index 91% rename from assets/trash-2-CBQVcuBL.js rename to assets/trash-2-BGLuKCox.js index 38a461b3b6dd8afba8ff23b1fd4149d9d802ae31..937741f2e03be027d4e5f7f8e081c3d70cbb6a56 100644 --- a/assets/trash-2-CBQVcuBL.js +++ b/assets/trash-2-BGLuKCox.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/trending-down-C7JHnrbb.js b/assets/trending-down-C7JHnrbb.js deleted file mode 100644 index ccb2150b13547e85ba97402e921a3d3acb7906ff..0000000000000000000000000000000000000000 --- a/assets/trending-down-C7JHnrbb.js +++ /dev/null @@ -1,11 +0,0 @@ -import{c as n}from"./index-DGWrSMOK.js";/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const o=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],t=n("funnel",o);/** - * @license lucide-react v0.487.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const e=[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]],c=n("trending-down",e);export{t as F,c as T}; diff --git a/assets/trending-up-B2MPUPwk.js b/assets/trending-up-6u76yy2e.js similarity index 88% rename from assets/trending-up-B2MPUPwk.js rename to assets/trending-up-6u76yy2e.js index 66c8906d5ebfd499b357db94ba71df4fc8f66599..c9adfce8960839b5bef86a4da1f07f9da9274537 100644 --- a/assets/trending-up-B2MPUPwk.js +++ b/assets/trending-up-6u76yy2e.js @@ -1,4 +1,4 @@ -import{c as n}from"./index-DGWrSMOK.js";/** +import{c as n}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/trophy-73YPSH67.js b/assets/trophy-DrL6Ph2J.js similarity index 93% rename from assets/trophy-73YPSH67.js rename to assets/trophy-DrL6Ph2J.js index 36faeb70ae94d5414390d24870f7e17bb51d40fb..3844348df56080df6cc1e11c7f3badfcd149959e 100644 --- a/assets/trophy-73YPSH67.js +++ b/assets/trophy-DrL6Ph2J.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DGWrSMOK.js";/** +import{c as a}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/user-Br5UzORP.js b/assets/user-C4mm1EOG.js similarity index 89% rename from assets/user-Br5UzORP.js rename to assets/user-C4mm1EOG.js index 11452dd0a496604d1848f423575a8a4d6c288dc4..dc357401e94f953a945199dd44bac3f4f6a5844f 100644 --- a/assets/user-Br5UzORP.js +++ b/assets/user-C4mm1EOG.js @@ -1,4 +1,4 @@ -import{c}from"./index-DGWrSMOK.js";/** +import{c}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/users-BRS21lR4.js b/assets/users-CdMqBLwG.js similarity index 90% rename from assets/users-BRS21lR4.js rename to assets/users-CdMqBLwG.js index 76389da6454cc693fabe2218bc38ff3ee448003d..cd069663576dfc5848c86d4cee14c0d9f958098f 100644 --- a/assets/users-BRS21lR4.js +++ b/assets/users-CdMqBLwG.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-DGWrSMOK.js";/** +import{c as e}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/assets/vendor-radix-B-ht8aK0.js b/assets/vendor-radix-CxzAJozq.js similarity index 83% rename from assets/vendor-radix-B-ht8aK0.js rename to assets/vendor-radix-CxzAJozq.js index 5423dfa4ee76b28e2a1309f19b3a0515770f8786..38ed51c1b381ee48926fa317a4713fc1f8c366fe 100644 --- a/assets/vendor-radix-B-ht8aK0.js +++ b/assets/vendor-radix-CxzAJozq.js @@ -1,4 +1,4 @@ -import{r as c,j as g,R as tn,a as ut,b as pi,c as Se,d as mi}from"./vendor-react-Dexh7fmo.js";function Cn(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Fe(...e){return t=>{let n=!1;const o=e.map(r=>{const i=Cn(r,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let r=0;r{let{children:i,...s}=o;Qn(i)&&typeof ot=="function"&&(i=ot(i._payload));const a=c.Children.toArray(i),l=a.find(wi);if(l){const u=l.props.children,f=a.map(d=>d===l?c.Children.count(u)>1?c.Children.only(null):c.isValidElement(u)?u.props.children:null:d);return g.jsx(t,{...s,ref:r,children:c.isValidElement(u)?c.cloneElement(u,void 0,f):null})}return g.jsx(t,{...s,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}var Ql=Jn("Slot");function gi(e){const t=c.forwardRef((n,o)=>{let{children:r,...i}=n;if(Qn(r)&&typeof ot=="function"&&(r=ot(r._payload)),c.isValidElement(r)){const s=Si(r),a=xi(i,r.props);return r.type!==c.Fragment&&(a.ref=o?Fe(o,s):s),c.cloneElement(r,a)}return c.Children.count(r)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var yi=Symbol("radix.slottable");function wi(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===yi}function xi(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...a)=>{const l=i(...a);return r(...a),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Si(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function O(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function bi(e,t){const n=c.createContext(t),o=i=>{const{children:s,...a}=i,l=c.useMemo(()=>a,Object.values(a));return g.jsx(n.Provider,{value:l,children:s})};o.displayName=e+"Provider";function r(i){const s=c.useContext(n);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[o,r]}function he(e,t=[]){let n=[];function o(i,s){const a=c.createContext(s),l=n.length;n=[...n,s];const u=d=>{const{scope:h,children:m,...y}=d,p=h?.[e]?.[l]||a,v=c.useMemo(()=>y,Object.values(y));return g.jsx(p.Provider,{value:v,children:m})};u.displayName=i+"Provider";function f(d,h){const m=h?.[e]?.[l]||a,y=c.useContext(m);if(y)return y;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[u,f]}const r=()=>{const i=n.map(s=>c.createContext(s));return function(a){const l=a?.[e]||i;return c.useMemo(()=>({[`__scope${e}`]:{...a,[e]:l}}),[a,l])}};return r.scopeName=e,[o,Ci(r,...t)]}function Ci(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const s=o.reduce((a,{useScope:l,scopeName:u})=>{const d=l(i)[`__scope${u}`];return{...a,...d}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}var z=globalThis?.document?c.useLayoutEffect:()=>{},Ei=tn[" useId ".trim().toString()]||(()=>{}),Ri=0;function ae(e){const[t,n]=c.useState(Ei());return z(()=>{n(o=>o??String(Ri++))},[e]),t?`radix-${t}`:""}var Pi=tn[" useInsertionEffect ".trim().toString()]||z;function be({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,i,s]=Ti({defaultProp:t,onChange:n}),a=e!==void 0,l=a?e:r;{const f=c.useRef(e!==void 0);c.useEffect(()=>{const d=f.current;d!==a&&console.warn(`${o} is changing from ${d?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=a},[a,o])}const u=c.useCallback(f=>{if(a){const d=Ai(f)?f(e):f;d!==e&&s.current?.(d)}else i(f)},[a,e,i,s]);return[l,u]}function Ti({defaultProp:e,onChange:t}){const[n,o]=c.useState(e),r=c.useRef(n),i=c.useRef(t);return Pi(()=>{i.current=t},[t]),c.useEffect(()=>{r.current!==n&&(i.current?.(n),r.current=n)},[n,r]),[n,o,i]}function Ai(e){return typeof e=="function"}function Ii(e){const t=Oi(e),n=c.forwardRef((o,r)=>{const{children:i,...s}=o,a=c.Children.toArray(i),l=a.find(_i);if(l){const u=l.props.children,f=a.map(d=>d===l?c.Children.count(u)>1?c.Children.only(null):c.isValidElement(u)?u.props.children:null:d);return g.jsx(t,{...s,ref:r,children:c.isValidElement(u)?c.cloneElement(u,void 0,f):null})}return g.jsx(t,{...s,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}function Oi(e){const t=c.forwardRef((n,o)=>{const{children:r,...i}=n;if(c.isValidElement(r)){const s=Mi(r),a=Di(i,r.props);return r.type!==c.Fragment&&(a.ref=o?Fe(o,s):s),c.cloneElement(r,a)}return c.Children.count(r)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ni=Symbol("radix.slottable");function _i(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ni}function Di(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...a)=>{const l=i(...a);return r(...a),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Mi(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Li=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_=Li.reduce((e,t)=>{const n=Ii(`Primitive.${t}`),o=c.forwardRef((r,i)=>{const{asChild:s,...a}=r,l=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),g.jsx(l,{...a,ref:i})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function Fi(e,t){e&&ut.flushSync(()=>e.dispatchEvent(t))}function ce(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>t.current?.(...n),[])}function ji(e,t=globalThis?.document){const n=ce(e);c.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var ki="DismissableLayer",Vt="dismissableLayer.update",$i="dismissableLayer.pointerDownOutside",Wi="dismissableLayer.focusOutside",En,eo=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ft=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:i,onInteractOutside:s,onDismiss:a,...l}=e,u=c.useContext(eo),[f,d]=c.useState(null),h=f?.ownerDocument??globalThis?.document,[,m]=c.useState({}),y=$(t,E=>d(E)),p=Array.from(u.layers),[v]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),w=p.indexOf(v),x=f?p.indexOf(f):-1,S=u.layersWithOutsidePointerEventsDisabled.size>0,b=x>=w,C=Hi(E=>{const P=E.target,M=[...u.branches].some(N=>N.contains(P));!b||M||(r?.(E),s?.(E),E.defaultPrevented||a?.())},h),R=Ui(E=>{const P=E.target;[...u.branches].some(N=>N.contains(P))||(i?.(E),s?.(E),E.defaultPrevented||a?.())},h);return ji(E=>{x===u.layers.size-1&&(o?.(E),!E.defaultPrevented&&a&&(E.preventDefault(),a()))},h),c.useEffect(()=>{if(f)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(En=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),Rn(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=En)}},[f,h,n,u]),c.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),Rn())},[f,u]),c.useEffect(()=>{const E=()=>m({});return document.addEventListener(Vt,E),()=>document.removeEventListener(Vt,E)},[]),g.jsx(_.div,{...l,ref:y,style:{pointerEvents:S?b?"auto":"none":void 0,...e.style},onFocusCapture:O(e.onFocusCapture,R.onFocusCapture),onBlurCapture:O(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:O(e.onPointerDownCapture,C.onPointerDownCapture)})});ft.displayName=ki;var Bi="DismissableLayerBranch",Vi=c.forwardRef((e,t)=>{const n=c.useContext(eo),o=c.useRef(null),r=$(t,o);return c.useEffect(()=>{const i=o.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),g.jsx(_.div,{...e,ref:r})});Vi.displayName=Bi;function Hi(e,t=globalThis?.document){const n=ce(e),o=c.useRef(!1),r=c.useRef(()=>{});return c.useEffect(()=>{const i=a=>{if(a.target&&!o.current){let l=function(){to($i,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=l,t.addEventListener("click",r.current,{once:!0})):l()}else t.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function Ui(e,t=globalThis?.document){const n=ce(e),o=c.useRef(!1);return c.useEffect(()=>{const r=i=>{i.target&&!o.current&&to(Wi,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Rn(){const e=new CustomEvent(Vt);document.dispatchEvent(e)}function to(e,t,n,{discrete:o}){const r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?Fi(r,i):r.dispatchEvent(i)}var Ot="focusScope.autoFocusOnMount",Nt="focusScope.autoFocusOnUnmount",Pn={bubbles:!1,cancelable:!0},Ki="FocusScope",nn=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:i,...s}=e,[a,l]=c.useState(null),u=ce(r),f=ce(i),d=c.useRef(null),h=$(t,p=>l(p)),m=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(o){let p=function(S){if(m.paused||!a)return;const b=S.target;a.contains(b)?d.current=b:de(d.current,{select:!0})},v=function(S){if(m.paused||!a)return;const b=S.relatedTarget;b!==null&&(a.contains(b)||de(d.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&de(a)};document.addEventListener("focusin",p),document.addEventListener("focusout",v);const x=new MutationObserver(w);return a&&x.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",v),x.disconnect()}}},[o,a,m.paused]),c.useEffect(()=>{if(a){An.add(m);const p=document.activeElement;if(!a.contains(p)){const w=new CustomEvent(Ot,Pn);a.addEventListener(Ot,u),a.dispatchEvent(w),w.defaultPrevented||(zi(Zi(no(a)),{select:!0}),document.activeElement===p&&de(a))}return()=>{a.removeEventListener(Ot,u),setTimeout(()=>{const w=new CustomEvent(Nt,Pn);a.addEventListener(Nt,f),a.dispatchEvent(w),w.defaultPrevented||de(p??document.body,{select:!0}),a.removeEventListener(Nt,f),An.remove(m)},0)}}},[a,u,f,m]);const y=c.useCallback(p=>{if(!n&&!o||m.paused)return;const v=p.key==="Tab"&&!p.altKey&&!p.ctrlKey&&!p.metaKey,w=document.activeElement;if(v&&w){const x=p.currentTarget,[S,b]=Gi(x);S&&b?!p.shiftKey&&w===b?(p.preventDefault(),n&&de(S,{select:!0})):p.shiftKey&&w===S&&(p.preventDefault(),n&&de(b,{select:!0})):w===x&&p.preventDefault()}},[n,o,m.paused]);return g.jsx(_.div,{tabIndex:-1,...s,ref:h,onKeyDown:y})});nn.displayName=Ki;function zi(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(de(o,{select:t}),document.activeElement!==n)return}function Gi(e){const t=no(e),n=Tn(t,e),o=Tn(t.reverse(),e);return[n,o]}function no(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Tn(e,t){for(const n of e)if(!Yi(n,{upTo:t}))return n}function Yi(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Xi(e){return e instanceof HTMLInputElement&&"select"in e}function de(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Xi(e)&&t&&e.select()}}var An=qi();function qi(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=In(e,t),e.unshift(t)},remove(t){e=In(e,t),e[0]?.resume()}}}function In(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function Zi(e){return e.filter(t=>t.tagName!=="A")}var Qi="Portal",dt=c.forwardRef((e,t)=>{const{container:n,...o}=e,[r,i]=c.useState(!1);z(()=>i(!0),[]);const s=n||r&&globalThis?.document?.body;return s?pi.createPortal(g.jsx(_.div,{...o,ref:t}),s):null});dt.displayName=Qi;function Ji(e,t){return c.useReducer((n,o)=>t[n][o]??n,e)}var Te=e=>{const{present:t,children:n}=e,o=es(t),r=typeof n=="function"?n({present:o.isPresent}):c.Children.only(n),i=$(o.ref,ts(r));return typeof n=="function"||o.isPresent?c.cloneElement(r,{ref:i}):null};Te.displayName="Presence";function es(e){const[t,n]=c.useState(),o=c.useRef(null),r=c.useRef(e),i=c.useRef("none"),s=e?"mounted":"unmounted",[a,l]=Ji(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const u=Ye(o.current);i.current=a==="mounted"?u:"none"},[a]),z(()=>{const u=o.current,f=r.current;if(f!==e){const h=i.current,m=Ye(u);e?l("MOUNT"):m==="none"||u?.display==="none"?l("UNMOUNT"):l(f&&h!==m?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,l]),z(()=>{if(t){let u;const f=t.ownerDocument.defaultView??window,d=m=>{const p=Ye(o.current).includes(CSS.escape(m.animationName));if(m.target===t&&p&&(l("ANIMATION_END"),!r.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",u=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},h=m=>{m.target===t&&(i.current=Ye(o.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:c.useCallback(u=>{o.current=u?getComputedStyle(u):null,n(u)},[])}}function Ye(e){return e?.animationName||"none"}function ts(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var _t=0;function oo(){c.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??On()),document.body.insertAdjacentElement("beforeend",e[1]??On()),_t++,()=>{_t===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),_t--}},[])}function On(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ne=function(){return ne=Object.assign||function(t){for(var n,o=1,r=arguments.length;o"u")return ys;var t=ws(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Ss=ao(),_e="data-scroll-locked",bs=function(e,t,n,o){var r=e.left,i=e.top,s=e.right,a=e.gap;return n===void 0&&(n="margin"),` +import{r as c,j as g,R as tn,a as ut,b as pi,c as Se,d as mi}from"./vendor-react-Dexh7fmo.js";function Cn(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Fe(...e){return t=>{let n=!1;const o=e.map(r=>{const i=Cn(r,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let r=0;r{let{children:i,...s}=o;Qn(i)&&typeof ot=="function"&&(i=ot(i._payload));const a=c.Children.toArray(i),l=a.find(wi);if(l){const u=l.props.children,f=a.map(d=>d===l?c.Children.count(u)>1?c.Children.only(null):c.isValidElement(u)?u.props.children:null:d);return g.jsx(t,{...s,ref:r,children:c.isValidElement(u)?c.cloneElement(u,void 0,f):null})}return g.jsx(t,{...s,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}var Ql=Jn("Slot");function gi(e){const t=c.forwardRef((n,o)=>{let{children:r,...i}=n;if(Qn(r)&&typeof ot=="function"&&(r=ot(r._payload)),c.isValidElement(r)){const s=Si(r),a=xi(i,r.props);return r.type!==c.Fragment&&(a.ref=o?Fe(o,s):s),c.cloneElement(r,a)}return c.Children.count(r)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var yi=Symbol("radix.slottable");function wi(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===yi}function xi(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...a)=>{const l=i(...a);return r(...a),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Si(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function O(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function bi(e,t){const n=c.createContext(t),o=i=>{const{children:s,...a}=i,l=c.useMemo(()=>a,Object.values(a));return g.jsx(n.Provider,{value:l,children:s})};o.displayName=e+"Provider";function r(i){const s=c.useContext(n);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[o,r]}function he(e,t=[]){let n=[];function o(i,s){const a=c.createContext(s),l=n.length;n=[...n,s];const u=d=>{const{scope:h,children:m,...y}=d,p=h?.[e]?.[l]||a,v=c.useMemo(()=>y,Object.values(y));return g.jsx(p.Provider,{value:v,children:m})};u.displayName=i+"Provider";function f(d,h){const m=h?.[e]?.[l]||a,y=c.useContext(m);if(y)return y;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[u,f]}const r=()=>{const i=n.map(s=>c.createContext(s));return function(a){const l=a?.[e]||i;return c.useMemo(()=>({[`__scope${e}`]:{...a,[e]:l}}),[a,l])}};return r.scopeName=e,[o,Ci(r,...t)]}function Ci(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const s=o.reduce((a,{useScope:l,scopeName:u})=>{const d=l(i)[`__scope${u}`];return{...a,...d}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}var z=globalThis?.document?c.useLayoutEffect:()=>{},Ei=tn[" useId ".trim().toString()]||(()=>{}),Ri=0;function ae(e){const[t,n]=c.useState(Ei());return z(()=>{n(o=>o??String(Ri++))},[e]),e||(t?`radix-${t}`:"")}var Pi=tn[" useInsertionEffect ".trim().toString()]||z;function be({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,i,s]=Ti({defaultProp:t,onChange:n}),a=e!==void 0,l=a?e:r;{const f=c.useRef(e!==void 0);c.useEffect(()=>{const d=f.current;d!==a&&console.warn(`${o} is changing from ${d?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=a},[a,o])}const u=c.useCallback(f=>{if(a){const d=Ai(f)?f(e):f;d!==e&&s.current?.(d)}else i(f)},[a,e,i,s]);return[l,u]}function Ti({defaultProp:e,onChange:t}){const[n,o]=c.useState(e),r=c.useRef(n),i=c.useRef(t);return Pi(()=>{i.current=t},[t]),c.useEffect(()=>{r.current!==n&&(i.current?.(n),r.current=n)},[n,r]),[n,o,i]}function Ai(e){return typeof e=="function"}function Ii(e){const t=Oi(e),n=c.forwardRef((o,r)=>{const{children:i,...s}=o,a=c.Children.toArray(i),l=a.find(_i);if(l){const u=l.props.children,f=a.map(d=>d===l?c.Children.count(u)>1?c.Children.only(null):c.isValidElement(u)?u.props.children:null:d);return g.jsx(t,{...s,ref:r,children:c.isValidElement(u)?c.cloneElement(u,void 0,f):null})}return g.jsx(t,{...s,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}function Oi(e){const t=c.forwardRef((n,o)=>{const{children:r,...i}=n;if(c.isValidElement(r)){const s=Mi(r),a=Di(i,r.props);return r.type!==c.Fragment&&(a.ref=o?Fe(o,s):s),c.cloneElement(r,a)}return c.Children.count(r)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ni=Symbol("radix.slottable");function _i(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ni}function Di(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...a)=>{const l=i(...a);return r(...a),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Mi(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Li=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_=Li.reduce((e,t)=>{const n=Ii(`Primitive.${t}`),o=c.forwardRef((r,i)=>{const{asChild:s,...a}=r,l=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),g.jsx(l,{...a,ref:i})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function Fi(e,t){e&&ut.flushSync(()=>e.dispatchEvent(t))}function ce(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>t.current?.(...n),[])}function ji(e,t=globalThis?.document){const n=ce(e);c.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var ki="DismissableLayer",Vt="dismissableLayer.update",$i="dismissableLayer.pointerDownOutside",Wi="dismissableLayer.focusOutside",En,eo=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ft=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:i,onInteractOutside:s,onDismiss:a,...l}=e,u=c.useContext(eo),[f,d]=c.useState(null),h=f?.ownerDocument??globalThis?.document,[,m]=c.useState({}),y=$(t,E=>d(E)),p=Array.from(u.layers),[v]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),w=p.indexOf(v),x=f?p.indexOf(f):-1,S=u.layersWithOutsidePointerEventsDisabled.size>0,b=x>=w,C=Hi(E=>{const P=E.target,M=[...u.branches].some(N=>N.contains(P));!b||M||(r?.(E),s?.(E),E.defaultPrevented||a?.())},h),R=Ui(E=>{const P=E.target;[...u.branches].some(N=>N.contains(P))||(i?.(E),s?.(E),E.defaultPrevented||a?.())},h);return ji(E=>{x===u.layers.size-1&&(o?.(E),!E.defaultPrevented&&a&&(E.preventDefault(),a()))},h),c.useEffect(()=>{if(f)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(En=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),Rn(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=En)}},[f,h,n,u]),c.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),Rn())},[f,u]),c.useEffect(()=>{const E=()=>m({});return document.addEventListener(Vt,E),()=>document.removeEventListener(Vt,E)},[]),g.jsx(_.div,{...l,ref:y,style:{pointerEvents:S?b?"auto":"none":void 0,...e.style},onFocusCapture:O(e.onFocusCapture,R.onFocusCapture),onBlurCapture:O(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:O(e.onPointerDownCapture,C.onPointerDownCapture)})});ft.displayName=ki;var Bi="DismissableLayerBranch",Vi=c.forwardRef((e,t)=>{const n=c.useContext(eo),o=c.useRef(null),r=$(t,o);return c.useEffect(()=>{const i=o.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),g.jsx(_.div,{...e,ref:r})});Vi.displayName=Bi;function Hi(e,t=globalThis?.document){const n=ce(e),o=c.useRef(!1),r=c.useRef(()=>{});return c.useEffect(()=>{const i=a=>{if(a.target&&!o.current){let l=function(){to($i,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=l,t.addEventListener("click",r.current,{once:!0})):l()}else t.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function Ui(e,t=globalThis?.document){const n=ce(e),o=c.useRef(!1);return c.useEffect(()=>{const r=i=>{i.target&&!o.current&&to(Wi,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Rn(){const e=new CustomEvent(Vt);document.dispatchEvent(e)}function to(e,t,n,{discrete:o}){const r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?Fi(r,i):r.dispatchEvent(i)}var Ot="focusScope.autoFocusOnMount",Nt="focusScope.autoFocusOnUnmount",Pn={bubbles:!1,cancelable:!0},Ki="FocusScope",nn=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:i,...s}=e,[a,l]=c.useState(null),u=ce(r),f=ce(i),d=c.useRef(null),h=$(t,p=>l(p)),m=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(o){let p=function(S){if(m.paused||!a)return;const b=S.target;a.contains(b)?d.current=b:de(d.current,{select:!0})},v=function(S){if(m.paused||!a)return;const b=S.relatedTarget;b!==null&&(a.contains(b)||de(d.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&de(a)};document.addEventListener("focusin",p),document.addEventListener("focusout",v);const x=new MutationObserver(w);return a&&x.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",v),x.disconnect()}}},[o,a,m.paused]),c.useEffect(()=>{if(a){An.add(m);const p=document.activeElement;if(!a.contains(p)){const w=new CustomEvent(Ot,Pn);a.addEventListener(Ot,u),a.dispatchEvent(w),w.defaultPrevented||(zi(Zi(no(a)),{select:!0}),document.activeElement===p&&de(a))}return()=>{a.removeEventListener(Ot,u),setTimeout(()=>{const w=new CustomEvent(Nt,Pn);a.addEventListener(Nt,f),a.dispatchEvent(w),w.defaultPrevented||de(p??document.body,{select:!0}),a.removeEventListener(Nt,f),An.remove(m)},0)}}},[a,u,f,m]);const y=c.useCallback(p=>{if(!n&&!o||m.paused)return;const v=p.key==="Tab"&&!p.altKey&&!p.ctrlKey&&!p.metaKey,w=document.activeElement;if(v&&w){const x=p.currentTarget,[S,b]=Gi(x);S&&b?!p.shiftKey&&w===b?(p.preventDefault(),n&&de(S,{select:!0})):p.shiftKey&&w===S&&(p.preventDefault(),n&&de(b,{select:!0})):w===x&&p.preventDefault()}},[n,o,m.paused]);return g.jsx(_.div,{tabIndex:-1,...s,ref:h,onKeyDown:y})});nn.displayName=Ki;function zi(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(de(o,{select:t}),document.activeElement!==n)return}function Gi(e){const t=no(e),n=Tn(t,e),o=Tn(t.reverse(),e);return[n,o]}function no(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Tn(e,t){for(const n of e)if(!Yi(n,{upTo:t}))return n}function Yi(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Xi(e){return e instanceof HTMLInputElement&&"select"in e}function de(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Xi(e)&&t&&e.select()}}var An=qi();function qi(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=In(e,t),e.unshift(t)},remove(t){e=In(e,t),e[0]?.resume()}}}function In(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function Zi(e){return e.filter(t=>t.tagName!=="A")}var Qi="Portal",dt=c.forwardRef((e,t)=>{const{container:n,...o}=e,[r,i]=c.useState(!1);z(()=>i(!0),[]);const s=n||r&&globalThis?.document?.body;return s?pi.createPortal(g.jsx(_.div,{...o,ref:t}),s):null});dt.displayName=Qi;function Ji(e,t){return c.useReducer((n,o)=>t[n][o]??n,e)}var Te=e=>{const{present:t,children:n}=e,o=es(t),r=typeof n=="function"?n({present:o.isPresent}):c.Children.only(n),i=$(o.ref,ts(r));return typeof n=="function"||o.isPresent?c.cloneElement(r,{ref:i}):null};Te.displayName="Presence";function es(e){const[t,n]=c.useState(),o=c.useRef(null),r=c.useRef(e),i=c.useRef("none"),s=e?"mounted":"unmounted",[a,l]=Ji(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const u=Ye(o.current);i.current=a==="mounted"?u:"none"},[a]),z(()=>{const u=o.current,f=r.current;if(f!==e){const h=i.current,m=Ye(u);e?l("MOUNT"):m==="none"||u?.display==="none"?l("UNMOUNT"):l(f&&h!==m?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,l]),z(()=>{if(t){let u;const f=t.ownerDocument.defaultView??window,d=m=>{const p=Ye(o.current).includes(CSS.escape(m.animationName));if(m.target===t&&p&&(l("ANIMATION_END"),!r.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",u=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},h=m=>{m.target===t&&(i.current=Ye(o.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:c.useCallback(u=>{o.current=u?getComputedStyle(u):null,n(u)},[])}}function Ye(e){return e?.animationName||"none"}function ts(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var _t=0;function oo(){c.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??On()),document.body.insertAdjacentElement("beforeend",e[1]??On()),_t++,()=>{_t===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),_t--}},[])}function On(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ne=function(){return ne=Object.assign||function(t){for(var n,o=1,r=arguments.length;o"u")return ys;var t=ws(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Ss=ao(),_e="data-scroll-locked",bs=function(e,t,n,o){var r=e.left,i=e.top,s=e.right,a=e.gap;return n===void 0&&(n="margin"),` .`.concat(os,` { overflow: hidden `).concat(o,`; padding-right: `).concat(a,"px ").concat(o,`; @@ -50,4 +50,4 @@ For more information, see https://radix-ui.com/primitives/docs/components/${t.do * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Xn;function Il(){if(Xn)return Wt;Xn=1;var e=mi();function t(d,h){return d===h&&(d!==0||1/d===1/h)||d!==d&&h!==h}var n=typeof Object.is=="function"?Object.is:t,o=e.useState,r=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function a(d,h){var m=h(),y=o({inst:{value:m,getSnapshot:h}}),p=y[0].inst,v=y[1];return i(function(){p.value=m,p.getSnapshot=h,l(p)&&v({inst:p})},[d,m,h]),r(function(){return l(p)&&v({inst:p}),d(function(){l(p)&&v({inst:p})})},[d]),s(m),m}function l(d){var h=d.getSnapshot;d=d.value;try{var m=h();return!n(d,m)}catch{return!0}}function u(d,h){return h()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:a;return Wt.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,Wt}var qn;function Ol(){return qn||(qn=1,$t.exports=Il()),$t.exports}var Nl=Ol();function _l(){return Nl.useSyncExternalStore(Dl,()=>!0,()=>!1)}function Dl(){return()=>{}}var Sn="Avatar",[Ml]=Pl(Sn),[Ll,Kr]=Ml(Sn),zr=c.forwardRef((e,t)=>{const{__scopeAvatar:n,...o}=e,[r,i]=c.useState("idle");return g.jsx(Ll,{scope:n,imageLoadingStatus:r,onImageLoadingStatusChange:i,children:g.jsx(xn.span,{...o,ref:t})})});zr.displayName=Sn;var Gr="AvatarImage",Yr=c.forwardRef((e,t)=>{const{__scopeAvatar:n,src:o,onLoadingStatusChange:r=()=>{},...i}=e,s=Kr(Gr,n),a=Fl(o,i),l=ce(u=>{r(u),s.onImageLoadingStatusChange(u)});return z(()=>{a!=="idle"&&l(a)},[a,l]),a==="loaded"?g.jsx(xn.img,{...i,ref:t,src:o}):null});Yr.displayName=Gr;var Xr="AvatarFallback",qr=c.forwardRef((e,t)=>{const{__scopeAvatar:n,delayMs:o,...r}=e,i=Kr(Xr,n),[s,a]=c.useState(o===void 0);return c.useEffect(()=>{if(o!==void 0){const l=window.setTimeout(()=>a(!0),o);return()=>window.clearTimeout(l)}},[o]),s&&i.imageLoadingStatus!=="loaded"?g.jsx(xn.span,{...r,ref:t}):null});qr.displayName=Xr;function Zn(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?"loaded":"loading"):"error":"idle"}function Fl(e,{referrerPolicy:t,crossOrigin:n}){const o=_l(),r=c.useRef(null),i=o?(r.current||(r.current=new window.Image),r.current):null,[s,a]=c.useState(()=>Zn(i,e));return z(()=>{a(Zn(i,e))},[i,e]),z(()=>{const l=d=>()=>{a(d)};if(!i)return;const u=l("loaded"),f=l("error");return i.addEventListener("load",u),i.addEventListener("error",f),t&&(i.referrerPolicy=t),typeof n=="string"&&(i.crossOrigin=n),()=>{i.removeEventListener("load",u),i.removeEventListener("error",f)}},[i,n,t]),s}var Tu=zr,Au=Yr,Iu=qr,Bt="rovingFocusGroup.onEntryFocus",jl={bubbles:!1,cancelable:!0},Ge="RovingFocusGroup",[en,Zr,kl]=dr(Ge),[$l,Qr]=he(Ge,[kl]),[Wl,Bl]=$l(Ge),Jr=c.forwardRef((e,t)=>g.jsx(en.Provider,{scope:e.__scopeRovingFocusGroup,children:g.jsx(en.Slot,{scope:e.__scopeRovingFocusGroup,children:g.jsx(Vl,{...e,ref:t})})}));Jr.displayName=Ge;var Vl=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...d}=e,h=c.useRef(null),m=$(t,h),y=yn(i),[p,v]=be({prop:s,defaultProp:a??null,onChange:l,caller:Ge}),[w,x]=c.useState(!1),S=ce(u),b=Zr(n),C=c.useRef(!1),[R,E]=c.useState(0);return c.useEffect(()=>{const P=h.current;if(P)return P.addEventListener(Bt,S),()=>P.removeEventListener(Bt,S)},[S]),g.jsx(Wl,{scope:n,orientation:o,dir:y,loop:r,currentTabStopId:p,onItemFocus:c.useCallback(P=>v(P),[v]),onItemShiftTab:c.useCallback(()=>x(!0),[]),onFocusableItemAdd:c.useCallback(()=>E(P=>P+1),[]),onFocusableItemRemove:c.useCallback(()=>E(P=>P-1),[]),children:g.jsx(_.div,{tabIndex:w||R===0?-1:0,"data-orientation":o,...d,ref:m,style:{outline:"none",...e.style},onMouseDown:O(e.onMouseDown,()=>{C.current=!0}),onFocus:O(e.onFocus,P=>{const M=!C.current;if(P.target===P.currentTarget&&M&&!w){const N=new CustomEvent(Bt,jl);if(P.currentTarget.dispatchEvent(N),!N.defaultPrevented){const D=b().filter(I=>I.focusable),F=D.find(I=>I.active),j=D.find(I=>I.id===p),W=[F,j,...D].filter(Boolean).map(I=>I.ref.current);ni(W,f)}}C.current=!1}),onBlur:O(e.onBlur,()=>x(!1))})})}),ei="RovingFocusGroupItem",ti=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:i,children:s,...a}=e,l=ae(),u=i||l,f=Bl(ei,n),d=f.currentTabStopId===u,h=Zr(n),{onFocusableItemAdd:m,onFocusableItemRemove:y,currentTabStopId:p}=f;return c.useEffect(()=>{if(o)return m(),()=>y()},[o,m,y]),g.jsx(en.ItemSlot,{scope:n,id:u,focusable:o,active:r,children:g.jsx(_.span,{tabIndex:d?0:-1,"data-orientation":f.orientation,...a,ref:t,onMouseDown:O(e.onMouseDown,v=>{o?f.onItemFocus(u):v.preventDefault()}),onFocus:O(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:O(e.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){f.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const w=Kl(v,f.orientation,f.dir);if(w!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let S=h().filter(b=>b.focusable).map(b=>b.ref.current);if(w==="last")S.reverse();else if(w==="prev"||w==="next"){w==="prev"&&S.reverse();const b=S.indexOf(v.currentTarget);S=f.loop?zl(S,b+1):S.slice(b+1)}setTimeout(()=>ni(S))}}),children:typeof s=="function"?s({isCurrentTabStop:d,hasTabStop:p!=null}):s})})});ti.displayName=ei;var Hl={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Ul(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Kl(e,t,n){const o=Ul(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Hl[o]}function ni(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function zl(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Gl=Jr,Yl=ti,Pt="Tabs",[Xl]=he(Pt,[Qr]),oi=Qr(),[ql,bn]=Xl(Pt),ri=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,onValueChange:r,defaultValue:i,orientation:s="horizontal",dir:a,activationMode:l="automatic",...u}=e,f=yn(a),[d,h]=be({prop:o,onChange:r,defaultProp:i??"",caller:Pt});return g.jsx(ql,{scope:n,baseId:ae(),value:d,onValueChange:h,orientation:s,dir:f,activationMode:l,children:g.jsx(_.div,{dir:f,"data-orientation":s,...u,ref:t})})});ri.displayName=Pt;var ii="TabsList",si=c.forwardRef((e,t)=>{const{__scopeTabs:n,loop:o=!0,...r}=e,i=bn(ii,n),s=oi(n);return g.jsx(Gl,{asChild:!0,...s,orientation:i.orientation,dir:i.dir,loop:o,children:g.jsx(_.div,{role:"tablist","aria-orientation":i.orientation,...r,ref:t})})});si.displayName=ii;var ai="TabsTrigger",ci=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,disabled:r=!1,...i}=e,s=bn(ai,n),a=oi(n),l=fi(s.baseId,o),u=di(s.baseId,o),f=o===s.value;return g.jsx(Yl,{asChild:!0,...a,focusable:!r,active:f,children:g.jsx(_.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":u,"data-state":f?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:l,...i,ref:t,onMouseDown:O(e.onMouseDown,d=>{!r&&d.button===0&&d.ctrlKey===!1?s.onValueChange(o):d.preventDefault()}),onKeyDown:O(e.onKeyDown,d=>{[" ","Enter"].includes(d.key)&&s.onValueChange(o)}),onFocus:O(e.onFocus,()=>{const d=s.activationMode!=="manual";!f&&!r&&d&&s.onValueChange(o)})})})});ci.displayName=ai;var li="TabsContent",ui=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,forceMount:r,children:i,...s}=e,a=bn(li,n),l=fi(a.baseId,o),u=di(a.baseId,o),f=o===a.value,d=c.useRef(f);return c.useEffect(()=>{const h=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(h)},[]),g.jsx(Te,{present:r||f,children:({present:h})=>g.jsx(_.div,{"data-state":f?"active":"inactive","data-orientation":a.orientation,role:"tabpanel","aria-labelledby":l,hidden:!h,id:u,tabIndex:0,...s,ref:t,style:{...e.style,animationDuration:d.current?"0s":void 0},children:h&&i})})});ui.displayName=li;function fi(e,t){return`${e}-trigger-${t}`}function di(e,t){return`${e}-content-${t}`}var Ou=ri,Nu=si,_u=ci,Du=ui;export{du as A,ou as C,iu as D,Iu as F,Au as I,Nu as L,nu as O,tu as P,Tu as R,Cu as S,ru as T,hu as V,eu as a,su as b,cu as c,lu as d,uu as e,fu as f,au as g,pu as h,mu as i,vu as j,gu as k,yu as l,wu as m,xu as n,bu as o,Su as p,Eu as q,Ou as r,Du as s,_u as t,Ru as u,Pu as v,Ql as w}; + */var Xn;function Il(){if(Xn)return Wt;Xn=1;var e=mi();function t(d,h){return d===h&&(d!==0||1/d===1/h)||d!==d&&h!==h}var n=typeof Object.is=="function"?Object.is:t,o=e.useState,r=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function a(d,h){var m=h(),y=o({inst:{value:m,getSnapshot:h}}),p=y[0].inst,v=y[1];return i(function(){p.value=m,p.getSnapshot=h,l(p)&&v({inst:p})},[d,m,h]),r(function(){return l(p)&&v({inst:p}),d(function(){l(p)&&v({inst:p})})},[d]),s(m),m}function l(d){var h=d.getSnapshot;d=d.value;try{var m=h();return!n(d,m)}catch{return!0}}function u(d,h){return h()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:a;return Wt.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,Wt}var qn;function Ol(){return qn||(qn=1,$t.exports=Il()),$t.exports}var Nl=Ol();function _l(){return Nl.useSyncExternalStore(Dl,()=>!0,()=>!1)}function Dl(){return()=>{}}var Sn="Avatar",[Ml]=Pl(Sn),[Ll,Kr]=Ml(Sn),zr=c.forwardRef((e,t)=>{const{__scopeAvatar:n,...o}=e,[r,i]=c.useState("idle");return g.jsx(Ll,{scope:n,imageLoadingStatus:r,onImageLoadingStatusChange:i,children:g.jsx(xn.span,{...o,ref:t})})});zr.displayName=Sn;var Gr="AvatarImage",Yr=c.forwardRef((e,t)=>{const{__scopeAvatar:n,src:o,onLoadingStatusChange:r=()=>{},...i}=e,s=Kr(Gr,n),a=Fl(o,i),l=ce(u=>{r(u),s.onImageLoadingStatusChange(u)});return z(()=>{a!=="idle"&&l(a)},[a,l]),a==="loaded"?g.jsx(xn.img,{...i,ref:t,src:o}):null});Yr.displayName=Gr;var Xr="AvatarFallback",qr=c.forwardRef((e,t)=>{const{__scopeAvatar:n,delayMs:o,...r}=e,i=Kr(Xr,n),[s,a]=c.useState(o===void 0);return c.useEffect(()=>{if(o!==void 0){const l=window.setTimeout(()=>a(!0),o);return()=>window.clearTimeout(l)}},[o]),s&&i.imageLoadingStatus!=="loaded"?g.jsx(xn.span,{...r,ref:t}):null});qr.displayName=Xr;function Zn(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?"loaded":"loading"):"error":"idle"}function Fl(e,{referrerPolicy:t,crossOrigin:n}){const o=_l(),r=c.useRef(null),i=o?(r.current||(r.current=new window.Image),r.current):null,[s,a]=c.useState(()=>Zn(i,e));return z(()=>{a(Zn(i,e))},[i,e]),z(()=>{const l=d=>()=>{a(d)};if(!i)return;const u=l("loaded"),f=l("error");return i.addEventListener("load",u),i.addEventListener("error",f),t&&(i.referrerPolicy=t),typeof n=="string"&&(i.crossOrigin=n),()=>{i.removeEventListener("load",u),i.removeEventListener("error",f)}},[i,n,t]),s}var Tu=zr,Au=Yr,Iu=qr,Bt="rovingFocusGroup.onEntryFocus",jl={bubbles:!1,cancelable:!0},Ge="RovingFocusGroup",[en,Zr,kl]=dr(Ge),[$l,Qr]=he(Ge,[kl]),[Wl,Bl]=$l(Ge),Jr=c.forwardRef((e,t)=>g.jsx(en.Provider,{scope:e.__scopeRovingFocusGroup,children:g.jsx(en.Slot,{scope:e.__scopeRovingFocusGroup,children:g.jsx(Vl,{...e,ref:t})})}));Jr.displayName=Ge;var Vl=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...d}=e,h=c.useRef(null),m=$(t,h),y=yn(i),[p,v]=be({prop:s,defaultProp:a??null,onChange:l,caller:Ge}),[w,x]=c.useState(!1),S=ce(u),b=Zr(n),C=c.useRef(!1),[R,E]=c.useState(0);return c.useEffect(()=>{const P=h.current;if(P)return P.addEventListener(Bt,S),()=>P.removeEventListener(Bt,S)},[S]),g.jsx(Wl,{scope:n,orientation:o,dir:y,loop:r,currentTabStopId:p,onItemFocus:c.useCallback(P=>v(P),[v]),onItemShiftTab:c.useCallback(()=>x(!0),[]),onFocusableItemAdd:c.useCallback(()=>E(P=>P+1),[]),onFocusableItemRemove:c.useCallback(()=>E(P=>P-1),[]),children:g.jsx(_.div,{tabIndex:w||R===0?-1:0,"data-orientation":o,...d,ref:m,style:{outline:"none",...e.style},onMouseDown:O(e.onMouseDown,()=>{C.current=!0}),onFocus:O(e.onFocus,P=>{const M=!C.current;if(P.target===P.currentTarget&&M&&!w){const N=new CustomEvent(Bt,jl);if(P.currentTarget.dispatchEvent(N),!N.defaultPrevented){const D=b().filter(I=>I.focusable),F=D.find(I=>I.active),j=D.find(I=>I.id===p),W=[F,j,...D].filter(Boolean).map(I=>I.ref.current);ni(W,f)}}C.current=!1}),onBlur:O(e.onBlur,()=>x(!1))})})}),ei="RovingFocusGroupItem",ti=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:i,children:s,...a}=e,l=ae(),u=i||l,f=Bl(ei,n),d=f.currentTabStopId===u,h=Zr(n),{onFocusableItemAdd:m,onFocusableItemRemove:y,currentTabStopId:p}=f;return c.useEffect(()=>{if(o)return m(),()=>y()},[o,m,y]),g.jsx(en.ItemSlot,{scope:n,id:u,focusable:o,active:r,children:g.jsx(_.span,{tabIndex:d?0:-1,"data-orientation":f.orientation,...a,ref:t,onMouseDown:O(e.onMouseDown,v=>{o?f.onItemFocus(u):v.preventDefault()}),onFocus:O(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:O(e.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){f.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const w=Kl(v,f.orientation,f.dir);if(w!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let S=h().filter(b=>b.focusable).map(b=>b.ref.current);if(w==="last")S.reverse();else if(w==="prev"||w==="next"){w==="prev"&&S.reverse();const b=S.indexOf(v.currentTarget);S=f.loop?zl(S,b+1):S.slice(b+1)}setTimeout(()=>ni(S))}}),children:typeof s=="function"?s({isCurrentTabStop:d,hasTabStop:p!=null}):s})})});ti.displayName=ei;var Hl={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Ul(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Kl(e,t,n){const o=Ul(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Hl[o]}function ni(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function zl(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Gl=Jr,Yl=ti,Pt="Tabs",[Xl]=he(Pt,[Qr]),oi=Qr(),[ql,bn]=Xl(Pt),ri=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,onValueChange:r,defaultValue:i,orientation:s="horizontal",dir:a,activationMode:l="automatic",...u}=e,f=yn(a),[d,h]=be({prop:o,onChange:r,defaultProp:i??"",caller:Pt});return g.jsx(ql,{scope:n,baseId:ae(),value:d,onValueChange:h,orientation:s,dir:f,activationMode:l,children:g.jsx(_.div,{dir:f,"data-orientation":s,...u,ref:t})})});ri.displayName=Pt;var ii="TabsList",si=c.forwardRef((e,t)=>{const{__scopeTabs:n,loop:o=!0,...r}=e,i=bn(ii,n),s=oi(n);return g.jsx(Gl,{asChild:!0,...s,orientation:i.orientation,dir:i.dir,loop:o,children:g.jsx(_.div,{role:"tablist","aria-orientation":i.orientation,...r,ref:t})})});si.displayName=ii;var ai="TabsTrigger",ci=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,disabled:r=!1,...i}=e,s=bn(ai,n),a=oi(n),l=fi(s.baseId,o),u=di(s.baseId,o),f=o===s.value;return g.jsx(Yl,{asChild:!0,...a,focusable:!r,active:f,children:g.jsx(_.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":u,"data-state":f?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:l,...i,ref:t,onMouseDown:O(e.onMouseDown,d=>{!r&&d.button===0&&d.ctrlKey===!1?s.onValueChange(o):d.preventDefault()}),onKeyDown:O(e.onKeyDown,d=>{[" ","Enter"].includes(d.key)&&s.onValueChange(o)}),onFocus:O(e.onFocus,()=>{const d=s.activationMode!=="manual";!f&&!r&&d&&s.onValueChange(o)})})})});ci.displayName=ai;var li="TabsContent",ui=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,forceMount:r,children:i,...s}=e,a=bn(li,n),l=fi(a.baseId,o),u=di(a.baseId,o),f=o===a.value,d=c.useRef(f);return c.useEffect(()=>{const h=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(h)},[]),g.jsx(Te,{present:r||f,children:({present:h})=>g.jsx(_.div,{"data-state":f?"active":"inactive","data-orientation":a.orientation,role:"tabpanel","aria-labelledby":l,hidden:!h,id:u,tabIndex:0,...s,ref:t,style:{...e.style,animationDuration:d.current?"0s":void 0},children:h&&i})})});ui.displayName=li;function fi(e,t){return`${e}-trigger-${t}`}function di(e,t){return`${e}-content-${t}`}var Ou=ri,Nu=si,_u=ci,Du=ui;export{du as A,ou as C,iu as D,Iu as F,Au as I,Nu as L,nu as O,tu as P,Tu as R,Cu as S,ru as T,hu as V,eu as a,su as b,Ou as c,Du as d,pu as e,mu as f,vu as g,gu as h,yu as i,wu as j,xu as k,bu as l,Su as m,Eu as n,_u as o,cu as p,lu as q,uu as r,fu as s,au as t,Ru as u,Pu as v,Ql as w}; diff --git a/assets/x-Bj25rnWX.js b/assets/x-BDSBB3q9.js similarity index 86% rename from assets/x-Bj25rnWX.js rename to assets/x-BDSBB3q9.js index 4d85636bcf0f85ec47c1c759f504750d5218a2d7..82d485ec32cfb5c689b6388776d80eba658bdc25 100644 --- a/assets/x-Bj25rnWX.js +++ b/assets/x-BDSBB3q9.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-DGWrSMOK.js";/** +import{c as o}from"./index-CmBdDSkw.js";/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. diff --git a/avatar/avatar_body.png b/avatar/avatar_body.png index 55c1d413ad61375bf551d039299bdd07ba44d1ed..f349092856ea6eb32193950791c3ae3b62e4a934 100644 --- a/avatar/avatar_body.png +++ b/avatar/avatar_body.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:986b59b02a0a8eeef1a213fd36eb0eb1c162919205fb05c40327f3cca8ff148f +oid sha256:124da04f53f64ebe47d83d1c54b15559dbe10696fdfd2d51d33c7a5d30ee92ef size 56620 diff --git a/avatar/left_horn.png b/avatar/left_horn.png index 68172c648481f675bf1616522b741ae39566c8c2..33230b0f9dce1093811f0392d1d9f844aed94597 100644 --- a/avatar/left_horn.png +++ b/avatar/left_horn.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bcfca296b19e17e9355a0ba9c9055f29218ff1cf8a47fca9abf60d91685df42b +oid sha256:f3cac81061607192756ed8098c1544cae786b5acfa9790a68d1e5c102b1a5d4c size 6518 diff --git a/avatar/pants_black.png b/avatar/pants_black.png index 1420e65bb957722576aecba797fa952d97300dde..a6c6196e4ce0f2814d78716b62e3bb3110130bc5 100644 --- a/avatar/pants_black.png +++ b/avatar/pants_black.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77ddb821cec000cff346cb0fe5250272a8043885d89d03fcf2b12ced8fd7502a +oid sha256:d8a08786143368d7cecc39803bb557d3c5fa1015f72cf3c886ff4d90c70f297a size 7336 diff --git a/avatar/pants_black_thumbnail.png b/avatar/pants_black_thumbnail.png index d551f75292a939a4d331e77a57f53769467920b3..cbf60df6e7413e804370f4e9f1b4eec17b10baae 100644 --- a/avatar/pants_black_thumbnail.png +++ b/avatar/pants_black_thumbnail.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2d2723d47c617c1034dffa40f2ddf80607f7aca7919cae813c360f92ef458c43 +oid sha256:a06a41e2504a4a76a301e6996422c108e4d22156ea0b040ea4dc664a8abaabc9 size 13116 diff --git a/avatar/right_horn.png b/avatar/right_horn.png index 20d13fc29a823fc4dee6ef5a67e1e5bae9b80674..94843fa3bb79d290baba0453de0f857ee6c5b484 100644 --- a/avatar/right_horn.png +++ b/avatar/right_horn.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b021960c4db25d397f11c2d1e72246260daa0dc8f48bb1b6f768afacb86fa54 +oid sha256:10e4ff20e4a454c2ada728d1352303ed9530121ada859b3886a15d339fdef68f size 6603 diff --git a/avatar/shoes_black.png b/avatar/shoes_black.png index b35dba758e3ea334e19b8ad67ddf52119b0db353..a1dd4c9f565042361863ab02cafc32e156835cb8 100644 --- a/avatar/shoes_black.png +++ b/avatar/shoes_black.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c3f8dde5a856bb32e0c082c3743f06edabd4435ab4ee4b91eddf8bd96ff33ce0 +oid sha256:6418ace3ccd3b6510e1c32cfa6d3aabd7c43b1bddeb1fe9550c641fb4dda2260 size 4276 diff --git a/avatar/shoes_black_thumbnail.png b/avatar/shoes_black_thumbnail.png index 675623b053e3b7c5a1f8ffe79d443ade35bc2ac5..6b27f9edf0305c3d5709272f4f8bf61509e77f97 100644 --- a/avatar/shoes_black_thumbnail.png +++ b/avatar/shoes_black_thumbnail.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c480df8c64a9c447c648cc5c5b7911b9f96c4b7d01f5250f047ac762f68b0caf +oid sha256:3628dfa57c92db318bfe6ae70b3a96014b2c85727d09c5979bf658eb25d5a18c size 6477 diff --git a/avatar/uniform_blue.png b/avatar/uniform_blue.png index 791be847c014bf5631a7559195e7e6d5157d5691..00c89be751fdcd9bc8c84ad8d53b3bb5654759dd 100644 --- a/avatar/uniform_blue.png +++ b/avatar/uniform_blue.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4389accfd82e95aa22a52a33fd130f1344105cf85011e7ecdbd9915ed18fb00 +oid sha256:2a3abc069b165c4e29bb698aee15808d085d0c03c76efe35aa1eb4504fdfbb17 size 18726 diff --git a/avatar/uniform_blue_thumbnail.png b/avatar/uniform_blue_thumbnail.png index f2459e3be0d890a2fec7e45385786bc333a18618..944fb904d511a92ab8b619c2de75d548ee4f3a74 100644 --- a/avatar/uniform_blue_thumbnail.png +++ b/avatar/uniform_blue_thumbnail.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d5ba09db5e7f98c663086fa649de4b91f1d70ea91a782540d53f63176db17af0 +oid sha256:926bb5477274120560bb1d59bb18dcc17e7c37514461a627d0cf061a6fafc29a size 26481 diff --git a/avatar/uniform_pink.png b/avatar/uniform_pink.png index 3ec12cef6029bc484208b14bb3236f9de7500c52..5f23d47931180361f4a45e5c94f1e81b387dfbd3 100644 --- a/avatar/uniform_pink.png +++ b/avatar/uniform_pink.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:154c716e74222b2ab20b67143480b9fd3caff3ec6421b4e9864c4879bfcb1ef6 +oid sha256:1bb58cc098d59f93d57090c3ca92ff7f2313b009b89516b326c90cde7c873a30 size 19030 diff --git a/avatar/uniform_pink_thumbnail.png b/avatar/uniform_pink_thumbnail.png index 985b3f1dc9e145fb6966423d4a4c941c4310988d..339269ffde357345b2207c1532ba22c7434d88d4 100644 --- a/avatar/uniform_pink_thumbnail.png +++ b/avatar/uniform_pink_thumbnail.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa9d9ca2b5d9e44407d4eec956f726de3c1dc9ef5b9711f7ccf9461e27b53b0a +oid sha256:f4c1b0d3287bb7f34305ddffc7be103f81dce64f0bc0d73b4a0c4baec24fb7dc size 26710 diff --git a/index.html b/index.html index c079443ceb4d7ef3fb9a9b983df0b950f503481b..6c65b46f684e7cb34638a8700d8493d820fa60f6 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,7 @@ #pp-static-loader .pp-spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid #0284c7;border-top-color:transparent;animation:pp-spin 1.5s linear infinite} #pp-static-loader .pp-msg{margin:0;font-size:.875rem;font-weight:600;color:#64748b} - +