clawatch 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/backend/dist/routes.d.ts.map +1 -1
  2. package/backend/dist/routes.js +4 -2
  3. package/backend/dist/routes.js.map +1 -1
  4. package/frontend/.next/BUILD_ID +1 -1
  5. package/frontend/.next/build-manifest.json +2 -2
  6. package/frontend/.next/prerender-manifest.json +3 -3
  7. package/frontend/.next/server/app/_global-error.html +2 -2
  8. package/frontend/.next/server/app/_global-error.rsc +1 -1
  9. package/frontend/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/frontend/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/frontend/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/frontend/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/frontend/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/frontend/.next/server/app/_not-found.html +1 -1
  16. package/frontend/.next/server/app/_not-found.rsc +2 -2
  17. package/frontend/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/frontend/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/frontend/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  20. package/frontend/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/frontend/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/frontend/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/frontend/.next/server/app/dashboard/page.js.nft.json +1 -1
  24. package/frontend/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
  25. package/frontend/.next/server/app/dashboard/projects/[id]/page.js.nft.json +1 -1
  26. package/frontend/.next/server/app/dashboard/projects/[id]/page_client-reference-manifest.js +1 -1
  27. package/frontend/.next/server/app/dashboard/sessions/[id]/page.js.nft.json +1 -1
  28. package/frontend/.next/server/app/dashboard/sessions/[id]/page_client-reference-manifest.js +1 -1
  29. package/frontend/.next/server/app/dashboard.html +1 -1
  30. package/frontend/.next/server/app/dashboard.rsc +3 -3
  31. package/frontend/.next/server/app/dashboard.segments/_full.segment.rsc +3 -3
  32. package/frontend/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  33. package/frontend/.next/server/app/dashboard.segments/_index.segment.rsc +2 -2
  34. package/frontend/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  35. package/frontend/.next/server/app/dashboard.segments/dashboard/__PAGE__.segment.rsc +2 -2
  36. package/frontend/.next/server/app/dashboard.segments/dashboard.segment.rsc +1 -1
  37. package/frontend/.next/server/app/index.html +2 -2
  38. package/frontend/.next/server/app/index.rsc +3 -3
  39. package/frontend/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  40. package/frontend/.next/server/app/index.segments/_full.segment.rsc +3 -3
  41. package/frontend/.next/server/app/index.segments/_head.segment.rsc +1 -1
  42. package/frontend/.next/server/app/index.segments/_index.segment.rsc +2 -2
  43. package/frontend/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  44. package/frontend/.next/server/app/page.js.nft.json +1 -1
  45. package/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
  46. package/frontend/.next/server/chunks/ssr/_21f396dd._.js +35 -0
  47. package/frontend/.next/server/chunks/ssr/{_2bfdd77b._.js → _2542c95f._.js} +3 -3
  48. package/frontend/.next/server/chunks/ssr/_b0ae6d33._.js +1 -1
  49. package/frontend/.next/server/chunks/ssr/{_f26b1aca._.js → _b9077047._.js} +3 -3
  50. package/frontend/.next/server/chunks/ssr/_e17fe96b._.js +1 -1
  51. package/frontend/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +1 -1
  52. package/frontend/.next/server/pages/404.html +1 -1
  53. package/frontend/.next/server/pages/500.html +2 -2
  54. package/frontend/.next/server/server-reference-manifest.js +1 -1
  55. package/frontend/.next/server/server-reference-manifest.json +1 -1
  56. package/frontend/.next/static/chunks/{856515f7c0c70a74.js → 2b61bfc898574561.js} +1 -1
  57. package/frontend/.next/static/chunks/34bc00d7c1d074e7.js +33 -0
  58. package/frontend/.next/static/chunks/{b64a4ebe4acf6ef6.js → 6d0f2f87160fcf43.js} +1 -1
  59. package/frontend/.next/static/chunks/7ca25fc6318e5416.js +1 -0
  60. package/frontend/.next/static/chunks/{89a2e839a714c1b0.js → 89e8308f2f72ca5f.js} +1 -1
  61. package/frontend/.next/static/chunks/{1421ed2dd17a1ef2.css → 97f976b92141a3f2.css} +1 -1
  62. package/frontend/.next/static/chunks/bc01d49478c01c23.js +33 -0
  63. package/frontend/.next/static/chunks/d3ae592e48f7ffa4.js +1 -0
  64. package/package.json +1 -1
  65. package/frontend/.next/static/chunks/889a3378ed5d7ecb.js +0 -1
  66. package/frontend/.next/static/chunks/9e5b5ccda421a827.js +0 -33
  67. package/frontend/.next/static/chunks/e9d6a387c57251bc.js +0 -1
  68. /package/frontend/.next/static/{pDJVbL9tpaWC95Oaelf3H → G40gZzYPgULz9kZs2yo97}/_buildManifest.js +0 -0
  69. /package/frontend/.next/static/{pDJVbL9tpaWC95Oaelf3H → G40gZzYPgULz9kZs2yo97}/_clientMiddlewareManifest.json +0 -0
  70. /package/frontend/.next/static/{pDJVbL9tpaWC95Oaelf3H → G40gZzYPgULz9kZs2yo97}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},18566,(e,t,s)=>{t.exports=e.r(76562)},15288,87486,9165,e=>{"use strict";let t,s,a,n,o;var r,i=e.i(43476),d=e.i(75157);function l({className:e,size:t="default",...s}){return(0,i.jsx)("div",{"data-slot":"card","data-size":t,className:(0,d.cn)("group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...s})}function c({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-header",className:(0,d.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",e),...t})}function u({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-title",className:(0,d.cn)("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...t})}function m({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-content",className:(0,d.cn)("px-4 group-data-[size=sm]/card:px-3",e),...t})}e.s(["Card",()=>l,"CardContent",()=>m,"CardHeader",()=>c,"CardTitle",()=>u],15288);var g=e.i(19805),p=e.i(27601);let h=(0,e.i(25913).cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function f({className:e,variant:t="default",render:s,...a}){var n;return n={defaultTagName:"span",props:(0,g.mergeProps)({className:(0,d.cn)(h({variant:t}),e)},a),render:s,state:{slot:"badge",variant:t}},(0,p.useRenderElement)(n.defaultTagName??"div",n,n)}e.s(["Badge",()=>f],87486);var x=e.i(47167);let b=[{id:"agent-1",name:"code-reviewer",host:"prod-us-east-1",status:"running",spend:{today:24.82,mtd:128.5,allTime:364},tokens:{today:62e4,mtd:32e5,allTime:91e5},errorCount:0,lastHeartbeatMinutesAgo:.5},{id:"agent-2",name:"deploy-bot",host:"prod-us-east-1",status:"running",spend:{today:12.15,mtd:64.2,allTime:238},tokens:{today:32e4,mtd:16e5,allTime:595e4},errorCount:1,lastHeartbeatMinutesAgo:1},{id:"agent-3",name:"data-pipeline",host:"prod-eu-west-1",status:"error",spend:{today:18.43,mtd:108.8,allTime:410},tokens:{today:49e4,mtd:272e4,allTime:1025e4},errorCount:7,lastHeartbeatMinutesAgo:12},{id:"agent-4",name:"customer-support",host:"prod-us-west-2",status:"stuck",spend:{today:22.67,mtd:118.3,allTime:353},tokens:{today:57e4,mtd:296e4,allTime:8825e3},errorCount:3,lastHeartbeatMinutesAgo:45},{id:"agent-5",name:"test-runner",host:"staging-1",status:"paused",spend:{today:1.03,mtd:6.4,allTime:22},tokens:{today:28e3,mtd:16e4,allTime:55e4},errorCount:0,lastHeartbeatMinutesAgo:120},{id:"agent-6",name:"doc-generator",host:"prod-us-east-1",status:"running",spend:{today:8.21,mtd:47.5,allTime:170},tokens:{today:22e4,mtd:119e4,allTime:425e4},errorCount:0,lastHeartbeatMinutesAgo:.2},{id:"agent-7",name:"security-scanner",host:"prod-eu-west-1",status:"stopped",spend:{today:.45,mtd:3.2,allTime:14},tokens:{today:12e3,mtd:8e4,allTime:35e4},errorCount:0,lastHeartbeatMinutesAgo:360},{id:"agent-8",name:"slack-responder",host:"prod-us-west-2",status:"running",spend:{today:16.89,mtd:86.4,allTime:271.57},tokens:{today:445e3,mtd:216e4,allTime:6775e3},errorCount:2,lastHeartbeatMinutesAgo:.1}],k={today:b.reduce((e,t)=>e+t.spend.today,0),mtd:b.reduce((e,t)=>e+t.spend.mtd,0),allTime:b.reduce((e,t)=>e+t.spend.allTime,0),tokens:{today:b.reduce((e,t)=>e+t.tokens.today,0),mtd:b.reduce((e,t)=>e+t.tokens.mtd,0),allTime:b.reduce((e,t)=>e+t.tokens.allTime,0)}},y=[{id:"proj-1",name:"ClaWatch",cost:297.43},{id:"proj-2",name:"Customer Support Bot",cost:341.82},{id:"proj-3",name:"Sales Pipeline Automation",cost:287.19},{id:"proj-4",name:"Code Review Assistant",cost:319.54},{id:"proj-5",name:"Documentation Generator",cost:381.28},{id:"proj-6",name:"Slack Integration",cost:215.31}].map(e=>({...e,pct:e.cost/k.allTime})),w={byModel:[{model:"claude-sonnet-4-20250514",costUsd:+(.65*k.allTime).toFixed(2)},{model:"claude-haiku-4-20250506",costUsd:+(.25*k.allTime).toFixed(2)},{model:"gpt-4o",costUsd:+(.1*k.allTime).toFixed(2)}]},v=new Date,j=e=>new Date(v.getTime()-6e4*e).toISOString(),C=e=>new Date(v.getTime()-36e5*e).toISOString(),N=[{id:"agent-1",name:"code-reviewer",host:"prod-us-east-1",status:"running",lastHeartbeat:j(.5),costUsd:4.82,tokenCount:124e4,errorCount:0},{id:"agent-2",name:"deploy-bot",host:"prod-us-east-1",status:"running",lastHeartbeat:j(1),costUsd:2.15,tokenCount:52e4,errorCount:1},{id:"agent-3",name:"data-pipeline",host:"prod-eu-west-1",status:"error",lastHeartbeat:j(12),costUsd:8.43,tokenCount:21e5,errorCount:7},{id:"agent-4",name:"customer-support",host:"prod-us-west-2",status:"stuck",lastHeartbeat:j(45),costUsd:12.67,tokenCount:34e5,errorCount:3},{id:"agent-5",name:"test-runner",host:"staging-1",status:"paused",lastHeartbeat:C(2),costUsd:1.03,tokenCount:28e4,errorCount:0},{id:"agent-6",name:"doc-generator",host:"prod-us-east-1",status:"running",lastHeartbeat:j(.2),costUsd:3.21,tokenCount:89e4,errorCount:0},{id:"agent-7",name:"security-scanner",host:"prod-eu-west-1",status:"stopped",lastHeartbeat:C(6),costUsd:.45,tokenCount:12e4,errorCount:0},{id:"agent-8",name:"slack-responder",host:"prod-us-west-2",status:"running",lastHeartbeat:j(.1),costUsd:6.89,tokenCount:178e4,errorCount:2}],A=[{id:"alert-1",agentId:"agent-4",type:"stuck",severity:"critical",message:"customer-support has not sent a heartbeat in 45 minutes",timestamp:j(44),acknowledged:!1},{id:"alert-2",agentId:"agent-3",type:"error",severity:"critical",message:"data-pipeline encountered 7 errors in the last hour",timestamp:j(10),acknowledged:!1},{id:"alert-3",agentId:"agent-4",type:"cost_spike",severity:"warning",message:"customer-support cost increased 340% in the last hour",timestamp:C(1),acknowledged:!1},{id:"alert-4",agentId:"agent-8",type:"loop_detected",severity:"warning",message:"slack-responder may be in a retry loop (similar outputs detected)",timestamp:j(30),acknowledged:!0},{id:"alert-5",agentId:"agent-2",type:"error",severity:"info",message:"deploy-bot encountered a transient API error (auto-recovered)",timestamp:C(3),acknowledged:!0}],I={totalUsd:+k.allTime.toFixed(2),totalTokens:k.tokens.allTime,sessionCount:42,byAgent:b.map(e=>({agentId:e.id,name:e.name,costUsd:e.spend.allTime,tokenCount:e.tokens.allTime})),byModel:w.byModel,byProject:y.map((e,t)=>({projectId:e.id,name:e.name,costUsd:+e.cost.toFixed(2),tokenCount:Math.floor(k.tokens.allTime*e.pct),sessionCount:5+2*t})),daily:(t=[.12,.15,.11,.17,.14,.16,.15],s=[4,6,3,7,5,6,5],Array.from({length:7},(e,a)=>{let n=new Date("2026-03-04");return n.setDate(n.getDate()+a),{date:n.toISOString().slice(0,10),costUsd:+(k.mtd*t[a]).toFixed(2),tokenCount:Math.floor(k.tokens.mtd*t[a]),sessionCount:s[a]}}))},U=[{id:"session-1",agentId:"agent-1",title:"Build ClaWatch dashboard with real-time alerts",status:"active",costUsd:3.47,tokenCount:892e3,messageCount:47,model:"claude-sonnet-4-20250514",startedAt:j(45),lastActivityAt:j(1),duration:2640,projects:[{id:"project-1",name:"Building ClaWatch"}]},{id:"session-2",agentId:"agent-2",title:"Fix authentication bug in user login flow",status:"completed",costUsd:1.23,tokenCount:34e4,messageCount:22,model:"claude-sonnet-4-20250514",startedAt:C(3),lastActivityAt:C(2),duration:3600,projects:[{id:"project-2",name:"Bug Fixes Sprint"}]},{id:"session-3",agentId:"agent-3",title:"Review PR #47 — add retry logic to API calls",status:"idle",costUsd:.87,tokenCount:215e3,messageCount:14,model:"claude-haiku-4-20250506",startedAt:j(90),lastActivityAt:j(12),duration:4680},{id:"session-4",agentId:"agent-1",title:"Implement WebSocket event streaming for agent heartbeats",status:"active",costUsd:5.12,tokenCount:134e4,messageCount:63,model:"claude-sonnet-4-20250514",startedAt:C(1.5),lastActivityAt:j(.5),duration:5400,projects:[{id:"project-1",name:"Building ClaWatch"},{id:"project-2",name:"Bug Fixes Sprint"}]},{id:"session-5",agentId:"agent-2",title:"Refactor database schema for multi-tenant support",status:"completed",costUsd:2.89,tokenCount:78e4,messageCount:38,model:"claude-sonnet-4-20250514",startedAt:C(5),lastActivityAt:C(4),duration:3600},{id:"session-6",agentId:"agent-3",title:"Debug failing CI pipeline — Jest timeout errors",status:"idle",costUsd:.54,tokenCount:145e3,messageCount:11,model:"claude-haiku-4-20250506",startedAt:j(30),lastActivityAt:j(8),duration:1320},{id:"session-7",agentId:"agent-1",title:"Add Telegram bot notification integration",status:"completed",costUsd:1.76,tokenCount:46e4,messageCount:29,model:"claude-sonnet-4-20250514",startedAt:C(8),lastActivityAt:C(7),duration:3600},{id:"session-8",agentId:"agent-2",title:"Write unit tests for cost calculation module",status:"active",costUsd:.92,tokenCount:248e3,messageCount:18,model:"claude-haiku-4-20250506",startedAt:j(15),lastActivityAt:j(2),duration:780},{id:"session-9",agentId:"agent-3",title:"Optimize SQL queries — reduce p95 latency from 800ms to 200ms",status:"completed",costUsd:4.31,tokenCount:112e4,messageCount:52,model:"claude-sonnet-4-20250514",startedAt:C(12),lastActivityAt:C(10),duration:7200},{id:"session-10",agentId:"agent-1",title:"Set up Docker Compose for local development environment",status:"idle",costUsd:.63,tokenCount:172e3,messageCount:9,model:"claude-haiku-4-20250506",startedAt:j(60),lastActivityAt:j(20),duration:2400}],S=y.map((e,t)=>({id:e.id,name:e.name,description:["Full-stack AI observability platform with real-time monitoring, session tracking, and cost analytics","Automated customer support with AI-powered ticket routing and response generation","Lead scoring, pipeline automation, and CRM integration powered by AI agents","Automated PR reviews with code quality analysis, security scanning, and style enforcement","AI-driven documentation generation from code, APIs, and architecture diagrams","Slack bot integration for team notifications, standup automation, and workflow triggers"][t],createdAt:C(48+24*t),updatedAt:j(5+15*t),sessionCount:3,totalCostUsd:+e.cost.toFixed(2)})),T=(a=[],n=0,(o=(e,t,s,o,r,i)=>{n++,a.push({sessionId:e,agentId:t,id:`tl-${n}`,role:s,timestamp:j(o),content:r,...i})})("session-1","agent-1","user",120,"Build the ClaWatch dashboard with real-time alerts and agent monitoring. Use Next.js 15 + shadcn/ui."),o("session-1","agent-1","assistant",119,"I'll build the ClaWatch dashboard. Let me start by setting up the project structure and examining existing code.",{model:"claude-sonnet-4-20250514",costUsd:.04}),o("session-3","agent-3","user",118,"Review the initial project setup and suggest architectural improvements for the monitoring system."),o("session-1","agent-1","tool",117,"src/\n app/\n dashboard/\n page.tsx\n layout.tsx\n components/\n ui/\n lib/\n types.ts\n api.ts",{toolName:"read"}),o("session-3","agent-3","assistant",116,"Looking at the project structure. I'll review the architecture and suggest improvements for scalability.",{model:"claude-haiku-4-20250506",costUsd:.01}),o("session-1","agent-1","assistant",115,"Project structure looks good. I'll create the type definitions for agents, sessions, alerts, and cost data.",{model:"claude-sonnet-4-20250514",costUsd:.06}),o("session-8","agent-2","user",114,"Write comprehensive unit tests for the cost calculation module including edge cases."),o("session-1","agent-1","tool",113,"File written: src/lib/types.ts (78 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",112,"I'll write thorough unit tests for cost calculations. Let me first examine the module.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-3","agent-3","tool",111,"export interface Agent {\n id: string;\n name: string;\n status: AgentStatus;\n ...",{toolName:"read"}),o("session-3","agent-3","assistant",110,"The type definitions look solid. I'd suggest adding a `duration` field to Session for better analytics. Also, the cost tracking should support per-model breakdown.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-1","agent-1","assistant",108,"Good point from the review. I'll add duration tracking and per-model cost breakdown. Now creating the mock data layer.",{model:"claude-sonnet-4-20250514",costUsd:.05}),o("session-8","agent-2","tool",107,"export function calculateCost(tokens: number, model: string): number { ... }",{toolName:"read"}),o("session-1","agent-1","tool",105,"File written: src/lib/mock-data.ts (280 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",104,"Found the cost module. I'll test standard pricing, cache discount calculations, multi-model sessions, and zero-token edge cases.",{model:"claude-haiku-4-20250506",costUsd:.03}),o("session-1","agent-1","system",103,"Context window: 45% utilized (90K/200K tokens)"),o("session-8","agent-2","tool",102,"File written: src/__tests__/cost-calculation.test.ts (156 lines)",{toolName:"write"}),o("session-1","agent-1","assistant",100,"Mock data created. Now building the dashboard page with agent cards, alert banners, and cost overview.",{model:"claude-sonnet-4-20250514",costUsd:.12}),o("session-3","agent-3","user",98,"Can you also review the API layer and check for error handling gaps?"),o("session-1","agent-1","tool",95,"File written: src/app/dashboard/page.tsx (320 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",94,"All 12 test cases pass. Found one edge case where negative token counts could cause issues — adding a guard.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-3","agent-3","assistant",92,"Reviewing API layer. The fetchJson wrapper needs better error handling — currently swallows network errors. I'll suggest adding retry logic and timeout handling.",{model:"claude-haiku-4-20250506",costUsd:.03}),o("session-8","agent-2","tool",90,"$ npm test -- --watchAll=false\n\nTest Suites: 1 passed, 1 total\nTests: 14 passed, 14 total\nTime: 2.834s",{toolName:"exec"}),o("session-1","agent-1","assistant",88,"Dashboard page done. Adding real-time polling with 5-second intervals and the tabbed interface for Agents/Sessions views.",{model:"claude-sonnet-4-20250514",costUsd:.08}),o("session-1","agent-1","tool",85,"$ npm run build\n\n ✓ Compiled successfully\n ✓ Generating static pages (5/5)\n\nBuild completed in 8.2s",{toolName:"exec"}),o("session-3","agent-3","assistant",83,"Here's my review summary:\n1. Add retry logic to fetchJson (3 retries with exponential backoff)\n2. Add request timeout (30s default)\n3. The mock fallback pattern is good but should log errors to a monitoring service\n4. Consider adding request deduplication for concurrent calls",{model:"claude-haiku-4-20250506",costUsd:.04}),o("session-1","agent-1","user",80,"Add session detail view with message timeline, cost breakdown by model, and token analysis."),o("session-1","agent-1","assistant",78,"I'll build the session detail page with a full message timeline. Each message type will have distinct visual treatment.",{model:"claude-sonnet-4-20250514",costUsd:.09}),o("session-1","agent-1","tool",75,"File written: src/app/dashboard/sessions/[id]/page.tsx (340 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",72,"All tests passing. Adding integration tests for the API mock fallback pattern now.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-1","agent-1","assistant",70,"Session detail page complete with:\n- Message timeline with user/assistant/tool/system styling\n- Cost breakdown by model with progress bars\n- Token breakdown (input/output/cache read/cache write)\n- Collapsible tool outputs",{model:"claude-sonnet-4-20250514",costUsd:.06}),o("session-1","agent-1","system",68,"Context window: 72% utilized (144K/200K tokens)"),o("session-1","agent-1","tool",65,"$ npm run build\n\n ✓ Compiled successfully\n ✓ Generating static pages (7/7)\n\nBuild completed in 9.1s",{toolName:"exec"}),o("session-1","agent-1","assistant",60,"Build passes. The ClaWatch dashboard is fully functional with real-time monitoring, session tracking, and cost analytics.",{model:"claude-sonnet-4-20250514",costUsd:.04}),a.sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime())),$=["Build dashboard with real-time monitoring","Implement API integration layer","Add automated test coverage","Optimize query performance","Set up CI/CD pipeline","Refactor authentication module","Add webhook event handlers","Build notification system","Implement rate limiting","Create admin management panel"],P=Object.fromEntries(y.map((e,t)=>{let s=+e.cost.toFixed(2),a=Math.floor(k.tokens.allTime*e.pct),n=40+20*t,o=[b[t%8],b[(t+1)%8],b[(t+3)%8]],r=[.5,.3,.2],i=o.map((i,d)=>{let l=d===o.length-1,c=l?r.slice(0,d).reduce((e,t)=>e+ +(s*t).toFixed(2),0):0,u=l?+(s-c).toFixed(2):+(s*r[d]).toFixed(2),m=l?r.slice(0,d).reduce((e,t)=>e+Math.round(n*t),0):0,g=l?n-m:Math.round(n*r[d]);return{id:`proj-${t+1}-session-${d+1}`,agentId:i.id,title:$[(3*t+d)%$.length],status:0===d?"active":1===d?"idle":"completed",costUsd:u,tokenCount:Math.floor(a*r[d]),messageCount:g,model:d%3==2?"claude-haiku-4-20250506":"claude-sonnet-4-20250514",startedAt:C(4*d+1),lastActivityAt:j(15*d+2),duration:1800+1200*d,projects:[{id:e.id,name:e.name}]}});return[e.id,{id:e.id,name:e.name,description:S[t]?.description||e.name,stats:{totalCostUsd:s,totalTokens:a,totalMessages:n,sessionCount:o.length,dateRange:{from:C(48+24*t),to:j(5+15*t)}},agentBreakdown:o.map((e,t)=>({agentId:e.id,costUsd:+(s*r[t]).toFixed(2),tokenCount:Math.floor(a*r[t]),messageCount:Math.floor(n*r[t]),percentage:100*r[t]})),sessions:i,timeline:0===t?T:[]}]})),M={};for(let e of U)M[e.id]={...e,costByModel:e.model.includes("sonnet")?[{model:"claude-sonnet-4-20250514",costUsd:.82*e.costUsd,tokenCount:Math.floor(.75*e.tokenCount)},{model:"claude-haiku-4-20250506",costUsd:.18*e.costUsd,tokenCount:Math.floor(.25*e.tokenCount)}]:[{model:"claude-haiku-4-20250506",costUsd:.65*e.costUsd,tokenCount:Math.floor(.6*e.tokenCount)},{model:"claude-sonnet-4-20250514",costUsd:.35*e.costUsd,tokenCount:Math.floor(.4*e.tokenCount)}],tokenBreakdown:{input:Math.floor(.35*e.tokenCount),output:Math.floor(.3*e.tokenCount),cacheRead:Math.floor(.25*e.tokenCount),cacheWrite:Math.floor(.1*e.tokenCount)},messages:(r=e.id,[{id:`${r}-msg-1`,role:"user",timestamp:j(44),content:"Build the ClaWatch dashboard with real-time alert monitoring. Use Next.js 15 with shadcn/ui components."},{id:`${r}-msg-2`,role:"assistant",timestamp:j(43),content:"I'll build the ClaWatch dashboard. Let me start by examining the project structure and existing code.",model:"claude-sonnet-4-20250514",costUsd:.03,tokenCount:12400},{id:`${r}-msg-3`,role:"tool",timestamp:j(43),content:"src/\n app/\n dashboard/\n page.tsx\n layout.tsx\n page.tsx\n components/\n ui/\n lib/\n types.ts\n api.ts\n mock-data.ts",toolName:"read",toolInput:'{"path": "src/"}'},{id:`${r}-msg-4`,role:"assistant",timestamp:j(42),content:"I can see the project structure. Let me read the existing types and API files to understand the data model.",model:"claude-sonnet-4-20250514",costUsd:.02,tokenCount:8200},{id:`${r}-msg-5`,role:"tool",timestamp:j(42),content:'export type AgentStatus = "running" | "paused" | "stopped" | "error" | "stuck";\n\nexport interface Agent {\n id: string;\n name: string;\n ...',toolName:"read",toolInput:'{"path": "src/lib/types.ts"}'},{id:`${r}-msg-6`,role:"assistant",timestamp:j(40),content:"Now I'll create the dashboard page with agent cards, alert banners, and cost overview panels. I'll use the existing shadcn/ui components.",model:"claude-sonnet-4-20250514",costUsd:.08,tokenCount:34600},{id:`${r}-msg-7`,role:"tool",timestamp:j(39),content:"File written: src/app/dashboard/page.tsx (358 lines)",toolName:"write",toolInput:'{"path": "src/app/dashboard/page.tsx", "content": "..."}'},{id:`${r}-msg-8`,role:"tool",timestamp:j(38),content:"$ npm run build\n\n ✓ Compiled successfully\n ✓ Collecting page data\n ✓ Generating static pages (5/5)\n ✓ Collecting build traces\n\nRoute (app) Size First Load JS\n├ ○ / 5.2 kB 92.1 kB\n└ ○ /dashboard 12.4 kB 99.3 kB",toolName:"exec",toolInput:'{"command": "npm run build"}'},{id:`${r}-msg-9`,role:"assistant",timestamp:j(37),content:"The build succeeded. Let me now add the real-time polling mechanism and alert notification sounds.",model:"claude-sonnet-4-20250514",costUsd:.04,tokenCount:15800},{id:`${r}-msg-10`,role:"tool",timestamp:j(36),content:"Lines 49-64 edited in src/app/dashboard/page.tsx",toolName:"edit",toolInput:'{"path": "src/app/dashboard/page.tsx", "old_string": "...", "new_string": "..."}'},{id:`${r}-msg-11`,role:"user",timestamp:j(35),content:"Can you also add a cost breakdown by model? Show it as horizontal progress bars."},{id:`${r}-msg-12`,role:"assistant",timestamp:j(34),content:"Sure! I'll add a cost breakdown section with progress bars for each model. Let me update the dashboard.",model:"claude-sonnet-4-20250514",costUsd:.06,tokenCount:24200},{id:`${r}-msg-13`,role:"tool",timestamp:j(33),content:"Lines 254-305 edited in src/app/dashboard/page.tsx",toolName:"edit",toolInput:'{"path": "src/app/dashboard/page.tsx", "old_string": "...", "new_string": "..."}'},{id:`${r}-msg-14`,role:"system",timestamp:j(32),content:"Context window: 78% utilized (156K/200K tokens)"},{id:`${r}-msg-15`,role:"assistant",timestamp:j(31),content:"I've added the cost breakdown panels. The dashboard now shows:\n\n1. **Agent cards** with status, cost, tokens, errors, and heartbeat\n2. **Alert banner** for critical/warning alerts\n3. **Cost by Agent** — horizontal progress bars\n4. **Cost by Model** — horizontal progress bars\n\nThe data refreshes every 5 seconds via polling.",model:"claude-sonnet-4-20250514",costUsd:.05,tokenCount:18900},{id:`${r}-msg-16`,role:"tool",timestamp:j(30),content:'{"results": [{"title": "shadcn/ui Tabs Component", "url": "https://ui.shadcn.com/docs/components/tabs"}]}',toolName:"web_search",toolInput:'{"query": "shadcn ui tabs component usage"}'},{id:`${r}-msg-17`,role:"assistant",timestamp:j(28),content:"Let me add a tabbed interface for Agents and Sessions views. I'll implement the tabs using a simple state-based approach.",model:"claude-sonnet-4-20250514",costUsd:.11,tokenCount:45200},{id:`${r}-msg-18`,role:"tool",timestamp:j(27),content:"$ npm run build\n\n ✓ Compiled successfully\n ✓ Linting and checking validity of types\n ✓ Generating static pages (5/5)\n\nBuild completed in 8.2s",toolName:"exec",toolInput:'{"command": "npm run build"}'},{id:`${r}-msg-19`,role:"assistant",timestamp:j(25),content:"Build passes. The dashboard now has Agents and Sessions tabs with full filtering and sorting. All existing functionality is preserved.",model:"claude-sonnet-4-20250514",costUsd:.03,tokenCount:11600},{id:`${r}-msg-20`,role:"tool",timestamp:j(24),content:"$ npm test -- --watchAll=false\n\nTest Suites: 3 passed, 3 total\nTests: 12 passed, 12 total\nTime: 4.231s",toolName:"exec",toolInput:'{"command": "npm test -- --watchAll=false"}'}])};let B={"alert-1":{alert:A[0],agent:{id:"agent-4",name:"customer-support",status:"stuck"},relatedErrors:[],context:{lastHeartbeat:j(45),stuckDurationMinutes:45,agentStatus:"stuck"}},"alert-2":{alert:A[1],agent:{id:"agent-3",name:"data-pipeline",status:"error"},relatedErrors:[{timestamp:j(12),error:"TypeError: Cannot read properties of undefined (reading 'map')"},{timestamp:j(11),error:"ECONNREFUSED: Connection refused to database at 127.0.0.1:5432"},{timestamp:j(11),error:"ECONNREFUSED: Connection refused to database at 127.0.0.1:5432"},{timestamp:j(10),error:"Unhandled promise rejection: Query timeout after 30000ms"},{timestamp:j(10),error:'FATAL: too many connections for role "app_user"'}]},"alert-3":{alert:A[2],agent:{id:"agent-4",name:"customer-support",status:"running"},relatedErrors:[],context:{currentCostUsd:12.67,thresholdUsd:10,overage:2.67}},"alert-4":{alert:A[3],agent:{id:"agent-8",name:"slack-responder",status:"running"},relatedErrors:[{timestamp:j(32),error:"Detected 5 consecutive similar outputs — possible retry loop"},{timestamp:j(31),error:"Output similarity score: 0.94 (threshold: 0.85)"}]},"alert-5":{alert:A[4],agent:{id:"agent-2",name:"deploy-bot",status:"running"},relatedErrors:[{timestamp:C(3),error:"API returned 503 Service Unavailable — auto-retried successfully"}]}},z=x.default.env.NEXT_PUBLIC_API_URL||"",F=x.default.env.NEXT_PUBLIC_API_KEY||"",D=!1;function L(){return D}function R(){D=!0}async function E(e,t){let s={"Content-Type":"application/json","ngrok-skip-browser-warning":"true",...F?{"X-ClaWatch-Key":F}:{},...t?.headers||{}},a=await fetch(`${z}${e}`,{...t,headers:s});if(!a.ok)throw Error(`API error: ${a.status}`);return a.json()}async function O(){try{return(await E("/api/profiles")).profiles}catch{return console.warn("API unreachable, skipping profiles"),[]}}async function H(){try{return(await E("/api/version")).version}catch{return console.warn("API unreachable, skipping version"),null}}async function _(e,t){try{let s=new URLSearchParams;e&&s.set("status",e),t&&s.set("profile",t);let a=s.toString();return(await E(`/api/agents${a?`?${a}`:""}`)).agents}catch{return console.warn("API unreachable, falling back to mock data"),R(),N}}async function W(e){try{let t=new URLSearchParams;e?.limit!==void 0&&t.set("limit",String(e.limit)),e?.offset!==void 0&&t.set("offset",String(e.offset)),e?.severity&&t.set("severity",e.severity),e?.acknowledged!==void 0&&t.set("acknowledged",String(e.acknowledged)),e?.profile&&t.set("profile",e.profile);let s=t.toString();return await E(`/api/alerts${s?`?${s}`:""}`)}catch{return console.warn("API unreachable, falling back to mock data"),R(),{alerts:A,total:A.length}}}async function K(e){return await E(`/api/alerts/acknowledge-all${e?`?severity=${e}`:""}`,{method:"POST"})}async function J(e){try{let t=new URLSearchParams;e?.profile&&t.set("profile",e.profile),e?.from&&t.set("from",e.from),e?.to&&t.set("to",e.to);let s=t.toString();return await E(`/api/costs${s?`?${s}`:""}`)}catch{return console.warn("API unreachable, falling back to mock data"),R(),I}}async function q(e){await E(`/api/agents/${e}/pause`,{method:"POST"})}async function G(e){await E(`/api/agents/${e}/resume`,{method:"POST"})}async function V(e){await E(`/api/alerts/${e}/acknowledge`,{method:"POST"})}async function X(e){try{return await E(`/api/alerts/${e}/details`)}catch{console.warn("API unreachable, falling back to mock data"),R();let t=B[e];if(t)return t;throw Error("Alert not found")}}async function Q(e){let{agentId:t,status:s,sort:a,profile:n,limit:o,offset:r}=e||{};try{let e=new URLSearchParams;o&&e.set("limit",String(o)),r&&e.set("offset",String(r)),t&&e.set("agentId",t),s&&e.set("status",s),a&&e.set("sort",a),n&&e.set("profile",n);let i=e.toString(),d=await E(`/api/sessions${i?`?${i}`:""}`);return{sessions:d.sessions,total:d.total}}catch{return console.warn("API unreachable, falling back to mock data"),R(),{sessions:U,total:U.length}}}async function Y(e){try{return await E(`/api/sessions/${e}`)}catch{console.warn("API unreachable, falling back to mock data"),R();let t=M[e];if(t)return t;throw Error("Session not found")}}async function Z(e){try{let t=e?`?profile=${e}`:"";return(await E(`/api/projects${t}`)).projects}catch{return console.warn("API unreachable, falling back to mock data"),R(),S}}async function ee(e){try{return await E(`/api/projects/${e}`)}catch{console.warn("API unreachable, falling back to mock data"),R();let t=P[e];if(t)return t;throw Error("Project not found")}}async function et(e,t){return await E("/api/projects",{method:"POST",body:JSON.stringify({name:e,description:t})})}async function es(e,t){await E(`/api/sessions/${e}/projects`,{method:"PUT",body:JSON.stringify({projectIds:t})})}async function ea(e,t){await E(`/api/sessions/${e}/projects/${t}`,{method:"DELETE"})}function en(e){let t=b.filter(e=>e.spend.allTime>50),s=y.map(e=>({projectId:e.id,name:e.name,pct:e.pct})),a=(e,a,n,o,r,i)=>{let d=a.reduce((e,t)=>e+t,0),l=((e,t)=>{let s=t.reduce((e,t)=>e+t,0),a=t.map(e=>42*e/s),n=a.map(e=>Math.floor(e)),o=42-n.reduce((e,t)=>e+t,0),r=a.map((e,t)=>({i:t,frac:e-n[t]})).sort((e,t)=>t.frac-e.frac);for(let e=0;e<o;e++)n[r[e].i]++;return n})(0,a);return{buckets:e.map((e,t)=>({date:e,costUsd:+(n*a[t]/d).toFixed(2),tokenCount:Math.floor(o*a[t]/d),sessionCount:l[t]})),byAgent:t.map(s=>({agentId:s.name,buckets:e.map((e,n)=>({date:e,costUsd:+(s.spend[r]*a[n]/d).toFixed(2),tokenCount:Math.floor(s.tokens[i]*a[n]/d),sessionCount:Math.max(0,Math.round(42/t.length*a[n]/d))}))})),byProject:s.map(({projectId:t,name:s,pct:r})=>({projectId:t,name:s,buckets:e.map((e,t)=>({date:e,costUsd:+(n*r*a[t]/d).toFixed(2),tokenCount:Math.floor(o*r*a[t]/d),sessionCount:Math.max(0,Math.round(42*r*a[t]/d))}))}))}};if("hour"===e){let e=[.02,.005,.003,.003,.003,.005,.008,.02,.04,.06,.07,.075,.065,.07,.075,.07,.065,.06,.055,.05,.04,.035,.03,.025],t=[.85,.95,1.2],s=[],n=[];for(let a=0;a<3;a++)for(let o=0;o<24;o++){s.push(e[o]*t[a]);let r=new Date;r.setDate(r.getDate()-(2-a)),r.setHours(o,0,0,0),n.push(r.toISOString().slice(0,13)+":00")}return a(n,s,3*k.today,3*k.tokens.today,"today","today")}if("week"===e)return a(Array.from({length:8},(e,t)=>{let s=new Date("2026-01-13");return s.setDate(s.getDate()+7*t),s.toISOString().slice(0,10)}),[.08,.09,.1,.11,.12,.13,.17,.2],k.allTime,k.tokens.allTime,"allTime","allTime");let n=Array.from({length:56},(e,t)=>{let s=new Date("2026-01-13");return s.setDate(s.getDate()+t),s.toISOString().slice(0,10)}),o=n.map((e,t)=>{let s=Math.floor(t/7),a=t%7;return(.7+.08*s)*(a>=5?.4:.8+a%3*.1)});return a(n,o,k.allTime,k.tokens.allTime,"allTime","allTime")}let eo={hour:en("hour"),day:en("day"),week:en("week")};async function er(e){try{let t=new URLSearchParams;e.profile&&t.set("profile",e.profile),e.groupBy&&t.set("groupBy",e.groupBy),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to);let s=t.toString();return await E(`/api/analytics${s?`?${s}`:""}`)}catch{return console.warn("API unreachable, falling back to mock analytics data"),eo[e.groupBy||"day"]||eo.day}}let ei={today:94.72,mtd:236.83,allTime:1842.57,byAgent:{anas:{today:36.21,mtd:69.12},ofek:{today:42.83,mtd:112.18},dor:{today:15.68,mtd:55.53}},limits:{type:null,amount:null,agentLimits:{}},usagePercent:null};async function ed(e){try{let t=e?`?profile=${e}`:"";return await E(`/api/spend${t}`)}catch{return console.warn("API unreachable, falling back to mock spend data"),ei}}async function el(e){return await E("/api/settings/cost-limits",{method:"PUT",body:JSON.stringify(e)})}e.s(["acknowledgeAlert",()=>V,"acknowledgeAllAlerts",()=>K,"createProject",()=>et,"getAgents",()=>_,"getAlertDetails",()=>X,"getAlerts",()=>W,"getAnalytics",()=>er,"getCosts",()=>J,"getProfiles",()=>O,"getProject",()=>ee,"getProjects",()=>Z,"getSession",()=>Y,"getSessions",()=>Q,"getSpend",()=>ed,"getVersion",()=>H,"isUsingMockData",()=>L,"pauseAgent",()=>q,"removeSessionProject",()=>ea,"resumeAgent",()=>G,"setCostLimits",()=>el,"setSessionProjects",()=>es],9165)},42180,e=>{"use strict";var t=e.i(43476),s=e.i(71645),a=e.i(18566),n=e.i(22016),o=e.i(19455),r=e.i(15288),i=e.i(87486),d=e.i(9165),l=e.i(98940);function c(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s ago`;let s=Math.floor(t/60);if(s<60)return`${s}m ago`;let a=Math.floor(s/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function u(e){return new Date(e).toLocaleString()}function m(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}K`:String(e)}let g={active:{color:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20",dot:"bg-emerald-400",label:"Active"},idle:{color:"bg-amber-500/10 text-amber-400 border-amber-500/20",dot:"bg-amber-400",label:"Idle"},completed:{color:"bg-zinc-500/10 text-zinc-400 border-zinc-500/20",dot:"bg-zinc-400",label:"Completed"}};function p({text:e,className:a,preformatted:n=!1}){let[o,r]=(0,s.useState)(!1),i=e.length>500,d=i&&!o?e.slice(0,500)+"…":e;return(0,t.jsxs)("div",{children:[(0,t.jsx)(n?"pre":"p",{className:a,children:d}),i&&(0,t.jsx)("button",{onClick:()=>r(!o),className:"mt-1 text-[11px] font-medium text-emerald-400 hover:text-emerald-300 transition-colors cursor-pointer",children:o?"Show less":"Show more"})]})}let h={ofek:"bg-blue-500/10 text-blue-400 border-blue-500/20",anas:"bg-purple-500/10 text-purple-400 border-purple-500/20",dor:"bg-teal-500/10 text-teal-400 border-teal-500/20"};function f(){let e=(0,a.useParams)(),p=(0,a.useRouter)(),f=e.id,[b,k]=(0,s.useState)(null),[y,w]=(0,s.useState)(!0),[v,j]=(0,s.useState)(null),[C,N]=(0,s.useState)(new Set),A=(0,s.useRef)(null),I=(0,s.useRef)(0),U=(0,s.useRef)(!0);if((0,s.useEffect)(()=>{!async function(){try{let e=await (0,d.getSession)(f);k(e)}catch{j("Session not found")}finally{w(!1)}}();let e=setInterval(async()=>{try{let e=await (0,d.getSession)(f);k(e)}catch{}},5e3);return()=>clearInterval(e)},[f]),(0,s.useEffect)(()=>{if(!b||!A.current)return;let e=b.messages.length;U.current?(A.current.scrollIntoView({behavior:"instant"}),U.current=!1):e>I.current&&A.current.scrollIntoView({behavior:"smooth"}),I.current=e},[b?.messages?.length]),y)return(0,t.jsx)("div",{className:"min-h-screen bg-background flex items-center justify-center",children:(0,t.jsxs)("div",{className:"flex items-center gap-3 text-muted-foreground",children:[(0,t.jsx)("div",{className:"size-5 border-2 border-emerald-500 border-t-transparent rounded-full animate-spin"}),"Loading session..."]})});if(v||!b)return(0,t.jsx)("div",{className:"min-h-screen bg-background flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center space-y-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:v||"Session not found"}),(0,t.jsx)(o.Button,{variant:"outline",onClick:()=>p.push("/dashboard"),children:"Back to Dashboard"})]})});let S=g[b.status],T=b.tokenBreakdown.input+b.tokenBreakdown.output+b.tokenBreakdown.cacheRead+b.tokenBreakdown.cacheWrite,$=Math.max(...b.costByModel.map(e=>e.costUsd));return(0,t.jsxs)("div",{className:"min-h-screen bg-background text-foreground",children:[(0,t.jsx)("nav",{className:"border-b border-border/50 bg-background/80 backdrop-blur-sm sticky top-0 z-50",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-6 h-14 flex items-center justify-between",children:(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsxs)(n.default,{href:"/",className:"flex items-center gap-2",children:[(0,t.jsx)(l.ClaWatchIcon,{}),(0,t.jsx)(l.ClaWatchLogo,{size:"md"})]}),(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Session Detail"})]})})}),(0,t.jsxs)("div",{className:"max-w-5xl mx-auto px-6 py-6 space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>p.push("/dashboard"),className:"text-sm text-muted-foreground hover:text-foreground transition-colors mb-4 inline-flex items-center gap-1",children:[(0,t.jsx)("span",{children:"←"})," Back to Dashboard"]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold",children:b.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,t.jsx)(i.Badge,{variant:"outline",className:`border ${h[b.agentId]||"text-zinc-400"}`,children:b.agentId}),(0,t.jsx)(i.Badge,{variant:"outline",className:"font-mono text-xs",children:b.model}),(0,t.jsxs)(i.Badge,{variant:"outline",className:`border ${S.color}`,children:[(0,t.jsx)("span",{className:`size-1.5 rounded-full ${S.dot} mr-1.5`}),S.label]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-6 text-sm",children:[(0,t.jsx)("div",{children:(0,t.jsxs)("span",{className:"text-3xl font-bold",children:["$",b.costUsd.toFixed(2)]})}),(0,t.jsxs)("div",{className:"text-muted-foreground",children:[(0,t.jsxs)("div",{children:[m(b.tokenCount)," tokens"]}),(0,t.jsxs)("div",{children:[b.messageCount," messages"]})]}),(0,t.jsxs)("div",{className:"text-muted-foreground text-xs",children:[(0,t.jsxs)("div",{children:["Started: ",c(b.startedAt)," (",u(b.startedAt),")"]}),(0,t.jsxs)("div",{children:["Last activity: ",c(b.lastActivityAt)]})]})]})]})]}),(0,t.jsxs)(r.Card,{children:[(0,t.jsx)(r.CardHeader,{children:(0,t.jsx)(r.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Cost Breakdown"})}),(0,t.jsx)(r.CardContent,{children:(0,t.jsxs)("div",{className:"grid md:grid-cols-2 gap-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h3",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"By Model"}),b.costByModel.map(e=>(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-mono text-xs",children:e.model}),(0,t.jsxs)("span",{className:"font-medium",children:["$",e.costUsd.toFixed(2)]})]}),(0,t.jsx)("div",{className:"w-full h-2 rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-emerald-500 transition-all",style:{width:`${e.costUsd/$*100}%`}})}),(0,t.jsxs)("div",{className:"text-[11px] text-muted-foreground",children:[m(e.tokenCount)," tokens"]})]},e.model))]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h3",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Token Breakdown"}),[{label:"Input",value:b.tokenBreakdown.input,color:"bg-blue-500"},{label:"Output",value:b.tokenBreakdown.output,color:"bg-emerald-500"},{label:"Cache Read",value:b.tokenBreakdown.cacheRead,color:"bg-amber-500"},{label:"Cache Write",value:b.tokenBreakdown.cacheWrite,color:"bg-purple-500"}].map(e=>(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"text-xs",children:e.label}),(0,t.jsx)("span",{className:"font-medium font-mono",children:m(e.value)})]}),(0,t.jsx)("div",{className:"w-full h-2 rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:`h-full rounded-full ${e.color} transition-all`,style:{width:`${e.value/T*100}%`}})})]},e.label))]})]})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Messages"}),(0,t.jsxs)("div",{className:"relative space-y-3",children:[(0,t.jsx)("div",{className:"absolute left-5 top-0 bottom-0 w-px bg-border/50"}),b.messages.map(e=>(0,t.jsx)(x,{message:e,collapsed:C.has(e.id),onToggle:()=>{var t;return t=e.id,void N(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})}},e.id)),(0,t.jsx)("div",{ref:A})]})]})]})]})}function x({message:e,collapsed:s,onToggle:a}){let n=e.content.toLowerCase().includes("error");return"user"===e.role?(0,t.jsxs)("div",{className:"relative pl-12 flex justify-end",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-blue-500 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:`rounded-lg border border-blue-500/20 bg-blue-500/10 p-4 max-w-[80%] ${n?"border-red-500/30 bg-red-500/10":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-blue-400",children:"User"}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),(0,t.jsx)(p,{text:e.content,className:"text-sm whitespace-pre-wrap"})]})]}):"assistant"===e.role?(0,t.jsxs)("div",{className:"relative pl-12",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-zinc-500 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:`rounded-lg border border-border/50 bg-zinc-800/50 p-4 max-w-[80%] ${n?"border-red-500/30 bg-red-500/10":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-zinc-400",children:"Assistant"}),e.model&&(0,t.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground",children:e.model}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),null!=e.costUsd&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(i.Badge,{variant:"outline",className:"text-[10px] font-mono bg-emerald-500/10 text-emerald-400 border-emerald-500/20",children:["$",e.costUsd.toFixed(2)]}),null!=e.tokenCount&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:m(e.tokenCount)})]})]}),(0,t.jsx)(p,{text:e.content,className:"text-sm whitespace-pre-wrap"})]})]}):"tool"===e.role?(0,t.jsxs)("div",{className:"relative pl-12",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-amber-500 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:`rounded-lg border border-border/50 bg-zinc-900 p-4 ${n?"border-red-500/30 bg-red-500/10":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs text-amber-400",children:"Tool"}),e.toolName&&(0,t.jsx)(i.Badge,{variant:"outline",className:"text-[10px] font-mono bg-amber-500/10 text-amber-400 border-amber-500/20",children:e.toolName}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),(0,t.jsx)("button",{onClick:a,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",children:s?"Show":"Hide"})]}),e.toolInput&&(0,t.jsx)("div",{className:"bg-black/30 rounded px-2 py-1 mb-2 overflow-x-auto",children:(0,t.jsx)(p,{text:e.toolInput,className:"text-[11px] font-mono text-muted-foreground",preformatted:!0})}),!s&&(0,t.jsx)(p,{text:e.content,className:"text-xs font-mono text-zinc-300 whitespace-pre-wrap break-all",preformatted:!0})]})]}):(0,t.jsxs)("div",{className:"relative pl-12",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-zinc-700 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:"rounded-lg px-4 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:"System"}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),(0,t.jsx)(p,{text:e.content,className:"text-xs text-muted-foreground mt-1"})]})]})}e.s(["default",()=>f])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},18566,(e,t,s)=>{t.exports=e.r(76562)},15288,87486,9165,e=>{"use strict";let t,s,a,n,o;var r,i=e.i(43476),d=e.i(75157);function l({className:e,size:t="default",...s}){return(0,i.jsx)("div",{"data-slot":"card","data-size":t,className:(0,d.cn)("group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...s})}function c({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-header",className:(0,d.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",e),...t})}function u({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-title",className:(0,d.cn)("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...t})}function m({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-content",className:(0,d.cn)("px-4 group-data-[size=sm]/card:px-3",e),...t})}e.s(["Card",()=>l,"CardContent",()=>m,"CardHeader",()=>c,"CardTitle",()=>u],15288);var g=e.i(19805),p=e.i(27601);let h=(0,e.i(25913).cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function f({className:e,variant:t="default",render:s,...a}){var n;return n={defaultTagName:"span",props:(0,g.mergeProps)({className:(0,d.cn)(h({variant:t}),e)},a),render:s,state:{slot:"badge",variant:t}},(0,p.useRenderElement)(n.defaultTagName??"div",n,n)}e.s(["Badge",()=>f],87486);var b=e.i(47167);let x=[{id:"agent-1",name:"code-reviewer",host:"prod-us-east-1",status:"running",spend:{today:24.82,mtd:128.5,allTime:364},tokens:{today:62e4,mtd:32e5,allTime:91e5},errorCount:0,lastHeartbeatMinutesAgo:.5},{id:"agent-2",name:"deploy-bot",host:"prod-us-east-1",status:"running",spend:{today:12.15,mtd:64.2,allTime:238},tokens:{today:32e4,mtd:16e5,allTime:595e4},errorCount:1,lastHeartbeatMinutesAgo:1},{id:"agent-3",name:"data-pipeline",host:"prod-eu-west-1",status:"error",spend:{today:18.43,mtd:108.8,allTime:410},tokens:{today:49e4,mtd:272e4,allTime:1025e4},errorCount:7,lastHeartbeatMinutesAgo:12},{id:"agent-4",name:"customer-support",host:"prod-us-west-2",status:"stuck",spend:{today:22.67,mtd:118.3,allTime:353},tokens:{today:57e4,mtd:296e4,allTime:8825e3},errorCount:3,lastHeartbeatMinutesAgo:45},{id:"agent-5",name:"test-runner",host:"staging-1",status:"paused",spend:{today:1.03,mtd:6.4,allTime:22},tokens:{today:28e3,mtd:16e4,allTime:55e4},errorCount:0,lastHeartbeatMinutesAgo:120},{id:"agent-6",name:"doc-generator",host:"prod-us-east-1",status:"running",spend:{today:8.21,mtd:47.5,allTime:170},tokens:{today:22e4,mtd:119e4,allTime:425e4},errorCount:0,lastHeartbeatMinutesAgo:.2},{id:"agent-7",name:"security-scanner",host:"prod-eu-west-1",status:"stopped",spend:{today:.45,mtd:3.2,allTime:14},tokens:{today:12e3,mtd:8e4,allTime:35e4},errorCount:0,lastHeartbeatMinutesAgo:360},{id:"agent-8",name:"slack-responder",host:"prod-us-west-2",status:"running",spend:{today:16.89,mtd:86.4,allTime:271.57},tokens:{today:445e3,mtd:216e4,allTime:6775e3},errorCount:2,lastHeartbeatMinutesAgo:.1}],k={today:x.reduce((e,t)=>e+t.spend.today,0),mtd:x.reduce((e,t)=>e+t.spend.mtd,0),allTime:x.reduce((e,t)=>e+t.spend.allTime,0),tokens:{today:x.reduce((e,t)=>e+t.tokens.today,0),mtd:x.reduce((e,t)=>e+t.tokens.mtd,0),allTime:x.reduce((e,t)=>e+t.tokens.allTime,0)}},y=[{id:"proj-1",name:"ClaWatch",cost:297.43},{id:"proj-2",name:"Customer Support Bot",cost:341.82},{id:"proj-3",name:"Sales Pipeline Automation",cost:287.19},{id:"proj-4",name:"Code Review Assistant",cost:319.54},{id:"proj-5",name:"Documentation Generator",cost:381.28},{id:"proj-6",name:"Slack Integration",cost:215.31}].map(e=>({...e,pct:e.cost/k.allTime})),w={byModel:[{model:"claude-sonnet-4-20250514",costUsd:+(.65*k.allTime).toFixed(2)},{model:"claude-haiku-4-20250506",costUsd:+(.25*k.allTime).toFixed(2)},{model:"gpt-4o",costUsd:+(.1*k.allTime).toFixed(2)}]},v=new Date,j=e=>new Date(v.getTime()-6e4*e).toISOString(),C=e=>new Date(v.getTime()-36e5*e).toISOString(),N=[{id:"agent-1",name:"code-reviewer",host:"prod-us-east-1",status:"running",lastHeartbeat:j(.5),costUsd:4.82,tokenCount:124e4,errorCount:0},{id:"agent-2",name:"deploy-bot",host:"prod-us-east-1",status:"running",lastHeartbeat:j(1),costUsd:2.15,tokenCount:52e4,errorCount:1},{id:"agent-3",name:"data-pipeline",host:"prod-eu-west-1",status:"error",lastHeartbeat:j(12),costUsd:8.43,tokenCount:21e5,errorCount:7},{id:"agent-4",name:"customer-support",host:"prod-us-west-2",status:"stuck",lastHeartbeat:j(45),costUsd:12.67,tokenCount:34e5,errorCount:3},{id:"agent-5",name:"test-runner",host:"staging-1",status:"paused",lastHeartbeat:C(2),costUsd:1.03,tokenCount:28e4,errorCount:0},{id:"agent-6",name:"doc-generator",host:"prod-us-east-1",status:"running",lastHeartbeat:j(.2),costUsd:3.21,tokenCount:89e4,errorCount:0},{id:"agent-7",name:"security-scanner",host:"prod-eu-west-1",status:"stopped",lastHeartbeat:C(6),costUsd:.45,tokenCount:12e4,errorCount:0},{id:"agent-8",name:"slack-responder",host:"prod-us-west-2",status:"running",lastHeartbeat:j(.1),costUsd:6.89,tokenCount:178e4,errorCount:2}],A=[{id:"alert-1",agentId:"agent-4",type:"stuck",severity:"critical",message:"customer-support has not sent a heartbeat in 45 minutes",timestamp:j(44),acknowledged:!1},{id:"alert-2",agentId:"agent-3",type:"error",severity:"critical",message:"data-pipeline encountered 7 errors in the last hour",timestamp:j(10),acknowledged:!1},{id:"alert-3",agentId:"agent-4",type:"cost_spike",severity:"warning",message:"customer-support cost increased 340% in the last hour",timestamp:C(1),acknowledged:!1},{id:"alert-4",agentId:"agent-8",type:"loop_detected",severity:"warning",message:"slack-responder may be in a retry loop (similar outputs detected)",timestamp:j(30),acknowledged:!0},{id:"alert-5",agentId:"agent-2",type:"error",severity:"info",message:"deploy-bot encountered a transient API error (auto-recovered)",timestamp:C(3),acknowledged:!0}],T={totalUsd:+k.allTime.toFixed(2),totalTokens:k.tokens.allTime,sessionCount:42,byAgent:x.map(e=>({agentId:e.id,name:e.name,costUsd:e.spend.allTime,tokenCount:e.tokens.allTime})),byModel:w.byModel,byProject:y.map((e,t)=>({projectId:e.id,name:e.name,costUsd:+e.cost.toFixed(2),tokenCount:Math.floor(k.tokens.allTime*e.pct),sessionCount:5+2*t})),daily:(t=[.12,.15,.11,.17,.14,.16,.15],s=[4,6,3,7,5,6,5],Array.from({length:7},(e,a)=>{let n=new Date("2026-03-04");return n.setDate(n.getDate()+a),{date:n.toISOString().slice(0,10),costUsd:+(k.mtd*t[a]).toFixed(2),tokenCount:Math.floor(k.tokens.mtd*t[a]),sessionCount:s[a]}}))},I=[{id:"session-1",agentId:"agent-1",title:"Build ClaWatch dashboard with real-time alerts",status:"active",costUsd:3.47,tokenCount:892e3,messageCount:47,model:"claude-sonnet-4-20250514",startedAt:j(45),lastActivityAt:j(1),duration:2640,projects:[{id:"project-1",name:"Building ClaWatch"}]},{id:"session-2",agentId:"agent-2",title:"Fix authentication bug in user login flow",status:"completed",costUsd:1.23,tokenCount:34e4,messageCount:22,model:"claude-sonnet-4-20250514",startedAt:C(3),lastActivityAt:C(2),duration:3600,projects:[{id:"project-2",name:"Bug Fixes Sprint"}]},{id:"session-3",agentId:"agent-3",title:"Review PR #47 — add retry logic to API calls",status:"idle",costUsd:.87,tokenCount:215e3,messageCount:14,model:"claude-haiku-4-20250506",startedAt:j(90),lastActivityAt:j(12),duration:4680},{id:"session-4",agentId:"agent-1",title:"Implement WebSocket event streaming for agent heartbeats",status:"active",costUsd:5.12,tokenCount:134e4,messageCount:63,model:"claude-sonnet-4-20250514",startedAt:C(1.5),lastActivityAt:j(.5),duration:5400,projects:[{id:"project-1",name:"Building ClaWatch"},{id:"project-2",name:"Bug Fixes Sprint"}]},{id:"session-5",agentId:"agent-2",title:"Refactor database schema for multi-tenant support",status:"completed",costUsd:2.89,tokenCount:78e4,messageCount:38,model:"claude-sonnet-4-20250514",startedAt:C(5),lastActivityAt:C(4),duration:3600},{id:"session-6",agentId:"agent-3",title:"Debug failing CI pipeline — Jest timeout errors",status:"idle",costUsd:.54,tokenCount:145e3,messageCount:11,model:"claude-haiku-4-20250506",startedAt:j(30),lastActivityAt:j(8),duration:1320},{id:"session-7",agentId:"agent-1",title:"Add Telegram bot notification integration",status:"completed",costUsd:1.76,tokenCount:46e4,messageCount:29,model:"claude-sonnet-4-20250514",startedAt:C(8),lastActivityAt:C(7),duration:3600},{id:"session-8",agentId:"agent-2",title:"Write unit tests for cost calculation module",status:"active",costUsd:.92,tokenCount:248e3,messageCount:18,model:"claude-haiku-4-20250506",startedAt:j(15),lastActivityAt:j(2),duration:780},{id:"session-9",agentId:"agent-3",title:"Optimize SQL queries — reduce p95 latency from 800ms to 200ms",status:"completed",costUsd:4.31,tokenCount:112e4,messageCount:52,model:"claude-sonnet-4-20250514",startedAt:C(12),lastActivityAt:C(10),duration:7200},{id:"session-10",agentId:"agent-1",title:"Set up Docker Compose for local development environment",status:"idle",costUsd:.63,tokenCount:172e3,messageCount:9,model:"claude-haiku-4-20250506",startedAt:j(60),lastActivityAt:j(20),duration:2400}],U=y.map((e,t)=>({id:e.id,name:e.name,description:["Full-stack AI observability platform with real-time monitoring, session tracking, and cost analytics","Automated customer support with AI-powered ticket routing and response generation","Lead scoring, pipeline automation, and CRM integration powered by AI agents","Automated PR reviews with code quality analysis, security scanning, and style enforcement","AI-driven documentation generation from code, APIs, and architecture diagrams","Slack bot integration for team notifications, standup automation, and workflow triggers"][t],createdAt:C(48+24*t),updatedAt:j(5+15*t),sessionCount:3,totalCostUsd:+e.cost.toFixed(2)})),S=(a=[],n=0,(o=(e,t,s,o,r,i)=>{n++,a.push({sessionId:e,agentId:t,id:`tl-${n}`,role:s,timestamp:j(o),content:r,...i})})("session-1","agent-1","user",120,"Build the ClaWatch dashboard with real-time alerts and agent monitoring. Use Next.js 15 + shadcn/ui."),o("session-1","agent-1","assistant",119,"I'll build the ClaWatch dashboard. Let me start by setting up the project structure and examining existing code.",{model:"claude-sonnet-4-20250514",costUsd:.04}),o("session-3","agent-3","user",118,"Review the initial project setup and suggest architectural improvements for the monitoring system."),o("session-1","agent-1","tool",117,"src/\n app/\n dashboard/\n page.tsx\n layout.tsx\n components/\n ui/\n lib/\n types.ts\n api.ts",{toolName:"read"}),o("session-3","agent-3","assistant",116,"Looking at the project structure. I'll review the architecture and suggest improvements for scalability.",{model:"claude-haiku-4-20250506",costUsd:.01}),o("session-1","agent-1","assistant",115,"Project structure looks good. I'll create the type definitions for agents, sessions, alerts, and cost data.",{model:"claude-sonnet-4-20250514",costUsd:.06}),o("session-8","agent-2","user",114,"Write comprehensive unit tests for the cost calculation module including edge cases."),o("session-1","agent-1","tool",113,"File written: src/lib/types.ts (78 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",112,"I'll write thorough unit tests for cost calculations. Let me first examine the module.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-3","agent-3","tool",111,"export interface Agent {\n id: string;\n name: string;\n status: AgentStatus;\n ...",{toolName:"read"}),o("session-3","agent-3","assistant",110,"The type definitions look solid. I'd suggest adding a `duration` field to Session for better analytics. Also, the cost tracking should support per-model breakdown.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-1","agent-1","assistant",108,"Good point from the review. I'll add duration tracking and per-model cost breakdown. Now creating the mock data layer.",{model:"claude-sonnet-4-20250514",costUsd:.05}),o("session-8","agent-2","tool",107,"export function calculateCost(tokens: number, model: string): number { ... }",{toolName:"read"}),o("session-1","agent-1","tool",105,"File written: src/lib/mock-data.ts (280 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",104,"Found the cost module. I'll test standard pricing, cache discount calculations, multi-model sessions, and zero-token edge cases.",{model:"claude-haiku-4-20250506",costUsd:.03}),o("session-1","agent-1","system",103,"Context window: 45% utilized (90K/200K tokens)"),o("session-8","agent-2","tool",102,"File written: src/__tests__/cost-calculation.test.ts (156 lines)",{toolName:"write"}),o("session-1","agent-1","assistant",100,"Mock data created. Now building the dashboard page with agent cards, alert banners, and cost overview.",{model:"claude-sonnet-4-20250514",costUsd:.12}),o("session-3","agent-3","user",98,"Can you also review the API layer and check for error handling gaps?"),o("session-1","agent-1","tool",95,"File written: src/app/dashboard/page.tsx (320 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",94,"All 12 test cases pass. Found one edge case where negative token counts could cause issues — adding a guard.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-3","agent-3","assistant",92,"Reviewing API layer. The fetchJson wrapper needs better error handling — currently swallows network errors. I'll suggest adding retry logic and timeout handling.",{model:"claude-haiku-4-20250506",costUsd:.03}),o("session-8","agent-2","tool",90,"$ npm test -- --watchAll=false\n\nTest Suites: 1 passed, 1 total\nTests: 14 passed, 14 total\nTime: 2.834s",{toolName:"exec"}),o("session-1","agent-1","assistant",88,"Dashboard page done. Adding real-time polling with 5-second intervals and the tabbed interface for Agents/Sessions views.",{model:"claude-sonnet-4-20250514",costUsd:.08}),o("session-1","agent-1","tool",85,"$ npm run build\n\n ✓ Compiled successfully\n ✓ Generating static pages (5/5)\n\nBuild completed in 8.2s",{toolName:"exec"}),o("session-3","agent-3","assistant",83,"Here's my review summary:\n1. Add retry logic to fetchJson (3 retries with exponential backoff)\n2. Add request timeout (30s default)\n3. The mock fallback pattern is good but should log errors to a monitoring service\n4. Consider adding request deduplication for concurrent calls",{model:"claude-haiku-4-20250506",costUsd:.04}),o("session-1","agent-1","user",80,"Add session detail view with message timeline, cost breakdown by model, and token analysis."),o("session-1","agent-1","assistant",78,"I'll build the session detail page with a full message timeline. Each message type will have distinct visual treatment.",{model:"claude-sonnet-4-20250514",costUsd:.09}),o("session-1","agent-1","tool",75,"File written: src/app/dashboard/sessions/[id]/page.tsx (340 lines)",{toolName:"write"}),o("session-8","agent-2","assistant",72,"All tests passing. Adding integration tests for the API mock fallback pattern now.",{model:"claude-haiku-4-20250506",costUsd:.02}),o("session-1","agent-1","assistant",70,"Session detail page complete with:\n- Message timeline with user/assistant/tool/system styling\n- Cost breakdown by model with progress bars\n- Token breakdown (input/output/cache read/cache write)\n- Collapsible tool outputs",{model:"claude-sonnet-4-20250514",costUsd:.06}),o("session-1","agent-1","system",68,"Context window: 72% utilized (144K/200K tokens)"),o("session-1","agent-1","tool",65,"$ npm run build\n\n ✓ Compiled successfully\n ✓ Generating static pages (7/7)\n\nBuild completed in 9.1s",{toolName:"exec"}),o("session-1","agent-1","assistant",60,"Build passes. The ClaWatch dashboard is fully functional with real-time monitoring, session tracking, and cost analytics.",{model:"claude-sonnet-4-20250514",costUsd:.04}),a.sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime())),$=["Build dashboard with real-time monitoring","Implement API integration layer","Add automated test coverage","Optimize query performance","Set up CI/CD pipeline","Refactor authentication module","Add webhook event handlers","Build notification system","Implement rate limiting","Create admin management panel"],P=Object.fromEntries(y.map((e,t)=>{let s=+e.cost.toFixed(2),a=Math.floor(k.tokens.allTime*e.pct),n=40+20*t,o=[x[t%8],x[(t+1)%8],x[(t+3)%8]],r=[.5,.3,.2],i=o.map((i,d)=>{let l=d===o.length-1,c=l?r.slice(0,d).reduce((e,t)=>e+ +(s*t).toFixed(2),0):0,u=l?+(s-c).toFixed(2):+(s*r[d]).toFixed(2),m=l?r.slice(0,d).reduce((e,t)=>e+Math.round(n*t),0):0,g=l?n-m:Math.round(n*r[d]);return{id:`proj-${t+1}-session-${d+1}`,agentId:i.id,title:$[(3*t+d)%$.length],status:0===d?"active":1===d?"idle":"completed",costUsd:u,tokenCount:Math.floor(a*r[d]),messageCount:g,model:d%3==2?"claude-haiku-4-20250506":"claude-sonnet-4-20250514",startedAt:C(4*d+1),lastActivityAt:j(15*d+2),duration:1800+1200*d,projects:[{id:e.id,name:e.name}]}});return[e.id,{id:e.id,name:e.name,description:U[t]?.description||e.name,stats:{totalCostUsd:s,totalTokens:a,totalMessages:n,sessionCount:o.length,dateRange:{from:C(48+24*t),to:j(5+15*t)}},agentBreakdown:o.map((e,t)=>({agentId:e.id,costUsd:+(s*r[t]).toFixed(2),tokenCount:Math.floor(a*r[t]),messageCount:Math.floor(n*r[t]),percentage:100*r[t]})),sessions:i,timeline:0===t?S:[]}]})),M={};for(let e of I)M[e.id]={...e,costByModel:e.model.includes("sonnet")?[{model:"claude-sonnet-4-20250514",costUsd:.82*e.costUsd,tokenCount:Math.floor(.75*e.tokenCount)},{model:"claude-haiku-4-20250506",costUsd:.18*e.costUsd,tokenCount:Math.floor(.25*e.tokenCount)}]:[{model:"claude-haiku-4-20250506",costUsd:.65*e.costUsd,tokenCount:Math.floor(.6*e.tokenCount)},{model:"claude-sonnet-4-20250514",costUsd:.35*e.costUsd,tokenCount:Math.floor(.4*e.tokenCount)}],tokenBreakdown:{input:Math.floor(.35*e.tokenCount),output:Math.floor(.3*e.tokenCount),cacheRead:Math.floor(.25*e.tokenCount),cacheWrite:Math.floor(.1*e.tokenCount)},messages:(r=e.id,[{id:`${r}-msg-1`,role:"user",timestamp:j(44),content:"Build the ClaWatch dashboard with real-time alert monitoring. Use Next.js 15 with shadcn/ui components."},{id:`${r}-msg-2`,role:"assistant",timestamp:j(43),content:"I'll build the ClaWatch dashboard. Let me start by examining the project structure and existing code.",model:"claude-sonnet-4-20250514",costUsd:.03,tokenCount:12400},{id:`${r}-msg-3`,role:"tool",timestamp:j(43),content:"src/\n app/\n dashboard/\n page.tsx\n layout.tsx\n page.tsx\n components/\n ui/\n lib/\n types.ts\n api.ts\n mock-data.ts",toolName:"read",toolInput:'{"path": "src/"}'},{id:`${r}-msg-4`,role:"assistant",timestamp:j(42),content:"I can see the project structure. Let me read the existing types and API files to understand the data model.",model:"claude-sonnet-4-20250514",costUsd:.02,tokenCount:8200},{id:`${r}-msg-5`,role:"tool",timestamp:j(42),content:'export type AgentStatus = "running" | "paused" | "stopped" | "error" | "stuck";\n\nexport interface Agent {\n id: string;\n name: string;\n ...',toolName:"read",toolInput:'{"path": "src/lib/types.ts"}'},{id:`${r}-msg-6`,role:"assistant",timestamp:j(40),content:"Now I'll create the dashboard page with agent cards, alert banners, and cost overview panels. I'll use the existing shadcn/ui components.",model:"claude-sonnet-4-20250514",costUsd:.08,tokenCount:34600},{id:`${r}-msg-7`,role:"tool",timestamp:j(39),content:"File written: src/app/dashboard/page.tsx (358 lines)",toolName:"write",toolInput:'{"path": "src/app/dashboard/page.tsx", "content": "..."}'},{id:`${r}-msg-8`,role:"tool",timestamp:j(38),content:"$ npm run build\n\n ✓ Compiled successfully\n ✓ Collecting page data\n ✓ Generating static pages (5/5)\n ✓ Collecting build traces\n\nRoute (app) Size First Load JS\n├ ○ / 5.2 kB 92.1 kB\n└ ○ /dashboard 12.4 kB 99.3 kB",toolName:"exec",toolInput:'{"command": "npm run build"}'},{id:`${r}-msg-9`,role:"assistant",timestamp:j(37),content:"The build succeeded. Let me now add the real-time polling mechanism and alert notification sounds.",model:"claude-sonnet-4-20250514",costUsd:.04,tokenCount:15800},{id:`${r}-msg-10`,role:"tool",timestamp:j(36),content:"Lines 49-64 edited in src/app/dashboard/page.tsx",toolName:"edit",toolInput:'{"path": "src/app/dashboard/page.tsx", "old_string": "...", "new_string": "..."}'},{id:`${r}-msg-11`,role:"user",timestamp:j(35),content:"Can you also add a cost breakdown by model? Show it as horizontal progress bars."},{id:`${r}-msg-12`,role:"assistant",timestamp:j(34),content:"Sure! I'll add a cost breakdown section with progress bars for each model. Let me update the dashboard.",model:"claude-sonnet-4-20250514",costUsd:.06,tokenCount:24200},{id:`${r}-msg-13`,role:"tool",timestamp:j(33),content:"Lines 254-305 edited in src/app/dashboard/page.tsx",toolName:"edit",toolInput:'{"path": "src/app/dashboard/page.tsx", "old_string": "...", "new_string": "..."}'},{id:`${r}-msg-14`,role:"system",timestamp:j(32),content:"Context window: 78% utilized (156K/200K tokens)"},{id:`${r}-msg-15`,role:"assistant",timestamp:j(31),content:"I've added the cost breakdown panels. The dashboard now shows:\n\n1. **Agent cards** with status, cost, tokens, errors, and heartbeat\n2. **Alert banner** for critical/warning alerts\n3. **Cost by Agent** — horizontal progress bars\n4. **Cost by Model** — horizontal progress bars\n\nThe data refreshes every 5 seconds via polling.",model:"claude-sonnet-4-20250514",costUsd:.05,tokenCount:18900},{id:`${r}-msg-16`,role:"tool",timestamp:j(30),content:'{"results": [{"title": "shadcn/ui Tabs Component", "url": "https://ui.shadcn.com/docs/components/tabs"}]}',toolName:"web_search",toolInput:'{"query": "shadcn ui tabs component usage"}'},{id:`${r}-msg-17`,role:"assistant",timestamp:j(28),content:"Let me add a tabbed interface for Agents and Sessions views. I'll implement the tabs using a simple state-based approach.",model:"claude-sonnet-4-20250514",costUsd:.11,tokenCount:45200},{id:`${r}-msg-18`,role:"tool",timestamp:j(27),content:"$ npm run build\n\n ✓ Compiled successfully\n ✓ Linting and checking validity of types\n ✓ Generating static pages (5/5)\n\nBuild completed in 8.2s",toolName:"exec",toolInput:'{"command": "npm run build"}'},{id:`${r}-msg-19`,role:"assistant",timestamp:j(25),content:"Build passes. The dashboard now has Agents and Sessions tabs with full filtering and sorting. All existing functionality is preserved.",model:"claude-sonnet-4-20250514",costUsd:.03,tokenCount:11600},{id:`${r}-msg-20`,role:"tool",timestamp:j(24),content:"$ npm test -- --watchAll=false\n\nTest Suites: 3 passed, 3 total\nTests: 12 passed, 12 total\nTime: 4.231s",toolName:"exec",toolInput:'{"command": "npm test -- --watchAll=false"}'}])};let B={"alert-1":{alert:A[0],agent:{id:"agent-4",name:"customer-support",status:"stuck"},relatedErrors:[],context:{lastHeartbeat:j(45),stuckDurationMinutes:45,agentStatus:"stuck"}},"alert-2":{alert:A[1],agent:{id:"agent-3",name:"data-pipeline",status:"error"},relatedErrors:[{timestamp:j(12),error:"TypeError: Cannot read properties of undefined (reading 'map')"},{timestamp:j(11),error:"ECONNREFUSED: Connection refused to database at 127.0.0.1:5432"},{timestamp:j(11),error:"ECONNREFUSED: Connection refused to database at 127.0.0.1:5432"},{timestamp:j(10),error:"Unhandled promise rejection: Query timeout after 30000ms"},{timestamp:j(10),error:'FATAL: too many connections for role "app_user"'}]},"alert-3":{alert:A[2],agent:{id:"agent-4",name:"customer-support",status:"running"},relatedErrors:[],context:{currentCostUsd:12.67,thresholdUsd:10,overage:2.67}},"alert-4":{alert:A[3],agent:{id:"agent-8",name:"slack-responder",status:"running"},relatedErrors:[{timestamp:j(32),error:"Detected 5 consecutive similar outputs — possible retry loop"},{timestamp:j(31),error:"Output similarity score: 0.94 (threshold: 0.85)"}]},"alert-5":{alert:A[4],agent:{id:"agent-2",name:"deploy-bot",status:"running"},relatedErrors:[{timestamp:C(3),error:"API returned 503 Service Unavailable — auto-retried successfully"}]}},z=b.default.env.NEXT_PUBLIC_API_URL||"",D=b.default.env.NEXT_PUBLIC_API_KEY||"",F=!1;function L(){return F}function R(){F=!0}async function E(e,t){let s={"Content-Type":"application/json","ngrok-skip-browser-warning":"true",...D?{"X-ClaWatch-Key":D}:{},...t?.headers||{}},a=await fetch(`${z}${e}`,{...t,headers:s});if(!a.ok)throw Error(`API error: ${a.status}`);return a.json()}async function O(){try{return(await E("/api/profiles")).profiles}catch{return console.warn("API unreachable, skipping profiles"),[]}}async function H(){try{return(await E("/api/version")).version}catch{return console.warn("API unreachable, skipping version"),null}}async function W(e,t){try{let s=new URLSearchParams;e&&s.set("status",e),t&&s.set("profile",t);let a=s.toString();return(await E(`/api/agents${a?`?${a}`:""}`)).agents}catch{return console.warn("API unreachable, falling back to mock data"),R(),N}}async function _(e){try{let t=new URLSearchParams;e?.limit!==void 0&&t.set("limit",String(e.limit)),e?.offset!==void 0&&t.set("offset",String(e.offset)),e?.severity&&t.set("severity",e.severity),e?.acknowledged!==void 0&&t.set("acknowledged",String(e.acknowledged)),e?.profile&&t.set("profile",e.profile);let s=t.toString();return await E(`/api/alerts${s?`?${s}`:""}`)}catch{return console.warn("API unreachable, falling back to mock data"),R(),{alerts:A,total:A.length}}}async function K(e){return await E(`/api/alerts/acknowledge-all${e?`?severity=${e}`:""}`,{method:"POST"})}async function Z(e){try{let t=new URLSearchParams;e?.profile&&t.set("profile",e.profile),e?.from&&t.set("from",e.from),e?.to&&t.set("to",e.to);let s=t.toString();return await E(`/api/costs${s?`?${s}`:""}`)}catch{return console.warn("API unreachable, falling back to mock data"),R(),T}}async function J(e){await E(`/api/agents/${e}/pause`,{method:"POST"})}async function q(e){await E(`/api/agents/${e}/resume`,{method:"POST"})}async function G(e){await E(`/api/alerts/${e}/acknowledge`,{method:"POST"})}async function V(e){try{return await E(`/api/alerts/${e}/details`)}catch{console.warn("API unreachable, falling back to mock data"),R();let t=B[e];if(t)return t;throw Error("Alert not found")}}async function X(e){let{agentId:t,status:s,sort:a,profile:n,limit:o,offset:r}=e||{};try{let e=new URLSearchParams;o&&e.set("limit",String(o)),r&&e.set("offset",String(r)),t&&e.set("agentId",t),s&&e.set("status",s),a&&e.set("sort",a),n&&e.set("profile",n);let i=e.toString(),d=await E(`/api/sessions${i?`?${i}`:""}`);return{sessions:d.sessions,total:d.total}}catch{return console.warn("API unreachable, falling back to mock data"),R(),{sessions:I,total:I.length}}}async function Q(e){try{return await E(`/api/sessions/${e}`)}catch{console.warn("API unreachable, falling back to mock data"),R();let t=M[e];if(t)return t;throw Error("Session not found")}}async function Y(e){try{let t=e?`?profile=${e}`:"";return(await E(`/api/projects${t}`)).projects}catch{return console.warn("API unreachable, falling back to mock data"),R(),U}}async function ee(e){try{return await E(`/api/projects/${e}`)}catch{console.warn("API unreachable, falling back to mock data"),R();let t=P[e];if(t)return t;throw Error("Project not found")}}async function et(e,t){return await E("/api/projects",{method:"POST",body:JSON.stringify({name:e,description:t})})}async function es(e,t){await E(`/api/sessions/${e}/projects`,{method:"PUT",body:JSON.stringify({projectIds:t})})}async function ea(e,t){await E(`/api/sessions/${e}/projects/${t}`,{method:"DELETE"})}function en(e){let t=x.filter(e=>e.spend.allTime>50),s=y.map(e=>({projectId:e.id,name:e.name,pct:e.pct})),a=(e,a,n,o,r,i)=>{let d=a.reduce((e,t)=>e+t,0),l=((e,t)=>{let s=t.reduce((e,t)=>e+t,0),a=t.map(e=>42*e/s),n=a.map(e=>Math.floor(e)),o=42-n.reduce((e,t)=>e+t,0),r=a.map((e,t)=>({i:t,frac:e-n[t]})).sort((e,t)=>t.frac-e.frac);for(let e=0;e<o;e++)n[r[e].i]++;return n})(0,a);return{buckets:e.map((e,t)=>({date:e,costUsd:+(n*a[t]/d).toFixed(2),tokenCount:Math.floor(o*a[t]/d),sessionCount:l[t]})),byAgent:t.map(s=>({agentId:s.name,buckets:e.map((e,n)=>({date:e,costUsd:+(s.spend[r]*a[n]/d).toFixed(2),tokenCount:Math.floor(s.tokens[i]*a[n]/d),sessionCount:Math.max(0,Math.round(42/t.length*a[n]/d))}))})),byProject:s.map(({projectId:t,name:s,pct:r})=>({projectId:t,name:s,buckets:e.map((e,t)=>({date:e,costUsd:+(n*r*a[t]/d).toFixed(2),tokenCount:Math.floor(o*r*a[t]/d),sessionCount:Math.max(0,Math.round(42*r*a[t]/d))}))}))}};if("hour"===e){let e=[.02,.005,.003,.003,.003,.005,.008,.02,.04,.06,.07,.075,.065,.07,.075,.07,.065,.06,.055,.05,.04,.035,.03,.025],t=[.85,.95,1.2],s=[],n=[];for(let a=0;a<3;a++)for(let o=0;o<24;o++){s.push(e[o]*t[a]);let r=new Date;r.setDate(r.getDate()-(2-a)),r.setHours(o,0,0,0),n.push(r.toISOString().slice(0,13)+":00")}return a(n,s,3*k.today,3*k.tokens.today,"today","today")}if("week"===e)return a(Array.from({length:8},(e,t)=>{let s=new Date("2026-01-13");return s.setDate(s.getDate()+7*t),s.toISOString().slice(0,10)}),[.08,.09,.1,.11,.12,.13,.17,.2],k.allTime,k.tokens.allTime,"allTime","allTime");let n=Array.from({length:56},(e,t)=>{let s=new Date("2026-01-13");return s.setDate(s.getDate()+t),s.toISOString().slice(0,10)}),o=n.map((e,t)=>{let s=Math.floor(t/7),a=t%7;return(.7+.08*s)*(a>=5?.4:.8+a%3*.1)});return a(n,o,k.allTime,k.tokens.allTime,"allTime","allTime")}let eo={hour:en("hour"),day:en("day"),week:en("week")};async function er(e){try{let t=new URLSearchParams;e.profile&&t.set("profile",e.profile),e.groupBy&&t.set("groupBy",e.groupBy),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to);let s=t.toString();return await E(`/api/analytics${s?`?${s}`:""}`)}catch{return console.warn("API unreachable, falling back to mock analytics data"),function(e,t,s){if(!t&&!s)return e;let a=t?new Date(t.includes("T")&&!t.endsWith("Z")?t+":00Z":t+(t.includes("T")?"":"T00:00:00Z")).getTime():0,n=s?new Date(s.includes("T")&&!s.endsWith("Z")?s+":00Z":s+(s.includes("T")?"":"T23:59:59Z")).getTime():1/0,o=e=>{let t=new Date(e.includes("T")&&!e.endsWith("Z")?e+":00Z":e+(e.includes("T")?"":"T00:00:00Z"));return t.getTime()>=a&&t.getTime()<=n};return{buckets:e.buckets.filter(e=>o(e.date)),byAgent:e.byAgent.map(e=>({...e,buckets:e.buckets.filter(e=>o(e.date))})),byProject:e.byProject.map(e=>({...e,buckets:e.buckets.filter(e=>o(e.date))}))}}(eo[e.groupBy||"day"]||eo.day,e.from,e.to)}}let ei={today:94.72,mtd:236.83,allTime:1842.57,byAgent:{anas:{today:36.21,mtd:69.12},ofek:{today:42.83,mtd:112.18},dor:{today:15.68,mtd:55.53}},limits:{type:null,amount:null,agentLimits:{}},usagePercent:null};async function ed(e){try{let t=e?`?profile=${e}`:"";return await E(`/api/spend${t}`)}catch{return console.warn("API unreachable, falling back to mock spend data"),ei}}async function el(e){return await E("/api/settings/cost-limits",{method:"PUT",body:JSON.stringify(e)})}e.s(["acknowledgeAlert",()=>G,"acknowledgeAllAlerts",()=>K,"createProject",()=>et,"getAgents",()=>W,"getAlertDetails",()=>V,"getAlerts",()=>_,"getAnalytics",()=>er,"getCosts",()=>Z,"getProfiles",()=>O,"getProject",()=>ee,"getProjects",()=>Y,"getSession",()=>Q,"getSessions",()=>X,"getSpend",()=>ed,"getVersion",()=>H,"isUsingMockData",()=>L,"pauseAgent",()=>J,"removeSessionProject",()=>ea,"resumeAgent",()=>q,"setCostLimits",()=>el,"setSessionProjects",()=>es],9165)},42180,e=>{"use strict";var t=e.i(43476),s=e.i(71645),a=e.i(18566),n=e.i(22016),o=e.i(19455),r=e.i(15288),i=e.i(87486),d=e.i(9165),l=e.i(98940);function c(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s ago`;let s=Math.floor(t/60);if(s<60)return`${s}m ago`;let a=Math.floor(s/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function u(e){return new Date(e).toLocaleString()}function m(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}K`:String(e)}let g={active:{color:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20",dot:"bg-emerald-400",label:"Active"},idle:{color:"bg-amber-500/10 text-amber-400 border-amber-500/20",dot:"bg-amber-400",label:"Idle"},completed:{color:"bg-zinc-500/10 text-zinc-400 border-zinc-500/20",dot:"bg-zinc-400",label:"Completed"}};function p({text:e,className:a,preformatted:n=!1}){let[o,r]=(0,s.useState)(!1),i=e.length>500,d=i&&!o?e.slice(0,500)+"…":e;return(0,t.jsxs)("div",{children:[(0,t.jsx)(n?"pre":"p",{className:a,children:d}),i&&(0,t.jsx)("button",{onClick:()=>r(!o),className:"mt-1 text-[11px] font-medium text-emerald-400 hover:text-emerald-300 transition-colors cursor-pointer",children:o?"Show less":"Show more"})]})}let h={ofek:"bg-blue-500/10 text-blue-400 border-blue-500/20",anas:"bg-purple-500/10 text-purple-400 border-purple-500/20",dor:"bg-teal-500/10 text-teal-400 border-teal-500/20"};function f(){let e=(0,a.useParams)(),p=(0,a.useRouter)(),f=e.id,[x,k]=(0,s.useState)(null),[y,w]=(0,s.useState)(!0),[v,j]=(0,s.useState)(null),[C,N]=(0,s.useState)(new Set),A=(0,s.useRef)(null),T=(0,s.useRef)(0),I=(0,s.useRef)(!0);if((0,s.useEffect)(()=>{!async function(){try{let e=await (0,d.getSession)(f);k(e)}catch{j("Session not found")}finally{w(!1)}}();let e=setInterval(async()=>{try{let e=await (0,d.getSession)(f);k(e)}catch{}},5e3);return()=>clearInterval(e)},[f]),(0,s.useEffect)(()=>{if(!x||!A.current)return;let e=x.messages.length;I.current?(A.current.scrollIntoView({behavior:"instant"}),I.current=!1):e>T.current&&A.current.scrollIntoView({behavior:"smooth"}),T.current=e},[x?.messages?.length]),y)return(0,t.jsx)("div",{className:"min-h-screen bg-background flex items-center justify-center",children:(0,t.jsxs)("div",{className:"flex items-center gap-3 text-muted-foreground",children:[(0,t.jsx)("div",{className:"size-5 border-2 border-emerald-500 border-t-transparent rounded-full animate-spin"}),"Loading session..."]})});if(v||!x)return(0,t.jsx)("div",{className:"min-h-screen bg-background flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center space-y-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:v||"Session not found"}),(0,t.jsx)(o.Button,{variant:"outline",onClick:()=>p.push("/dashboard"),children:"Back to Dashboard"})]})});let U=g[x.status],S=x.tokenBreakdown.input+x.tokenBreakdown.output+x.tokenBreakdown.cacheRead+x.tokenBreakdown.cacheWrite,$=Math.max(...x.costByModel.map(e=>e.costUsd));return(0,t.jsxs)("div",{className:"min-h-screen bg-background text-foreground",children:[(0,t.jsx)("nav",{className:"border-b border-border/50 bg-background/80 backdrop-blur-sm sticky top-0 z-50",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-6 h-14 flex items-center justify-between",children:(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsxs)(n.default,{href:"/",className:"flex items-center gap-2",children:[(0,t.jsx)(l.ClaWatchIcon,{}),(0,t.jsx)(l.ClaWatchLogo,{size:"md"})]}),(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Session Detail"})]})})}),(0,t.jsxs)("div",{className:"max-w-5xl mx-auto px-6 py-6 space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>p.push("/dashboard"),className:"text-sm text-muted-foreground hover:text-foreground transition-colors mb-4 inline-flex items-center gap-1",children:[(0,t.jsx)("span",{children:"←"})," Back to Dashboard"]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold",children:x.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,t.jsx)(i.Badge,{variant:"outline",className:`border ${h[x.agentId]||"text-zinc-400"}`,children:x.agentId}),(0,t.jsx)(i.Badge,{variant:"outline",className:"font-mono text-xs",children:x.model}),(0,t.jsxs)(i.Badge,{variant:"outline",className:`border ${U.color}`,children:[(0,t.jsx)("span",{className:`size-1.5 rounded-full ${U.dot} mr-1.5`}),U.label]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-6 text-sm",children:[(0,t.jsx)("div",{children:(0,t.jsxs)("span",{className:"text-3xl font-bold",children:["$",x.costUsd.toFixed(2)]})}),(0,t.jsxs)("div",{className:"text-muted-foreground",children:[(0,t.jsxs)("div",{children:[m(x.tokenCount)," tokens"]}),(0,t.jsxs)("div",{children:[x.messageCount," messages"]})]}),(0,t.jsxs)("div",{className:"text-muted-foreground text-xs",children:[(0,t.jsxs)("div",{children:["Started: ",c(x.startedAt)," (",u(x.startedAt),")"]}),(0,t.jsxs)("div",{children:["Last activity: ",c(x.lastActivityAt)]})]})]})]})]}),(0,t.jsxs)(r.Card,{children:[(0,t.jsx)(r.CardHeader,{children:(0,t.jsx)(r.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Cost Breakdown"})}),(0,t.jsx)(r.CardContent,{children:(0,t.jsxs)("div",{className:"grid md:grid-cols-2 gap-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h3",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"By Model"}),x.costByModel.map(e=>(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-mono text-xs",children:e.model}),(0,t.jsxs)("span",{className:"font-medium",children:["$",e.costUsd.toFixed(2)]})]}),(0,t.jsx)("div",{className:"w-full h-2 rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-emerald-500 transition-all",style:{width:`${e.costUsd/$*100}%`}})}),(0,t.jsxs)("div",{className:"text-[11px] text-muted-foreground",children:[m(e.tokenCount)," tokens"]})]},e.model))]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h3",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Token Breakdown"}),[{label:"Input",value:x.tokenBreakdown.input,color:"bg-blue-500"},{label:"Output",value:x.tokenBreakdown.output,color:"bg-emerald-500"},{label:"Cache Read",value:x.tokenBreakdown.cacheRead,color:"bg-amber-500"},{label:"Cache Write",value:x.tokenBreakdown.cacheWrite,color:"bg-purple-500"}].map(e=>(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"text-xs",children:e.label}),(0,t.jsx)("span",{className:"font-medium font-mono",children:m(e.value)})]}),(0,t.jsx)("div",{className:"w-full h-2 rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:`h-full rounded-full ${e.color} transition-all`,style:{width:`${e.value/S*100}%`}})})]},e.label))]})]})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Messages"}),(0,t.jsxs)("div",{className:"relative space-y-3",children:[(0,t.jsx)("div",{className:"absolute left-5 top-0 bottom-0 w-px bg-border/50"}),x.messages.map(e=>(0,t.jsx)(b,{message:e,collapsed:C.has(e.id),onToggle:()=>{var t;return t=e.id,void N(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})}},e.id)),(0,t.jsx)("div",{ref:A})]})]})]})]})}function b({message:e,collapsed:s,onToggle:a}){let n=e.content.toLowerCase().includes("error");return"user"===e.role?(0,t.jsxs)("div",{className:"relative pl-12 flex justify-end",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-blue-500 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:`rounded-lg border border-blue-500/20 bg-blue-500/10 p-4 max-w-[80%] ${n?"border-red-500/30 bg-red-500/10":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-blue-400",children:"User"}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),(0,t.jsx)(p,{text:e.content,className:"text-sm whitespace-pre-wrap"})]})]}):"assistant"===e.role?(0,t.jsxs)("div",{className:"relative pl-12",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-zinc-500 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:`rounded-lg border border-border/50 bg-zinc-800/50 p-4 max-w-[80%] ${n?"border-red-500/30 bg-red-500/10":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-zinc-400",children:"Assistant"}),e.model&&(0,t.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground",children:e.model}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),null!=e.costUsd&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(i.Badge,{variant:"outline",className:"text-[10px] font-mono bg-emerald-500/10 text-emerald-400 border-emerald-500/20",children:["$",e.costUsd.toFixed(2)]}),null!=e.tokenCount&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:m(e.tokenCount)})]})]}),(0,t.jsx)(p,{text:e.content,className:"text-sm whitespace-pre-wrap"})]})]}):"tool"===e.role?(0,t.jsxs)("div",{className:"relative pl-12",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-amber-500 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:`rounded-lg border border-border/50 bg-zinc-900 p-4 ${n?"border-red-500/30 bg-red-500/10":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs text-amber-400",children:"Tool"}),e.toolName&&(0,t.jsx)(i.Badge,{variant:"outline",className:"text-[10px] font-mono bg-amber-500/10 text-amber-400 border-amber-500/20",children:e.toolName}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),(0,t.jsx)("button",{onClick:a,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",children:s?"Show":"Hide"})]}),e.toolInput&&(0,t.jsx)("div",{className:"bg-black/30 rounded px-2 py-1 mb-2 overflow-x-auto",children:(0,t.jsx)(p,{text:e.toolInput,className:"text-[11px] font-mono text-muted-foreground",preformatted:!0})}),!s&&(0,t.jsx)(p,{text:e.content,className:"text-xs font-mono text-zinc-300 whitespace-pre-wrap break-all",preformatted:!0})]})]}):(0,t.jsxs)("div",{className:"relative pl-12",children:[(0,t.jsx)("div",{className:"absolute left-3.5 top-3 size-3 rounded-full bg-zinc-700 ring-4 ring-background z-10"}),(0,t.jsxs)("div",{className:"rounded-lg px-4 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:"System"}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:u(e.timestamp)})]}),(0,t.jsx)(p,{text:e.content,className:"text-xs text-muted-foreground mt-1"})]})]})}e.s(["default",()=>f])}]);
@@ -1,3 +1,3 @@
1
1
  @font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_fe8b9d92-module__LINzvG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_fe8b9d92-module__LINzvG__variable{--font-inter:"Inter","Inter Fallback"}
2
2
  @font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_7d65b77b-module__VxV-Ta__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_7d65b77b-module__VxV-Ta__variable{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}
3
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-amber-200:#fee685;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-emerald-300:#5ee9b5;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-emerald-600:#009767;--color-emerald-700:#007956;--color-teal-400:#00d3bd;--color-teal-500:#00baa7;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-rose-400:#ff667f;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-zinc-300:#d4d4d8;--color-zinc-400:#9f9fa9;--color-zinc-500:#71717b;--color-zinc-600:#52525c;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:calc(var(--radius)*.8);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-inter),system-ui,sans-serif;--default-mono-font-family:var(--font-jetbrains-mono),monospace}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-amber-200:lab(91.7203% -.505269 49.9084);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-emerald-600:lab(55.0481% -49.9246 15.93);--color-emerald-700:lab(44.4871% -41.0396 11.0361);--color-teal-400:lab(76.0109% -53.3483 -2.27906);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-rose-400:lab(64.4125% 63.0291 19.2068);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-zinc-300:lab(84.9837% .601262 -2.17986);--color-zinc-400:lab(65.6464% 1.53497 -5.42429);--color-zinc-500:lab(47.8878% 1.65477 -5.77283);--color-zinc-600:lab(35.1166% 1.78212 -6.1173);--color-zinc-700:lab(26.8019% 1.35387 -4.68303);--color-zinc-800:lab(15.7305% .613764 -2.16959);--color-zinc-900:lab(8.30603% .618205 -2.16572)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:var(--font-inter),system-ui,sans-serif}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing)*0)}.top-3{top:calc(var(--spacing)*3)}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-3\.5{left:calc(var(--spacing)*3.5)}.left-5{left:calc(var(--spacing)*5)}.z-10{z-index:10}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-1\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-\[300px\]{height:300px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[80\%\]{max-width:80%}.max-w-\[500px\]{max-width:500px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[60px\]{min-width:60px}.min-w-\[80px\]{min-width:80px}.min-w-\[90px\]{min-width:90px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[140px_1fr\]{grid-template-columns:140px 1fr}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-4xl{border-radius:calc(var(--radius)*2.6)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius)*.8)}.rounded-xl{border-radius:calc(var(--radius)*1.4)}.rounded-t-xl{border-top-left-radius:calc(var(--radius)*1.4);border-top-right-radius:calc(var(--radius)*1.4)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius)*1.4);border-bottom-left-radius:calc(var(--radius)*1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.border-blue-500\/20{border-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/20{border-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.border-border,.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/30{border-color:color-mix(in oklab,var(--border)30%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-current{border-color:currentColor}.border-emerald-500{border-color:var(--color-emerald-500)}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/20{border-color:color-mix(in oklab,var(--color-orange-500)20%,transparent)}}.border-purple-500\/20{border-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/20{border-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.border-teal-500\/20{border-color:#00baa733}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/20{border-color:color-mix(in oklab,var(--color-teal-500)20%,transparent)}}.border-transparent{border-color:#0000}.border-white\/\[0\.1\]{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.1\]{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.border-zinc-500\/20{border-color:#71717b33}@supports (color:color-mix(in lab, red, red)){.border-zinc-500\/20{border-color:color-mix(in oklab,var(--color-zinc-500)20%,transparent)}}.border-zinc-600{border-color:var(--color-zinc-600)}.border-zinc-700{border-color:var(--color-zinc-700)}.border-zinc-800{border-color:var(--color-zinc-800)}.border-t-transparent{border-top-color:#0000}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-blue-400{border-left-color:var(--color-blue-400)}.border-l-emerald-400{border-left-color:var(--color-emerald-400)}.bg-\[\#0a0a0f\]{background-color:#0a0a0f}.bg-\[\#0a0a0f\]\/80{background-color:#0a0a0fcc;background-color:lab(2.83714% .595115 -2.18317/.8)}.bg-\[\#0d1117\]{background-color:#0d1117}.bg-\[\#28c840\]{background-color:#28c840}.bg-\[\#febc2e\]{background-color:#febc2e}.bg-\[\#ff5f57\]{background-color:#ff5f57}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border\/50{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.bg-border\/50{background-color:color-mix(in oklab,var(--border)50%,transparent)}}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-secondary{background-color:var(--secondary)}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-zinc-400{background-color:var(--color-zinc-400)}.bg-zinc-500{background-color:var(--color-zinc-500)}.bg-zinc-500\/10{background-color:#71717b1a}@supports (color:color-mix(in lab, red, red)){.bg-zinc-500\/10{background-color:color-mix(in oklab,var(--color-zinc-500)10%,transparent)}}.bg-zinc-700{background-color:var(--color-zinc-700)}.bg-zinc-800{background-color:var(--color-zinc-800)}.bg-zinc-800\/50{background-color:#27272a80}@supports (color:color-mix(in lab, red, red)){.bg-zinc-800\/50{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-emerald-300{--tw-gradient-via:var(--color-emerald-300);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-emerald-300{--tw-gradient-to:var(--color-emerald-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-400{--tw-gradient-to:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-12{padding:calc(var(--spacing)*12)}.p-\[3px\]{padding:3px}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-28{padding-top:calc(var(--spacing)*28)}.pr-6{padding-right:calc(var(--spacing)*6)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-12{padding-left:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-jetbrains-mono),monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/70{color:#fcbb00b3}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/70{color:color-mix(in oklab,var(--color-amber-400)70%,transparent)}}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400)80%,transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/80{color:#00d294cc}@supports (color:color-mix(in lab, red, red)){.text-emerald-400\/80{color:color-mix(in oklab,var(--color-emerald-400)80%,transparent)}}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground)60%,transparent)}}.text-orange-400{color:var(--color-orange-400)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-400{color:var(--color-purple-400)}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab, red, red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400)80%,transparent)}}.text-secondary-foreground{color:var(--secondary-foreground)}.text-teal-400{color:var(--color-teal-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-emerald-500{accent-color:var(--color-emerald-500)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-background{--tw-ring-color:var(--background)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab,var(--foreground)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}@media (hover:hover){.group-hover\:text-emerald-400:is(:where(.group):hover *){color:var(--color-emerald-400)}.group-hover\/tags\:opacity-100:is(:where(.group\/tags):hover *){opacity:1}}.group-data-\[size\=sm\]\/card\:p-3:is(:where(.group\/card)[data-size=sm] *){padding:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:px-3:is(:where(.group\/card)[data-size=sm] *){padding-inline:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing)*8)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation=vertical]) *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation=vertical]) *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:border-amber-500\/40:hover{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-500\/40:hover{border-color:color-mix(in oklab,var(--color-amber-500)40%,transparent)}}.hover\:border-border:hover{border-color:var(--border)}.hover\:border-emerald-500\/30:hover{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/30:hover{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.hover\:border-emerald-500\/50:hover{border-color:#00bb7f80}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/50:hover{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.hover\:border-zinc-600:hover{border-color:var(--color-zinc-600)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.hover\:bg-emerald-600:hover{background-color:var(--color-emerald-600)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.hover\:bg-white\/\[0\.05\]:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.05\]:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-amber-400:hover{color:var(--color-amber-400)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-emerald-400:hover{color:var(--color-emerald-400)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-emerald-500\/50:focus{border-color:#00bb7f80}@supports (color:color-mix(in lab, red, red)){.focus\:border-emerald-500\/50:focus{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*2)}.has-data-\[icon\=inline-end\]\:pr-3:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*3)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*2)}.has-data-\[icon\=inline-start\]\:pl-3:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*3)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing)*0)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:calc(var(--spacing)*3)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-block:calc(var(--spacing)*3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-10{gap:calc(var(--spacing)*10)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:64rem){.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.data-active\:bg-background:where([data-state=active]),.data-active\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.data-active\:text-foreground:where([data-state=active]),.data-active\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-state=active]),.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-active]:not([data-active=false])){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.dark\:data-active\:border-input:is(.dark *):where([data-state=active]),.dark\:data-active\:border-input:is(.dark *):where([data-active]:not([data-active=false])){border-color:var(--input)}.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-active\:text-foreground:is(.dark *):where([data-state=active]),.dark\:data-active\:text-foreground:is(.dark *):where([data-active]:not([data-active=false])){color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/card\:\[\.border-b\]\:pb-3:is(:where(.group\/card)[data-size=sm] *).border-b{padding-bottom:calc(var(--spacing)*3)}@media (hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius)*1.4);border-top-right-radius:calc(var(--radius)*1.4)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius)*1.4);border-bottom-left-radius:calc(var(--radius)*1.4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing)*3)!important;height:calc(var(--spacing)*3)!important}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.recharts-wrapper,.recharts-wrapper *,.recharts-surface,.recharts-surface *{-webkit-tap-highlight-color:transparent!important;outline:none!important}svg.recharts-surface>rect{stroke:none!important;stroke-width:0!important}.recharts-cartesian-grid-bg{fill:none!important;stroke:none!important}.recharts-tooltip-cursor{stroke:#27272a!important}:root{--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#df2225;--border:#e5e5e5;--input:#e5e5e5;--ring:#a1a1a1;--chart-1:#90c5ff;--chart-2:#3080ff;--chart-3:#155dfc;--chart-4:#1447e6;--chart-5:#193cb8;--radius:.625rem;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:lab(7.78201% -.0000149012 0);--primary-foreground:lab(98.26% 0 0);--secondary:lab(96.52% -.0000298023 .0000119209);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 .0000119209);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 .0000119209);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(49.0747% 69.3434 49.6251);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% -.0000298023 .0000119209);--chart-1:lab(77.5052% -6.4629 -36.42);--chart-2:lab(54.1736% 13.3369 -74.6839);--chart-3:lab(44.0605% 29.0279 -86.0352);--chart-4:lab(36.9089% 35.0961 -85.6872);--chart-5:lab(30.2514% 27.7853 -70.2699);--sidebar:lab(98.26% 0 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(96.52% -.0000298023 .0000119209);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% -.0000298023 .0000119209)}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:#d4d4d4;--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#404040;--accent-foreground:#fafafa;--destructive:#ff6568;--border:#ffffff1a;--input:#ffffff26;--ring:#737373;--chart-1:#90c5ff;--chart-2:#3080ff;--chart-3:#155dfc;--chart-4:#1447e6;--chart-5:#193cb8;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#ffffff1a;--sidebar-ring:#737373}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% 0 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% 0 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% 0 0);--primary:lab(84.92% 0 -.0000119209);--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 -.00000596046);--secondary-foreground:lab(98.26% 0 0);--muted:lab(15.204% 0 -.00000596046);--muted-foreground:lab(66.128% -.0000298023 .0000119209);--accent:lab(27.036% 0 0);--accent-foreground:lab(98.26% 0 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(77.5052% -6.4629 -36.42);--chart-2:lab(54.1736% 13.3369 -74.6839);--chart-3:lab(44.0605% 29.0279 -86.0352);--chart-4:lab(36.9089% 35.0961 -85.6872);--chart-5:lab(30.2514% 27.7853 -70.2699);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% 0 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(15.204% 0 -.00000596046);--sidebar-accent-foreground:lab(98.26% 0 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
3
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-amber-200:#fee685;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-emerald-300:#5ee9b5;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-emerald-600:#009767;--color-emerald-700:#007956;--color-teal-400:#00d3bd;--color-teal-500:#00baa7;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-rose-400:#ff667f;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-zinc-300:#d4d4d8;--color-zinc-400:#9f9fa9;--color-zinc-500:#71717b;--color-zinc-600:#52525c;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:calc(var(--radius)*.8);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-inter),system-ui,sans-serif;--default-mono-font-family:var(--font-jetbrains-mono),monospace}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-amber-200:lab(91.7203% -.505269 49.9084);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-emerald-600:lab(55.0481% -49.9246 15.93);--color-emerald-700:lab(44.4871% -41.0396 11.0361);--color-teal-400:lab(76.0109% -53.3483 -2.27906);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-rose-400:lab(64.4125% 63.0291 19.2068);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-zinc-300:lab(84.9837% .601262 -2.17986);--color-zinc-400:lab(65.6464% 1.53497 -5.42429);--color-zinc-500:lab(47.8878% 1.65477 -5.77283);--color-zinc-600:lab(35.1166% 1.78212 -6.1173);--color-zinc-700:lab(26.8019% 1.35387 -4.68303);--color-zinc-800:lab(15.7305% .613764 -2.16959);--color-zinc-900:lab(8.30603% .618205 -2.16572)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:var(--font-inter),system-ui,sans-serif}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing)*0)}.top-3{top:calc(var(--spacing)*3)}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-3\.5{left:calc(var(--spacing)*3.5)}.left-5{left:calc(var(--spacing)*5)}.z-10{z-index:10}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-1\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-\[300px\]{height:300px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[80\%\]{max-width:80%}.max-w-\[500px\]{max-width:500px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[60px\]{min-width:60px}.min-w-\[80px\]{min-width:80px}.min-w-\[90px\]{min-width:90px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[140px_1fr\]{grid-template-columns:140px 1fr}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-4xl{border-radius:calc(var(--radius)*2.6)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius)*.8)}.rounded-xl{border-radius:calc(var(--radius)*1.4)}.rounded-t-xl{border-top-left-radius:calc(var(--radius)*1.4);border-top-right-radius:calc(var(--radius)*1.4)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius)*1.4);border-bottom-left-radius:calc(var(--radius)*1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.border-blue-500\/20{border-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/20{border-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.border-border,.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/30{border-color:color-mix(in oklab,var(--border)30%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-current{border-color:currentColor}.border-emerald-500{border-color:var(--color-emerald-500)}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/20{border-color:color-mix(in oklab,var(--color-orange-500)20%,transparent)}}.border-purple-500\/20{border-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/20{border-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.border-teal-500\/20{border-color:#00baa733}@supports (color:color-mix(in lab, red, red)){.border-teal-500\/20{border-color:color-mix(in oklab,var(--color-teal-500)20%,transparent)}}.border-transparent{border-color:#0000}.border-white\/\[0\.1\]{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.1\]{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.border-zinc-500\/20{border-color:#71717b33}@supports (color:color-mix(in lab, red, red)){.border-zinc-500\/20{border-color:color-mix(in oklab,var(--color-zinc-500)20%,transparent)}}.border-zinc-600{border-color:var(--color-zinc-600)}.border-zinc-700{border-color:var(--color-zinc-700)}.border-zinc-800{border-color:var(--color-zinc-800)}.border-t-transparent{border-top-color:#0000}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-blue-400{border-left-color:var(--color-blue-400)}.border-l-emerald-400{border-left-color:var(--color-emerald-400)}.bg-\[\#0a0a0f\]{background-color:#0a0a0f}.bg-\[\#0a0a0f\]\/80{background-color:#0a0a0fcc;background-color:lab(2.83714% .595115 -2.18317/.8)}.bg-\[\#0d1117\]{background-color:#0d1117}.bg-\[\#28c840\]{background-color:#28c840}.bg-\[\#febc2e\]{background-color:#febc2e}.bg-\[\#ff5f57\]{background-color:#ff5f57}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border\/50{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.bg-border\/50{background-color:color-mix(in oklab,var(--border)50%,transparent)}}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-secondary{background-color:var(--secondary)}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-zinc-400{background-color:var(--color-zinc-400)}.bg-zinc-500{background-color:var(--color-zinc-500)}.bg-zinc-500\/10{background-color:#71717b1a}@supports (color:color-mix(in lab, red, red)){.bg-zinc-500\/10{background-color:color-mix(in oklab,var(--color-zinc-500)10%,transparent)}}.bg-zinc-700{background-color:var(--color-zinc-700)}.bg-zinc-800{background-color:var(--color-zinc-800)}.bg-zinc-800\/50{background-color:#27272a80}@supports (color:color-mix(in lab, red, red)){.bg-zinc-800\/50{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-emerald-300{--tw-gradient-via:var(--color-emerald-300);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-emerald-300{--tw-gradient-to:var(--color-emerald-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-400{--tw-gradient-to:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-12{padding:calc(var(--spacing)*12)}.p-\[3px\]{padding:3px}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-28{padding-top:calc(var(--spacing)*28)}.pr-6{padding-right:calc(var(--spacing)*6)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-12{padding-left:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-jetbrains-mono),monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/70{color:#fcbb00b3}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/70{color:color-mix(in oklab,var(--color-amber-400)70%,transparent)}}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400)80%,transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/80{color:#00d294cc}@supports (color:color-mix(in lab, red, red)){.text-emerald-400\/80{color:color-mix(in oklab,var(--color-emerald-400)80%,transparent)}}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground)60%,transparent)}}.text-orange-400{color:var(--color-orange-400)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-400{color:var(--color-purple-400)}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab, red, red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400)80%,transparent)}}.text-secondary-foreground{color:var(--secondary-foreground)}.text-teal-400{color:var(--color-teal-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-emerald-500{accent-color:var(--color-emerald-500)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-background{--tw-ring-color:var(--background)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab,var(--foreground)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}@media (hover:hover){.group-hover\:text-emerald-400:is(:where(.group):hover *){color:var(--color-emerald-400)}.group-hover\/tags\:opacity-100:is(:where(.group\/tags):hover *){opacity:1}}.group-data-\[size\=sm\]\/card\:p-3:is(:where(.group\/card)[data-size=sm] *){padding:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:px-3:is(:where(.group\/card)[data-size=sm] *){padding-inline:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing)*8)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation=vertical]) *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation=vertical]) *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:border-amber-500\/40:hover{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-500\/40:hover{border-color:color-mix(in oklab,var(--color-amber-500)40%,transparent)}}.hover\:border-border:hover{border-color:var(--border)}.hover\:border-emerald-500\/30:hover{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/30:hover{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.hover\:border-emerald-500\/50:hover{border-color:#00bb7f80}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/50:hover{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.hover\:border-zinc-600:hover{border-color:var(--color-zinc-600)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.hover\:bg-emerald-600:hover{background-color:var(--color-emerald-600)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.hover\:bg-white\/\[0\.05\]:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.05\]:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:text-\[\#5865F2\]:hover{color:#5865f2}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-amber-400:hover{color:var(--color-amber-400)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-emerald-400:hover{color:var(--color-emerald-400)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-emerald-500\/50:focus{border-color:#00bb7f80}@supports (color:color-mix(in lab, red, red)){.focus\:border-emerald-500\/50:focus{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*2)}.has-data-\[icon\=inline-end\]\:pr-3:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*3)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*2)}.has-data-\[icon\=inline-start\]\:pl-3:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*3)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing)*0)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:calc(var(--spacing)*3)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-block:calc(var(--spacing)*3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-10{gap:calc(var(--spacing)*10)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:64rem){.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.data-active\:bg-background:where([data-state=active]),.data-active\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.data-active\:text-foreground:where([data-state=active]),.data-active\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-state=active]),.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-active]:not([data-active=false])){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.dark\:data-active\:border-input:is(.dark *):where([data-state=active]),.dark\:data-active\:border-input:is(.dark *):where([data-active]:not([data-active=false])){border-color:var(--input)}.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-active\:text-foreground:is(.dark *):where([data-state=active]),.dark\:data-active\:text-foreground:is(.dark *):where([data-active]:not([data-active=false])){color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/card\:\[\.border-b\]\:pb-3:is(:where(.group\/card)[data-size=sm] *).border-b{padding-bottom:calc(var(--spacing)*3)}@media (hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius)*1.4);border-top-right-radius:calc(var(--radius)*1.4)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius)*1.4);border-bottom-left-radius:calc(var(--radius)*1.4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing)*3)!important;height:calc(var(--spacing)*3)!important}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.recharts-wrapper,.recharts-wrapper *,.recharts-surface,.recharts-surface *{-webkit-tap-highlight-color:transparent!important;outline:none!important}svg.recharts-surface>rect{stroke:none!important;stroke-width:0!important}.recharts-cartesian-grid-bg{fill:none!important;stroke:none!important}.recharts-tooltip-cursor{stroke:#27272a!important}:root{--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#df2225;--border:#e5e5e5;--input:#e5e5e5;--ring:#a1a1a1;--chart-1:#90c5ff;--chart-2:#3080ff;--chart-3:#155dfc;--chart-4:#1447e6;--chart-5:#193cb8;--radius:.625rem;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:lab(7.78201% -.0000149012 0);--primary-foreground:lab(98.26% 0 0);--secondary:lab(96.52% -.0000298023 .0000119209);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 .0000119209);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 .0000119209);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(49.0747% 69.3434 49.6251);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% -.0000298023 .0000119209);--chart-1:lab(77.5052% -6.4629 -36.42);--chart-2:lab(54.1736% 13.3369 -74.6839);--chart-3:lab(44.0605% 29.0279 -86.0352);--chart-4:lab(36.9089% 35.0961 -85.6872);--chart-5:lab(30.2514% 27.7853 -70.2699);--sidebar:lab(98.26% 0 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(96.52% -.0000298023 .0000119209);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% -.0000298023 .0000119209)}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:#d4d4d4;--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#404040;--accent-foreground:#fafafa;--destructive:#ff6568;--border:#ffffff1a;--input:#ffffff26;--ring:#737373;--chart-1:#90c5ff;--chart-2:#3080ff;--chart-3:#155dfc;--chart-4:#1447e6;--chart-5:#193cb8;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#ffffff1a;--sidebar-ring:#737373}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% 0 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% 0 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% 0 0);--primary:lab(84.92% 0 -.0000119209);--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 -.00000596046);--secondary-foreground:lab(98.26% 0 0);--muted:lab(15.204% 0 -.00000596046);--muted-foreground:lab(66.128% -.0000298023 .0000119209);--accent:lab(27.036% 0 0);--accent-foreground:lab(98.26% 0 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(77.5052% -6.4629 -36.42);--chart-2:lab(54.1736% 13.3369 -74.6839);--chart-3:lab(44.0605% 29.0279 -86.0352);--chart-4:lab(36.9089% 35.0961 -85.6872);--chart-5:lab(30.2514% 27.7853 -70.2699);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% 0 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(15.204% 0 -.00000596046);--sidebar-accent-foreground:lab(98.26% 0 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}