loki-mode 9.48.2 → 9.49.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/loki-issue-to-pr.yml +1 -1
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/loki +137 -12
- package/autonomy/provider-offer.sh +47 -0
- package/autonomy/quickstart.sh +306 -9
- package/dashboard/__init__.py +1 -1
- package/dashboard/static/index.html +7 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/KNOWN-ISSUES.md +42 -0
- package/loki-ts/dist/loki.js +317 -317
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-PyyVXg4b.js → AdminPage-DpV2vW3y.js} +1 -1
- package/web-app/dist/assets/{Avatar-CTUlr_Xf.js → Avatar-BXeMYK1_.js} +1 -1
- package/web-app/dist/assets/{Badge-BQeXvmg8.js → Badge-D8WddQk1.js} +1 -1
- package/web-app/dist/assets/{Button-Dc6-P6pz.js → Button-CFzTTVeJ.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-BspOJ3Fv.js → CockpitPage-D1eQe9QF.js} +4 -4
- package/web-app/dist/assets/{ComparePage-CFXIM--Z.js → ComparePage-uX3OPphr.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-C7vQYDW9.js → ErrorBoundary-wE3oxaG6.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-CqjsjTOs.js → EvidenceReceiptPanel-B_Wouz6N.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-DyuNDMgD.js → GitHubIssuesPanel-DRlEeFuw.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-BtAq20xF.js → GitHubPRsPanel-CCv6_I74.js} +2 -2
- package/web-app/dist/assets/{HomePage-BuVFOrO8.js → HomePage-EG-jq8nR.js} +1 -1
- package/web-app/dist/assets/{LoginPage-CuhhrxGb.js → LoginPage-CEOnBICH.js} +1 -1
- package/web-app/dist/assets/{MagicPage-D2KZPX3F.js → MagicPage-DeWaFdsG.js} +1 -1
- package/web-app/dist/assets/MetricsPage-CG8CuSSJ.js +6 -0
- package/web-app/dist/assets/{NotFoundPage-CTnnaWlL.js → NotFoundPage-Mz5rOat6.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-uJFaoM8-.js → ProjectPage-D2Fh6tVw.js} +8 -8
- package/web-app/dist/assets/{ProjectsPage-8lKAOBIW.js → ProjectsPage-B8cRWkWa.js} +2 -2
- package/web-app/dist/assets/{SettingsPage-D1BBd5qy.js → SettingsPage-DKpsst6x.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-CmQ0n8iO.js → ShowcasePage-qab065PM.js} +1 -1
- package/web-app/dist/assets/SystemSettingsPage-9qmEH2Y6.js +1 -0
- package/web-app/dist/assets/{TeamsPage-BS0TtVUa.js → TeamsPage-CW6lvW-0.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-C2zPnnf2.js → TemplatesPage-B-a61T6a.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-Dle1klqq.js → TerminalOutput-CJy13rAn.js} +1 -1
- package/web-app/dist/assets/{activity-DQp5U9f9.js → activity-CA4moIvC.js} +1 -1
- package/web-app/dist/assets/{bell-BqkTmgL7.js → bell-JyOeobLN.js} +1 -1
- package/web-app/dist/assets/{bot-DILhaIGH.js → bot-Cu4UwP5w.js} +1 -1
- package/web-app/dist/assets/{check-BC9x7oPm.js → check-Drzd8-9c.js} +1 -1
- package/web-app/dist/assets/{chevron-left--yqvAfjx.js → chevron-left-ClvdXm3Y.js} +1 -1
- package/web-app/dist/assets/{circle-alert-DOH6PcgZ.js → circle-alert-CstyZfKG.js} +1 -1
- package/web-app/dist/assets/{clock-DKSDFsE6.js → clock-Bnz6tlQN.js} +1 -1
- package/web-app/dist/assets/{cloud-DRBU3JYs.js → cloud-IPIgE4P3.js} +1 -1
- package/web-app/dist/assets/{code-xml-D2LqszR9.js → code-xml-BOZbQiOt.js} +1 -1
- package/web-app/dist/assets/{database-D7ceedlh.js → database-CHclPjog.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-D0A47egY.js → dollar-sign-D6RFNgdZ.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-CH_Qbtjo.js → file-code-corner-CNayCvOY.js} +1 -1
- package/web-app/dist/assets/{file-plus-CUNMjHk9.js → file-plus-BmVfFwsX.js} +1 -1
- package/web-app/dist/assets/folder-open-ChzGfLRr.js +11 -0
- package/web-app/dist/assets/{globe-gZnaGg8N.js → globe-DtXgCG3Z.js} +1 -1
- package/web-app/dist/assets/{hammer-BhJC5DMK.js → hammer-DCa0I_7V.js} +1 -1
- package/web-app/dist/assets/{index-BMmYYws0.js → index-Cu-njJ8o.js} +3 -3
- package/web-app/dist/assets/index-D98GzaW8.css +1 -0
- package/web-app/dist/assets/{layers-glXeoUbJ.js → layers-DxIhn7NZ.js} +1 -1
- package/web-app/dist/assets/{lightbulb-gXn8H0Lf.js → lightbulb-D7Pzhd06.js} +1 -1
- package/web-app/dist/assets/{loader-circle-Do2ke8xm.js → loader-circle-DXgc_u5I.js} +1 -1
- package/web-app/dist/assets/{lock-Bgplb1_n.js → lock-qRAVU53b.js} +1 -1
- package/web-app/dist/assets/{mail-j4Lo8hfB.js → mail-CHe3KyCw.js} +1 -1
- package/web-app/dist/assets/{minus-dhrzKSK5.js → minus-B8p0FoYZ.js} +1 -1
- package/web-app/dist/assets/{package-CInWQQ97.js → package-C5LDn8SI.js} +1 -1
- package/web-app/dist/assets/{plus-BpYvoLlZ.js → plus-CRd_FHOA.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-F6koqEgF.js → refresh-cw-DKoSN8s3.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-CQ2W5S8f.js → rotate-ccw-Nf8zB8G0.js} +1 -1
- package/web-app/dist/assets/{save-DMCYGm06.js → save-B8ytQLgW.js} +1 -1
- package/web-app/dist/assets/{server-Bj8EX4Z1.js → server-D_VRDkaD.js} +1 -1
- package/web-app/dist/assets/{shield-alert-CiYuulCU.js → shield-alert-PsDkSyFD.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-BqEh1puP.js → thumbs-up-Da1QQhqo.js} +11 -6
- package/web-app/dist/assets/{trash-2-CCwouZJJ.js → trash-2-ChoylpGQ.js} +1 -1
- package/web-app/dist/assets/{trending-down-Cx1vhE4o.js → trending-down-CX2fUeho.js} +1 -1
- package/web-app/dist/assets/{trending-up-BUhVYJ2T.js → trending-up-CGyYgZH7.js} +1 -1
- package/web-app/dist/assets/{upload-D5IsZeFM.js → upload-KkeVyg67.js} +1 -1
- package/web-app/dist/assets/{usePolling-CJbfhFcH.js → usePolling-C5f4xrXD.js} +1 -1
- package/web-app/dist/assets/{user-BRLhezsD.js → user-WCGccIST.js} +1 -1
- package/web-app/dist/index.html +2 -2
- package/web-app/server.py +121 -1
- package/web-app/dist/assets/MetricsPage-DFEYJl9z.js +0 -6
- package/web-app/dist/assets/SystemSettingsPage-CSHaVyuD.js +0 -6
- package/web-app/dist/assets/copy-BKW4U4Qr.js +0 -6
- package/web-app/dist/assets/folder-open-CQ_SVq94.js +0 -6
- package/web-app/dist/assets/git-commit-horizontal-DQUBe0oD.js +0 -6
- package/web-app/dist/assets/index-84JUN_aA.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-EG-jq8nR.js","assets/usePolling-C5f4xrXD.js","assets/ErrorBoundary-wE3oxaG6.js","assets/TerminalOutput-CJy13rAn.js","assets/lock-qRAVU53b.js","assets/EvidenceReceiptPanel-B_Wouz6N.js","assets/Badge-D8WddQk1.js","assets/clock-Bnz6tlQN.js","assets/circle-alert-CstyZfKG.js","assets/check-Drzd8-9c.js","assets/package-C5LDn8SI.js","assets/cloud-IPIgE4P3.js","assets/code-xml-BOZbQiOt.js","assets/hammer-DCa0I_7V.js","assets/chevron-left-ClvdXm3Y.js","assets/layers-DxIhn7NZ.js","assets/mail-CHe3KyCw.js","assets/bell-JyOeobLN.js","assets/file-code-corner-CNayCvOY.js","assets/ProjectPage-D2Fh6tVw.js","assets/Button-CFzTTVeJ.js","assets/file-plus-BmVfFwsX.js","assets/activity-CA4moIvC.js","assets/bot-Cu4UwP5w.js","assets/loader-circle-DXgc_u5I.js","assets/dollar-sign-D6RFNgdZ.js","assets/refresh-cw-DKoSN8s3.js","assets/globe-DtXgCG3Z.js","assets/folder-open-ChzGfLRr.js","assets/thumbs-up-Da1QQhqo.js","assets/upload-KkeVyg67.js","assets/plus-CRd_FHOA.js","assets/trash-2-ChoylpGQ.js","assets/rotate-ccw-Nf8zB8G0.js","assets/minus-B8p0FoYZ.js","assets/save-B8ytQLgW.js","assets/trending-up-CGyYgZH7.js","assets/trending-down-CX2fUeho.js","assets/server-D_VRDkaD.js","assets/ProjectPage-9CEnUXvW.css","assets/CockpitPage-D1eQe9QF.js","assets/ProjectsPage-B8cRWkWa.js","assets/lightbulb-D7Pzhd06.js","assets/TemplatesPage-B-a61T6a.js","assets/database-CHclPjog.js","assets/SettingsPage-DKpsst6x.js","assets/TeamsPage-CW6lvW-0.js","assets/Avatar-BXeMYK1_.js","assets/user-WCGccIST.js","assets/AdminPage-DpV2vW3y.js","assets/shield-alert-PsDkSyFD.js","assets/SystemSettingsPage-9qmEH2Y6.js","assets/MetricsPage-CG8CuSSJ.js","assets/MagicPage-DeWaFdsG.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var P0=Object.defineProperty;var ep=(i,c,r)=>c in i?P0(i,c,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[c]=r;var Ln=(i,c,r)=>ep(i,typeof c!="symbol"?c+"":c,r);(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))o(d);new MutationObserver(d=>{for(const m of d)if(m.type==="childList")for(const p of m.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&o(p)}).observe(document,{childList:!0,subtree:!0});function r(d){const m={};return d.integrity&&(m.integrity=d.integrity),d.referrerPolicy&&(m.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?m.credentials="include":d.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function o(d){if(d.ep)return;d.ep=!0;const m=r(d);fetch(d.href,m)}})();function tp(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Ls={exports:{}},Bn={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -353,7 +353,7 @@ Please change the parent <Route path="${q}"> to <Route path="${q==="/"?"*":`${q}
|
|
|
353
353
|
*
|
|
354
354
|
* This source code is licensed under the ISC license.
|
|
355
355
|
* See the LICENSE file in the root directory of this source tree.
|
|
356
|
-
*/const jg=[["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"}]],Rg=W("zap",jg),ho="/lab/".replace(/\/$/,""),hi=`${window.location.origin}${ho}/api`,Ag=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${ho}/ws`,k2=ho;function Sm(){const i={"Content-Type":"application/json"};try{const c=localStorage.getItem("pl_auth_token");c&&(i.Authorization=`Bearer ${c}`)}catch{}return i}async function k(i,c){const r=await fetch(`${hi}${i}`,{...c,headers:{...Sm(),...c==null?void 0:c.headers}});if(!r.ok){const d=await r.text().catch(()=>"");throw new Error(`API error ${r.status}: ${r.statusText}${d?` - ${d}`:""}`)}if(!(r.headers.get("content-type")||"").includes("application/json"))throw new Error("API endpoint not available. Please restart the server with the latest version.");return r.json()}const Ba={listProofs:()=>k("/proofs"),proofsSummary:()=>k("/proofs/summary"),getProof:i=>k(`/proofs/${encodeURIComponent(i)}`),startSession:i=>k("/session/start",{method:"POST",body:JSON.stringify(i)}),quickStart:(i,c="claude")=>k("/session/quick-start",{method:"POST",body:JSON.stringify({prompt:i,provider:c})}),stopSession:()=>k("/session/stop",{method:"POST"}),pauseSession:()=>k("/session/pause",{method:"POST"}),resumeSession:()=>k("/session/resume",{method:"POST"}),getPrdPrefill:()=>k("/session/prd-prefill"),getStatus:()=>k("/session/status"),getAgents:()=>k("/session/agents"),getLogs:(i=200)=>k(`/session/logs?lines=${i}`),getMemorySummary:()=>k("/session/memory"),getChecklist:()=>k("/session/checklist"),getFiles:()=>k("/session/files"),getFileContent:i=>k(`/session/files/content?path=${encodeURIComponent(i)}`),getSessionFileContent:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/file?path=${encodeURIComponent(c)}`),getTemplates:()=>k("/templates"),getTemplateContent:i=>k(`/templates/${encodeURIComponent(i)}`),planSession:(i,c)=>k("/session/plan",{method:"POST",body:JSON.stringify({prd:i,provider:c})}),generateReport:(i="markdown")=>k("/session/report",{method:"POST",body:JSON.stringify({format:i})}),shareSession:()=>k("/session/share",{method:"POST"}),getCurrentProvider:()=>k("/provider/current"),setProvider:i=>k("/provider/set",{method:"POST",body:JSON.stringify({provider:i})}),getMetrics:()=>k("/session/metrics"),getSessionsHistory:()=>k("/sessions/history"),getSessionDetail:i=>k(`/sessions/${encodeURIComponent(i)}`),deleteSession:i=>k(`/sessions/${encodeURIComponent(i)}`,{method:"DELETE"}),onboardRepo:i=>k("/session/onboard",{method:"POST",body:JSON.stringify({path:i})}),saveSessionFile:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/file`,{method:"PUT",body:JSON.stringify({path:c,content:r})}),createSessionFile:(i,c,r="")=>k(`/sessions/${encodeURIComponent(i)}/file`,{method:"POST",body:JSON.stringify({path:c,content:r})}),deleteSessionFile:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/file`,{method:"DELETE",body:JSON.stringify({path:c})}),createSessionDirectory:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/directory`,{method:"POST",body:JSON.stringify({path:c})}),reviewProject:i=>k(`/sessions/${encodeURIComponent(i)}/review`,{method:"POST"}),testProject:i=>k(`/sessions/${encodeURIComponent(i)}/test`,{method:"POST"}),explainProject:i=>k(`/sessions/${encodeURIComponent(i)}/explain`,{method:"POST"}),exportProject:i=>k(`/sessions/${encodeURIComponent(i)}/export`,{method:"POST"}),fixProject:i=>k(`/sessions/${encodeURIComponent(i)}/fix`,{method:"POST"}),chatMessage:(i,c,r="quick")=>k(`/sessions/${encodeURIComponent(i)}/chat`,{method:"POST",body:JSON.stringify({message:c,mode:r})}),chatStart:(i,c,r="quick",o)=>k(`/sessions/${encodeURIComponent(i)}/chat`,{method:"POST",body:JSON.stringify({message:c,mode:r,history:o})}),chatPoll:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/chat/${encodeURIComponent(c)}`),chatStreamUrl:(i,c)=>`${hi}/sessions/${encodeURIComponent(i)}/chat/${encodeURIComponent(c)}/stream`,chatCancel:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/chat/${encodeURIComponent(c)}/cancel`,{method:"POST"}),getPreviewInfo:i=>k(`/sessions/${encodeURIComponent(i)}/preview-info`),devserver:{start:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/devserver/start`,{method:"POST",body:JSON.stringify({command:c||null})}),stop:i=>k(`/sessions/${encodeURIComponent(i)}/devserver/stop`,{method:"POST"}),status:i=>k(`/sessions/${encodeURIComponent(i)}/devserver/status`)},getSecrets:()=>k("/secrets"),setSecret:(i,c)=>k("/secrets",{method:"POST",body:JSON.stringify({key:i,value:c})}),deleteSecret:i=>k(`/secrets/${encodeURIComponent(i)}`,{method:"DELETE"}),getServices:i=>k(`/sessions/${encodeURIComponent(i)}/services`),getTeams:()=>k("/teams"),createTeam:i=>k("/teams",{method:"POST",body:JSON.stringify({name:i})}),getTeamMembers:i=>k(`/teams/${encodeURIComponent(i)}/members`),addTeamMember:(i,c,r)=>k(`/teams/${encodeURIComponent(i)}/members`,{method:"POST",body:JSON.stringify({email:c,role:r})}),getAuditLog:()=>k("/audit-log"),getServiceLogs:(i,c,r=50)=>k(`/sessions/${encodeURIComponent(i)}/devserver/logs${c?`?service=${encodeURIComponent(c)}&tail=${r}`:`?tail=${r}`}`),getCheckpoints:i=>k(`/sessions/${encodeURIComponent(i)}/checkpoints`),restoreCheckpoint:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/checkpoints/${encodeURIComponent(c)}/restore`,{method:"POST"}),previewChanges:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/chat/preview`,{method:"POST",body:JSON.stringify({message:c})}),searchFiles:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/files/search?q=${encodeURIComponent(c)}`),restartService:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/devserver/restart-service`,{method:"POST",body:JSON.stringify({service:c})}),deployProject:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/deploy`,{method:"POST",body:JSON.stringify({platform:c})}),githubPush:i=>k(`/sessions/${encodeURIComponent(i)}/github/push`,{method:"POST"}),getGitHubIssues:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/issues?${new URLSearchParams({...c?{state:c}:{},...r?{limit:String(r)}:{}}).toString()}`),getGitHubIssue:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/issues/${c}`),fixGitHubIssue:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/issues/${c}/fix`,{method:"POST"}),getGitHubPRs:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/prs?${new URLSearchParams({...c?{state:c}:{},...r?{limit:String(r)}:{}}).toString()}`),getGitHubPR:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}`),getGitHubPRDiff:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}/diff`),reviewGitHubPR:(i,c,r,o)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}/review`,{method:"POST",body:JSON.stringify({action:r,body:o})}),mergeGitHubPR:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}/merge`,{method:"POST",body:JSON.stringify({method:r})}),getWorkflowRuns:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/runs?${new URLSearchParams({...c?{limit:String(c)}:{}}).toString()}`),getWorkflowRunDetail:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/runs/${c}`),getWorkflowRunLogs:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/runs/${c}/logs`),getWorkflows:i=>k(`/sessions/${encodeURIComponent(i)}/github/workflows`),dispatchWorkflow:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/workflows/dispatch`,{method:"POST",body:JSON.stringify({workflow:c,ref:r})}),rerunWorkflow:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/runs/${c}/rerun`,{method:"POST"}),cancelWorkflow:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/runs/${c}/cancel`,{method:"POST"}),importGitHubRepo:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/import`,{method:"POST",body:JSON.stringify({repo:c,...r?{branch:r}:{}})}),getDeployStatus:()=>k("/deploy/status"),connectVercel:i=>k("/deploy/vercel/connect",{method:"POST",body:JSON.stringify({token:i})}),connectNetlify:i=>k("/deploy/netlify/connect",{method:"POST",body:JSON.stringify({token:i})}),disconnectPlatform:i=>k(`/deploy/${encodeURIComponent(i)}/disconnect`,{method:"POST"}),getMe:()=>k("/auth/me"),getGitHubAuthUrl:()=>k("/auth/github/url"),getGoogleAuthUrl:()=>k("/auth/google/url"),githubCallback:(i,c)=>k("/auth/github/callback",{method:"POST",body:JSON.stringify({code:i,state:c})}),googleCallback:(i,c,r)=>k("/auth/google/callback",{method:"POST",body:JSON.stringify({code:i,state:c,redirect_uri:r||`${window.location.origin}${window.location.pathname}`})}),git:{status:i=>k(`/sessions/${encodeURIComponent(i)}/git/status`),log:(i,c=20)=>k(`/sessions/${encodeURIComponent(i)}/git/log?limit=${c}`),branches:i=>k(`/sessions/${encodeURIComponent(i)}/git/branches`),commit:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/git/commit`,{method:"POST",body:JSON.stringify({message:c,files:r})}),createBranch:(i,c,r=!0)=>k(`/sessions/${encodeURIComponent(i)}/git/branch`,{method:"POST",body:JSON.stringify({name:c,checkout:r})}),checkoutBranch:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/git/checkout`,{method:"POST",body:JSON.stringify({name:c})}),push:i=>k(`/sessions/${encodeURIComponent(i)}/git/push`,{method:"POST"}),pr:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/git/pr`,{method:"POST",body:JSON.stringify({title:c,body:r})})},generateDocs:i=>k(`/sessions/${encodeURIComponent(i)}/docs/generate`,{method:"POST"}),getDocsStatus:i=>k(`/sessions/${encodeURIComponent(i)}/docs/status`),getDocFiles:i=>k(`/sessions/${encodeURIComponent(i)}/docs/files`),getDocFileContent:async(i,c)=>{const r=await fetch(`${hi}/sessions/${encodeURIComponent(i)}/docs/files/${encodeURIComponent(c)}`,{headers:Sm()});if(!r.ok)throw new Error(`API error ${r.status}: ${r.statusText}`);return r.text()},chatImageUpload:async(i,c)=>{const r=new FormData;r.append("image",c);const o=await fetch(`${hi}/sessions/${encodeURIComponent(i)}/chat/image`,{method:"POST",headers:{...(()=>{const d={};try{const m=localStorage.getItem("pl_auth_token");m&&(d.Authorization=`Bearer ${m}`)}catch{}return d})()},body:r});if(!o.ok){const d=await o.text().catch(()=>"");throw new Error(`API error ${o.status}: ${o.statusText}${d?` - ${d}`:""}`)}return o.json()}};class Og{constructor(c){Ln(this,"ws",null);Ln(this,"listeners",new Map);Ln(this,"reconnectTimer",null);Ln(this,"url");this.url=c||Ag}connect(){var c;((c=this.ws)==null?void 0:c.readyState)!==WebSocket.OPEN&&(this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.emit("connected",{message:"WebSocket connected"})},this.ws.onmessage=r=>{try{const o=JSON.parse(r.data);if(o.type==="ping"){this.send({type:"pong"});return}this.emit(o.type,o.data||o)}catch{}},this.ws.onclose=()=>{this.emit("disconnected",{}),this.scheduleReconnect()},this.ws.onerror=()=>{var r;(r=this.ws)==null||r.close()})}scheduleReconnect(){this.reconnectTimer||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},3e3))}on(c,r){return this.listeners.has(c)||this.listeners.set(c,new Set),this.listeners.get(c).add(r),()=>{var o;return(o=this.listeners.get(c))==null?void 0:o.delete(r)}}emit(c,r){var o,d;(o=this.listeners.get(c))==null||o.forEach(m=>m(r)),(d=this.listeners.get("*"))==null||d.forEach(m=>m({type:c,data:r}))}send(c){var r;((r=this.ws)==null?void 0:r.readyState)===WebSocket.OPEN&&this.ws.send(JSON.stringify(c))}disconnect(){var c;this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),(c=this.ws)==null||c.close(),this.ws=null}}const Js="pl_auth_token",Em=v.createContext({user:null,loading:!0,login:()=>{},logout:()=>{},isLocalMode:!0});function Mg(i,c,r){c(!1),r({email:i.sub||i.email||"",name:i.name||"",avatar_url:i.avatar||"",authenticated:!0})}function Dg({children:i}){const[c,r]=v.useState(null),[o,d]=v.useState(!0),[m,p]=v.useState(!0),E=ao(),x=kt();v.useEffect(()=>{let H=!1;async function L(){const B=new URLSearchParams(window.location.search),U=B.get("token"),Q=B.get("code");if(U)localStorage.setItem(Js,U),window.history.replaceState({},"",window.location.pathname);else if(Q)try{const q=sessionStorage.getItem("pl_oauth_provider")||"github",I=sessionStorage.getItem("pl_oauth_state")||"";sessionStorage.removeItem("pl_oauth_state"),sessionStorage.removeItem("pl_oauth_provider");let J;if(q==="google"?J=await Ba.googleCallback(Q,I):J=await Ba.githubCallback(Q,I),!H){localStorage.setItem(Js,J.token),window.history.replaceState({},"",window.location.pathname),p(!1),r({email:J.user.email,name:J.user.name,avatar_url:J.user.avatar_url,authenticated:!0}),d(!1);return}}catch{window.history.replaceState({},"",window.location.pathname)}try{const q=await Ba.getMe();if(H)return;q.local_mode?(p(!0),r(null)):q.authenticated?Mg(q,p,r):(p(!1),r(null))}catch{if(H)return;p(!0),r(null)}finally{H||d(!1)}}return L(),()=>{H=!0}},[]);const y=v.useCallback(H=>{H==="github"?Ba.getGitHubAuthUrl().then(L=>{try{const U=new URL(L.url).searchParams.get("state");U&&(sessionStorage.setItem("pl_oauth_state",U),sessionStorage.setItem("pl_oauth_provider","github"))}catch{}window.location.href=L.url}).catch(()=>{}):H==="google"&&Ba.getGoogleAuthUrl().then(L=>{try{const U=new URL(L.url).searchParams.get("state");U&&(sessionStorage.setItem("pl_oauth_state",U),sessionStorage.setItem("pl_oauth_provider","google"))}catch{}window.location.href=L.url}).catch(()=>{})},[]),z=v.useCallback(()=>{localStorage.removeItem(Js),r(null),x.pathname!=="/login"&&E("/login",{replace:!0})},[E,x.pathname]),_=v.useMemo(()=>({user:c,loading:o,login:y,logout:z,isLocalMode:m}),[c,o,y,z,m]);return h.jsx(Em.Provider,{value:_,children:i})}function _m(){return v.useContext(Em)}function Ug(){const[i,c]=v.useState(()=>typeof window>"u"?"light":localStorage.getItem("pl_theme")||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"));v.useEffect(()=>{document.documentElement.classList.toggle("dark",i==="dark"),localStorage.setItem("pl_theme",i)},[i]);const r=v.useCallback(()=>{c(o=>o==="light"?"dark":"light")},[]);return{theme:i,toggleTheme:r,isDark:i==="dark"}}const Tm="pl_discovered_features";function zm(){try{const i=localStorage.getItem(Tm);if(i)return new Set(JSON.parse(i))}catch{}return new Set}function wg(i){try{localStorage.setItem(Tm,JSON.stringify([...i]))}catch{}}function Hg(i){const c=zm();c.has(i)||(c.add(i),wg(c),window.dispatchEvent(new CustomEvent("pl_feature_discovered",{detail:i})))}function kg({feature:i,className:c=""}){const[r,o]=v.useState(!0);return v.useEffect(()=>{o(zm().has(i))},[i]),v.useEffect(()=>{const d=m=>{m.detail===i&&o(!0)};return window.addEventListener("pl_feature_discovered",d),()=>window.removeEventListener("pl_feature_discovered",d)},[i]),r?null:h.jsxs("span",{className:`relative inline-flex ${c}`,"aria-hidden":"true",children:[h.jsx("span",{className:"absolute inline-flex h-2.5 w-2.5 rounded-full bg-primary/40 animate-ping"}),h.jsx("span",{className:"relative inline-flex h-2.5 w-2.5 rounded-full bg-primary"})]})}const Nm="pl_getting_started_steps",Hh="pl_getting_started_dismissed",kh="pl_getting_started_collapsed",Lh=[{id:"create_project",label:"Create your first project",description:"Describe what you want to build or pick a template to get started.",icon:vm},{id:"try_chat",label:"Try the AI chat",description:"Ask the AI to modify, explain, or improve your code.",icon:oo},{id:"preview_app",label:"Preview your app",description:"Open the Preview tab to see your application running live.",icon:pm},{id:"explore_templates",label:"Explore templates",description:"Browse the template gallery for inspiration and quick starts.",icon:so},{id:"deploy_app",label:"Deploy your app",description:"Push your project live with one click using the Deploy tab.",icon:ro}];function Bh(){try{const i=localStorage.getItem(Nm);if(i)return new Set(JSON.parse(i))}catch{}return new Set}function Lg(i){try{localStorage.setItem(Nm,JSON.stringify([...i]))}catch{}}function Bg(){const[i,c]=v.useState(!1),[r,o]=v.useState(!1),[d,m]=v.useState(new Set);v.useEffect(()=>{try{if(localStorage.getItem(Hh)==="1"){c(!0);return}o(localStorage.getItem(kh)==="1")}catch{}m(Bh())},[]),v.useEffect(()=>{const L=()=>m(Bh());return window.addEventListener("pl_step_complete",L),()=>window.removeEventListener("pl_step_complete",L)},[]);const p=v.useCallback(L=>{m(B=>{const U=new Set(B);return U.has(L)?U.delete(L):U.add(L),Lg(U),U})},[]),E=()=>{c(!0);try{localStorage.setItem(Hh,"1")}catch{}},x=()=>{o(L=>{const B=!L;try{localStorage.setItem(kh,B?"1":"0")}catch{}return B})};if(i)return null;const y=d.size,z=Lh.length,_=y/z*100,H=y===z;return h.jsxs("div",{className:"bg-card border border-border rounded-xl shadow-sm overflow-hidden",children:[h.jsxs("button",{onClick:x,className:"w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-hover transition-colors",children:[h.jsx(kv,{size:16,className:"text-primary flex-shrink-0"}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("span",{className:"text-sm font-heading font-bold text-ink",children:"Getting Started"}),h.jsxs("span",{className:"text-[11px] text-muted-accessible font-mono",children:[y,"/",z]})]}),h.jsx("div",{className:"h-1 bg-border rounded-full mt-1.5 overflow-hidden",children:h.jsx("div",{className:"h-full bg-primary rounded-full transition-all duration-500",style:{width:`${_}%`}})})]}),h.jsx("div",{className:"flex items-center gap-1",children:r?h.jsx(nv,{size:14,className:"text-muted"}):h.jsx(mm,{size:14,className:"text-muted"})})]}),!r&&h.jsxs("div",{className:"border-t border-border",children:[h.jsx("div",{className:"px-3 py-2 space-y-0.5",children:Lh.map(L=>{const B=d.has(L.id),U=L.icon;return h.jsxs("button",{onClick:()=>p(L.id),className:`w-full flex items-start gap-3 px-3 py-2.5 rounded-lg text-left transition-colors ${B?"opacity-60 hover:opacity-80":"hover:bg-hover"}`,children:[h.jsx("div",{className:"mt-0.5 flex-shrink-0",children:B?h.jsx(rv,{size:16,className:"text-success"}):h.jsx(yv,{size:16,className:"text-border"})}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsx("span",{className:`text-xs font-medium ${B?"text-muted line-through":"text-ink"}`,children:L.label}),!B&&h.jsx("p",{className:"text-[11px] text-muted-accessible mt-0.5 leading-relaxed",children:L.description})]}),h.jsx(U,{size:14,className:`flex-shrink-0 mt-0.5 ${B?"text-muted":"text-primary/50"}`})]},L.id)})}),h.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-t border-border",children:[H?h.jsx("span",{className:"text-xs text-success font-medium",children:"All done -- you are ready to build!"}):h.jsx("span",{className:"text-[11px] text-muted",children:"Complete each step to learn the basics."}),h.jsxs("button",{onClick:E,className:"flex items-center gap-1 text-[11px] text-muted hover:text-ink transition-colors",children:[h.jsx(ea,{size:11}),"Dismiss"]})]})]})]})}const qh="pl_sidebar_collapsed",qg=[{to:"/",label:"Home",icon:Ov},{to:"/projects",label:"Projects",icon:_v},{to:"/templates",label:"Templates",icon:so,discoveryFeature:"templates"},{to:"/showcase",label:"Showcase",icon:fo},{to:"/magic",label:"Magic",icon:Tg},{to:"/metrics",label:"Metrics",icon:lv},{to:"/compare",label:"Compare",icon:Rv},{to:"/teams",label:"Teams",icon:xg}],Yg=[{to:"/settings",label:"Settings",icon:xm},{to:"/admin",label:"Admin",icon:ug},{to:"/admin/settings",label:"System",icon:Ng}];function Gg(){const[i,c]=v.useState(typeof window<"u"?window.innerWidth<768:!1);return v.useEffect(()=>{const r=()=>c(window.innerWidth<768);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),i}function Qg({wsConnected:i,version:c,onOpenDocs:r}){const o=Gg(),d=kt(),{theme:m,toggleTheme:p}=Ug(),[E,x]=v.useState(!1),[y,z]=v.useState(()=>{try{return localStorage.getItem(qh)==="1"}catch{return!1}});v.useEffect(()=>{try{localStorage.setItem(qh,y?"1":"0")}catch{}},[y]),v.useEffect(()=>{o&&x(!1)},[d.pathname,o]);const _=o?E:!y,H=_?240:64,L=U=>["flex items-center gap-3 px-3 py-2 text-sm transition-colors rounded-[5px]",!_&&"justify-center",U?"bg-[#553DE9]/8 text-[#553DE9] font-medium border-l-2 border-[#553DE9]":"text-[#36342E] hover:bg-[#F8F4F0]"].filter(Boolean).join(" "),B=h.jsxs("aside",{className:"flex flex-col h-full border-r border-[#ECEAE3] bg-white transition-[width] duration-200",style:{width:H,minWidth:H},children:[h.jsxs("div",{className:"flex items-center justify-between px-4 h-14 border-b border-[#ECEAE3]",children:[_&&h.jsxs("div",{className:"flex flex-col",children:[h.jsx("span",{className:"font-heading text-lg font-bold leading-tight text-[#36342E]",children:"Purple Lab"}),h.jsx("span",{className:"text-xs text-[#6B6960]",children:"Powered by Loki"})]}),o?h.jsx("button",{type:"button","aria-label":E?"Close menu":"Open menu",title:E?"Close menu":"Open menu",onClick:()=>x(!E),className:"inline-flex items-center justify-center w-7 h-7 rounded-[3px] text-[#939084] hover:bg-[#F8F4F0] transition-colors",children:E?h.jsx(ea,{size:16}):h.jsx(Yv,{size:16})}):h.jsx("button",{type:"button","aria-label":y?"Expand sidebar":"Collapse sidebar",title:y?"Expand sidebar":"Collapse sidebar",onClick:()=>z(!y),className:"inline-flex items-center justify-center w-7 h-7 rounded-[3px] text-[#939084] hover:bg-[#F8F4F0] transition-colors",children:y?h.jsx(Iv,{size:16}):h.jsx(Wv,{size:16})})]}),h.jsxs("nav",{className:"flex-1 px-2 py-3 flex flex-col gap-1","aria-label":"Main navigation",children:[qg.map(U=>h.jsxs(yi,{to:U.to,end:U.to==="/",className:({isActive:Q})=>L(Q),title:_?void 0:U.label,onClick:()=>{U.discoveryFeature&&Hg(U.discoveryFeature)},children:[h.jsxs("div",{className:"relative",children:[h.jsx(U.icon,{size:18}),U.discoveryFeature&&h.jsx(kg,{feature:U.discoveryFeature,className:"absolute -top-1 -right-1"})]}),_&&h.jsx("span",{children:U.label})]},U.to)),h.jsx("div",{className:"my-2 border-t border-[#ECEAE3]"}),Yg.map(U=>h.jsxs(yi,{to:U.to,className:({isActive:Q})=>L(Q),title:_?void 0:U.label,children:[h.jsx(U.icon,{size:18}),_&&h.jsx("span",{children:U.label})]},U.to)),_&&h.jsx("div",{className:"mt-3 px-1",children:h.jsx(Bg,{})})]}),h.jsxs("div",{className:"px-3 py-3 border-t border-[#ECEAE3] flex flex-col gap-2",children:[h.jsx(Xg,{collapsed:!_}),h.jsxs("div",{className:["flex items-center gap-2 text-xs",!_&&"justify-center"].filter(Boolean).join(" "),children:[h.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${i?"bg-[#1FC5A8]":"bg-[#C45B5B]"}`}),_&&h.jsx("span",{className:"text-[#6B6960]",children:i?"Connected":"Disconnected"})]}),_&&c&&h.jsxs("span",{className:"text-xs text-[#6B6960]",children:["v",c]}),h.jsxs("button",{onClick:p,title:m==="dark"?"Light mode":"Dark mode",className:["flex items-center gap-2 text-xs text-[#6B6960] hover:text-[#36342E] transition-colors",!_&&"justify-center"].filter(Boolean).join(" "),children:[m==="dark"?h.jsx(mg,{size:14}):h.jsx(Zv,{size:14}),_&&h.jsx("span",{children:m==="dark"?"Light Mode":"Dark Mode"})]}),h.jsxs("button",{onClick:r,className:["flex items-center gap-2 text-xs text-[#6B6960] hover:text-[#36342E] transition-colors",!_&&"justify-center"].filter(Boolean).join(" "),title:_?void 0:"Help & Docs",children:[h.jsx(ym,{size:14}),_&&h.jsx("span",{children:"Help & Docs"})]}),h.jsxs("a",{href:"https://www.autonomi.dev/docs",target:"_blank",rel:"noopener noreferrer",className:["flex items-center gap-2 text-xs text-[#6B6960] hover:text-[#36342E] transition-colors",!_&&"justify-center"].filter(Boolean).join(" "),title:_?void 0:"Documentation",children:[h.jsx(hm,{size:14}),_&&h.jsx("span",{children:"Docs"})]})]})]});return o&&E?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"fixed inset-0 z-40 bg-ink/20",onClick:()=>x(!1)}),h.jsx("div",{className:"fixed inset-y-0 left-0 z-50",children:B})]}):B}function Xg({collapsed:i}){const{user:c,logout:r,isLocalMode:o}=_m(),[d,m]=v.useState(!1),p=v.useRef(null);return v.useEffect(()=>{function E(x){p.current&&!p.current.contains(x.target)&&m(!1)}if(d)return document.addEventListener("mousedown",E),()=>document.removeEventListener("mousedown",E)},[d]),o||!c?h.jsxs("div",{className:["flex items-center gap-2 text-xs",i&&"justify-center"].filter(Boolean).join(" "),title:i?"Local Mode":void 0,children:[h.jsx(Xv,{size:14,className:"text-[#939084] flex-shrink-0"}),!i&&h.jsx("span",{className:"text-[#939084]",children:"Local Mode"})]}):h.jsxs("div",{className:"relative",ref:p,"data-testid":"user-section",children:[h.jsxs("button",{type:"button",onClick:()=>m(!d),className:["flex items-center gap-2 w-full text-left text-xs rounded-[3px] py-1 px-1 hover:bg-[#F8F4F0] transition-colors",i&&"justify-center"].filter(Boolean).join(" "),title:i?c.name||c.email:void 0,children:[c.avatar_url?h.jsx("img",{src:c.avatar_url,alt:"",className:"w-5 h-5 rounded-full flex-shrink-0"}):h.jsx("div",{className:"w-5 h-5 rounded-full bg-[#553DE9] flex items-center justify-center text-white text-[10px] font-bold flex-shrink-0",children:(c.name||c.email||"?")[0].toUpperCase()}),!i&&h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"text-[#36342E] truncate flex-1",children:c.name||c.email}),h.jsx(mm,{size:12,className:`text-[#939084] transition-transform ${d?"":"rotate-180"}`})]})]}),d&&h.jsxs("div",{className:"absolute bottom-full left-0 mb-1 w-48 bg-white border border-[#ECEAE3] rounded-lg shadow-lg py-1 z-50",children:[h.jsxs("div",{className:"px-3 py-2 border-b border-[#ECEAE3]",children:[h.jsx("p",{className:"text-xs font-medium text-[#36342E] truncate",children:c.name}),h.jsx("p",{className:"text-xs text-[#939084] truncate",children:c.email})]}),h.jsxs(yi,{to:"/settings",onClick:()=>m(!1),className:"flex items-center gap-2 px-3 py-2 text-xs text-[#36342E] hover:bg-[#F8F4F0] transition-colors",children:[h.jsx(xm,{size:14}),"Settings"]}),h.jsxs("button",{type:"button",onClick:()=>{m(!1),r()},className:"flex items-center gap-2 px-3 py-2 text-xs text-[#C45B5B] hover:bg-[#F8F4F0] transition-colors w-full text-left",children:[h.jsx(Bv,{size:14}),"Sign out"]})]})]})}const qa=[];function Vg(i){if(i.key==="Escape"&&qa.length>0){i.preventDefault(),i.stopPropagation();const c=qa[qa.length-1];c()}}let Yh=!1;function Zg(){Yh||(document.addEventListener("keydown",Vg),Yh=!0)}function Jg(i,c){const r=v.useRef(c);r.current=c;const o=v.useCallback(()=>{r.current()},[]);v.useEffect(()=>{if(i)return Zg(),qa.push(o),()=>{const d=qa.indexOf(o);d!==-1&&qa.splice(d,1)}},[i,o])}const Gh=["a[href]","button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function Kg(i){const c=v.useRef(null),r=v.useRef(null);return v.useEffect(()=>{if(!i)return;r.current=document.activeElement;const o=c.current;if(!o)return;const d=o.querySelectorAll(Gh);d.length>0&&requestAnimationFrame(()=>d[0].focus());const m=p=>{if(p.key!=="Tab")return;const E=o.querySelectorAll(Gh);if(E.length===0)return;const x=E[0],y=E[E.length-1];p.shiftKey?document.activeElement===x&&(p.preventDefault(),y.focus()):document.activeElement===y&&(p.preventDefault(),x.focus())};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),r.current&&typeof r.current.focus=="function"&&r.current.focus()}},[i]),c}const Qh="pl_onboarding_complete",Gn=[{icon:vm,title:"Write your spec",description:"Describe what you want to build, or choose a template to get started quickly."},{icon:pg,title:"Use the terminal",description:"Run commands directly in the integrated terminal to install dependencies or debug."},{icon:pm,title:"Preview in real-time",description:"Switch to the Preview tab to see your app running with live reload."},{icon:oo,title:"Iterate with AI Chat",description:"Ask the AI to modify, fix, or explain your code in the chat panel."}];function $g(){const[i,c]=v.useState(!1),[r,o]=v.useState(0),d=Kg(i);Jg(i,()=>{i&&m()}),v.useEffect(()=>{try{localStorage.getItem(Qh)!=="1"&&c(!0)}catch{}},[]);const m=()=>{c(!1);try{localStorage.setItem(Qh,"1")}catch{}},p=()=>{r<Gn.length-1?o(r+1):m()};if(!i)return null;const E=Gn[r],x=E.icon;return h.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-ink/30",children:h.jsxs("div",{ref:d,className:"bg-card rounded-card shadow-card-hover border border-border w-full max-w-sm mx-4",children:[h.jsxs("div",{className:"flex items-center justify-between px-5 pt-5 pb-2",children:[h.jsxs("span",{className:"text-[11px] font-mono text-muted-accessible",children:[r+1," / ",Gn.length]}),h.jsx("button",{onClick:m,className:"text-muted hover:text-ink transition-colors p-1 rounded-btn hover:bg-hover",title:"Skip onboarding",children:h.jsx(ea,{size:14})})]}),h.jsxs("div",{className:"px-5 pb-4 text-center",children:[h.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-4",children:h.jsx(x,{size:24,className:"text-primary"})}),h.jsx("h3",{className:"text-sm font-heading font-bold text-ink mb-1",children:E.title}),h.jsx("p",{className:"text-xs text-muted-accessible leading-relaxed",children:E.description})]}),h.jsx("div",{className:"flex items-center justify-center gap-1.5 pb-4",children:Gn.map((y,z)=>h.jsx("div",{className:`w-1.5 h-1.5 rounded-full transition-colors ${z===r?"bg-primary":"bg-border"}`},z))}),h.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-t border-border",children:[h.jsx("button",{onClick:m,className:"text-xs text-muted hover:text-ink transition-colors",children:"Skip"}),h.jsx("button",{onClick:p,className:"inline-flex items-center gap-1.5 px-4 py-1.5 text-xs font-medium rounded-btn bg-primary text-white hover:bg-primary-hover transition-colors",children:r<Gn.length-1?h.jsxs(h.Fragment,{children:["Next",h.jsx(dm,{size:12})]}):"Get Started"})]})]})})}const Xh="pl_product_tour_complete",Wg=[{target:'[data-tour="input-box"]',title:"Describe what you want to build",description:"Type a plain-English description of your project here. The more detail you give, the better the result. You can also paste a spec / PRD or select a template.",position:"bottom"},{target:'[data-tour="template-gallery"]',title:"Start from a template",description:"Browse ready-made templates for SaaS apps, landing pages, dashboards, and more. Each template gives you a head start with a proven structure.",position:"bottom"},{target:'[data-tour="build-progress"]',title:"Watch your project come to life",description:"Once you start a build, this bar tracks each phase: planning, building, testing, and reviewing. You will see real-time progress and cost estimates.",position:"bottom"},{target:'[data-tour="preview-tab"]',title:"Preview your running app",description:"Switch to the Preview tab to see your application running live. Changes appear in real time as the AI iterates on your code.",position:"bottom"},{target:'[data-tour="deploy-tab"]',title:"Deploy with one click",description:"When you are happy with the result, head to the Deploy tab to push your project live. Supports Vercel, Netlify, Railway, and more.",position:"bottom"}];function Fg(i){const c=document.querySelector(i);return c?c.getBoundingClientRect():null}function Ig(i,c){if(!i)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};const r=16,o={position:"fixed",zIndex:60};switch(c){case"bottom":o.top=i.bottom+r,o.left=i.left+i.width/2,o.transform="translateX(-50%)";break;case"top":o.bottom=window.innerHeight-i.top+r,o.left=i.left+i.width/2,o.transform="translateX(-50%)";break;case"left":o.top=i.top+i.height/2,o.right=window.innerWidth-i.left+r,o.transform="translateY(-50%)";break;case"right":o.top=i.top+i.height/2,o.left=i.right+r,o.transform="translateY(-50%)";break}return o}function Pg({steps:i=Wg,onComplete:c}){const[r,o]=v.useState(!1),[d,m]=v.useState(0),[p,E]=v.useState(null),x=v.useRef(0);v.useEffect(()=>{try{if(localStorage.getItem(Xh)!=="1"){const B=setTimeout(()=>o(!0),800);return()=>clearTimeout(B)}}catch{}},[]),v.useEffect(()=>{if(!r||!i[d])return;const B=()=>{const U=Fg(i[d].target);E(U),x.current=requestAnimationFrame(B)};return B(),()=>cancelAnimationFrame(x.current)},[r,d,i]);const y=v.useCallback(()=>{o(!1);try{localStorage.setItem(Xh,"1")}catch{}c==null||c()},[c]),z=v.useCallback(()=>{d<i.length-1?m(B=>B+1):y()},[d,i.length,y]),_=v.useCallback(()=>{m(B=>Math.max(0,B-1))},[]);if(v.useEffect(()=>{if(!r)return;const B=U=>{U.key==="Escape"&&y(),U.key==="ArrowRight"&&z(),U.key==="ArrowLeft"&&_()};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[r,y,z,_]),!r||!i[d])return null;const H=i[d],L=8;return h.jsxs("div",{className:"fixed inset-0 z-[55]","aria-modal":"true",role:"dialog",children:[h.jsxs("svg",{className:"absolute inset-0 w-full h-full",onClick:y,style:{zIndex:55},children:[h.jsx("defs",{children:h.jsxs("mask",{id:"tour-spotlight",children:[h.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white"}),p&&h.jsx("rect",{x:p.left-L,y:p.top-L,width:p.width+L*2,height:p.height+L*2,rx:"8",fill:"black"})]})}),h.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"rgba(0,0,0,0.55)",mask:"url(#tour-spotlight)"})]}),p&&h.jsx("div",{className:"absolute border-2 border-primary rounded-lg pointer-events-none shadow-[0_0_20px_rgba(85,61,233,0.3)]",style:{left:p.left-L,top:p.top-L,width:p.width+L*2,height:p.height+L*2,zIndex:56}}),h.jsxs("div",{className:"w-80 bg-card rounded-xl shadow-2xl border border-border p-0 overflow-hidden",style:{...Ig(p,H.position),zIndex:57},onClick:B=>B.stopPropagation(),children:[h.jsxs("div",{className:"flex items-center justify-between px-4 pt-4 pb-1",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx(fo,{size:14,className:"text-primary"}),h.jsxs("span",{className:"text-[11px] font-mono text-muted-accessible",children:["Step ",d+1," of ",i.length]})]}),h.jsx("button",{onClick:y,className:"text-muted hover:text-ink transition-colors p-1 rounded-btn hover:bg-hover",title:"Skip tour",children:h.jsx(ea,{size:14})})]}),h.jsxs("div",{className:"px-4 pb-3",children:[h.jsx("h3",{className:"text-sm font-heading font-bold text-ink mb-1",children:H.title}),h.jsx("p",{className:"text-xs text-muted-accessible leading-relaxed",children:H.description})]}),h.jsx("div",{className:"flex items-center justify-center gap-1.5 pb-3",children:i.map((B,U)=>h.jsx("button",{onClick:()=>m(U),className:`w-2 h-2 rounded-full transition-all ${U===d?"bg-primary scale-110":U<d?"bg-primary/40":"bg-border"}`,"aria-label":`Go to step ${U+1}`},U))}),h.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t border-border bg-hover/30",children:[h.jsxs("button",{onClick:y,className:"flex items-center gap-1 text-xs text-muted hover:text-ink transition-colors",children:[h.jsx(og,{size:12}),"Skip tour"]}),h.jsxs("div",{className:"flex items-center gap-2",children:[d>0&&h.jsxs("button",{onClick:_,className:"flex items-center gap-1 px-3 py-1.5 text-xs font-medium rounded-btn text-ink hover:bg-hover transition-colors",children:[h.jsx(fm,{size:12}),"Back"]}),h.jsx("button",{onClick:z,className:"flex items-center gap-1 px-4 py-1.5 text-xs font-medium rounded-btn bg-primary text-white hover:bg-primary-hover transition-colors",children:d<i.length-1?h.jsxs(h.Fragment,{children:["Next",h.jsx(dm,{size:12})]}):"Let's go!"})]})]})]})]})}const Vh="pl_whats_new_version",Ks="6.73.1",e2=[{icon:fo,title:"Product Tour",description:"New step-by-step guided tour for first-time users. Highlights key UI areas so you never feel lost."},{icon:Kv,title:"Contextual Help Tooltips",description:"Hover over the help icons next to complex features to learn what they do without leaving the page."},{icon:gm,title:"Enhanced Keyboard Shortcuts",description:'Press "?" to open the shortcuts overlay. Shortcuts are now grouped by category with search and filtering.'},{icon:Rg,title:"Getting Started Checklist",description:"A friendly checklist guides you through your first project, from writing a spec to deploying your app."},{icon:cg,title:"In-App Documentation",description:"Browse Quick Start guides, FAQ, and template docs right inside Purple Lab, no context switching required."}];function t2(){const[i,c]=v.useState(!1);v.useEffect(()=>{try{if(localStorage.getItem(Vh)!==Ks){const d=setTimeout(()=>c(!0),1200);return()=>clearTimeout(d)}}catch{}},[]);const r=()=>{c(!1);try{localStorage.setItem(Vh,Ks)}catch{}};return i?h.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-ink/30",onClick:r,children:h.jsxs("div",{className:"bg-card rounded-xl shadow-2xl border border-border w-full max-w-md mx-4 overflow-hidden",onClick:o=>o.stopPropagation(),children:[h.jsxs("div",{className:"relative px-6 pt-6 pb-4 text-center border-b border-border bg-gradient-to-b from-primary/5 to-transparent",children:[h.jsx("button",{onClick:r,className:"absolute top-4 right-4 text-muted hover:text-ink transition-colors p-1 rounded-btn hover:bg-hover",title:"Close",children:h.jsx(ea,{size:14})}),h.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-3",children:h.jsx(zv,{size:24,className:"text-primary"})}),h.jsx("h2",{className:"text-lg font-heading font-bold text-ink",children:"What's New"}),h.jsxs("p",{className:"text-xs text-muted-accessible mt-1",children:["Purple Lab v",Ks]})]}),h.jsx("div",{className:"px-4 py-4 space-y-3 max-h-[320px] overflow-y-auto terminal-scroll",children:e2.map(o=>{const d=o.icon;return h.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-hover transition-colors",children:[h.jsx("div",{className:"w-8 h-8 rounded-lg bg-primary/10 flex items-center justify-center flex-shrink-0 mt-0.5",children:h.jsx(d,{size:16,className:"text-primary"})}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsx("h3",{className:"text-sm font-medium text-ink",children:o.title}),h.jsx("p",{className:"text-xs text-muted-accessible leading-relaxed mt-0.5",children:o.description})]})]},o.title)})}),h.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-t border-border",children:[h.jsxs("a",{href:"https://github.com/asklokesh/loki-mode/blob/main/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-primary hover:text-primary-hover transition-colors",children:["Full changelog",h.jsx(bv,{size:11})]}),h.jsx("button",{onClick:r,className:"px-5 py-2 text-xs font-medium rounded-btn bg-primary text-white hover:bg-primary-hover transition-colors",children:"Got it!"})]})]})}):null}const $s=[{id:"quick-start",title:"Quick Start",icon:ro,content:`# Quick Start
|
|
356
|
+
*/const jg=[["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"}]],Rg=W("zap",jg),ho="/lab/".replace(/\/$/,""),hi=`${window.location.origin}${ho}/api`,Ag=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${ho}/ws`,k2=ho;function Sm(){const i={"Content-Type":"application/json"};try{const c=localStorage.getItem("pl_auth_token");c&&(i.Authorization=`Bearer ${c}`)}catch{}return i}async function k(i,c){const r=await fetch(`${hi}${i}`,{...c,headers:{...Sm(),...c==null?void 0:c.headers}});if(!r.ok){const d=await r.text().catch(()=>"");throw new Error(`API error ${r.status}: ${r.statusText}${d?` - ${d}`:""}`)}if(!(r.headers.get("content-type")||"").includes("application/json"))throw new Error("API endpoint not available. Please restart the server with the latest version.");return r.json()}const Ba={listProofs:()=>k("/proofs"),proofsSummary:()=>k("/proofs/summary"),getProof:i=>k(`/proofs/${encodeURIComponent(i)}`),startSession:i=>k("/session/start",{method:"POST",body:JSON.stringify(i)}),quickStart:(i,c="claude")=>k("/session/quick-start",{method:"POST",body:JSON.stringify({prompt:i,provider:c})}),stopSession:()=>k("/session/stop",{method:"POST"}),pauseSession:()=>k("/session/pause",{method:"POST"}),resumeSession:()=>k("/session/resume",{method:"POST"}),getPrdPrefill:()=>k("/session/prd-prefill"),getStatus:()=>k("/session/status"),getAgents:()=>k("/session/agents"),getLogs:(i=200)=>k(`/session/logs?lines=${i}`),getMemorySummary:()=>k("/session/memory"),getChecklist:()=>k("/session/checklist"),getFiles:()=>k("/session/files"),getFileContent:i=>k(`/session/files/content?path=${encodeURIComponent(i)}`),getSessionFileContent:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/file?path=${encodeURIComponent(c)}`),getTemplates:()=>k("/templates"),getTemplateContent:i=>k(`/templates/${encodeURIComponent(i)}`),planSession:(i,c)=>k("/session/plan",{method:"POST",body:JSON.stringify({prd:i,provider:c})}),generateReport:(i="markdown")=>k("/session/report",{method:"POST",body:JSON.stringify({format:i})}),shareSession:()=>k("/session/share",{method:"POST"}),getCurrentProvider:()=>k("/provider/current"),setProvider:i=>k("/provider/set",{method:"POST",body:JSON.stringify({provider:i})}),getMetrics:()=>k("/session/metrics"),getSessionsHistory:()=>k("/sessions/history"),getSessionDetail:i=>k(`/sessions/${encodeURIComponent(i)}`),deleteSession:i=>k(`/sessions/${encodeURIComponent(i)}`,{method:"DELETE"}),onboardRepo:i=>k("/session/onboard",{method:"POST",body:JSON.stringify({path:i})}),saveSessionFile:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/file`,{method:"PUT",body:JSON.stringify({path:c,content:r})}),createSessionFile:(i,c,r="")=>k(`/sessions/${encodeURIComponent(i)}/file`,{method:"POST",body:JSON.stringify({path:c,content:r})}),deleteSessionFile:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/file`,{method:"DELETE",body:JSON.stringify({path:c})}),createSessionDirectory:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/directory`,{method:"POST",body:JSON.stringify({path:c})}),reviewProject:i=>k(`/sessions/${encodeURIComponent(i)}/review`,{method:"POST"}),testProject:i=>k(`/sessions/${encodeURIComponent(i)}/test`,{method:"POST"}),explainProject:i=>k(`/sessions/${encodeURIComponent(i)}/explain`,{method:"POST"}),exportProject:i=>k(`/sessions/${encodeURIComponent(i)}/export`,{method:"POST"}),fixProject:i=>k(`/sessions/${encodeURIComponent(i)}/fix`,{method:"POST"}),chatMessage:(i,c,r="quick")=>k(`/sessions/${encodeURIComponent(i)}/chat`,{method:"POST",body:JSON.stringify({message:c,mode:r})}),chatStart:(i,c,r="quick",o)=>k(`/sessions/${encodeURIComponent(i)}/chat`,{method:"POST",body:JSON.stringify({message:c,mode:r,history:o})}),chatPoll:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/chat/${encodeURIComponent(c)}`),chatStreamUrl:(i,c)=>`${hi}/sessions/${encodeURIComponent(i)}/chat/${encodeURIComponent(c)}/stream`,chatCancel:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/chat/${encodeURIComponent(c)}/cancel`,{method:"POST"}),getPreviewInfo:i=>k(`/sessions/${encodeURIComponent(i)}/preview-info`),devserver:{start:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/devserver/start`,{method:"POST",body:JSON.stringify({command:c||null})}),stop:i=>k(`/sessions/${encodeURIComponent(i)}/devserver/stop`,{method:"POST"}),status:i=>k(`/sessions/${encodeURIComponent(i)}/devserver/status`)},getSecrets:()=>k("/secrets"),setSecret:(i,c)=>k("/secrets",{method:"POST",body:JSON.stringify({key:i,value:c})}),deleteSecret:i=>k(`/secrets/${encodeURIComponent(i)}`,{method:"DELETE"}),getServices:i=>k(`/sessions/${encodeURIComponent(i)}/services`),getTeams:()=>k("/teams"),createTeam:i=>k("/teams",{method:"POST",body:JSON.stringify({name:i})}),getTeamMembers:i=>k(`/teams/${encodeURIComponent(i)}/members`),addTeamMember:(i,c,r)=>k(`/teams/${encodeURIComponent(i)}/members`,{method:"POST",body:JSON.stringify({email:c,role:r})}),getCost:()=>k("/cost"),getCostTimeline:()=>k("/cost/timeline"),getAuditLog:()=>k("/audit-log"),getServiceLogs:(i,c,r=50)=>k(`/sessions/${encodeURIComponent(i)}/devserver/logs?${new URLSearchParams({...c?{service:c}:{},tail:String(r)}).toString()}`),getCheckpoints:i=>k(`/sessions/${encodeURIComponent(i)}/checkpoints`),restoreCheckpoint:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/checkpoints/${encodeURIComponent(c)}/restore`,{method:"POST"}),previewChanges:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/chat/preview`,{method:"POST",body:JSON.stringify({message:c})}),searchFiles:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/files/search?q=${encodeURIComponent(c)}`),restartService:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/devserver/restart-service`,{method:"POST",body:JSON.stringify({service:c})}),deployProject:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/deploy`,{method:"POST",body:JSON.stringify({platform:c})}),githubPush:i=>k(`/sessions/${encodeURIComponent(i)}/github/push`,{method:"POST"}),getGitHubIssues:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/issues?${new URLSearchParams({...c?{state:c}:{},...r?{limit:String(r)}:{}}).toString()}`),getGitHubIssue:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/issues/${c}`),fixGitHubIssue:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/issues/${c}/fix`,{method:"POST"}),getGitHubPRs:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/prs?${new URLSearchParams({...c?{state:c}:{},...r?{limit:String(r)}:{}}).toString()}`),getGitHubPR:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}`),getGitHubPRDiff:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}/diff`),reviewGitHubPR:(i,c,r,o)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}/review`,{method:"POST",body:JSON.stringify({action:r,body:o})}),mergeGitHubPR:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/prs/${c}/merge`,{method:"POST",body:JSON.stringify({method:r})}),getWorkflowRuns:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/actions/runs?${new URLSearchParams({...c?{limit:String(c)}:{}}).toString()}`),getWorkflowRunDetail:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/actions/runs/${c}`),getWorkflowRunLogs:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/actions/runs/${c}/logs`),getWorkflows:i=>k(`/sessions/${encodeURIComponent(i)}/github/actions/workflows`),dispatchWorkflow:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/actions/dispatch`,{method:"POST",body:JSON.stringify({workflow:c,ref:r})}),rerunWorkflow:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/actions/runs/${c}/rerun`,{method:"POST"}),cancelWorkflow:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/github/actions/runs/${c}/cancel`,{method:"POST"}),importGitHubRepo:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/github/import`,{method:"POST",body:JSON.stringify({repo:c,...r?{branch:r}:{}})}),getDeployStatus:()=>k("/deploy/status"),connectVercel:i=>k("/deploy/vercel/token",{method:"POST",body:JSON.stringify({token:i})}),connectNetlify:i=>k("/deploy/netlify/token",{method:"POST",body:JSON.stringify({token:i})}),disconnectPlatform:i=>k(`/deploy/${encodeURIComponent(i)}/disconnect`,{method:"POST"}),getMe:()=>k("/auth/me"),getGitHubAuthUrl:()=>k("/auth/github/url"),getGoogleAuthUrl:()=>k("/auth/google/url"),githubCallback:(i,c)=>k("/auth/github/callback",{method:"POST",body:JSON.stringify({code:i,state:c})}),googleCallback:(i,c,r)=>k("/auth/google/callback",{method:"POST",body:JSON.stringify({code:i,state:c,redirect_uri:r||`${window.location.origin}${window.location.pathname}`})}),git:{status:i=>k(`/sessions/${encodeURIComponent(i)}/git/status`),log:(i,c=20)=>k(`/sessions/${encodeURIComponent(i)}/git/log?limit=${c}`),branches:i=>k(`/sessions/${encodeURIComponent(i)}/git/branches`),commit:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/git/commit`,{method:"POST",body:JSON.stringify({message:c,files:r})}),createBranch:(i,c,r=!0)=>k(`/sessions/${encodeURIComponent(i)}/git/branch`,{method:"POST",body:JSON.stringify({name:c,checkout:r})}),checkoutBranch:(i,c)=>k(`/sessions/${encodeURIComponent(i)}/git/checkout`,{method:"POST",body:JSON.stringify({name:c})}),push:i=>k(`/sessions/${encodeURIComponent(i)}/git/push`,{method:"POST"}),pr:(i,c,r)=>k(`/sessions/${encodeURIComponent(i)}/git/pr`,{method:"POST",body:JSON.stringify({title:c,body:r})})},generateDocs:i=>k(`/sessions/${encodeURIComponent(i)}/docs/generate`,{method:"POST"}),getDocsStatus:i=>k(`/sessions/${encodeURIComponent(i)}/docs/status`),getDocFiles:i=>k(`/sessions/${encodeURIComponent(i)}/docs/files`),getDocFileContent:async(i,c)=>{const r=await fetch(`${hi}/sessions/${encodeURIComponent(i)}/docs/files/${encodeURIComponent(c)}`,{headers:Sm()});if(!r.ok)throw new Error(`API error ${r.status}: ${r.statusText}`);return r.text()},chatImageUpload:async(i,c)=>{const r=new FormData;r.append("image",c);const o=await fetch(`${hi}/sessions/${encodeURIComponent(i)}/chat/image`,{method:"POST",headers:{...(()=>{const d={};try{const m=localStorage.getItem("pl_auth_token");m&&(d.Authorization=`Bearer ${m}`)}catch{}return d})()},body:r});if(!o.ok){const d=await o.text().catch(()=>"");throw new Error(`API error ${o.status}: ${o.statusText}${d?` - ${d}`:""}`)}return o.json()}};class Og{constructor(c){Ln(this,"ws",null);Ln(this,"listeners",new Map);Ln(this,"reconnectTimer",null);Ln(this,"url");this.url=c||Ag}connect(){var c;((c=this.ws)==null?void 0:c.readyState)!==WebSocket.OPEN&&(this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.emit("connected",{message:"WebSocket connected"})},this.ws.onmessage=r=>{try{const o=JSON.parse(r.data);if(o.type==="ping"){this.send({type:"pong"});return}this.emit(o.type,o.data||o)}catch{}},this.ws.onclose=()=>{this.emit("disconnected",{}),this.scheduleReconnect()},this.ws.onerror=()=>{var r;(r=this.ws)==null||r.close()})}scheduleReconnect(){this.reconnectTimer||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},3e3))}on(c,r){return this.listeners.has(c)||this.listeners.set(c,new Set),this.listeners.get(c).add(r),()=>{var o;return(o=this.listeners.get(c))==null?void 0:o.delete(r)}}emit(c,r){var o,d;(o=this.listeners.get(c))==null||o.forEach(m=>m(r)),(d=this.listeners.get("*"))==null||d.forEach(m=>m({type:c,data:r}))}send(c){var r;((r=this.ws)==null?void 0:r.readyState)===WebSocket.OPEN&&this.ws.send(JSON.stringify(c))}disconnect(){var c;this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),(c=this.ws)==null||c.close(),this.ws=null}}const Js="pl_auth_token",Em=v.createContext({user:null,loading:!0,login:()=>{},logout:()=>{},isLocalMode:!0});function Mg(i,c,r){c(!1),r({email:i.sub||i.email||"",name:i.name||"",avatar_url:i.avatar||"",authenticated:!0})}function Dg({children:i}){const[c,r]=v.useState(null),[o,d]=v.useState(!0),[m,p]=v.useState(!0),E=ao(),x=kt();v.useEffect(()=>{let H=!1;async function L(){const B=new URLSearchParams(window.location.search),U=B.get("token"),Q=B.get("code");if(U)localStorage.setItem(Js,U),window.history.replaceState({},"",window.location.pathname);else if(Q)try{const q=sessionStorage.getItem("pl_oauth_provider")||"github",I=sessionStorage.getItem("pl_oauth_state")||"";sessionStorage.removeItem("pl_oauth_state"),sessionStorage.removeItem("pl_oauth_provider");let J;if(q==="google"?J=await Ba.googleCallback(Q,I):J=await Ba.githubCallback(Q,I),!H){localStorage.setItem(Js,J.token),window.history.replaceState({},"",window.location.pathname),p(!1),r({email:J.user.email,name:J.user.name,avatar_url:J.user.avatar_url,authenticated:!0}),d(!1);return}}catch{window.history.replaceState({},"",window.location.pathname)}try{const q=await Ba.getMe();if(H)return;q.local_mode?(p(!0),r(null)):q.authenticated?Mg(q,p,r):(p(!1),r(null))}catch{if(H)return;p(!0),r(null)}finally{H||d(!1)}}return L(),()=>{H=!0}},[]);const y=v.useCallback(H=>{H==="github"?Ba.getGitHubAuthUrl().then(L=>{try{const U=new URL(L.url).searchParams.get("state");U&&(sessionStorage.setItem("pl_oauth_state",U),sessionStorage.setItem("pl_oauth_provider","github"))}catch{}window.location.href=L.url}).catch(()=>{}):H==="google"&&Ba.getGoogleAuthUrl().then(L=>{try{const U=new URL(L.url).searchParams.get("state");U&&(sessionStorage.setItem("pl_oauth_state",U),sessionStorage.setItem("pl_oauth_provider","google"))}catch{}window.location.href=L.url}).catch(()=>{})},[]),z=v.useCallback(()=>{localStorage.removeItem(Js),r(null),x.pathname!=="/login"&&E("/login",{replace:!0})},[E,x.pathname]),_=v.useMemo(()=>({user:c,loading:o,login:y,logout:z,isLocalMode:m}),[c,o,y,z,m]);return h.jsx(Em.Provider,{value:_,children:i})}function _m(){return v.useContext(Em)}function Ug(){const[i,c]=v.useState(()=>typeof window>"u"?"light":localStorage.getItem("pl_theme")||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"));v.useEffect(()=>{document.documentElement.classList.toggle("dark",i==="dark"),localStorage.setItem("pl_theme",i)},[i]);const r=v.useCallback(()=>{c(o=>o==="light"?"dark":"light")},[]);return{theme:i,toggleTheme:r,isDark:i==="dark"}}const Tm="pl_discovered_features";function zm(){try{const i=localStorage.getItem(Tm);if(i)return new Set(JSON.parse(i))}catch{}return new Set}function wg(i){try{localStorage.setItem(Tm,JSON.stringify([...i]))}catch{}}function Hg(i){const c=zm();c.has(i)||(c.add(i),wg(c),window.dispatchEvent(new CustomEvent("pl_feature_discovered",{detail:i})))}function kg({feature:i,className:c=""}){const[r,o]=v.useState(!0);return v.useEffect(()=>{o(zm().has(i))},[i]),v.useEffect(()=>{const d=m=>{m.detail===i&&o(!0)};return window.addEventListener("pl_feature_discovered",d),()=>window.removeEventListener("pl_feature_discovered",d)},[i]),r?null:h.jsxs("span",{className:`relative inline-flex ${c}`,"aria-hidden":"true",children:[h.jsx("span",{className:"absolute inline-flex h-2.5 w-2.5 rounded-full bg-primary/40 animate-ping"}),h.jsx("span",{className:"relative inline-flex h-2.5 w-2.5 rounded-full bg-primary"})]})}const Nm="pl_getting_started_steps",Hh="pl_getting_started_dismissed",kh="pl_getting_started_collapsed",Lh=[{id:"create_project",label:"Create your first project",description:"Describe what you want to build or pick a template to get started.",icon:vm},{id:"try_chat",label:"Try the AI chat",description:"Ask the AI to modify, explain, or improve your code.",icon:oo},{id:"preview_app",label:"Preview your app",description:"Open the Preview tab to see your application running live.",icon:pm},{id:"explore_templates",label:"Explore templates",description:"Browse the template gallery for inspiration and quick starts.",icon:so},{id:"deploy_app",label:"Deploy your app",description:"Push your project live with one click using the Deploy tab.",icon:ro}];function Bh(){try{const i=localStorage.getItem(Nm);if(i)return new Set(JSON.parse(i))}catch{}return new Set}function Lg(i){try{localStorage.setItem(Nm,JSON.stringify([...i]))}catch{}}function Bg(){const[i,c]=v.useState(!1),[r,o]=v.useState(!1),[d,m]=v.useState(new Set);v.useEffect(()=>{try{if(localStorage.getItem(Hh)==="1"){c(!0);return}o(localStorage.getItem(kh)==="1")}catch{}m(Bh())},[]),v.useEffect(()=>{const L=()=>m(Bh());return window.addEventListener("pl_step_complete",L),()=>window.removeEventListener("pl_step_complete",L)},[]);const p=v.useCallback(L=>{m(B=>{const U=new Set(B);return U.has(L)?U.delete(L):U.add(L),Lg(U),U})},[]),E=()=>{c(!0);try{localStorage.setItem(Hh,"1")}catch{}},x=()=>{o(L=>{const B=!L;try{localStorage.setItem(kh,B?"1":"0")}catch{}return B})};if(i)return null;const y=d.size,z=Lh.length,_=y/z*100,H=y===z;return h.jsxs("div",{className:"bg-card border border-border rounded-xl shadow-sm overflow-hidden",children:[h.jsxs("button",{onClick:x,className:"w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-hover transition-colors",children:[h.jsx(kv,{size:16,className:"text-primary flex-shrink-0"}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("span",{className:"text-sm font-heading font-bold text-ink",children:"Getting Started"}),h.jsxs("span",{className:"text-[11px] text-muted-accessible font-mono",children:[y,"/",z]})]}),h.jsx("div",{className:"h-1 bg-border rounded-full mt-1.5 overflow-hidden",children:h.jsx("div",{className:"h-full bg-primary rounded-full transition-all duration-500",style:{width:`${_}%`}})})]}),h.jsx("div",{className:"flex items-center gap-1",children:r?h.jsx(nv,{size:14,className:"text-muted"}):h.jsx(mm,{size:14,className:"text-muted"})})]}),!r&&h.jsxs("div",{className:"border-t border-border",children:[h.jsx("div",{className:"px-3 py-2 space-y-0.5",children:Lh.map(L=>{const B=d.has(L.id),U=L.icon;return h.jsxs("button",{onClick:()=>p(L.id),className:`w-full flex items-start gap-3 px-3 py-2.5 rounded-lg text-left transition-colors ${B?"opacity-60 hover:opacity-80":"hover:bg-hover"}`,children:[h.jsx("div",{className:"mt-0.5 flex-shrink-0",children:B?h.jsx(rv,{size:16,className:"text-success"}):h.jsx(yv,{size:16,className:"text-border"})}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsx("span",{className:`text-xs font-medium ${B?"text-muted line-through":"text-ink"}`,children:L.label}),!B&&h.jsx("p",{className:"text-[11px] text-muted-accessible mt-0.5 leading-relaxed",children:L.description})]}),h.jsx(U,{size:14,className:`flex-shrink-0 mt-0.5 ${B?"text-muted":"text-primary/50"}`})]},L.id)})}),h.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-t border-border",children:[H?h.jsx("span",{className:"text-xs text-success font-medium",children:"All done -- you are ready to build!"}):h.jsx("span",{className:"text-[11px] text-muted",children:"Complete each step to learn the basics."}),h.jsxs("button",{onClick:E,className:"flex items-center gap-1 text-[11px] text-muted hover:text-ink transition-colors",children:[h.jsx(ea,{size:11}),"Dismiss"]})]})]})]})}const qh="pl_sidebar_collapsed",qg=[{to:"/",label:"Home",icon:Ov},{to:"/projects",label:"Projects",icon:_v},{to:"/templates",label:"Templates",icon:so,discoveryFeature:"templates"},{to:"/showcase",label:"Showcase",icon:fo},{to:"/magic",label:"Magic",icon:Tg},{to:"/metrics",label:"Metrics",icon:lv},{to:"/compare",label:"Compare",icon:Rv},{to:"/teams",label:"Teams",icon:xg}],Yg=[{to:"/settings",label:"Settings",icon:xm},{to:"/admin",label:"Admin",icon:ug},{to:"/admin/settings",label:"System",icon:Ng}];function Gg(){const[i,c]=v.useState(typeof window<"u"?window.innerWidth<768:!1);return v.useEffect(()=>{const r=()=>c(window.innerWidth<768);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),i}function Qg({wsConnected:i,version:c,onOpenDocs:r}){const o=Gg(),d=kt(),{theme:m,toggleTheme:p}=Ug(),[E,x]=v.useState(!1),[y,z]=v.useState(()=>{try{return localStorage.getItem(qh)==="1"}catch{return!1}});v.useEffect(()=>{try{localStorage.setItem(qh,y?"1":"0")}catch{}},[y]),v.useEffect(()=>{o&&x(!1)},[d.pathname,o]);const _=o?E:!y,H=_?240:64,L=U=>["flex items-center gap-3 px-3 py-2 text-sm transition-colors rounded-[5px]",!_&&"justify-center",U?"bg-[#553DE9]/8 text-[#553DE9] font-medium border-l-2 border-[#553DE9]":"text-[#36342E] hover:bg-[#F8F4F0]"].filter(Boolean).join(" "),B=h.jsxs("aside",{className:"flex flex-col h-full border-r border-[#ECEAE3] bg-white transition-[width] duration-200",style:{width:H,minWidth:H},children:[h.jsxs("div",{className:"flex items-center justify-between px-4 h-14 border-b border-[#ECEAE3]",children:[_&&h.jsxs("div",{className:"flex flex-col",children:[h.jsx("span",{className:"font-heading text-lg font-bold leading-tight text-[#36342E]",children:"Purple Lab"}),h.jsx("span",{className:"text-xs text-[#6B6960]",children:"Powered by Loki"})]}),o?h.jsx("button",{type:"button","aria-label":E?"Close menu":"Open menu",title:E?"Close menu":"Open menu",onClick:()=>x(!E),className:"inline-flex items-center justify-center w-7 h-7 rounded-[3px] text-[#939084] hover:bg-[#F8F4F0] transition-colors",children:E?h.jsx(ea,{size:16}):h.jsx(Yv,{size:16})}):h.jsx("button",{type:"button","aria-label":y?"Expand sidebar":"Collapse sidebar",title:y?"Expand sidebar":"Collapse sidebar",onClick:()=>z(!y),className:"inline-flex items-center justify-center w-7 h-7 rounded-[3px] text-[#939084] hover:bg-[#F8F4F0] transition-colors",children:y?h.jsx(Iv,{size:16}):h.jsx(Wv,{size:16})})]}),h.jsxs("nav",{className:"flex-1 px-2 py-3 flex flex-col gap-1","aria-label":"Main navigation",children:[qg.map(U=>h.jsxs(yi,{to:U.to,end:U.to==="/",className:({isActive:Q})=>L(Q),title:_?void 0:U.label,onClick:()=>{U.discoveryFeature&&Hg(U.discoveryFeature)},children:[h.jsxs("div",{className:"relative",children:[h.jsx(U.icon,{size:18}),U.discoveryFeature&&h.jsx(kg,{feature:U.discoveryFeature,className:"absolute -top-1 -right-1"})]}),_&&h.jsx("span",{children:U.label})]},U.to)),h.jsx("div",{className:"my-2 border-t border-[#ECEAE3]"}),Yg.map(U=>h.jsxs(yi,{to:U.to,className:({isActive:Q})=>L(Q),title:_?void 0:U.label,children:[h.jsx(U.icon,{size:18}),_&&h.jsx("span",{children:U.label})]},U.to)),_&&h.jsx("div",{className:"mt-3 px-1",children:h.jsx(Bg,{})})]}),h.jsxs("div",{className:"px-3 py-3 border-t border-[#ECEAE3] flex flex-col gap-2",children:[h.jsx(Xg,{collapsed:!_}),h.jsxs("div",{className:["flex items-center gap-2 text-xs",!_&&"justify-center"].filter(Boolean).join(" "),children:[h.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${i?"bg-[#1FC5A8]":"bg-[#C45B5B]"}`}),_&&h.jsx("span",{className:"text-[#6B6960]",children:i?"Connected":"Disconnected"})]}),_&&c&&h.jsxs("span",{className:"text-xs text-[#6B6960]",children:["v",c]}),h.jsxs("button",{onClick:p,title:m==="dark"?"Light mode":"Dark mode",className:["flex items-center gap-2 text-xs text-[#6B6960] hover:text-[#36342E] transition-colors",!_&&"justify-center"].filter(Boolean).join(" "),children:[m==="dark"?h.jsx(mg,{size:14}):h.jsx(Zv,{size:14}),_&&h.jsx("span",{children:m==="dark"?"Light Mode":"Dark Mode"})]}),h.jsxs("button",{onClick:r,className:["flex items-center gap-2 text-xs text-[#6B6960] hover:text-[#36342E] transition-colors",!_&&"justify-center"].filter(Boolean).join(" "),title:_?void 0:"Help & Docs",children:[h.jsx(ym,{size:14}),_&&h.jsx("span",{children:"Help & Docs"})]}),h.jsxs("a",{href:"https://www.autonomi.dev/docs",target:"_blank",rel:"noopener noreferrer",className:["flex items-center gap-2 text-xs text-[#6B6960] hover:text-[#36342E] transition-colors",!_&&"justify-center"].filter(Boolean).join(" "),title:_?void 0:"Documentation",children:[h.jsx(hm,{size:14}),_&&h.jsx("span",{children:"Docs"})]})]})]});return o&&E?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"fixed inset-0 z-40 bg-ink/20",onClick:()=>x(!1)}),h.jsx("div",{className:"fixed inset-y-0 left-0 z-50",children:B})]}):B}function Xg({collapsed:i}){const{user:c,logout:r,isLocalMode:o}=_m(),[d,m]=v.useState(!1),p=v.useRef(null);return v.useEffect(()=>{function E(x){p.current&&!p.current.contains(x.target)&&m(!1)}if(d)return document.addEventListener("mousedown",E),()=>document.removeEventListener("mousedown",E)},[d]),o||!c?h.jsxs("div",{className:["flex items-center gap-2 text-xs",i&&"justify-center"].filter(Boolean).join(" "),title:i?"Local Mode":void 0,children:[h.jsx(Xv,{size:14,className:"text-[#939084] flex-shrink-0"}),!i&&h.jsx("span",{className:"text-[#939084]",children:"Local Mode"})]}):h.jsxs("div",{className:"relative",ref:p,"data-testid":"user-section",children:[h.jsxs("button",{type:"button",onClick:()=>m(!d),className:["flex items-center gap-2 w-full text-left text-xs rounded-[3px] py-1 px-1 hover:bg-[#F8F4F0] transition-colors",i&&"justify-center"].filter(Boolean).join(" "),title:i?c.name||c.email:void 0,children:[c.avatar_url?h.jsx("img",{src:c.avatar_url,alt:"",className:"w-5 h-5 rounded-full flex-shrink-0"}):h.jsx("div",{className:"w-5 h-5 rounded-full bg-[#553DE9] flex items-center justify-center text-white text-[10px] font-bold flex-shrink-0",children:(c.name||c.email||"?")[0].toUpperCase()}),!i&&h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"text-[#36342E] truncate flex-1",children:c.name||c.email}),h.jsx(mm,{size:12,className:`text-[#939084] transition-transform ${d?"":"rotate-180"}`})]})]}),d&&h.jsxs("div",{className:"absolute bottom-full left-0 mb-1 w-48 bg-white border border-[#ECEAE3] rounded-lg shadow-lg py-1 z-50",children:[h.jsxs("div",{className:"px-3 py-2 border-b border-[#ECEAE3]",children:[h.jsx("p",{className:"text-xs font-medium text-[#36342E] truncate",children:c.name}),h.jsx("p",{className:"text-xs text-[#939084] truncate",children:c.email})]}),h.jsxs(yi,{to:"/settings",onClick:()=>m(!1),className:"flex items-center gap-2 px-3 py-2 text-xs text-[#36342E] hover:bg-[#F8F4F0] transition-colors",children:[h.jsx(xm,{size:14}),"Settings"]}),h.jsxs("button",{type:"button",onClick:()=>{m(!1),r()},className:"flex items-center gap-2 px-3 py-2 text-xs text-[#C45B5B] hover:bg-[#F8F4F0] transition-colors w-full text-left",children:[h.jsx(Bv,{size:14}),"Sign out"]})]})]})}const qa=[];function Vg(i){if(i.key==="Escape"&&qa.length>0){i.preventDefault(),i.stopPropagation();const c=qa[qa.length-1];c()}}let Yh=!1;function Zg(){Yh||(document.addEventListener("keydown",Vg),Yh=!0)}function Jg(i,c){const r=v.useRef(c);r.current=c;const o=v.useCallback(()=>{r.current()},[]);v.useEffect(()=>{if(i)return Zg(),qa.push(o),()=>{const d=qa.indexOf(o);d!==-1&&qa.splice(d,1)}},[i,o])}const Gh=["a[href]","button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function Kg(i){const c=v.useRef(null),r=v.useRef(null);return v.useEffect(()=>{if(!i)return;r.current=document.activeElement;const o=c.current;if(!o)return;const d=o.querySelectorAll(Gh);d.length>0&&requestAnimationFrame(()=>d[0].focus());const m=p=>{if(p.key!=="Tab")return;const E=o.querySelectorAll(Gh);if(E.length===0)return;const x=E[0],y=E[E.length-1];p.shiftKey?document.activeElement===x&&(p.preventDefault(),y.focus()):document.activeElement===y&&(p.preventDefault(),x.focus())};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),r.current&&typeof r.current.focus=="function"&&r.current.focus()}},[i]),c}const Qh="pl_onboarding_complete",Gn=[{icon:vm,title:"Write your spec",description:"Describe what you want to build, or choose a template to get started quickly."},{icon:pg,title:"Use the terminal",description:"Run commands directly in the integrated terminal to install dependencies or debug."},{icon:pm,title:"Preview in real-time",description:"Switch to the Preview tab to see your app running with live reload."},{icon:oo,title:"Iterate with AI Chat",description:"Ask the AI to modify, fix, or explain your code in the chat panel."}];function $g(){const[i,c]=v.useState(!1),[r,o]=v.useState(0),d=Kg(i);Jg(i,()=>{i&&m()}),v.useEffect(()=>{try{localStorage.getItem(Qh)!=="1"&&c(!0)}catch{}},[]);const m=()=>{c(!1);try{localStorage.setItem(Qh,"1")}catch{}},p=()=>{r<Gn.length-1?o(r+1):m()};if(!i)return null;const E=Gn[r],x=E.icon;return h.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-ink/30",children:h.jsxs("div",{ref:d,className:"bg-card rounded-card shadow-card-hover border border-border w-full max-w-sm mx-4",children:[h.jsxs("div",{className:"flex items-center justify-between px-5 pt-5 pb-2",children:[h.jsxs("span",{className:"text-[11px] font-mono text-muted-accessible",children:[r+1," / ",Gn.length]}),h.jsx("button",{onClick:m,className:"text-muted hover:text-ink transition-colors p-1 rounded-btn hover:bg-hover",title:"Skip onboarding",children:h.jsx(ea,{size:14})})]}),h.jsxs("div",{className:"px-5 pb-4 text-center",children:[h.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-4",children:h.jsx(x,{size:24,className:"text-primary"})}),h.jsx("h3",{className:"text-sm font-heading font-bold text-ink mb-1",children:E.title}),h.jsx("p",{className:"text-xs text-muted-accessible leading-relaxed",children:E.description})]}),h.jsx("div",{className:"flex items-center justify-center gap-1.5 pb-4",children:Gn.map((y,z)=>h.jsx("div",{className:`w-1.5 h-1.5 rounded-full transition-colors ${z===r?"bg-primary":"bg-border"}`},z))}),h.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-t border-border",children:[h.jsx("button",{onClick:m,className:"text-xs text-muted hover:text-ink transition-colors",children:"Skip"}),h.jsx("button",{onClick:p,className:"inline-flex items-center gap-1.5 px-4 py-1.5 text-xs font-medium rounded-btn bg-primary text-white hover:bg-primary-hover transition-colors",children:r<Gn.length-1?h.jsxs(h.Fragment,{children:["Next",h.jsx(dm,{size:12})]}):"Get Started"})]})]})})}const Xh="pl_product_tour_complete",Wg=[{target:'[data-tour="input-box"]',title:"Describe what you want to build",description:"Type a plain-English description of your project here. The more detail you give, the better the result. You can also paste a spec / PRD or select a template.",position:"bottom"},{target:'[data-tour="template-gallery"]',title:"Start from a template",description:"Browse ready-made templates for SaaS apps, landing pages, dashboards, and more. Each template gives you a head start with a proven structure.",position:"bottom"},{target:'[data-tour="build-progress"]',title:"Watch your project come to life",description:"Once you start a build, this bar tracks each phase: planning, building, testing, and reviewing. You will see real-time progress and cost estimates.",position:"bottom"},{target:'[data-tour="preview-tab"]',title:"Preview your running app",description:"Switch to the Preview tab to see your application running live. Changes appear in real time as the AI iterates on your code.",position:"bottom"},{target:'[data-tour="deploy-tab"]',title:"Deploy with one click",description:"When you are happy with the result, head to the Deploy tab to push your project live. Supports Vercel, Netlify, Railway, and more.",position:"bottom"}];function Fg(i){const c=document.querySelector(i);return c?c.getBoundingClientRect():null}function Ig(i,c){if(!i)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};const r=16,o={position:"fixed",zIndex:60};switch(c){case"bottom":o.top=i.bottom+r,o.left=i.left+i.width/2,o.transform="translateX(-50%)";break;case"top":o.bottom=window.innerHeight-i.top+r,o.left=i.left+i.width/2,o.transform="translateX(-50%)";break;case"left":o.top=i.top+i.height/2,o.right=window.innerWidth-i.left+r,o.transform="translateY(-50%)";break;case"right":o.top=i.top+i.height/2,o.left=i.right+r,o.transform="translateY(-50%)";break}return o}function Pg({steps:i=Wg,onComplete:c}){const[r,o]=v.useState(!1),[d,m]=v.useState(0),[p,E]=v.useState(null),x=v.useRef(0);v.useEffect(()=>{try{if(localStorage.getItem(Xh)!=="1"){const B=setTimeout(()=>o(!0),800);return()=>clearTimeout(B)}}catch{}},[]),v.useEffect(()=>{if(!r||!i[d])return;const B=()=>{const U=Fg(i[d].target);E(U),x.current=requestAnimationFrame(B)};return B(),()=>cancelAnimationFrame(x.current)},[r,d,i]);const y=v.useCallback(()=>{o(!1);try{localStorage.setItem(Xh,"1")}catch{}c==null||c()},[c]),z=v.useCallback(()=>{d<i.length-1?m(B=>B+1):y()},[d,i.length,y]),_=v.useCallback(()=>{m(B=>Math.max(0,B-1))},[]);if(v.useEffect(()=>{if(!r)return;const B=U=>{U.key==="Escape"&&y(),U.key==="ArrowRight"&&z(),U.key==="ArrowLeft"&&_()};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[r,y,z,_]),!r||!i[d])return null;const H=i[d],L=8;return h.jsxs("div",{className:"fixed inset-0 z-[55]","aria-modal":"true",role:"dialog",children:[h.jsxs("svg",{className:"absolute inset-0 w-full h-full",onClick:y,style:{zIndex:55},children:[h.jsx("defs",{children:h.jsxs("mask",{id:"tour-spotlight",children:[h.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white"}),p&&h.jsx("rect",{x:p.left-L,y:p.top-L,width:p.width+L*2,height:p.height+L*2,rx:"8",fill:"black"})]})}),h.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"rgba(0,0,0,0.55)",mask:"url(#tour-spotlight)"})]}),p&&h.jsx("div",{className:"absolute border-2 border-primary rounded-lg pointer-events-none shadow-[0_0_20px_rgba(85,61,233,0.3)]",style:{left:p.left-L,top:p.top-L,width:p.width+L*2,height:p.height+L*2,zIndex:56}}),h.jsxs("div",{className:"w-80 bg-card rounded-xl shadow-2xl border border-border p-0 overflow-hidden",style:{...Ig(p,H.position),zIndex:57},onClick:B=>B.stopPropagation(),children:[h.jsxs("div",{className:"flex items-center justify-between px-4 pt-4 pb-1",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx(fo,{size:14,className:"text-primary"}),h.jsxs("span",{className:"text-[11px] font-mono text-muted-accessible",children:["Step ",d+1," of ",i.length]})]}),h.jsx("button",{onClick:y,className:"text-muted hover:text-ink transition-colors p-1 rounded-btn hover:bg-hover",title:"Skip tour",children:h.jsx(ea,{size:14})})]}),h.jsxs("div",{className:"px-4 pb-3",children:[h.jsx("h3",{className:"text-sm font-heading font-bold text-ink mb-1",children:H.title}),h.jsx("p",{className:"text-xs text-muted-accessible leading-relaxed",children:H.description})]}),h.jsx("div",{className:"flex items-center justify-center gap-1.5 pb-3",children:i.map((B,U)=>h.jsx("button",{onClick:()=>m(U),className:`w-2 h-2 rounded-full transition-all ${U===d?"bg-primary scale-110":U<d?"bg-primary/40":"bg-border"}`,"aria-label":`Go to step ${U+1}`},U))}),h.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t border-border bg-hover/30",children:[h.jsxs("button",{onClick:y,className:"flex items-center gap-1 text-xs text-muted hover:text-ink transition-colors",children:[h.jsx(og,{size:12}),"Skip tour"]}),h.jsxs("div",{className:"flex items-center gap-2",children:[d>0&&h.jsxs("button",{onClick:_,className:"flex items-center gap-1 px-3 py-1.5 text-xs font-medium rounded-btn text-ink hover:bg-hover transition-colors",children:[h.jsx(fm,{size:12}),"Back"]}),h.jsx("button",{onClick:z,className:"flex items-center gap-1 px-4 py-1.5 text-xs font-medium rounded-btn bg-primary text-white hover:bg-primary-hover transition-colors",children:d<i.length-1?h.jsxs(h.Fragment,{children:["Next",h.jsx(dm,{size:12})]}):"Let's go!"})]})]})]})]})}const Vh="pl_whats_new_version",Ks="6.73.1",e2=[{icon:fo,title:"Product Tour",description:"New step-by-step guided tour for first-time users. Highlights key UI areas so you never feel lost."},{icon:Kv,title:"Contextual Help Tooltips",description:"Hover over the help icons next to complex features to learn what they do without leaving the page."},{icon:gm,title:"Enhanced Keyboard Shortcuts",description:'Press "?" to open the shortcuts overlay. Shortcuts are now grouped by category with search and filtering.'},{icon:Rg,title:"Getting Started Checklist",description:"A friendly checklist guides you through your first project, from writing a spec to deploying your app."},{icon:cg,title:"In-App Documentation",description:"Browse Quick Start guides, FAQ, and template docs right inside Purple Lab, no context switching required."}];function t2(){const[i,c]=v.useState(!1);v.useEffect(()=>{try{if(localStorage.getItem(Vh)!==Ks){const d=setTimeout(()=>c(!0),1200);return()=>clearTimeout(d)}}catch{}},[]);const r=()=>{c(!1);try{localStorage.setItem(Vh,Ks)}catch{}};return i?h.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-ink/30",onClick:r,children:h.jsxs("div",{className:"bg-card rounded-xl shadow-2xl border border-border w-full max-w-md mx-4 overflow-hidden",onClick:o=>o.stopPropagation(),children:[h.jsxs("div",{className:"relative px-6 pt-6 pb-4 text-center border-b border-border bg-gradient-to-b from-primary/5 to-transparent",children:[h.jsx("button",{onClick:r,className:"absolute top-4 right-4 text-muted hover:text-ink transition-colors p-1 rounded-btn hover:bg-hover",title:"Close",children:h.jsx(ea,{size:14})}),h.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-3",children:h.jsx(zv,{size:24,className:"text-primary"})}),h.jsx("h2",{className:"text-lg font-heading font-bold text-ink",children:"What's New"}),h.jsxs("p",{className:"text-xs text-muted-accessible mt-1",children:["Purple Lab v",Ks]})]}),h.jsx("div",{className:"px-4 py-4 space-y-3 max-h-[320px] overflow-y-auto terminal-scroll",children:e2.map(o=>{const d=o.icon;return h.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-hover transition-colors",children:[h.jsx("div",{className:"w-8 h-8 rounded-lg bg-primary/10 flex items-center justify-center flex-shrink-0 mt-0.5",children:h.jsx(d,{size:16,className:"text-primary"})}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsx("h3",{className:"text-sm font-medium text-ink",children:o.title}),h.jsx("p",{className:"text-xs text-muted-accessible leading-relaxed mt-0.5",children:o.description})]})]},o.title)})}),h.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-t border-border",children:[h.jsxs("a",{href:"https://github.com/asklokesh/loki-mode/blob/main/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-primary hover:text-primary-hover transition-colors",children:["Full changelog",h.jsx(bv,{size:11})]}),h.jsx("button",{onClick:r,className:"px-5 py-2 text-xs font-medium rounded-btn bg-primary text-white hover:bg-primary-hover transition-colors",children:"Got it!"})]})]})}):null}const $s=[{id:"quick-start",title:"Quick Start",icon:ro,content:`# Quick Start
|
|
357
357
|
|
|
358
358
|
**1. Create a project**
|
|
359
359
|
Click "New Project" on the home page, or type a description in the input box and press Enter.
|
|
@@ -435,4 +435,4 @@ Reason, Act, Reflect, Verify -- the AI's thinking process. It plans what to do (
|
|
|
435
435
|
from { opacity: 0; transform: translateX(100%); }
|
|
436
436
|
to { opacity: 1; transform: translateX(0); }
|
|
437
437
|
}
|
|
438
|
-
`}),h.jsx("span",{className:`flex-shrink-0 mt-0.5 ${p.icon}`,children:h.jsx(p.IconComponent,{size:18})}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsx("p",{className:"text-sm font-medium text-[#201515] dark:text-[#E8E6E3]",children:o}),d&&h.jsx("p",{className:"text-xs text-[#6B6960] dark:text-[#8A8880] mt-0.5",children:d})]}),h.jsx("button",{onClick:x,className:"flex-shrink-0 text-[#939084] hover:text-[#36342E] dark:hover:text-[#E8E6E3] transition-colors","aria-label":"Dismiss notification",children:h.jsx(ea,{size:14})})]})}function m2({notifications:i,onDismiss:c}){return i.length===0?null:h.jsx("div",{className:"fixed top-4 right-4 z-[9999] flex flex-col gap-2 pointer-events-none","aria-live":"polite",children:i.map(r=>h.jsx(h2,{notification:r,onDismiss:c},r.id))})}const Rm=v.createContext({notify:()=>"",dismiss:()=>{},dismissAll:()=>{}});let y2=0;function p2({children:i}){const[c,r]=v.useState([]),o=v.useCallback(E=>{const x=`notif-${++y2}-${Date.now()}`,y={...E,id:x};if(r(z=>[...z,y]),document.hidden&&"Notification"in window)if(Notification.permission==="granted")try{new Notification(E.title,{body:E.message||""})}catch{}else Notification.permission!=="denied"&&Notification.requestPermission().then(z=>{if(z==="granted")try{new Notification(E.title,{body:E.message||""})}catch{}});return x},[]),d=v.useCallback(E=>{r(x=>x.filter(y=>y.id!==E))},[]),m=v.useCallback(()=>{r([])},[]),p=v.useMemo(()=>({notify:o,dismiss:d,dismissAll:m}),[o,d,m]);return h.jsxs(Rm.Provider,{value:p,children:[i,h.jsx(m2,{notifications:c,onDismiss:d})]})}function L2(){return v.useContext(Rm)}function Fs({children:i}){const{user:c,loading:r,isLocalMode:o}=_m();return r?h.jsx("div",{className:"h-screen bg-[#FAF9F6] flex items-center justify-center text-[#6B6960] text-sm",children:"Loading..."}):o?h.jsx(h.Fragment,{children:i}):c?h.jsx(h.Fragment,{children:i}):h.jsx(o1,{to:"/login",replace:!0})}function pi({variant:i="text",width:c,height:r,className:o=""}){const d="animate-pulse bg-[#ECEAE3]/60 rounded";if(i==="circle"){const m=c||"2rem";return h.jsx("div",{className:`${d} rounded-full flex-shrink-0 ${o}`,style:{width:m,height:m}})}return i==="block"?h.jsx("div",{className:`${d} rounded-btn ${o}`,style:{width:c||"100%",height:r||"4rem"}}):h.jsx("div",{className:`${d} rounded-btn ${o}`,style:{width:c||"100%",height:r||"0.75rem"}})}function B2(){return h.jsx("div",{className:"p-4 space-y-3",children:[...Array(12)].map((i,c)=>h.jsxs("div",{className:"flex items-center gap-3",children:[h.jsx(pi,{variant:"text",width:"1.5rem",height:"10px",className:"flex-shrink-0 opacity-40"}),h.jsx(pi,{variant:"text",width:`${20+Math.random()*60}%`,height:"10px"})]},c))})}typeof window<"u"&&window.addEventListener("beforeunload",i=>{delete i.returnValue});const v2=v.lazy(()=>tt(()=>import("./HomePage-
|
|
438
|
+
`}),h.jsx("span",{className:`flex-shrink-0 mt-0.5 ${p.icon}`,children:h.jsx(p.IconComponent,{size:18})}),h.jsxs("div",{className:"flex-1 min-w-0",children:[h.jsx("p",{className:"text-sm font-medium text-[#201515] dark:text-[#E8E6E3]",children:o}),d&&h.jsx("p",{className:"text-xs text-[#6B6960] dark:text-[#8A8880] mt-0.5",children:d})]}),h.jsx("button",{onClick:x,className:"flex-shrink-0 text-[#939084] hover:text-[#36342E] dark:hover:text-[#E8E6E3] transition-colors","aria-label":"Dismiss notification",children:h.jsx(ea,{size:14})})]})}function m2({notifications:i,onDismiss:c}){return i.length===0?null:h.jsx("div",{className:"fixed top-4 right-4 z-[9999] flex flex-col gap-2 pointer-events-none","aria-live":"polite",children:i.map(r=>h.jsx(h2,{notification:r,onDismiss:c},r.id))})}const Rm=v.createContext({notify:()=>"",dismiss:()=>{},dismissAll:()=>{}});let y2=0;function p2({children:i}){const[c,r]=v.useState([]),o=v.useCallback(E=>{const x=`notif-${++y2}-${Date.now()}`,y={...E,id:x};if(r(z=>[...z,y]),document.hidden&&"Notification"in window)if(Notification.permission==="granted")try{new Notification(E.title,{body:E.message||""})}catch{}else Notification.permission!=="denied"&&Notification.requestPermission().then(z=>{if(z==="granted")try{new Notification(E.title,{body:E.message||""})}catch{}});return x},[]),d=v.useCallback(E=>{r(x=>x.filter(y=>y.id!==E))},[]),m=v.useCallback(()=>{r([])},[]),p=v.useMemo(()=>({notify:o,dismiss:d,dismissAll:m}),[o,d,m]);return h.jsxs(Rm.Provider,{value:p,children:[i,h.jsx(m2,{notifications:c,onDismiss:d})]})}function L2(){return v.useContext(Rm)}function Fs({children:i}){const{user:c,loading:r,isLocalMode:o}=_m();return r?h.jsx("div",{className:"h-screen bg-[#FAF9F6] flex items-center justify-center text-[#6B6960] text-sm",children:"Loading..."}):o?h.jsx(h.Fragment,{children:i}):c?h.jsx(h.Fragment,{children:i}):h.jsx(o1,{to:"/login",replace:!0})}function pi({variant:i="text",width:c,height:r,className:o=""}){const d="animate-pulse bg-[#ECEAE3]/60 rounded";if(i==="circle"){const m=c||"2rem";return h.jsx("div",{className:`${d} rounded-full flex-shrink-0 ${o}`,style:{width:m,height:m}})}return i==="block"?h.jsx("div",{className:`${d} rounded-btn ${o}`,style:{width:c||"100%",height:r||"4rem"}}):h.jsx("div",{className:`${d} rounded-btn ${o}`,style:{width:c||"100%",height:r||"0.75rem"}})}function B2(){return h.jsx("div",{className:"p-4 space-y-3",children:[...Array(12)].map((i,c)=>h.jsxs("div",{className:"flex items-center gap-3",children:[h.jsx(pi,{variant:"text",width:"1.5rem",height:"10px",className:"flex-shrink-0 opacity-40"}),h.jsx(pi,{variant:"text",width:`${20+Math.random()*60}%`,height:"10px"})]},c))})}typeof window<"u"&&window.addEventListener("beforeunload",i=>{delete i.returnValue});const v2=v.lazy(()=>tt(()=>import("./HomePage-EG-jq8nR.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]))),g2=v.lazy(()=>tt(()=>import("./ProjectPage-D2Fh6tVw.js").then(i=>i.P),__vite__mapDeps([19,2,20,3,4,10,18,21,7,22,23,9,24,13,25,26,8,27,28,29,30,31,32,33,34,35,12,36,15,37,38,39]))),b2=v.lazy(()=>tt(()=>import("./CockpitPage-D1eQe9QF.js"),__vite__mapDeps([40,2,29,9,7,25,34,30,24]))),x2=v.lazy(()=>tt(()=>import("./ProjectsPage-B8cRWkWa.js"),__vite__mapDeps([41,20,6,7,8,9,42,36,37,34,1,26,31,28,32]))),S2=v.lazy(()=>tt(()=>import("./TemplatesPage-B-a61T6a.js"),__vite__mapDeps([43,20,1,14,7,42,15,9,10,27,38,23,44,31]))),E2=v.lazy(()=>tt(()=>import("./SettingsPage-DKpsst6x.js"),__vite__mapDeps([45,33,13,11,24,9,8]))),_2=v.lazy(()=>tt(()=>import("./LoginPage-CEOnBICH.js"),[])),T2=v.lazy(()=>tt(()=>import("./TeamsPage-CW6lvW-0.js"),__vite__mapDeps([46,20,47,16,4,22,31,35,32,48,7,18,21,13]))),z2=v.lazy(()=>tt(()=>import("./AdminPage-DpV2vW3y.js"),__vite__mapDeps([49,20,36,7,47,22,26,27,14,16,9,25,48,44,4,13,50,38]))),N2=v.lazy(()=>tt(()=>import("./SystemSettingsPage-9qmEH2Y6.js"),__vite__mapDeps([51,20,38,13,17,44,50,33,9,35]))),C2=v.lazy(()=>tt(()=>import("./MetricsPage-CG8CuSSJ.js"),__vite__mapDeps([52,5,25,15,36,37]))),j2=v.lazy(()=>tt(()=>import("./ShowcasePage-qab065PM.js"),[])),R2=v.lazy(()=>tt(()=>import("./MagicPage-DeWaFdsG.js"),__vite__mapDeps([53,30,8,24,12]))),A2=v.lazy(()=>tt(()=>import("./ComparePage-uX3OPphr.js"),[])),O2=v.lazy(()=>tt(()=>import("./NotFoundPage-Mz5rOat6.js"),[]));function et(){return h.jsxs("div",{className:"h-screen bg-[#FAF9F6] flex flex-col items-center justify-center gap-3",children:[h.jsx(pi,{variant:"block",width:"200px",height:"24px"}),h.jsx(pi,{variant:"text",width:"140px",height:"12px",className:"opacity-50"})]})}function M2(){return h.jsx(Dg,{children:h.jsx(p2,{children:h.jsxs(d1,{children:[h.jsx(Ke,{path:"/login",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(_2,{})})}),h.jsx(Ke,{path:"/project/:sessionId/cockpit",element:h.jsx(Fs,{children:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(b2,{})})})}),h.jsx(Ke,{path:"/project/:sessionId",element:h.jsx(Fs,{children:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(g2,{})})})}),h.jsxs(Ke,{element:h.jsx(Fs,{children:h.jsx(f2,{})}),children:[h.jsx(Ke,{path:"/",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(v2,{})})}),h.jsx(Ke,{path:"/projects",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(x2,{})})}),h.jsx(Ke,{path:"/templates",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(S2,{})})}),h.jsx(Ke,{path:"/settings",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(E2,{})})}),h.jsx(Ke,{path:"/teams",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(T2,{})})}),h.jsx(Ke,{path:"/metrics",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(C2,{})})}),h.jsx(Ke,{path:"/showcase",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(j2,{})})}),h.jsx(Ke,{path:"/magic",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(R2,{})})}),h.jsx(Ke,{path:"/compare",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(A2,{})})}),h.jsx(Ke,{path:"/admin",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(z2,{})})}),h.jsx(Ke,{path:"/admin/settings",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(N2,{})})}),h.jsx(Ke,{path:"*",element:h.jsx(v.Suspense,{fallback:h.jsx(et,{}),children:h.jsx(O2,{})})})]})]})})})}const D2="/lab/".replace(/\/$/,"")||"/";fp.createRoot(document.getElementById("root")).render(h.jsx(v.StrictMode,{children:h.jsx(H1,{basename:D2,children:h.jsx(M2,{})})}));export{Kv as $,dm as A,hm as B,ym as C,Wv as D,bv as E,vm as F,Cv as G,B2 as H,Dv as I,fm as J,gm as K,so as L,oo as M,pi as N,H2 as O,bm as P,vv as Q,ro as R,ug as S,gg as T,xg as U,yv as V,w2 as W,ea as X,Og as Y,Rg as Z,tt as _,Ba as a,_m as a0,L2 as a1,_v as a2,sm as a3,Ov as a4,Tg as a5,wh as b,W as c,dg as d,r2 as e,k2 as f,Ng as g,mm as h,nv as i,h as j,pg as k,hv as l,rv as m,lg as n,Kg as o,Jg as p,sv as q,v as r,og as s,Xv as t,ao as u,fo as v,lv as w,cg as x,pm as y,xm as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s cubic-bezier(.4,0,.2,1) both}.animate-fade-in-up{animation:fadeInUp .3s cubic-bezier(.4,0,.2,1) both}.animate-fade-in-down{animation:fadeInDown .3s cubic-bezier(.4,0,.2,1) both}.animate-fade-in-left{animation:fadeInLeft .3s cubic-bezier(.4,0,.2,1) both}.animate-fade-in-right{animation:fadeInRight .3s cubic-bezier(.4,0,.2,1) both}.animate-scale-in{animation:scaleIn .3s cubic-bezier(.4,0,.2,1) both}.animate-slide-in-right{animation:slideInRight .3s cubic-bezier(.4,0,.2,1) both}.animate-slide-in-bottom{animation:slideInBottom .3s cubic-bezier(.4,0,.2,1) both}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slideOutRight{0%{transform:translate(0)}to{transform:translate(100%)}}.animate-fade-out{animation:fadeOut .3s cubic-bezier(.4,0,.2,1) both}.animate-scale-out{animation:scaleOut .3s cubic-bezier(.4,0,.2,1) both}.animate-slide-out-right{animation:slideOutRight .3s cubic-bezier(.4,0,.2,1) both}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.7}}@keyframes bounceGentle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-3px)}20%,40%,60%,80%{transform:translate(3px)}}@keyframes glow{0%,to{box-shadow:0 0 4px #553de933}50%{box-shadow:0 0 16px #553de966,0 0 32px #553de91a}}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}.animate-pulse-soft{animation:pulseSoft 2s ease-in-out infinite}.animate-bounce-gentle{animation:bounceGentle 1s ease-in-out}.animate-shake{animation:shake .5s ease-in-out}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-ripple{position:relative;overflow:hidden}.animate-ripple:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#553de94d;animation:ripple .6s ease-out forwards;pointer-events:none}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dotsAppear{0%,20%{opacity:0}40%{opacity:1}to{opacity:1}}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes progressIndeterminate{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(200%)}}.animate-spinner{animation:spinner 1s linear infinite}.animate-dots{display:inline-flex;gap:4px}.animate-dots>span{width:5px;height:5px;border-radius:50%;background:currentColor;animation:dotsAppear 1.4s ease-in-out infinite}.animate-dots>span:nth-child(1){animation-delay:0ms}.animate-dots>span:nth-child(2){animation-delay:.2s}.animate-dots>span:nth-child(3){animation-delay:.4s}.animate-skeleton-shimmer{background:linear-gradient(90deg,transparent 0%,rgba(85,61,233,.06) 50%,transparent 100%);background-size:200% 100%;animation:skeletonShimmer 1.8s ease-in-out infinite}.dark .animate-skeleton-shimmer{background:linear-gradient(90deg,transparent 0%,rgba(123,107,239,.1) 50%,transparent 100%);background-size:200% 100%}.animate-progress-indeterminate{position:relative;overflow:hidden}.animate-progress-indeterminate:after{content:"";position:absolute;top:0;left:0;width:40%;height:100%;background:#553de980;border-radius:inherit;animation:progressIndeterminate 1.5s ease-in-out infinite}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes textGradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes drawLine{0%{stroke-dashoffset:var(--line-length, 1000)}to{stroke-dashoffset:0}}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes successCheck{0%{stroke-dashoffset:36}to{stroke-dashoffset:0}}@keyframes numberRoll{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.animate-gradient-shift{background-size:200% 200%;animation:gradientShift 4s ease infinite}.animate-text-gradient{background:linear-gradient(90deg,#553de9,#7b6bef,#a78bfa,#553de9);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:textGradient 4s ease infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-typewriter{overflow:hidden;white-space:nowrap;border-right:2px solid currentColor;animation:typewriter 2s steps(40) forwards,cursor-blink .75s step-end infinite}.animate-draw-line{stroke-dasharray:var(--line-length, 1000);stroke-dashoffset:var(--line-length, 1000);animation:drawLine 1.5s ease-out forwards}.animate-confetti{position:fixed;top:0;width:8px;height:8px;border-radius:2px;animation:confettiFall 3s ease-in forwards;pointer-events:none;z-index:9999}.animate-confetti:nth-child(odd){border-radius:50%}.animate-confetti:nth-child(1){left:10%;background:#553de9;animation-delay:0ms;animation-duration:2.5s}.animate-confetti:nth-child(2){left:25%;background:#1fc5a8;animation-delay:.1s;animation-duration:3s}.animate-confetti:nth-child(3){left:40%;background:#e8ac3e;animation-delay:.2s;animation-duration:2.8s}.animate-confetti:nth-child(4){left:55%;background:#c45b5b;animation-delay:50ms;animation-duration:3.2s}.animate-confetti:nth-child(5){left:70%;background:#7b6bef;animation-delay:.3s;animation-duration:2.6s}.animate-confetti:nth-child(6){left:85%;background:#553de9;animation-delay:.15s;animation-duration:2.9s}.animate-success-check{stroke-dasharray:36;stroke-dashoffset:36;animation:successCheck .4s ease-out .2s forwards}.animate-number-roll{display:inline-block;animation:numberRoll .4s cubic-bezier(.4,0,.2,1) both}.animation-delay-100{animation-delay:.1s}.animation-delay-200{animation-delay:.2s}.animation-delay-300{animation-delay:.3s}.animation-delay-400{animation-delay:.4s}.animation-delay-500{animation-delay:.5s}.animation-delay-600{animation-delay:.6s}.animation-delay-700{animation-delay:.7s}.animation-delay-800{animation-delay:.8s}.animation-duration-fast{animation-duration:.15s}.animation-duration-normal{animation-duration:.3s}.animation-duration-slow{animation-duration:.5s}.animation-duration-slower{animation-duration:.8s}.animation-fill-both{animation-fill-mode:both}.animation-fill-forwards{animation-fill-mode:forwards}@media(prefers-reduced-motion:reduce){.motion-safe *{animation:none!important;transition:none!important}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.6;scroll-behavior:smooth}.text-xs{font-size:.8125rem!important;line-height:1.5!important}.text-sm{font-size:.9375rem!important;line-height:1.5!important}.text-\[10px\]{font-size:.75rem!important}.text-\[11px\]{font-size:.8125rem!important}*,*:before,*:after{transition-property:color,background-color,border-color,box-shadow,opacity,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.terminal-scroll::-webkit-scrollbar{width:6px}.terminal-scroll::-webkit-scrollbar-track{background:transparent}.terminal-scroll::-webkit-scrollbar-thumb{background:#553de933;border-radius:3px}.terminal-scroll::-webkit-scrollbar-thumb:hover{background:#553de959}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.card{background:#fff;border:1px solid #ECEAE3;border-radius:8px;box-shadow:0 1px 3px #0000000a,0 1px 2px #0000000f}.card:hover,.card-hover:hover{box-shadow:0 8px 25px #00000014,0 3px 10px #0000000a;transform:translateY(-1px)}button,[role=button],.rounded-btn{border-radius:8px!important;font-weight:500;letter-spacing:.01em}button:active,[role=button]:active{transform:scale(.97)}[role=tab]{padding:.5rem 1rem!important;font-size:.875rem!important;font-weight:500;border-radius:6px 6px 0 0}.pattern-nodes{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.04;pointer-events:none;background-image:radial-gradient(circle at 10% 20%,#553DE9 1px,transparent 1px),radial-gradient(circle at 30% 60%,#553DE9 1px,transparent 1px),radial-gradient(circle at 50% 40%,#553DE9 1px,transparent 1px),radial-gradient(circle at 70% 80%,#553DE9 1px,transparent 1px),radial-gradient(circle at 90% 30%,#553DE9 1px,transparent 1px);background-size:200px 200px}*:focus-visible{outline:2px solid #553DE9;outline-offset:2px}::-moz-selection{background:#e8e4fd;color:#201515}::selection{background:#e8e4fd;color:#201515}.dark{--color-background: #0F0F11;--color-card: #1A1A1E;--color-border: #2A2A30;--color-border-light: #3A3A42;--color-hover: #222228;--color-ink: #E8E6E3;--color-muted: #8A8880;--color-secondary: #C5C0B8;color-scheme:dark}.dark body{background-color:#0f0f11;color:#e8e6e3}.dark .bg-card{background-color:#1a1a1e!important}.dark .bg-background,.dark .bg-\[\#FFFEFB\],.dark .bg-\[\#FAF9F6\]{background-color:#0f0f11!important}.dark .bg-hover,.dark .bg-\[\#F8F4F0\]{background-color:#222228!important}.dark .bg-white{background-color:#1a1a1e!important}.dark .border-border,.dark .border-\[\#ECEAE3\]{border-color:#2a2a30!important}.dark .border-r,.dark .border-b,.dark .border-t,.dark .border-l{border-color:#2a2a30}.dark .border-\[\#553DE9\]{border-color:#7b6bef!important}.dark .text-ink,.dark .text-\[\#201515\]{color:#e8e6e3!important}.dark .text-muted{color:#8a8880!important}.dark .text-secondary,.dark .text-\[\#36342E\]{color:#c5c0b8!important}.dark .text-\[\#939084\],.dark .text-\[\#6B6960\]{color:#8a8880!important}.dark .text-muted-accessible{color:#9a9690!important}.dark .card{background:#1a1a1e;border-color:#2a2a30}.dark .card:hover,.dark .card-hover:hover{box-shadow:0 8px 25px #0000004d,0 3px 10px #0003}.dark ::-moz-selection{background:#553de9;color:#e8e6e3}.dark ::selection{background:#553de9;color:#e8e6e3}.dark .hover\:bg-\[\#F8F4F0\]:hover{background-color:#222228!important}.dark .hover\:text-\[\#36342E\]:hover{color:#e8e6e3!important}.dark input,.dark textarea,.dark select{background-color:#1a1a1e;color:#e8e6e3;border-color:#2a2a30}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#6a6860}.dark input::placeholder,.dark textarea::placeholder{color:#6a6860}.dark input:focus,.dark textarea:focus,.dark select:focus{border-color:#7b6bef;box-shadow:0 0 0 3px #7b6bef26}.dark .bg-\[\#ECEAE3\]\/60{background-color:#2a2a30!important}.dark .animate-pulse{opacity:.5}.dark .terminal-scroll::-webkit-scrollbar-thumb{background:#553de94d}.dark .terminal-scroll::-webkit-scrollbar-thumb:hover{background:#553de980}.dark .shadow-2xl{box-shadow:0 25px 50px -12px #00000080!important}.dark .shadow-lg{box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d!important}.dark *:focus-visible{outline-color:#7b6bef}.dark .bg-\[\#553DE9\]\/8{background-color:#553de926!important}.dark .text-\[\#553DE9\]{color:#7b6bef!important}.dark .bg-\[\#24292f\]{background-color:#333840!important}.dark .hover\:bg-\[\#1b1f23\]:hover{background-color:#404750!important}.dark .pattern-nodes{opacity:.02}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.phase-active{animation:none}}@keyframes phase-pulse{0%,to{opacity:1}50%{opacity:.5}}.phase-active{animation:phase-pulse 2s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shimmer{animation:shimmer 2s infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.terminal-cursor:after{content:"";display:inline-block;width:8px;height:16px;background:#553de9;animation:cursor-blink 1s step-end infinite;margin-left:2px;vertical-align:text-bottom}@keyframes placeholder-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes placeholder-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.quick-input-placeholder{animation:placeholder-fade-in .4s ease-out forwards}.quick-input-placeholder-exit{animation:placeholder-fade-out .3s ease-in forwards}@media(max-width:767px){.responsive-table table,.responsive-table thead,.responsive-table tbody,.responsive-table th,.responsive-table td,.responsive-table tr{display:block}.responsive-table thead tr{position:absolute;top:-9999px;left:-9999px}.responsive-table tr{margin-bottom:.75rem;border:1px solid #ECEAE3;border-radius:8px;padding:.75rem;background:#fff}.dark .responsive-table tr{border-color:#2a2a30;background:#1a1a1e}.responsive-table td{border:none;position:relative;padding:.25rem .5rem .25rem 45%;text-align:left;font-size:.8125rem}.responsive-table td:before{content:attr(data-label);position:absolute;left:.5rem;width:40%;padding-right:.5rem;white-space:nowrap;font-weight:600;font-size:.75rem;color:#6b6960}.dark .responsive-table td:before{color:#8a8880}}@media(max-width:767px){.grid-cols-12{grid-template-columns:1fr!important}.col-span-3,.col-span-4,.col-span-5,.col-span-6{grid-column:span 1 / span 1!important}}@keyframes ptr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptr-spinner{width:24px;height:24px;border:3px solid #ECEAE3;border-top-color:#553de9;border-radius:50%;animation:ptr-spin .8s linear infinite}.dark .ptr-spinner{border-color:#2a2a30;border-top-color:#7b6bef}.img-blur-placeholder{filter:blur(10px);transition:filter .3s ease-out}.img-blur-placeholder.loaded{filter:blur(0)}.img-blur-placeholder.\!loaded{filter:blur(0)!important}.dark .glass-card{background:#1a1a1eb3;border-color:#ffffff0f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-left-1\.5{left:-.375rem}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-3{bottom:.75rem}.bottom-6{bottom:1.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-4{left:1rem}.left-6{left:1.5rem}.left-\[7px\]{left:7px}.left-full{left:100%}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.right-full{right:100%}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-7{top:1.75rem}.top-8{top:2rem}.top-full{top:100%}.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-\[55\]{z-index:55}.z-\[56\]{z-index:56}.z-\[60\]{z-index:60}.z-\[9999\]{z-index:9999}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-mt-1{margin-top:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-10{margin-left:2.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-9{margin-left:2.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-36{height:9rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[15px\]{height:15px}.h-\[200px\]{height:200px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[300px\]{max-height:300px}.max-h-\[320px\]{max-height:320px}.max-h-\[360px\]{max-height:360px}.max-h-\[400px\]{max-height:400px}.max-h-\[600px\]{max-height:600px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[16px\]{min-height:16px}.min-h-\[2\.4em\]{min-height:2.4em}.min-h-\[240px\]{min-height:240px}.min-h-\[280px\]{min-height:280px}.min-h-\[320px\]{min-height:320px}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[130px\]{width:130px}.w-\[15px\]{width:15px}.w-\[240px\]{width:240px}.w-\[280px\]{width:280px}.w-\[320px\]{width:320px}.w-\[60\%\]{width:60%}.w-\[95vw\]{width:95vw}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.min-w-\[280px\]{min-width:280px}.min-w-\[48px\]{min-width:48px}.min-w-\[56px\]{min-width:56px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[1000px\]{max-width:1000px}.max-w-\[100px\]{max-width:100px}.max-w-\[1100px\]{max-width:1100px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[120px\]{max-width:120px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[150px\]{max-width:150px}.max-w-\[180px\]{max-width:180px}.max-w-\[1920px\]{max-width:1920px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[26ch\]{max-width:26ch}.max-w-\[500px\]{max-width:500px}.max-w-\[60\%\]{max-width:60%}.max-w-\[640px\]{max-width:640px}.max-w-\[70\%\]{max-width:70%}.max-w-\[700px\]{max-width:700px}.max-w-\[80\%\]{max-width:80%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-4{--tw-translate-x: -1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-6{--tw-translate-y: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[slideIn_0\.3s_ease-out\]{animation:slideIn .3s ease-out}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-start{scroll-snap-align:start}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,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))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-\[\#ECEAE3\]>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(236 234 227 / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.\!overflow-visible{overflow:visible!important}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[3px\]{border-radius:3px}.rounded-\[5px\]{border-radius:5px}.rounded-btn{border-radius:4px}.rounded-card{border-radius:5px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-pill{border-radius:9999px}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-card{border-top-left-radius:5px;border-top-right-radius:5px}.rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[6px\]{border-width:6px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#1FC5A8\]\/20{border-color:#1fc5a833}.border-\[\#1FC5A8\]\/30{border-color:#1fc5a84d}.border-\[\#2A2A30\]{--tw-border-opacity: 1;border-color:rgb(42 42 48 / var(--tw-border-opacity, 1))}.border-\[\#3B82F6\]\/20{border-color:#3b82f633}.border-\[\#553DE9\]{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.border-\[\#553DE9\]\/10{border-color:#553de91a}.border-\[\#553DE9\]\/15{border-color:#553de926}.border-\[\#553DE9\]\/20{border-color:#553de933}.border-\[\#553DE9\]\/30{border-color:#553de94d}.border-\[\#553DE9\]\/40{border-color:#553de966}.border-\[\#6B6960\]\/20{border-color:#6b696033}.border-\[\#939084\]{--tw-border-opacity: 1;border-color:rgb(147 144 132 / var(--tw-border-opacity, 1))}.border-\[\#C45B5B\]\/20{border-color:#c45b5b33}.border-\[\#C45B5B\]\/30{border-color:#c45b5b4d}.border-\[\#E5A940\]\/20{border-color:#e5a94033}.border-\[\#ECEAE3\]{--tw-border-opacity: 1;border-color:rgb(236 234 227 / var(--tw-border-opacity, 1))}.border-\[\#ECEAE3\]\/50{border-color:#eceae380}.border-amber-500\/15{border-color:#f59e0b26}.border-border{--tw-border-opacity: 1;border-color:rgb(236 234 227 / var(--tw-border-opacity, 1))}.border-border-light{--tw-border-opacity: 1;border-color:rgb(197 192 177 / var(--tw-border-opacity, 1))}.border-border\/50{border-color:#eceae380}.border-danger\/10{border-color:#c45b5b1a}.border-danger\/15{border-color:#c45b5b26}.border-danger\/20{border-color:#c45b5b33}.border-danger\/25{border-color:#c45b5b40}.border-danger\/30{border-color:#c45b5b4d}.border-danger\/40{border-color:#c45b5b66}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-info\/15{border-color:#2f71e326}.border-ink\/20{border-color:#20151533}.border-muted\/20{border-color:#93908433}.border-muted\/40{border-color:#93908466}.border-primary{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.border-primary\/10{border-color:#553de91a}.border-primary\/15{border-color:#553de926}.border-primary\/20{border-color:#553de933}.border-primary\/30{border-color:#553de94d}.border-primary\/40{border-color:#553de966}.border-purple-500\/20{border-color:#a855f733}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-400\/20{border-color:#f8717133}.border-red-500\/10{border-color:#ef44441a}.border-red-500\/15{border-color:#ef444426}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-success{--tw-border-opacity: 1;border-color:rgb(31 197 168 / var(--tw-border-opacity, 1))}.border-success\/15{border-color:#1fc5a826}.border-success\/20{border-color:#1fc5a833}.border-success\/30{border-color:#1fc5a84d}.border-teal\/15{border-color:#1fc5a826}.border-teal\/20{border-color:#1fc5a833}.border-transparent{border-color:transparent}.border-warning{--tw-border-opacity: 1;border-color:rgb(212 160 60 / var(--tw-border-opacity, 1))}.border-warning\/10{border-color:#d4a03c1a}.border-warning\/15{border-color:#d4a03c26}.border-warning\/20{border-color:#d4a03c33}.border-warning\/30{border-color:#d4a03c4d}.border-warning\/40{border-color:#d4a03c66}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-yellow-500\/20{border-color:#eab30833}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-y-transparent{border-top-color:transparent;border-bottom-color:transparent}.border-b-\[\#1A1A1E\]{--tw-border-opacity: 1;border-bottom-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.border-b-\[\#36342E\]{--tw-border-opacity: 1;border-bottom-color:rgb(54 52 46 / var(--tw-border-opacity, 1))}.border-b-transparent{border-bottom-color:transparent}.border-b-white{--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-l-\[\#1A1A1E\]{--tw-border-opacity: 1;border-left-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.border-l-\[\#36342E\]{--tw-border-opacity: 1;border-left-color:rgb(54 52 46 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-l-white{--tw-border-opacity: 1;border-left-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-r-\[\#1A1A1E\]{--tw-border-opacity: 1;border-right-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.border-r-\[\#36342E\]{--tw-border-opacity: 1;border-right-color:rgb(54 52 46 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.border-r-white{--tw-border-opacity: 1;border-right-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-t-\[\#1A1A1E\]{--tw-border-opacity: 1;border-top-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.border-t-\[\#36342E\]{--tw-border-opacity: 1;border-top-color:rgb(54 52 46 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.border-t-white{--tw-border-opacity: 1;border-top-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.bg-\[\#06B6D4\]{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity, 1))}.bg-\[\#0F0F11\]{--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.bg-\[\#1A1A1E\]{--tw-bg-opacity: 1;background-color:rgb(26 26 30 / var(--tw-bg-opacity, 1))}.bg-\[\#1FC5A8\]{--tw-bg-opacity: 1;background-color:rgb(31 197 168 / var(--tw-bg-opacity, 1))}.bg-\[\#1FC5A8\]\/10{background-color:#1fc5a81a}.bg-\[\#1FC5A8\]\/20{background-color:#1fc5a833}.bg-\[\#24292f\]{--tw-bg-opacity: 1;background-color:rgb(36 41 47 / var(--tw-bg-opacity, 1))}.bg-\[\#2A2A30\]{--tw-bg-opacity: 1;background-color:rgb(42 42 48 / var(--tw-bg-opacity, 1))}.bg-\[\#36342E\]{--tw-bg-opacity: 1;background-color:rgb(54 52 46 / var(--tw-bg-opacity, 1))}.bg-\[\#3B82F6\]{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-\[\#3B82F6\]\/10{background-color:#3b82f61a}.bg-\[\#553DE9\]{--tw-bg-opacity: 1;background-color:rgb(85 61 233 / var(--tw-bg-opacity, 1))}.bg-\[\#553DE9\]\/10{background-color:#553de91a}.bg-\[\#553DE9\]\/20{background-color:#553de933}.bg-\[\#553DE9\]\/25{background-color:#553de940}.bg-\[\#553DE9\]\/5{background-color:#553de90d}.bg-\[\#553DE9\]\/50{background-color:#553de980}.bg-\[\#553DE9\]\/80{background-color:#553de9cc}.bg-\[\#6B6960\]\/10{background-color:#6b69601a}.bg-\[\#8B5CF6\]{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-\[\#939084\]{--tw-bg-opacity: 1;background-color:rgb(147 144 132 / var(--tw-bg-opacity, 1))}.bg-\[\#939084\]\/10{background-color:#9390841a}.bg-\[\#939084\]\/5{background-color:#9390840d}.bg-\[\#C45B5B\]{--tw-bg-opacity: 1;background-color:rgb(196 91 91 / var(--tw-bg-opacity, 1))}.bg-\[\#C45B5B\]\/10{background-color:#c45b5b1a}.bg-\[\#C45B5B\]\/5{background-color:#c45b5b0d}.bg-\[\#D4A03C\]\/10{background-color:#d4a03c1a}.bg-\[\#D63384\]{--tw-bg-opacity: 1;background-color:rgb(214 51 132 / var(--tw-bg-opacity, 1))}.bg-\[\#E5A940\]{--tw-bg-opacity: 1;background-color:rgb(229 169 64 / var(--tw-bg-opacity, 1))}.bg-\[\#E5A940\]\/10{background-color:#e5a9401a}.bg-\[\#EC4899\]{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-\[\#ECEAE3\]{--tw-bg-opacity: 1;background-color:rgb(236 234 227 / var(--tw-bg-opacity, 1))}.bg-\[\#ECEAE3\]\/20{background-color:#eceae333}.bg-\[\#ECEAE3\]\/30{background-color:#eceae34d}.bg-\[\#ECEAE3\]\/40{background-color:#eceae366}.bg-\[\#ECEAE3\]\/60{background-color:#eceae399}.bg-\[\#F0EDE8\]{--tw-bg-opacity: 1;background-color:rgb(240 237 232 / var(--tw-bg-opacity, 1))}.bg-\[\#F59E0B\]\/10{background-color:#f59e0b1a}.bg-\[\#F5F4EF\]{--tw-bg-opacity: 1;background-color:rgb(245 244 239 / var(--tw-bg-opacity, 1))}.bg-\[\#F8F4F0\]{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.bg-\[\#FAF9F6\]{--tw-bg-opacity: 1;background-color:rgb(250 249 246 / var(--tw-bg-opacity, 1))}.bg-\[\#FAFAF8\]{--tw-bg-opacity: 1;background-color:rgb(250 250 248 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/5{background-color:#f59e0b0d}.bg-background{--tw-bg-opacity: 1;background-color:rgb(255 254 251 / var(--tw-bg-opacity, 1))}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/5{background-color:#0000000d}.bg-black\/50{background-color:#00000080}.bg-border{--tw-bg-opacity: 1;background-color:rgb(236 234 227 / var(--tw-bg-opacity, 1))}.bg-border\/30{background-color:#eceae34d}.bg-card{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-card\/50{background-color:#ffffff80}.bg-current{background-color:currentColor}.bg-cyan-400\/10{background-color:#22d3ee1a}.bg-cyan-400\/15{background-color:#22d3ee26}.bg-cyan-500\/10{background-color:#06b6d41a}.bg-cyan-500\/15{background-color:#06b6d426}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(196 91 91 / var(--tw-bg-opacity, 1))}.bg-danger\/10{background-color:#c45b5b1a}.bg-danger\/15{background-color:#c45b5b26}.bg-danger\/5{background-color:#c45b5b0d}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-400\/10{background-color:#9ca3af1a}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-gray-500\/15{background-color:#6b728026}.bg-gray-600\/10{background-color:#4b55631a}.bg-gray-600\/15{background-color:#4b556326}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-green-500\/5{background-color:#22c55e0d}.bg-green-600\/10{background-color:#16a34a1a}.bg-green-600\/15{background-color:#16a34a26}.bg-hover{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.bg-hover\/30{background-color:#f8f4f04d}.bg-hover\/40{background-color:#f8f4f066}.bg-hover\/50{background-color:#f8f4f080}.bg-indigo-400\/10{background-color:#818cf81a}.bg-indigo-400\/15{background-color:#818cf826}.bg-indigo-500\/10{background-color:#6366f11a}.bg-indigo-500\/15{background-color:#6366f126}.bg-info{--tw-bg-opacity: 1;background-color:rgb(47 113 227 / var(--tw-bg-opacity, 1))}.bg-ink{--tw-bg-opacity: 1;background-color:rgb(32 21 21 / var(--tw-bg-opacity, 1))}.bg-ink\/10{background-color:#2015151a}.bg-ink\/20{background-color:#20151533}.bg-ink\/30{background-color:#2015154d}.bg-ink\/5{background-color:#2015150d}.bg-ink\/\[0\.03\]{background-color:#20151508}.bg-muted{--tw-bg-opacity: 1;background-color:rgb(147 144 132 / var(--tw-bg-opacity, 1))}.bg-muted\/10{background-color:#9390841a}.bg-muted\/30{background-color:#9390844d}.bg-muted\/40{background-color:#93908466}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(85 61 233 / var(--tw-bg-opacity, 1))}.bg-primary\/10{background-color:#553de91a}.bg-primary\/20{background-color:#553de933}.bg-primary\/40{background-color:#553de966}.bg-primary\/5{background-color:#553de90d}.bg-primary\/60{background-color:#553de999}.bg-purple-400\/10{background-color:#c084fc1a}.bg-purple-400\/15{background-color:#c084fc26}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/15{background-color:#a855f726}.bg-purple-500\/5{background-color:#a855f70d}.bg-red-400\/10{background-color:#f871711a}.bg-red-400\/5{background-color:#f871710d}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/15{background-color:#ef444426}.bg-red-500\/5{background-color:#ef44440d}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-sky-500\/15{background-color:#0ea5e926}.bg-success{--tw-bg-opacity: 1;background-color:rgb(31 197 168 / var(--tw-bg-opacity, 1))}.bg-success\/10{background-color:#1fc5a81a}.bg-success\/5{background-color:#1fc5a80d}.bg-teal{--tw-bg-opacity: 1;background-color:rgb(31 197 168 / var(--tw-bg-opacity, 1))}.bg-teal\/10{background-color:#1fc5a81a}.bg-transparent{background-color:transparent}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(212 160 60 / var(--tw-bg-opacity, 1))}.bg-warning\/10{background-color:#d4a03c1a}.bg-warning\/5{background-color:#d4a03c0d}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/15{background-color:#ffffff26}.bg-white\/20{background-color:#fff3}.bg-white\/25{background-color:#ffffff40}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-yellow-500\/15{background-color:#eab30826}.bg-yellow-500\/5{background-color:#eab3080d}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\[\#0EA5E9\]{--tw-gradient-from: #0EA5E9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#1FC5A8\]{--tw-gradient-from: #1FC5A8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 197 168 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#22C55E\]{--tw-gradient-from: #22C55E var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#2F71E3\]{--tw-gradient-from: #2F71E3 var(--tw-gradient-from-position);--tw-gradient-to: rgb(47 113 227 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#36342E\]{--tw-gradient-from: #36342E var(--tw-gradient-from-position);--tw-gradient-to: rgb(54 52 46 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#553DE9\]{--tw-gradient-from: #553DE9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#553DE9\]\/20{--tw-gradient-from: rgb(85 61 233 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#553DE9\]\/5{--tw-gradient-from: rgb(85 61 233 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#5865F2\]{--tw-gradient-from: #5865F2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(88 101 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#845EF7\]{--tw-gradient-from: #845EF7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(132 94 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#DC2626\]{--tw-gradient-from: #DC2626 var(--tw-gradient-from-position);--tw-gradient-to: rgb(220 38 38 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#E93D82\]{--tw-gradient-from: #E93D82 var(--tw-gradient-from-position);--tw-gradient-to: rgb(233 61 130 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#ECEAE3\]\/30{--tw-gradient-from: rgb(236 234 227 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 234 227 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#F59F00\]{--tw-gradient-from: #F59F00 var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 159 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#F97316\]{--tw-gradient-from: #F97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-500\/20{--tw-gradient-from: rgb(16 185 129 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-500{--tw-gradient-from: #6b7280 var(--tw-gradient-from-position);--tw-gradient-to: rgb(107 114 128 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500\/20{--tw-gradient-from: rgb(34 197 94 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500\/20{--tw-gradient-from: rgb(249 115 22 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary{--tw-gradient-from: #553DE9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/20{--tw-gradient-from: rgb(85 61 233 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: rgb(85 61 233 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-500\/20{--tw-gradient-from: rgb(244 63 94 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-500{--tw-gradient-from: #64748b var(--tw-gradient-from-position);--tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-500\/20{--tw-gradient-from: rgb(100 116 139 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-600{--tw-gradient-from: #475569 var(--tw-gradient-from-position);--tw-gradient-to: rgb(71 85 105 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500{--tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500\/20{--tw-gradient-from: rgb(139 92 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600{--tw-gradient-from: #7c3aed var(--tw-gradient-from-position);--tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#553DE9\]\/10{--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(85 61 233 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-\[\#7B6BEF\]{--tw-gradient-to: rgb(123 107 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #7B6BEF var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-emerald-500{--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #10b981 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-gray-400{--tw-gradient-to: rgb(156 163 175 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #9ca3af var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-gray-400\/10{--tw-gradient-to: rgb(156 163 175 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(156 163 175 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-gray-500{--tw-gradient-to: rgb(107 114 128 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #6b7280 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-gray-500\/10{--tw-gradient-to: rgb(107 114 128 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(107 114 128 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-indigo-500{--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #6366f1 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-indigo-500\/10{--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(99 102 241 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-orange-500\/10{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #a855f7 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-500\/10{--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(168 85 247 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-rose-500{--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #f43f5e var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-rose-500\/10{--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(244 63 94 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-sky-500\/10{--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(14 165 233 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-500{--tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #64748b var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/20{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .2) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#1A1A1E\]{--tw-gradient-to: #1A1A1E var(--tw-gradient-to-position)}.to-\[\#1FC5A8\]{--tw-gradient-to: #1FC5A8 var(--tw-gradient-to-position)}.to-\[\#1FC5A8\]\/5{--tw-gradient-to: rgb(31 197 168 / .05) var(--tw-gradient-to-position)}.to-\[\#38BDF8\]{--tw-gradient-to: #38BDF8 var(--tw-gradient-to-position)}.to-\[\#38D9A9\]{--tw-gradient-to: #38D9A9 var(--tw-gradient-to-position)}.to-\[\#4ADE80\]{--tw-gradient-to: #4ADE80 var(--tw-gradient-to-position)}.to-\[\#553DE9\]{--tw-gradient-to: #553DE9 var(--tw-gradient-to-position)}.to-\[\#5C93E8\]{--tw-gradient-to: #5C93E8 var(--tw-gradient-to-position)}.to-\[\#6B6960\]{--tw-gradient-to: #6B6960 var(--tw-gradient-to-position)}.to-\[\#7289DA\]{--tw-gradient-to: #7289DA var(--tw-gradient-to-position)}.to-\[\#7B6BEF\]{--tw-gradient-to: #7B6BEF var(--tw-gradient-to-position)}.to-\[\#8B78F0\]\/10{--tw-gradient-to: rgb(139 120 240 / .1) var(--tw-gradient-to-position)}.to-\[\#B197FC\]{--tw-gradient-to: #B197FC var(--tw-gradient-to-position)}.to-\[\#D63384\]{--tw-gradient-to: #D63384 var(--tw-gradient-to-position)}.to-\[\#ECEAE3\]\/10{--tw-gradient-to: rgb(236 234 227 / .1) var(--tw-gradient-to-position)}.to-\[\#F06595\]{--tw-gradient-to: #F06595 var(--tw-gradient-to-position)}.to-\[\#F87171\]{--tw-gradient-to: #F87171 var(--tw-gradient-to-position)}.to-\[\#FB923C\]{--tw-gradient-to: #FB923C var(--tw-gradient-to-position)}.to-\[\#FCC419\]{--tw-gradient-to: #FCC419 var(--tw-gradient-to-position)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-cyan-500\/20{--tw-gradient-to: rgb(6 182 212 / .2) var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.to-emerald-600{--tw-gradient-to: #059669 var(--tw-gradient-to-position)}.to-fuchsia-500\/20{--tw-gradient-to: rgb(217 70 239 / .2) var(--tw-gradient-to-position)}.to-green-500\/5{--tw-gradient-to: rgb(34 197 94 / .05) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-indigo-500\/20{--tw-gradient-to: rgb(99 102 241 / .2) var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-orange-500\/5{--tw-gradient-to: rgb(249 115 22 / .05) var(--tw-gradient-to-position)}.to-primary\/5{--tw-gradient-to: rgb(85 61 233 / .05) var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-500\/20{--tw-gradient-to: rgb(168 85 247 / .2) var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-teal{--tw-gradient-to: #1FC5A8 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-yellow-500\/20{--tw-gradient-to: rgb(234 179 8 / .2) var(--tw-gradient-to-position)}.to-zinc-500{--tw-gradient-to: #71717a var(--tw-gradient-to-position)}.to-zinc-500\/20{--tw-gradient-to: rgb(113 113 122 / .2) var(--tw-gradient-to-position)}.to-zinc-600{--tw-gradient-to: #52525b var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-\[\#36342E\]{fill:#36342e}.fill-\[\#6B6960\]{fill:#6b6960}.fill-\[\#939084\]{fill:#939084}.fill-ink{fill:#201515}.fill-primary{fill:#553de9}.fill-white{fill:#fff}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-12{padding-bottom:3rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-\[15vh\]{padding-top:15vh}.pt-\[20vh\]{padding-top:20vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.font-heading{font-family:DM Serif Display,Georgia,Times New Roman,serif}.font-mono{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace}.font-sans{font-family:Inter,system-ui,-apple-system,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-caption{font-size:.875rem;line-height:1.5}.text-h1{font-size:2.5rem;line-height:1;letter-spacing:-.01em}.text-h2{font-size:1.5rem;line-height:1.3}.text-h3{font-size:1.25rem;line-height:1.4}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-small{font-size:.75rem;line-height:1.5;font-weight:500}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.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)}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#059669\]{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-\[\#1FC5A8\]{--tw-text-opacity: 1;color:rgb(31 197 168 / var(--tw-text-opacity, 1))}.text-\[\#201515\]{--tw-text-opacity: 1;color:rgb(32 21 21 / var(--tw-text-opacity, 1))}.text-\[\#2F71E3\]{--tw-text-opacity: 1;color:rgb(47 113 227 / var(--tw-text-opacity, 1))}.text-\[\#36342E\]{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.text-\[\#3B82F6\]{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-\[\#553DE9\]{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.text-\[\#553DE9\]\/15{color:#553de926}.text-\[\#553DE9\]\/40{color:#553de966}.text-\[\#553DE9\]\/60{color:#553de999}.text-\[\#6B6960\]{--tw-text-opacity: 1;color:rgb(107 105 96 / var(--tw-text-opacity, 1))}.text-\[\#6B6960\]\/30{color:#6b69604d}.text-\[\#6B6960\]\/50{color:#6b696080}.text-\[\#6B8AFD\]{--tw-text-opacity: 1;color:rgb(107 138 253 / var(--tw-text-opacity, 1))}.text-\[\#939084\]{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.text-\[\#939084\]\/40{color:#93908466}.text-\[\#939084\]\/60{color:#93908499}.text-\[\#B8B5AD\]{--tw-text-opacity: 1;color:rgb(184 181 173 / var(--tw-text-opacity, 1))}.text-\[\#C45B5B\]{--tw-text-opacity: 1;color:rgb(196 91 91 / var(--tw-text-opacity, 1))}.text-\[\#C45B5B\]\/40{color:#c45b5b66}.text-\[\#D4A03C\]{--tw-text-opacity: 1;color:rgb(212 160 60 / var(--tw-text-opacity, 1))}.text-\[\#D4A843\]{--tw-text-opacity: 1;color:rgb(212 168 67 / var(--tw-text-opacity, 1))}.text-\[\#E5A940\]{--tw-text-opacity: 1;color:rgb(229 169 64 / var(--tw-text-opacity, 1))}.text-\[\#E8E6E3\]{--tw-text-opacity: 1;color:rgb(232 230 227 / var(--tw-text-opacity, 1))}.text-\[\#E93D82\]{--tw-text-opacity: 1;color:rgb(233 61 130 / var(--tw-text-opacity, 1))}.text-\[\#ECEAE3\]{--tw-text-opacity: 1;color:rgb(236 234 227 / var(--tw-text-opacity, 1))}.text-\[\#F59E0B\]{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-border{--tw-text-opacity: 1;color:rgb(236 234 227 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(196 91 91 / var(--tw-text-opacity, 1))}.text-danger\/70{color:#c45b5bb3}.text-danger\/80{color:#c45b5bcc}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-500\/30{color:#22c55e4d}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-info{--tw-text-opacity: 1;color:rgb(47 113 227 / var(--tw-text-opacity, 1))}.text-ink{--tw-text-opacity: 1;color:rgb(32 21 21 / var(--tw-text-opacity, 1))}.text-ink\/20{color:#20151533}.text-ink\/70{color:#201515b3}.text-ink\/80{color:#201515cc}.text-muted{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.text-muted-accessible{--tw-text-opacity: 1;color:rgb(107 105 96 / var(--tw-text-opacity, 1))}.text-muted\/30{color:#9390844d}.text-muted\/40{color:#93908466}.text-muted\/50{color:#93908480}.text-muted\/60{color:#93908499}.text-muted\/70{color:#939084b3}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-pink{--tw-text-opacity: 1;color:rgb(214 51 132 / var(--tw-text-opacity, 1))}.text-pink\/60{color:#d6338499}.text-primary{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.text-primary\/20{color:#553de933}.text-primary\/50{color:#553de980}.text-primary\/60{color:#553de999}.text-primary\/70{color:#553de9b3}.text-primary\/80{color:#553de9cc}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-600\/80{color:#dc2626cc}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-success,.text-teal{--tw-text-opacity: 1;color:rgb(31 197 168 / var(--tw-text-opacity, 1))}.text-teal\/60{color:#1fc5a899}.text-transparent{color:transparent}.text-warning{--tw-text-opacity: 1;color:rgb(212 160 60 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-\[\#939084\]::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(147 144 132 / var(--tw-placeholder-opacity, 1))}.placeholder-\[\#939084\]::placeholder{--tw-placeholder-opacity: 1;color:rgb(147 144 132 / var(--tw-placeholder-opacity, 1))}.accent-\[\#553DE9\],.accent-primary{accent-color:#553DE9}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-\[0\.12\]{opacity:.12}.opacity-\[0\.15\]{opacity:.15}.mix-blend-difference{mix-blend-mode:difference}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_20px_rgba\(85\,61\,233\,0\.3\)\]{--tw-shadow: 0 0 20px rgba(85,61,233,.3);--tw-shadow-colored: 0 0 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-button{--tw-shadow: 0 1px 3px rgba(0,0,0,.08);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: 0 1px 3px rgba(0,0,0,.06);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card-hover{--tw-shadow: 0 5px 10px rgba(0,0,0,.08);--tw-shadow-colored: 0 5px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[\#553DE9\]\/20{--tw-shadow-color: rgb(85 61 233 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-\[\#553DE9\]\/25{--tw-shadow-color: rgb(85 61 233 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-card{--tw-shadow-color: #FFFFFF;--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/30{--tw-shadow-color: rgb(85 61 233 / .3);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-\[\#553DE9\]{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 61 233 / var(--tw-ring-opacity, 1))}.ring-border{--tw-ring-opacity: 1;--tw-ring-color: rgb(236 234 227 / var(--tw-ring-opacity, 1))}.ring-card{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1))}.ring-green-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.ring-primary{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 61 233 / var(--tw-ring-opacity, 1))}.ring-red-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.ring-offset-2{--tw-ring-offset-width: 2px}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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-sm{--tw-backdrop-blur: blur(4px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.dark .placeholder\:text-muted::-moz-placeholder{color:#8a8880!important}.dark .placeholder\:text-muted::placeholder{color:#8a8880!important}.dark .placeholder\:text-\[\#939084\]::-moz-placeholder{color:#8a8880!important}.dark .placeholder\:text-\[\#939084\]::placeholder{color:#8a8880!important}.dark .placeholder\:text-muted-accessible::-moz-placeholder{color:#9a9690!important}.dark .placeholder\:text-muted-accessible::placeholder{color:#9a9690!important}.dark .hover\:bg-card:hover{background-color:#1a1a1e!important}.dark .hover\:bg-\[\#FAF9F6\]:hover{background-color:#0f0f11!important}.dark .hover\:bg-hover:hover,.dark .hover\:bg-\[\#F8F4F0\]:hover{background-color:#222228!important}.dark .hover\:bg-white:hover{background-color:#1a1a1e!important}.dark .hover\:border-border:hover{border-color:#2a2a30!important}.dark .hover\:text-ink:hover{color:#e8e6e3!important}.dark .hover\:text-secondary:hover,.dark .hover\:text-\[\#36342E\]:hover{color:#c5c0b8!important}.dark .hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d!important}.dark .hover\:text-\[\#553DE9\]:hover{color:#7b6bef!important}.dark .focus\:bg-white:focus{background-color:#1a1a1e!important}.dark .focus\:border-\[\#553DE9\]:focus{border-color:#7b6bef!important}.dark .focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d!important}.dark .focus\:text-\[\#553DE9\]:focus{color:#7b6bef!important}.dark .group:hover .group-hover\:text-ink{color:#e8e6e3!important}.dark .group:hover .group-hover\:text-\[\#553DE9\]{color:#7b6bef!important}.dark .dark\:bg-card:is(.dark *){background-color:#1a1a1e!important}@media(min-width:768px){@media(max-width:767px){.md\:col-span-3{grid-column:span 1 / span 1!important}}}@media(min-width:1024px){.dark .lg\:border-l{border-color:#2a2a30}}.placeholder\:text-\[\#939084\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.placeholder\:text-\[\#939084\]::placeholder{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.placeholder\:text-muted::-moz-placeholder{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.placeholder\:text-muted::placeholder{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.placeholder\:text-muted-accessible::-moz-placeholder{--tw-text-opacity: 1;color:rgb(107 105 96 / var(--tw-text-opacity, 1))}.placeholder\:text-muted-accessible::placeholder{--tw-text-opacity: 1;color:rgb(107 105 96 / var(--tw-text-opacity, 1))}.placeholder\:text-primary\/60::-moz-placeholder{color:#553de999}.placeholder\:text-primary\/60::placeholder{color:#553de999}.placeholder\:text-transparent::-moz-placeholder{color:transparent}.placeholder\:text-transparent::placeholder{color:transparent}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:left-0:before{content:var(--tw-content);left:0}.before\:top-\[7px\]:before{content:var(--tw-content);top:7px}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-1\.5:before{content:var(--tw-content);width:.375rem}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-\[\#ECEAE3\]:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(236 234 227 / var(--tw-bg-opacity, 1))}.before\:content-\[\'\'\]:before{--tw-content: "";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.last\:border-b-0:last-child{border-bottom-width:0px}.last\:pb-0:last-child{padding-bottom:0}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#553DE9\]\/30:hover{border-color:#553de94d}.hover\:border-\[\#553DE9\]\/40:hover{border-color:#553de966}.hover\:border-\[\#553DE9\]\/50:hover{border-color:#553de980}.hover\:border-\[\#C45B5B\]\/40:hover{border-color:#c45b5b66}.hover\:border-border:hover{--tw-border-opacity: 1;border-color:rgb(236 234 227 / var(--tw-border-opacity, 1))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-orange-300:hover{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.hover\:border-primary:hover{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.hover\:border-primary\/30:hover{border-color:#553de94d}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:border-violet-300:hover{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#1b1f23\]:hover{--tw-bg-opacity: 1;background-color:rgb(27 31 35 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#3F2BB8\]:hover{--tw-bg-opacity: 1;background-color:rgb(63 43 184 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#4432c4\]:hover{--tw-bg-opacity: 1;background-color:rgb(68 50 196 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#4832c7\]:hover{--tw-bg-opacity: 1;background-color:rgb(72 50 199 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#553DE9\]\/20:hover{background-color:#553de933}.hover\:bg-\[\#553DE9\]\/5:hover{background-color:#553de90d}.hover\:bg-\[\#553DE9\]\/90:hover{background-color:#553de9e6}.hover\:bg-\[\#553DE9\]\/\[0\.02\]:hover{background-color:#553de905}.hover\:bg-\[\#C45B5B\]\/20:hover{background-color:#c45b5b33}.hover\:bg-\[\#E8E4FD\]:hover{--tw-bg-opacity: 1;background-color:rgb(232 228 253 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#ECEAE3\]:hover{--tw-bg-opacity: 1;background-color:rgb(236 234 227 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F5F4EF\]:hover{--tw-bg-opacity: 1;background-color:rgb(245 244 239 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F8F4F0\]:hover{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#FAF9F6\]:hover{--tw-bg-opacity: 1;background-color:rgb(250 249 246 / var(--tw-bg-opacity, 1))}.hover\:bg-black\/10:hover{background-color:#0000001a}.hover\:bg-card:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-danger\/10:hover{background-color:#c45b5b1a}.hover\:bg-danger\/15:hover{background-color:#c45b5b26}.hover\:bg-danger\/20:hover{background-color:#c45b5b33}.hover\:bg-hover:hover{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.hover\:bg-hover\/30:hover{background-color:#f8f4f04d}.hover\:bg-hover\/50:hover{background-color:#f8f4f080}.hover\:bg-info\/15:hover{background-color:#2f71e326}.hover\:bg-primary-hover:hover{--tw-bg-opacity: 1;background-color:rgb(68 50 196 / var(--tw-bg-opacity, 1))}.hover\:bg-primary\/10:hover{background-color:#553de91a}.hover\:bg-primary\/15:hover{background-color:#553de926}.hover\:bg-primary\/20:hover{background-color:#553de933}.hover\:bg-primary\/30:hover{background-color:#553de94d}.hover\:bg-primary\/5:hover{background-color:#553de90d}.hover\:bg-primary\/90:hover{background-color:#553de9e6}.hover\:bg-red-400\/5:hover{background-color:#f871710d}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/20:hover{background-color:#ef444433}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-teal\/15:hover{background-color:#1fc5a826}.hover\:bg-warning\/10:hover{background-color:#d4a03c1a}.hover\:bg-warning\/15:hover{background-color:#d4a03c26}.hover\:bg-warning\/20:hover{background-color:#d4a03c33}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:text-\[\#36342E\]:hover{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.hover\:text-\[\#3F2BB8\]:hover{--tw-text-opacity: 1;color:rgb(63 43 184 / var(--tw-text-opacity, 1))}.hover\:text-\[\#4432c4\]:hover{--tw-text-opacity: 1;color:rgb(68 50 196 / var(--tw-text-opacity, 1))}.hover\:text-\[\#4832c7\]:hover{--tw-text-opacity: 1;color:rgb(72 50 199 / var(--tw-text-opacity, 1))}.hover\:text-\[\#553DE9\]:hover{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.hover\:text-\[\#C45B5B\]:hover,.hover\:text-danger:hover{--tw-text-opacity: 1;color:rgb(196 91 91 / var(--tw-text-opacity, 1))}.hover\:text-ink:hover{--tw-text-opacity: 1;color:rgb(32 21 21 / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.hover\:text-primary-hover:hover{--tw-text-opacity: 1;color:rgb(68 50 196 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:#553de9cc}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-secondary:hover{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-card-hover:hover{--tw-shadow: 0 5px 10px rgba(0,0,0,.08);--tw-shadow-colored: 0 5px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[\#553DE9\]\/30:hover{--tw-shadow-color: rgb(85 61 233 / .3);--tw-shadow: var(--tw-shadow-colored)}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:absolute:focus{position:absolute}.focus\:left-2:focus{left:.5rem}.focus\:top-2:focus{top:.5rem}.focus\:z-50:focus{z-index:50}.focus\:rounded-\[3px\]:focus{border-radius:3px}.focus\:border-\[\#553DE9\]:focus{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.focus\:border-\[\#553DE9\]\/40:focus{border-color:#553de966}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.focus\:border-primary\/30:focus{border-color:#553de94d}.focus\:border-primary\/40:focus{border-color:#553de966}.focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus\:text-\[\#553DE9\]:focus{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.focus\:shadow-card:focus{--tw-shadow: 0 1px 3px rgba(0,0,0,.06);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:shadow-lg:focus{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:shadow-card:focus{--tw-shadow-color: #FFFFFF;--tw-shadow: var(--tw-shadow-colored)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-\[\#553DE9\]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 61 233 / var(--tw-ring-opacity, 1))}.focus\:ring-\[\#553DE9\]\/10:focus{--tw-ring-color: rgb(85 61 233 / .1)}.focus\:ring-\[\#553DE9\]\/20:focus{--tw-ring-color: rgb(85 61 233 / .2)}.focus\:ring-\[\#553DE9\]\/30:focus{--tw-ring-color: rgb(85 61 233 / .3)}.focus\:ring-\[\#553DE9\]\/40:focus{--tw-ring-color: rgb(85 61 233 / .4)}.focus\:ring-\[\#C45B5B\]\/40:focus{--tw-ring-color: rgb(196 91 91 / .4)}.focus\:ring-primary:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 61 233 / var(--tw-ring-opacity, 1))}.focus\:ring-primary\/10:focus{--tw-ring-color: rgb(85 61 233 / .1)}.focus\:ring-primary\/20:focus{--tw-ring-color: rgb(85 61 233 / .2)}.focus\:ring-primary\/30:focus{--tw-ring-color: rgb(85 61 233 / .3)}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-white:focus{--tw-ring-offset-color: #fff}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-1px\]:focus-visible{outline-offset:-1px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-\[\#553DE9\]:focus-visible{outline-color:#553de9}.focus-visible\:outline-danger:focus-visible{outline-color:#c45b5b}.focus-visible\:outline-primary:focus-visible{outline-color:#553de9}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-\[\#553DE9\]\/15{background-color:#553de926}.group:hover .group-hover\:text-\[\#553DE9\]{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-ink{--tw-text-opacity: 1;color:rgb(32 21 21 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.group\/file:hover .group-hover\/file\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}@media(prefers-reduced-motion:reduce){.motion-reduce\:hidden{display:none}.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}.dark\:divide-\[\#2A2A30\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(42 42 48 / var(--tw-divide-opacity, 1))}.dark\:border-\[\#1A1A1E\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2A2A2E\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 46 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2A2A30\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 48 / var(--tw-border-opacity, 1))}.dark\:border-\[\#553DE9\]\/30:is(.dark *){border-color:#553de94d}.dark\:border-dark-border:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 48 / var(--tw-border-opacity, 1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 101 52 / var(--tw-border-opacity, 1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(133 77 14 / var(--tw-border-opacity, 1))}.dark\:border-b-\[\#1A1A1E\]:is(.dark *){--tw-border-opacity: 1;border-bottom-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.dark\:border-b-card:is(.dark *){--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:border-l-\[\#1A1A1E\]:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.dark\:border-l-card:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:border-r-\[\#1A1A1E\]:is(.dark *){--tw-border-opacity: 1;border-right-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.dark\:border-r-card:is(.dark *){--tw-border-opacity: 1;border-right-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:border-t-\[\#1A1A1E\]:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(26 26 30 / var(--tw-border-opacity, 1))}.dark\:border-t-card:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:bg-\[\#0F0F11\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121215\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 21 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#18181B\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1A1A1E\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 30 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1A1A1F\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 31 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#222228\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 40 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#23232A\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 35 42 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2A2A30\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 42 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#553DE9\]\/10:is(.dark *){background-color:#553de91a}.dark\:bg-\[\#553DE9\]\/20:is(.dark *){background-color:#553de933}.dark\:bg-card:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-card\/90:is(.dark *){background-color:#ffffffe6}.dark\:bg-dark-bg:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.dark\:bg-dark-card:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 30 / var(--tw-bg-opacity, 1))}.dark\:bg-dark-hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 40 / var(--tw-bg-opacity, 1))}.dark\:bg-green-500\/10:is(.dark *){background-color:#22c55e1a}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-primary\/10:is(.dark *){background-color:#553de91a}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-yellow-900\/20:is(.dark *){background-color:#713f1233}.dark\:from-\[\#553DE9\]\/30:is(.dark *){--tw-gradient-from: rgb(85 61 233 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-\[\#553DE9\]\/15:is(.dark *){--tw-gradient-to: rgb(85 61 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(85 61 233 / .15) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-\[\#8B78F0\]\/10:is(.dark *){--tw-gradient-to: rgb(139 120 240 / .1) var(--tw-gradient-to-position)}.dark\:fill-\[\#1A1A1E\]:is(.dark *){fill:#1a1a1e}.dark\:fill-\[\#222228\]:is(.dark *){fill:#222228}.dark\:fill-\[\#8A8880\]:is(.dark *){fill:#8a8880}.dark\:fill-\[\#E8E6E3\]:is(.dark *){fill:#e8e6e3}.dark\:stroke-\[\#2A2A30\]:is(.dark *){stroke:#2a2a30}.dark\:text-\[\#7B6BEF\]:is(.dark *){--tw-text-opacity: 1;color:rgb(123 107 239 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8A8880\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 136 128 / var(--tw-text-opacity, 1))}.dark\:text-\[\#A8A69E\]:is(.dark *){--tw-text-opacity: 1;color:rgb(168 166 158 / var(--tw-text-opacity, 1))}.dark\:text-\[\#C5C0B8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(197 192 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#E8E6E3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(232 230 227 / var(--tw-text-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-dark-ink:is(.dark *){--tw-text-opacity: 1;color:rgb(232 230 227 / var(--tw-text-opacity, 1))}.dark\:text-dark-muted:is(.dark *){--tw-text-opacity: 1;color:rgb(138 136 128 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-400\/80:is(.dark *){color:#f87171cc}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-\[\#222228\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 40 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#23232A\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 35 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-dark-hover:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 40 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:#ffffff1a}.dark\:hover\:text-\[\#E8E6E3\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(232 230 227 / var(--tw-text-opacity, 1))}.dark\:focus\:ring-offset-\[\#1A1A1E\]:focus:is(.dark *){--tw-ring-offset-color: #1A1A1E}@media not all and (min-width:768px){.max-md\:flex-col{flex-direction:column}.max-md\:gap-3{gap:.75rem}.max-md\:gap-4{gap:1rem}.max-md\:px-4{padding-left:1rem;padding-right:1rem}.max-md\:text-h2{font-size:1.5rem;line-height:1.3}}@media(min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-16{gap:4rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width:768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-3{grid-column:span 3 / span 3}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:table-cell{display:table-cell}.md\:hidden{display:none}.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\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-8{gap:2rem}}@media(min-width:1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:inline{display:inline}.lg\:max-h-none{max-height:none}.lg\:w-\[40\%\]{width:40%}.lg\:w-\[60\%\]{width:60%}.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-\[minmax\(0\,18rem\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,18rem) minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:border-l{border-left-width:1px}.lg\:border-t-0{border-top-width:0px}.lg\:p-8{padding:2rem}}@media(min-width:1280px){.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,22rem\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,22rem) minmax(0,1fr)}.xl\:items-start{align-items:flex-start}}
|