hackagent-webui 0.5.7.dev44__py3-none-any.whl → 0.5.8.dev45__py3-none-any.whl
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.
- hackagent_webui/__init__.py +1 -1
- hackagent_webui/static/404.html +1 -1
- hackagent_webui/static/VERSION +1 -1
- hackagent_webui/static/_next/static/chunks/355-e2dea3684934b9a8.js +1 -0
- hackagent_webui/static/_next/static/chunks/472-7be5a19832ac0441.js +1 -0
- hackagent_webui/static/_next/static/chunks/701-a112195c75a7cfee.js +1 -0
- hackagent_webui/static/_next/static/chunks/874-12bc26fc27858118.js +1 -0
- hackagent_webui/static/_next/static/chunks/889-80b0f84a20daf258.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/agents/{page-63d562af288bd470.js → page-9ae4eb31e2675d8a.js} +1 -1
- hackagent_webui/static/_next/static/chunks/app/{layout-7c1fdd2e3cdffab4.js → layout-efaecd4333ef00dc.js} +1 -1
- hackagent_webui/static/_next/static/chunks/app/page-b3f42114f30a338c.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/reports/page-5c5fe914aa4f6b6e.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/stats/page-2e5ec7e947f6ceb6.js +1 -0
- hackagent_webui/static/_next/static/css/ad4ca82c66199e5e.css +1 -0
- hackagent_webui/static/agents.html +1 -1
- hackagent_webui/static/agents.txt +5 -5
- hackagent_webui/static/api-keys.html +1 -1
- hackagent_webui/static/api-keys.txt +4 -4
- hackagent_webui/static/attacks/builder.html +1 -1
- hackagent_webui/static/attacks/builder.txt +4 -4
- hackagent_webui/static/attacks.html +1 -1
- hackagent_webui/static/attacks.txt +4 -4
- hackagent_webui/static/index.html +1 -1
- hackagent_webui/static/index.txt +5 -5
- hackagent_webui/static/profile.html +1 -1
- hackagent_webui/static/profile.txt +4 -4
- hackagent_webui/static/reports.html +1 -1
- hackagent_webui/static/reports.txt +5 -5
- hackagent_webui/static/stats.html +1 -1
- hackagent_webui/static/stats.txt +5 -5
- {hackagent_webui-0.5.7.dev44.dist-info → hackagent_webui-0.5.8.dev45.dist-info}/METADATA +1 -1
- {hackagent_webui-0.5.7.dev44.dist-info → hackagent_webui-0.5.8.dev45.dist-info}/RECORD +35 -36
- hackagent_webui/static/_next/static/chunks/130-ea2c854c99cceb32.js +0 -1
- hackagent_webui/static/_next/static/chunks/391-c0e09f348021cffc.js +0 -1
- hackagent_webui/static/_next/static/chunks/594-97628408277cbac5.js +0 -1
- hackagent_webui/static/_next/static/chunks/680-25d8e1ea98a28dad.js +0 -1
- hackagent_webui/static/_next/static/chunks/8-42d532ba984375d8.js +0 -1
- hackagent_webui/static/_next/static/chunks/816-19f20afc3075826e.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/page-44982fec817d0e96.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/reports/page-1507b6373935769e.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/stats/page-3d22606b7f9ba4b8.js +0 -1
- hackagent_webui/static/_next/static/css/c66d365ae0bced97.css +0 -1
- /hackagent_webui/static/_next/static/{HIoXscjHtxVCsDuJEjr4J → C3j3ir9ytDUgv-14RiTcK}/_buildManifest.js +0 -0
- /hackagent_webui/static/_next/static/{HIoXscjHtxVCsDuJEjr4J → C3j3ir9ytDUgv-14RiTcK}/_ssgManifest.js +0 -0
- {hackagent_webui-0.5.7.dev44.dist-info → hackagent_webui-0.5.8.dev45.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{11647:(e,t,a)=>{"use strict";a.d(t,{E:()=>c});var s=a(95155);a(12115);var n=a(32467),r=a(83101),l=a(64269);let i=(0,r.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function c(e){let{className:t,variant:a,asChild:r=!1,...c}=e,o=r?n.DX:"span";return(0,s.jsx)(o,{"data-slot":"badge",className:(0,l.cn)(i({variant:a}),t),...c})}},13406:(e,t,a)=>{"use strict";a.d(t,{Xi:()=>c,av:()=>o,j7:()=>i,tU:()=>l});var s=a(95155);a(12115);var n=a(49543),r=a(64269);function l(e){let{className:t,...a}=e;return(0,s.jsx)(n.bL,{"data-slot":"tabs",className:(0,r.cn)("flex flex-col gap-2",t),...a})}function i(e){let{className:t,...a}=e;return(0,s.jsx)(n.B8,{"data-slot":"tabs-list",className:(0,r.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...a})}function c(e){let{className:t,...a}=e;return(0,s.jsx)(n.l9,{"data-slot":"tabs-trigger",className:(0,r.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-background/50 dark:hover:bg-input/20 data-[state=active]:hover:bg-background dark:data-[state=active]:hover:bg-input/30",t),...a})}function o(e){let{className:t,...a}=e;return(0,s.jsx)(n.UC,{"data-slot":"tabs-content",className:(0,r.cn)("flex-1 outline-none",t),...a})}},17037:(e,t,a)=>{"use strict";a.d(t,{$:()=>i,F:()=>l});var s=a(95155);a(12115);var n=a(47397),r=a(64269);function l(e){let{className:t,children:a,...l}=e;return(0,s.jsxs)(n.bL,{"data-slot":"scroll-area",className:(0,r.cn)("relative",t),...l,children:[(0,s.jsx)(n.LM,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:a}),(0,s.jsx)(i,{}),(0,s.jsx)(n.OK,{})]})}function i(e){let{className:t,orientation:a="vertical",...l}=e;return(0,s.jsx)(n.VM,{"data-slot":"scroll-area-scrollbar",orientation:a,className:(0,r.cn)("flex touch-none p-px transition-colors select-none","vertical"===a&&"h-full w-2.5 border-l border-l-transparent","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent",t),...l,children:(0,s.jsx)(n.lr,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}},18299:(e,t,a)=>{"use strict";a.d(t,{t:()=>l});var s=a(95155);a(12115);var n=a(46767),r=a(36947);function l(e){let{children:t}=e;return(0,s.jsxs)(n.m_,{children:[(0,s.jsx)(n.k$,{asChild:!0,children:t}),(0,s.jsx)(n.ZI,{className:"max-w-xs",children:r.CZ})]})}},20243:(e,t,a)=>{"use strict";a.d(t,{E:()=>r});var s=a(95155),n=a(64269);function r(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"skeleton",className:(0,n.cn)("bg-accent animate-pulse rounded-md",t),...a})}},22470:(e,t,a)=>{"use strict";a.d(t,{M:()=>n});var s=a(95155);a(12115);let n=e=>{let{title:t,description:a,action:n,children:r,maxWidth:l="full"}=e;return(0,s.jsxs)("div",{className:"w-full ".concat({full:"max-w-full","8xl":"max-w-[90rem]","7xl":"max-w-7xl","6xl":"max-w-6xl","5xl":"max-w-5xl","4xl":"max-w-4xl","3xl":"max-w-3xl","2xl":"max-w-2xl"}[l]||"max-w-full"," mx-auto py-6 space-y-6"),children:[t&&(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 px-6 pb-5 border-b",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:t}),a&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:a})]}),n&&(0,s.jsx)("div",{className:"flex-shrink-0 pt-0.5",children:n})]}),r]})}},29147:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>Y});var s=a(95155),n=a(80230),r=a(12115),l=a(3998),i=a(86948),c=a(11647),o=a(13406),d=a(20243),m=a(17037),u=a(22470),x=a(52619),h=a.n(x),g=a(10281),f=a(56373),p=a(69386),j=a(26265),v=a(96324),N=a(68425),b=a(47734),k=a(73697),y=a(33420),w=a(86618),A=a(78192),E=a(52987),L=a(52056),_=a(7831),C=a(50113),S=a(63479),M=a(18299),R=a(41444),z=a(36947),D=a(87066),I=a(35795);function O(e){let{targets:t,runs:a,jailbreaks:n}=e,r=[{label:"Targets",value:t,icon:A.A,href:"/agents"},{label:"Runs",value:a,icon:D.A,href:"/stats"},{label:"Jailbreaks",value:n,icon:I.A,href:"/stats"}];return(0,s.jsx)("div",{className:"grid grid-cols-3 gap-4",children:r.map(e=>{let{label:t,value:a,icon:n,href:r}=e;return(0,s.jsx)(h(),{href:r,className:"group",children:(0,s.jsx)(i.Zp,{className:"transition-colors group-hover:bg-muted/40",children:(0,s.jsxs)(i.Wu,{className:"p-4",children:[(0,s.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:t}),(0,s.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-md border bg-muted/40 text-muted-foreground transition-colors group-hover:text-foreground",children:(0,s.jsx)(n,{className:"h-4 w-4"})})]}),(0,s.jsx)("span",{className:"text-3xl font-semibold tracking-tight tabular-nums",children:a})]})})},t)})})}var T=a(37397),Z=a(80534);let H=[{icon:A.A,title:"Add a target agent",description:"Connect the AI agent you want to probe for vulnerabilities.",cta:"Add target",href:"/agents"},{icon:T.A,title:"Build an attack",description:"Configure jailbreak and red-team techniques to run against it.",cta:"Build attack",href:"/attacks/builder"},{icon:Z.A,title:"Review results",description:"See which attacks succeeded and read the risk reports.",cta:"View results",href:"/stats"}];function K(){return(0,s.jsxs)(i.Zp,{children:[(0,s.jsxs)(i.aR,{children:[(0,s.jsx)(i.ZB,{className:"text-lg",children:"Get started with HackAgent"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Three steps to your first agent security report."})]}),(0,s.jsx)(i.Wu,{children:(0,s.jsx)("ol",{className:"grid gap-4 md:grid-cols-3",children:H.map((e,t)=>{let{icon:a,title:n,description:r,cta:i,href:c}=e;return(0,s.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border bg-muted/20 p-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-full border bg-background text-xs font-semibold tabular-nums text-muted-foreground",children:t+1}),(0,s.jsx)(a,{className:"h-4 w-4 text-muted-foreground"})]}),(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h3",{className:"text-sm font-medium",children:n}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:r})]}),(0,s.jsx)(l.$,{asChild:!0,variant:"outline",size:"sm",className:"mt-auto w-full",children:(0,s.jsxs)(h(),{href:c,children:[i,(0,s.jsx)(E.A,{className:"h-3.5 w-3.5"})]})})]},n)})})})]})}let P=(0,R.h)("HomeStats"),G={total:0,jailbreaks:0,mitigated:0,errors:0,pending:0};function B(e){return e.reduce((e,t)=>{var a,s,n,r,l;return{total:e.total+(null!=(a=t.totalResults)?a:0),jailbreaks:e.jailbreaks+(null!=(s=t.successfulJailbreaks)?s:0),mitigated:e.mitigated+(null!=(n=t.failedJailbreaks)?n:0),errors:e.errors+(null!=(r=t.errors)?r:0),pending:e.pending+(null!=(l=t.notEvaluated)?l:0)}},{...G})}function W(){let{hideEmptyState:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{resolvedTheme:t}=(0,S.D)(),a="dark"===t,n=a?C.xk:C.Ez,l=a?"#3f3f46":"#e5e7eb",[o,m]=(0,r.useState)(!0),[u,x]=(0,r.useState)([]),[R,D]=(0,r.useState)(0),[I,T]=(0,r.useState)(0),[Z,H]=(0,r.useState)(0),[W,F]=(0,r.useState)("—"),[U,J]=(0,r.useState)(G);(0,r.useEffect)(()=>{let e=!1;return(async()=>{m(!0);try{var t,a;let s=await _.ME.runList({page:1,pageSize:100});if(e)return;let n=null!=(t=s.results)?t:[],r=B(n),l=new Set(n.map(e=>e.agent).filter(Boolean));D(null!=(a=s.count)?a:n.length),T(l.size),H(r.jailbreaks),x(n.slice(0,5));let i=n[0];if(!i){F("—"),J(G);return}F(i.agentName||"".concat(i.agent.slice(0,8),"…")),J(B(n.filter(e=>e.agent===i.agent)))}catch(t){e||P.error({err:t},"Failed to load home stats")}finally{e||m(!1)}})(),()=>{e=!0}},[]);let V=(0,r.useMemo)(()=>0===U.total?0:Math.round(100*U.jailbreaks/U.total),[U]),$=U.total>0,X=(0,z.PU)($?V:null),q=C.xv[(0,z.lN)(V)],Q=(0,r.useMemo)(()=>[{name:"Jailbreaks",value:U.jailbreaks,color:n.vulnerable},{name:"Mitigated",value:U.mitigated,color:n.safe},{name:"Errors",value:U.errors,color:n.error},{name:"Pending",value:U.pending,color:n.pending}],[U,n]);return o?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)("div",{className:"grid grid-cols-3 gap-4",children:[0,1,2].map(e=>(0,s.jsx)(d.E,{className:"h-24 w-full"},e))}),(0,s.jsx)(d.E,{className:"h-56 w-full"})]}):0===R?e?null:(0,s.jsx)(K,{}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(O,{targets:I,runs:R,jailbreaks:Z}),(0,s.jsxs)(i.Zp,{children:[(0,s.jsx)(i.aR,{className:"pb-2",children:(0,s.jsxs)(i.ZB,{className:"text-lg flex flex-wrap items-center gap-2",children:["Latest Target Statistics",(0,s.jsxs)(c.E,{variant:"secondary",className:"font-mono font-normal gap-1",children:[(0,s.jsx)(A.A,{className:"h-3 w-3"}),W]})]})}),(0,s.jsx)(i.Wu,{children:$?(0,s.jsxs)("div",{className:"grid gap-6 md:grid-cols-2 items-center",children:[(0,s.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-medium self-start",children:"Risk Overview"}),(0,s.jsx)(M.t,{children:(0,s.jsx)("div",{children:(0,s.jsxs)(g.r,{width:200,height:180,children:[(0,s.jsxs)(f.Fq,{data:[{name:"Risk",value:V,color:q},{name:"Remaining",value:100-V,color:l}],cx:100,cy:90,innerRadius:58,outerRadius:82,startAngle:90,endAngle:-270,dataKey:"value",isAnimationActive:!1,children:[(0,s.jsx)(p.f,{fill:q}),(0,s.jsx)(p.f,{fill:l})]}),(0,s.jsxs)("text",{x:100,y:84,textAnchor:"middle",fontSize:26,fontWeight:700,fill:q,children:[V,"%"]}),(0,s.jsx)("text",{x:100,y:106,textAnchor:"middle",fontSize:12,fill:q,children:X})]})})})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:"Result Distribution"}),(0,s.jsx)(j.u,{width:"100%",height:150,children:(0,s.jsxs)(v.E,{data:Q,margin:{top:8,right:8,left:-16,bottom:0},children:[(0,s.jsx)(N.d,{vertical:!1,strokeDasharray:"3 3",stroke:a?"rgba(255,255,255,0.12)":"#e5e7eb"}),(0,s.jsx)(b.W,{dataKey:"name",tick:{fontSize:11},axisLine:!1,tickLine:!1}),(0,s.jsx)(k.h,{allowDecimals:!1,tick:{fontSize:11},axisLine:!1,tickLine:!1}),(0,s.jsx)(y.m,{wrapperStyle:{fontSize:12},cursor:{fill:"rgba(0,0,0,0.04)"}}),(0,s.jsx)(w.yP,{dataKey:"value",radius:[4,4,0,0],isAnimationActive:!1,children:Q.map(e=>(0,s.jsx)(p.f,{fill:e.color},e.name))})]})}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:[U.total," total results"]})]})]}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground py-6 text-center",children:"No evaluated results for this target yet."})})]}),(0,s.jsxs)(i.Zp,{children:[(0,s.jsxs)(i.aR,{className:"pb-2 flex-row items-center justify-between",children:[(0,s.jsx)(i.ZB,{className:"text-base",children:"Recent Runs"}),(0,s.jsxs)(h(),{href:"/stats",className:"text-xs text-muted-foreground hover:text-foreground flex items-center gap-1",children:["View all ",(0,s.jsx)(E.A,{className:"h-3 w-3"})]})]}),(0,s.jsx)(i.Wu,{className:"p-0",children:(0,s.jsx)("div",{className:"divide-y",children:u.map(e=>{var t,a;return(0,s.jsxs)(h(),{href:"/stats",className:"flex items-center justify-between gap-3 px-4 py-2.5 hover:bg-muted/50 transition-colors",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,s.jsxs)("span",{className:"font-mono text-xs text-muted-foreground shrink-0",children:[e.id.slice(0,8),"…"]}),(0,s.jsx)("span",{className:"text-sm truncate",children:e.agentName||"—"}),e.attackType&&(0,s.jsx)(c.E,{variant:"outline",className:"text-xs shrink-0",children:e.attackType})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[(null!=(t=e.successfulJailbreaks)?t:0)>0&&(0,s.jsxs)("span",{className:"flex items-center gap-1 text-xs",style:{color:C.Ez.vulnerable},children:[(0,s.jsx)(L.A,{className:"h-3 w-3"}),e.successfulJailbreaks]}),(0,s.jsx)(c.E,{variant:function(e){switch(e){case"COMPLETED":return"default";case"FAILED":return"destructive";case"RUNNING":return"secondary";default:return"outline"}}(e.status),className:"text-xs",children:null!=(a=e.status)?a:"PENDING"}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground w-16 text-right",children:function(e){if(!e)return"—";let t=Math.round((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"just now";let a=Math.round(t/60);if(a<60)return"".concat(a,"m ago");let s=Math.round(a/60);if(s<24)return"".concat(s,"h ago");let n=Math.round(s/24);if(n<30)return"".concat(n,"d ago");let r=Math.round(n/30);return r<12?"".concat(r,"mo ago"):"".concat(Math.round(r/12),"y ago")}(e.timestamp)})]})]},e.id)})})})]})]})}var F=a(17910),U=a(28150),J=a(50803),V=a(61362),$=a(75426),X=a(89715),q=a(85921);let Q={google_adk:{name:"Google ADK",description:"Test a Google Agent Development Kit agent for jailbreaking and prompt injection. HackAgent sends adversarial goals via the ADK protocol and uses an LLM judge to evaluate whether safety guardrails were bypassed.",installCmd:"pip install hackagent",sdkCode:'from hackagent import HackAgent\n\nagent = HackAgent(\n name="my_adk_agent",\n endpoint="http://localhost:8000",\n agent_type="google-adk",\n)\n\nresults = agent.hack(attack_config={\n "attack_type": "advprefix",\n "goals": ["Bypass the agent\'s safety guidelines"],\n "generator": {\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n },\n "judges": [{\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n "type": "harmbench",\n }],\n})',riskAreas:["Jailbreaking","Prompt Injection","Goal Hijacking"]},openai_sdk:{name:"OpenAI SDK",description:"Test any OpenAI-compatible endpoint — including custom deployments, Azure OpenAI, or local models via LM Studio. HackAgent runs adversarial attack campaigns and streams results to your dashboard.",installCmd:"pip install hackagent",sdkCode:'from hackagent import HackAgent\n\nagent = HackAgent(\n name="my_openai_agent",\n endpoint="http://localhost:8000/v1", # /v1 base path\n agent_type="openai-sdk",\n)\n\nresults = agent.hack(attack_config={\n "attack_type": "pair",\n "goals": ["Extract system prompt", "Ignore previous instructions"],\n "generator": {\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n },\n "judges": [{\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n "type": "harmbench",\n }],\n})',riskAreas:["System Prompt Extraction","Instruction Override","Data Leakage"]},litellm:{name:"LiteLLM / Ollama",description:"Test any local or remote model via LiteLLM or Ollama — including Llama, Mistral, Gemma, and more. Run full jailbreak evaluations entirely offline with no external API dependencies.",installCmd:"pip install hackagent",sdkCode:'from hackagent import HackAgent\n\n# Ollama example — runs fully locally\nagent = HackAgent(\n name="llama3",\n endpoint="http://localhost:11434",\n agent_type="ollama",\n)\n\nresults = agent.hack(attack_config={\n "attack_type": "advprefix",\n "dataset": {"preset": "harmbench", "limit": 50},\n "generator": {\n "identifier": "llama2-uncensored",\n "endpoint": "http://localhost:11434",\n "agent_type": "ollama",\n },\n "judges": [{\n "identifier": "llama2-uncensored",\n "endpoint": "http://localhost:11434",\n "agent_type": "ollama",\n "type": "harmbench",\n }],\n})',riskAreas:["Jailbreaking","Safety Guardrail Bypass","Harmful Content Generation"]}};function Y(){let{user:e,isAuthenticated:t,isLoading:a,login:x}=(0,n.h)(),[g,f]=(0,r.useState)("google_adk"),[p,j]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(t||a||!x)return;let e=new URLSearchParams(window.location.search);e.has("code")&&e.has("state")||x()},[a,t,x]);let v=(e,t)=>{navigator.clipboard.writeText(e),j(t),setTimeout(()=>j(null),2e3)};if(a)return(0,s.jsx)(u.M,{title:"Welcome",children:(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(d.E,{className:"h-8 w-64 mx-auto"}),(0,s.jsx)(d.E,{className:"h-5 w-96 mx-auto"})]}),(0,s.jsxs)(i.Zp,{children:[(0,s.jsxs)(i.aR,{children:[(0,s.jsx)(d.E,{className:"h-6 w-48"}),(0,s.jsx)(d.E,{className:"h-4 w-72"})]}),(0,s.jsxs)(i.Wu,{className:"space-y-4",children:[(0,s.jsx)(d.E,{className:"h-10 w-full"}),(0,s.jsx)(d.E,{className:"h-32 w-full"}),(0,s.jsx)(d.E,{className:"h-32 w-full"})]})]})]})});if(!t)return null;let N=Q[g];return(0,s.jsx)(u.M,{maxWidth:"5xl",children:(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"text-center space-y-2",children:[(0,s.jsxs)("h1",{className:"text-3xl font-bold",children:["Welcome, ",e&&(e.name||e.preferred_username||e.nickname||e.email)||"User","!"]}),(0,s.jsx)("p",{className:"text-lg text-muted-foreground",children:"Get a security risk assessment for your AI agent in minutes"})]}),(0,s.jsx)(W,{hideEmptyState:!0}),(0,s.jsxs)(i.Zp,{className:"shadow-lg",children:[(0,s.jsxs)(i.aR,{className:"pb-4",children:[(0,s.jsxs)(i.ZB,{className:"text-xl flex items-center gap-2",children:[(0,s.jsx)(F.A,{className:"h-5 w-5 text-primary"}),"Quick Start: Run Your First Attack"]}),(0,s.jsx)(i.BT,{children:"Select your agent framework, then copy the Python snippet to get started"})]}),(0,s.jsx)(i.Wu,{className:"space-y-6",children:(0,s.jsxs)(o.tU,{value:g,onValueChange:e=>f(e),className:"w-full",children:[(0,s.jsxs)(o.j7,{className:"grid w-full grid-cols-3",children:[(0,s.jsxs)(o.Xi,{value:"google_adk",className:"gap-2",children:[(0,s.jsx)(A.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"Google ADK"})]}),(0,s.jsxs)(o.Xi,{value:"openai_sdk",className:"gap-2",children:[(0,s.jsx)(U.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"OpenAI SDK"})]}),(0,s.jsxs)(o.Xi,{value:"litellm",className:"gap-2",children:[(0,s.jsx)(J.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"LiteLLM / Ollama"})]})]}),(0,s.jsxs)(o.av,{value:g,className:"mt-4 space-y-6",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground bg-muted/50 p-3 rounded-lg",children:N.description}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(c.E,{variant:"default",className:"h-7 w-7 rounded-full p-0 flex items-center justify-center",children:"1"}),(0,s.jsx)("h3",{className:"font-semibold",children:"Install HackAgent"}),(0,s.jsx)(l.$,{variant:"ghost",size:"sm",className:"ml-auto",onClick:()=>v(N.installCmd,"install"),children:"install"===p?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(V.A,{className:"h-4 w-4 text-green-500 mr-1"}),"Copied!"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)($.A,{className:"h-4 w-4 mr-1"}),"Copy"]})})]}),(0,s.jsx)("div",{className:"ml-10 bg-muted rounded-lg p-4 font-mono text-xs",children:(0,s.jsx)("pre",{children:N.installCmd})})]}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(c.E,{variant:"secondary",className:"h-7 w-7 rounded-full p-0 flex items-center justify-center",children:"2"}),(0,s.jsx)("h3",{className:"font-semibold",children:"Configure and run the attack"}),(0,s.jsx)(l.$,{variant:"ghost",size:"sm",className:"ml-auto",onClick:()=>v(N.sdkCode,"sdk"),children:"sdk"===p?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(V.A,{className:"h-4 w-4 text-green-500 mr-1"}),"Copied!"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)($.A,{className:"h-4 w-4 mr-1"}),"Copy"]})})]}),(0,s.jsx)(m.F,{className:"ml-10",children:(0,s.jsx)("div",{className:"bg-muted rounded-lg p-4 font-mono text-xs overflow-x-auto",children:(0,s.jsx)("pre",{children:N.sdkCode})})})]}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(c.E,{variant:"outline",className:"h-7 w-7 rounded-full p-0 flex items-center justify-center",children:"3"}),(0,s.jsx)("h3",{className:"font-semibold",children:"Review your risk report"})]}),(0,s.jsxs)("div",{className:"ml-10 space-y-3",children:[(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:"Vulnerabilities tested:"}),N.riskAreas.map(e=>(0,s.jsxs)(c.E,{variant:"secondary",className:"flex items-center gap-1",children:[(0,s.jsx)(L.A,{className:"h-3 w-3"}),e]},e))]}),(0,s.jsxs)("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(X.A,{className:"h-4 w-4"}),"Vulnerability summary"]}),(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(Z.A,{className:"h-4 w-4"}),"Attack success rates"]})]})]})]}),(0,s.jsxs)("div",{className:"pt-4 border-t flex flex-col sm:flex-row items-center justify-between gap-4",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Ready to test your agent?"}),(0,s.jsxs)("div",{className:"flex gap-3",children:[(0,s.jsx)(h(),{href:"/agents",children:(0,s.jsxs)(l.$,{variant:"outline",children:[(0,s.jsx)(A.A,{className:"h-4 w-4"}),"Configure Agent"]})}),(0,s.jsx)(h(),{href:"/reports",children:(0,s.jsxs)(l.$,{children:[(0,s.jsx)(q.A,{className:"h-4 w-4"}),"View Reports",(0,s.jsx)(E.A,{className:"h-4 w-4"})]})})]})]})]})]})})]})]})})}},34105:(e,t,a)=>{"use strict";a.d(t,{c:()=>s});let s=(0,a(12115).createContext)(void 0)},36947:(e,t,a)=>{"use strict";a.d(t,{CZ:()=>l,PU:()=>c,WA:()=>s,lN:()=>i});let s=["low","medium","high","critical"],n={low:10,medium:30,high:60},r={low:"Low",medium:"Medium",high:"High",critical:"Critical"},l="Risk from attack success rate (ASR): Low ≤".concat(n.low,"%, ")+"Medium ≤".concat(n.medium,"%, High ≤").concat(n.high,"%, ")+"Critical >".concat(n.high,"%.");function i(e){return e<=n.low?"low":e<=n.medium?"medium":e<=n.high?"high":"critical"}function c(e){return null==e||Number.isNaN(e)?"No data":r[i(e)]}},46767:(e,t,a)=>{"use strict";a.d(t,{Bc:()=>l,ZI:()=>o,k$:()=>c,m_:()=>i});var s=a(95155);a(12115);var n=a(53583),r=a(64269);function l(e){let{delayDuration:t=0,...a}=e;return(0,s.jsx)(n.Kq,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function i(e){let{...t}=e;return(0,s.jsx)(l,{children:(0,s.jsx)(n.bL,{"data-slot":"tooltip",...t})})}function c(e){let{...t}=e;return(0,s.jsx)(n.l9,{"data-slot":"tooltip-trigger",...t})}function o(e){let{className:t,sideOffset:a=0,children:l,...i}=e;return(0,s.jsx)(n.ZL,{children:(0,s.jsxs)(n.UC,{"data-slot":"tooltip-content",sideOffset:a,className:(0,r.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...i,children:[l,(0,s.jsx)(n.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},50113:(e,t,a)=>{"use strict";a.d(t,{CG:()=>i,Ez:()=>s,JX:()=>l,xk:()=>n,xv:()=>r});let s={vulnerable:"#ef4444",safe:"#22c55e",error:"#f59e0b",pending:"#94a3b8"},n={vulnerable:"#f87171",safe:"#4ade80",error:"#fbbf24",pending:"#cbd5e1"},r={low:"#22c55e",medium:"#eab308",high:"#f97316",critical:"#ef4444"},l={LITELLM:"LiteLLM",OPENAI_SDK:"OpenAI SDK / API",GOOGLE_ADK:"Google ADK",OTHER:"Other / Proprietary",UNKNOWN:"Unknown"},i=new Set(["attack_type","generator"])},63479:(e,t,a)=>{"use strict";a.d(t,{D:()=>l,N:()=>o});var s=a(95155),n=a(12115);let r=(0,n.createContext)({theme:"system",resolvedTheme:"light",setTheme:()=>{}});function l(){return(0,n.useContext)(r)}let i="hackagent-theme";function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function o(e){let{children:t}=e,[a,l]=(0,n.useState)("system"),[o,d]=(0,n.useState)("light"),m=e=>{let t=document.documentElement;"dark"===e?t.classList.add("dark"):t.classList.remove("dark")};return(0,n.useEffect)(()=>{var e;let t=null!=(e=localStorage.getItem(i))?e:"system";l(t);let a="system"===t?c():t;d(a),m(a)},[]),(0,n.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{if("system"===a){let e=c();d(e),m(e)}};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[a]),(0,s.jsx)(r.Provider,{value:{theme:a,resolvedTheme:o,setTheme:e=>{localStorage.setItem(i,e),l(e);let t="system"===e?c():e;d(t),m(t)}},children:t})}},65761:(e,t,a)=>{Promise.resolve().then(a.bind(a,29147))},80230:(e,t,a)=>{"use strict";a.d(t,{h:()=>l});var s=a(12115),n=a(34105);let r=async()=>"";function l(){let e=(0,s.useContext)(n.c);return e||{provider:"disabled",user:void 0,isAuthenticated:!1,isLoading:!0,login:void 0,logout:void 0,getAccessTokenSilently:r}}},86948:(e,t,a)=>{"use strict";a.d(t,{BT:()=>c,Wu:()=>o,ZB:()=>i,Zp:()=>r,aR:()=>l});var s=a(95155);a(12115);var n=a(64269);function r(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded border py-6",t),...a})}function l(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-header",className:(0,n.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...a})}function i(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-title",className:(0,n.cn)("leading-none font-semibold",t),...a})}function c(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}function o(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...a})}}},e=>{e.O(0,[187,355,619,144,855,532,641,874,924,441,493,358],()=>e(e.s=65761)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[22],{18299:(e,t,s)=>{"use strict";s.d(t,{t:()=>a});var r=s(95155);s(12115);var l=s(46767),n=s(36947);function a(e){let{children:t}=e;return(0,r.jsxs)(l.m_,{children:[(0,r.jsx)(l.k$,{asChild:!0,children:t}),(0,r.jsx)(l.ZI,{className:"max-w-xs",children:n.CZ})]})}},36947:(e,t,s)=>{"use strict";s.d(t,{CZ:()=>a,PU:()=>c,WA:()=>r,lN:()=>i});let r=["low","medium","high","critical"],l={low:10,medium:30,high:60},n={low:"Low",medium:"Medium",high:"High",critical:"Critical"},a="Risk from attack success rate (ASR): Low ≤".concat(l.low,"%, ")+"Medium ≤".concat(l.medium,"%, High ≤").concat(l.high,"%, ")+"Critical >".concat(l.high,"%.");function i(e){return e<=l.low?"low":e<=l.medium?"medium":e<=l.high?"high":"critical"}function c(e){return null==e||Number.isNaN(e)?"No data":n[i(e)]}},50113:(e,t,s)=>{"use strict";s.d(t,{CG:()=>i,Ez:()=>r,JX:()=>a,xk:()=>l,xv:()=>n});let r={vulnerable:"#ef4444",safe:"#22c55e",error:"#f59e0b",pending:"#94a3b8"},l={vulnerable:"#f87171",safe:"#4ade80",error:"#fbbf24",pending:"#cbd5e1"},n={low:"#22c55e",medium:"#eab308",high:"#f97316",critical:"#ef4444"},a={LITELLM:"LiteLLM",OPENAI_SDK:"OpenAI SDK / API",GOOGLE_ADK:"Google ADK",OTHER:"Other / Proprietary",UNKNOWN:"Unknown"},i=new Set(["attack_type","generator"])},52428:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>eW});var r=s(95155),l=s(12115),n=s(86948),a=s(11647),i=s(3998),c=s(17037),o=s(35299),d=s(39867),x=s(27937),u=s(50906),p=s(16485),m=s(1524),h=s(52056),g=s(26983),f=s(89715),j=s(17910),b=s(78192),v=s(57828),y=s(13496),k=s(17983),N=s(7831),w=s(41444),S=s(36947),A=s(22470),z=s(56419),T=s(18299),R=s(63819),C=s(10281),L=s(56373),E=s(69386),B=s(26265),M=s(96324),W=s(68425),F=s(47734),D=s(73697),O=s(33420),P=s(37665),I=s(86618),_=s(62319),J=s(26411),V=s(32909),H=s(88230),G=s(39548),K=s(61362),U=s(78874),Z=s(59427),$=s(37494),q=s(50113),X=s(63479),Q=s(28567);function Y(e){var t;return e?null!=(t=q.JX[e])?t:e:"Unknown"}function ee(e){return null==e?"—":"string"==typeof e?e:String(e)}function et(e){let{v:t,depth:s=0}=e;if(null==t)return(0,r.jsx)("span",{className:"text-muted-foreground",children:"—"});if(Array.isArray(t))return 0===t.length?(0,r.jsx)("span",{className:"text-muted-foreground",children:"—"}):(0,r.jsx)("div",{className:"space-y-0.5",children:t.map((e,t)=>(0,r.jsx)("div",{children:(0,r.jsx)(et,{v:e,depth:s})},t))});if("object"==typeof t){let e=Object.entries(t);return 0===e.length?(0,r.jsx)("span",{className:"text-muted-foreground",children:"—"}):(0,r.jsx)("dl",{className:"space-y-0.5 ".concat(s>0?"pl-3 border-l border-border":""),children:e.map(e=>{let[t,l]=e;return(0,r.jsxs)("div",{className:"flex gap-2 items-baseline",children:[(0,r.jsx)("dt",{className:"text-muted-foreground shrink-0 min-w-[72px] text-[10px] uppercase tracking-wide",children:t}),(0,r.jsx)("dd",{className:"font-mono text-[11px]",children:(0,r.jsx)(et,{v:l,depth:s+1})})]},t)})})}return(0,r.jsx)("span",{className:"font-mono",children:ee(t)})}function es(e){let{v:t,depth:s=0}=e;if(null==t)return(0,r.jsx)("span",{style:{color:"#9ca3af"},children:"—"});if(Array.isArray(t))return 0===t.length?(0,r.jsx)("span",{style:{color:"#9ca3af"},children:"—"}):(0,r.jsx)("div",{children:t.map((e,t)=>(0,r.jsx)("div",{children:(0,r.jsx)(es,{v:e,depth:s})},t))});if("object"==typeof t){let e=Object.entries(t);return 0===e.length?(0,r.jsx)("span",{style:{color:"#9ca3af"},children:"—"}):(0,r.jsx)("div",{style:s>0?{paddingLeft:"10px",borderLeft:"2px solid #e5e7eb"}:{},children:e.map(e=>{let[t,l]=e;return(0,r.jsxs)("div",{style:{display:"flex",gap:"8px",marginBottom:"2px",alignItems:"flex-start"},children:[(0,r.jsx)("span",{style:{color:"#9ca3af",fontSize:"9px",textTransform:"uppercase",letterSpacing:"0.04em",minWidth:"72px",flexShrink:0,paddingTop:"1px"},children:t}),(0,r.jsx)("span",{style:{fontFamily:"monospace",fontSize:"10px",color:"#374151"},children:(0,r.jsx)(es,{v:l,depth:s+1})})]},t)})})}return(0,r.jsx)("span",{style:{fontFamily:"monospace",fontSize:"10px",color:"#374151"},children:ee(t)})}function er(e){let t=(0,S.lN)(100-e);return"critical"===t?"#dc2626":"high"===t?"#d97706":"#16a34a"}function el(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:18;return e.length>t?e.slice(0,t-1)+"…":e}let en=[25,50,75,100],ea="system-ui, -apple-system, 'Helvetica Neue', sans-serif";function ei(e,t){return 2*Math.PI*t/e-Math.PI/2}function ec(e,t,s){return 230+t*Math.cos(ei(e,s))}function eo(e,t,s){return 200+t*Math.sin(ei(e,s))}function ed(e,t){return Array.from({length:e},(s,r)=>"".concat(ec(e,140*t(r),r),",").concat(eo(e,140*t(r),r))).join(" ")}function ex(e,t){let s=Math.cos(ei(e,t));return .25>Math.abs(s)?"middle":s>0?"start":"end"}function eu(e,t){let s=Math.sin(ei(e,t));return s<-.7?-4:s>.7?14:4}function ep(e){return"dark"===e?{bg:"#111827",ringFill:"none",ringStroke:"#9ca3af",ringLabel:"#d1d5db",axisStroke:"#9ca3af",polyFill:"#60a5fa1a",polyStroke:"#93c5fd",dotStroke:"#f3f4f6",labelText:"#f3f4f6"}:{bg:"#ffffff",ringFill:"none",ringStroke:"#4b5563",ringLabel:"#374151",axisStroke:"#4b5563",polyFill:"#3b82f614",polyStroke:"#60a5fa",dotStroke:"#111827",labelText:"#111827"}}function em(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function eh(e){let{data:t,theme:s="light"}=e,l=t.length;if(l<3)return null;let n=ep(s),a=(e,t)=>ec(l,e,t),i=(e,t)=>eo(l,e,t),c=e=>ed(l,e),o=e=>ex(l,e);return(0,r.jsxs)("svg",{viewBox:"0 0 ".concat(460," ").concat(400),width:460,height:400,style:{display:"block",margin:"0 auto",maxWidth:"100%"},children:[(0,r.jsx)("rect",{width:460,height:400,fill:"none"}),en.map(e=>(0,r.jsx)("polygon",{points:c(()=>e/100),fill:100===e?n.ringFill:"none",stroke:n.ringStroke,strokeWidth:"0.9"},e)),en.map(e=>(0,r.jsx)("text",{x:233,y:200-e/100*140-3,fontSize:"8",fill:n.ringLabel,fontFamily:ea,textAnchor:"start",children:e},e)),t.map((e,t)=>(0,r.jsx)("line",{x1:230,y1:200,x2:a(140,t),y2:i(140,t),stroke:n.axisStroke,strokeWidth:"0.9"},t)),(0,r.jsx)("polygon",{points:c(e=>t[e].robustness/100),fill:n.polyFill,stroke:n.polyStroke,strokeWidth:"1.6",strokeLinejoin:"round"}),t.map((e,t)=>(0,r.jsx)("circle",{cx:a(e.robustness/100*140,t),cy:i(e.robustness/100*140,t),r:4,fill:er(e.robustness),stroke:n.dotStroke,strokeWidth:"1.5"},t)),t.map((e,t)=>{let s=a(164,t),c=i(164,t)+eu(l,t);return(0,r.jsxs)("g",{children:[(0,r.jsx)("text",{x:s,y:c,fontSize:"10",fontWeight:"600",fill:n.labelText,fontFamily:ea,textAnchor:o(t),children:el(e.name)}),(0,r.jsxs)("text",{x:s,y:c+13,fontSize:"9",fill:er(e.robustness),fontFamily:ea,textAnchor:o(t),fontWeight:"700",children:[e.robustness,"% robust"]})]},t)})]})}var eg=s(6259),ef=s(23327),ej=s(37397),eb=s(45345);function ev(e){let{agent:t,attack:s,results:l,isLoading:n}=e,i=null==s?void 0:s._configuration,c=(0,Q.PL)(i),d=Array.from(new Set(l.map(e=>(0,Q.Bn)(e,i)))),x=i?Object.entries(i).filter(e=>{let[t,s]=e;return null!=s&&!q.CG.has(t)}):[],u=null==i?void 0:i.generator;return n?(0,r.jsxs)("div",{className:"border rounded-lg p-5 flex items-center gap-3 text-muted-foreground",children:[(0,r.jsx)(o.A,{className:"h-4 w-4 animate-spin shrink-0"}),(0,r.jsx)("span",{className:"text-sm",children:"Loading test scope details…"})]}):t||s||0!==d.length||c?(0,r.jsxs)("div",{className:"border rounded-lg divide-y print-avoid-break",children:[(0,r.jsxs)("div",{className:"px-4 py-3 flex items-center gap-2 bg-muted/30",children:[(0,r.jsx)(ef.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,r.jsx)("h3",{className:"text-sm font-semibold",children:"Scope of Testing"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 divide-y md:divide-y-0 md:divide-x",children:[t&&(0,r.jsxs)("div",{className:"px-4 py-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(b.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Agent Under Test"})]}),(0,r.jsxs)("div",{className:"space-y-2 pl-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Name"}),(0,r.jsx)("p",{className:"text-sm font-semibold",children:t.name})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Type"}),(0,r.jsx)(a.E,{variant:"secondary",className:"text-xs mt-0.5",children:Y(t.agentType)})]}),t.endpoint&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Endpoint"}),(0,r.jsx)("p",{className:"text-xs font-mono text-muted-foreground break-all",children:t.endpoint})]}),t.description&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Description"}),(0,r.jsx)("p",{className:"text-xs",children:t.description})]})]})]}),(0,r.jsxs)("div",{className:"px-4 py-4 space-y-4",children:[s&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(ej.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Attack Strategy"})]}),(0,r.jsxs)("div",{className:"pl-6 space-y-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Type"}),(0,r.jsx)(a.E,{variant:"outline",className:"text-xs mt-0.5",children:s.type})]}),u&&(0,r.jsxs)(r.Fragment,{children:[u.identifier&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Model"}),(0,r.jsx)("p",{className:"text-xs font-mono",children:String(u.identifier)})]}),u.agent_type&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Generator Type"}),(0,r.jsx)(a.E,{variant:"secondary",className:"text-xs mt-0.5",children:String(u.agent_type)})]}),u.endpoint&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Generator Endpoint"}),(0,r.jsx)("p",{className:"text-xs font-mono text-muted-foreground break-all",children:String(u.endpoint)})]})]})]})]}),(c||x.length>0||d.length>0)&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(eb.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Datasets & Harmful Categories"})]}),(0,r.jsxs)("div",{className:"pl-6 space-y-2",children:[c&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide mb-1",children:"Dataset"}),(0,r.jsx)(a.E,{variant:"outline",className:"text-xs",children:c})]}),x.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide mb-1",children:"Parameters"}),(0,r.jsx)("dl",{className:"mt-1 space-y-1.5",children:x.map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{children:[(0,r.jsx)("dt",{className:"text-[10px] text-muted-foreground uppercase tracking-wide mb-0.5",children:t}),(0,r.jsx)("dd",{className:"pl-0 text-xs",children:(0,r.jsx)(et,{v:s})})]},t)})})]}),d.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"text-xs text-muted-foreground uppercase tracking-wide mb-1",children:["Harm Categories (",d.length,")"]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:d.map(e=>(0,r.jsx)(a.E,{variant:"secondary",className:"text-xs",children:e},e))})]})]})]}),!s&&0===d.length&&!c&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground pl-6",children:"No attack or dataset metadata available."})]})]})]}):null}let ey=e=>{let{cx:t,cy:s,riskScore:l,riskLevel:n}=e;return(0,r.jsxs)("g",{children:[(0,r.jsxs)("text",{x:t,y:s-10,textAnchor:"middle",fontSize:28,fontWeight:"700",fill:q.xv[n],children:[l,"%"]}),(0,r.jsx)("text",{x:t,y:s+14,textAnchor:"middle",fontSize:12,fill:"#6b7280",children:"Risk Score"})]})};function ek(e){let{report:t}=e,s=100-t.riskScore,l=[{name:"Risk",value:t.riskScore,color:q.xv[t.riskLevel]},{name:"Remaining",value:s,color:"#e5e7eb"}];return(0,r.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,r.jsxs)(C.r,{width:240,height:220,children:[(0,r.jsx)(L.Fq,{data:l,cx:120,cy:110,innerRadius:72,outerRadius:102,startAngle:90,endAngle:-270,paddingAngle:0,dataKey:"value",isAnimationActive:!1,children:l.map(e=>(0,r.jsx)(E.f,{fill:e.color},e.name))}),(0,r.jsx)(ey,{cx:120,cy:110,riskScore:t.riskScore,riskLevel:t.riskLevel})]}),(0,r.jsx)("div",{className:"text-center",children:(0,r.jsxs)("span",{className:"text-xs font-semibold uppercase tracking-wide px-2 py-0.5 rounded",style:{background:"".concat(q.xv[t.riskLevel],"22"),color:q.xv[t.riskLevel],border:"1px solid ".concat(q.xv[t.riskLevel],"55")},children:[t.riskLevel," risk"]})})]})}function eN(e){let{results:t,attack:s=null}=e,{resolvedTheme:l}=(0,X.D)(),n="dark"===l?q.xk:q.Ez,a=null==s?void 0:s._configuration,i={};t.forEach(e=>{let t=(0,Q.Bn)(e,a);i[t]||(i[t]={vulnerable:0,safe:0,error:0});let s=(0,Q.km)(e.evaluationStatus);"vulnerable"===s?i[t].vulnerable++:"safe"===s?i[t].safe++:i[t].error++});let c=Object.entries(i).map(e=>{let[t,s]=e;return{name:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:22;return e.length>t?e.slice(0,t-1)+"…":e}(t),Vulnerable:s.vulnerable,Mitigated:s.safe,Error:s.error}}).sort((e,t)=>t.Vulnerable-e.Vulnerable);if(0===c.length)return null;let o=Math.max(220,32*c.length+80);return(0,r.jsx)(B.u,{width:"100%",height:o,children:(0,r.jsxs)(M.E,{data:c,layout:"vertical",margin:{top:4,right:30,left:8,bottom:4},barCategoryGap:"25%",children:[(0,r.jsx)(W.d,{horizontal:!1,strokeDasharray:"3 3",stroke:"#e5e7eb"}),(0,r.jsx)(F.W,{type:"number",allowDecimals:!1,tick:{fontSize:11}}),(0,r.jsx)(D.h,{type:"category",dataKey:"name",tick:{fontSize:11},width:120}),(0,r.jsx)(O.m,{wrapperStyle:{fontSize:12},cursor:{fill:"rgba(0,0,0,0.04)"}}),(0,r.jsx)(P.s,{wrapperStyle:{fontSize:11}}),(0,r.jsx)(I.yP,{dataKey:"Vulnerable",stackId:"a",fill:n.vulnerable,isAnimationActive:!1}),(0,r.jsx)(I.yP,{dataKey:"Mitigated",stackId:"a",fill:n.safe,isAnimationActive:!1}),(0,r.jsx)(I.yP,{dataKey:"Error",stackId:"a",fill:n.error,isAnimationActive:!1,radius:[0,3,3,0]})]})})}function ew(e){let{results:t}=e,{resolvedTheme:s}=(0,X.D)(),l=t.map(e=>e.latencyMs).filter(e=>"number"==typeof e);if(0===l.length)return null;let n=[{label:"<500ms",min:0,max:500},{label:"0.5-1s",min:500,max:1e3},{label:"1-2s",min:1e3,max:2e3},{label:"2-5s",min:2e3,max:5e3},{label:">5s",min:5e3,max:1/0}].map(e=>({label:e.label,Count:l.filter(t=>t>=e.min&&t<e.max).length})).filter(e=>e.Count>0);if(0===n.length)return null;let a=Math.round(l.reduce((e,t)=>e+t,0)/l.length),i=[...l].sort((e,t)=>e-t)[Math.floor(.95*l.length)];return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex gap-6 text-xs text-muted-foreground",children:[(0,r.jsxs)("span",{children:["Avg: ",(0,r.jsx)("strong",{children:a<1e3?"".concat(a,"ms"):"".concat((a/1e3).toFixed(1),"s")})]}),(0,r.jsxs)("span",{children:["p95: ",(0,r.jsx)("strong",{children:i<1e3?"".concat(i,"ms"):"".concat((i/1e3).toFixed(1),"s")})]}),(0,r.jsxs)("span",{children:["n=",l.length]})]}),(0,r.jsx)(B.u,{width:"100%",height:160,children:(0,r.jsxs)(M.E,{data:n,margin:{top:4,right:8,left:-10,bottom:4},children:[(0,r.jsx)(W.d,{vertical:!1,strokeDasharray:"3 3",stroke:"#e5e7eb"}),(0,r.jsx)(F.W,{dataKey:"label",tick:{fontSize:11}}),(0,r.jsx)(D.h,{allowDecimals:!1,tick:{fontSize:11}}),(0,r.jsx)(O.m,{wrapperStyle:{fontSize:12}}),(0,r.jsx)(I.yP,{dataKey:"Count",fill:"dark"===s?"#818cf8":"#6366f1",radius:[3,3,0,0],isAnimationActive:!1})]})})]})}function eS(e){let{status:t}=e,s=(0,Q.km)(t);return"vulnerable"===s?(0,r.jsx)(h.A,{className:"h-3.5 w-3.5 shrink-0",style:{color:q.Ez.vulnerable}}):"safe"===s?(0,r.jsx)(K.A,{className:"h-3.5 w-3.5 shrink-0",style:{color:q.Ez.safe}}):"error"===s?(0,r.jsx)(U.A,{className:"h-3.5 w-3.5 shrink-0",style:{color:q.Ez.error}}):(0,r.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})}function eA(e,t,s){let r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"light",s=e.length;if(s<3)return"";let r=ep(t),l=en.map(e=>{let t=ed(s,()=>e/100);return'<polygon points="'.concat(t,'" fill="none" stroke="').concat(r.ringStroke,'" stroke-width="0.9"/>')}).join("\n "),n=en.map(e=>'<text x="'.concat(233,'" y="').concat(200-e/100*140-3,'" font-size="8" fill="').concat(r.ringLabel,'" font-family="').concat(em(ea),'" text-anchor="start">').concat(e,"</text>")).join("\n "),a=Array.from({length:s},(e,t)=>'<line x1="'.concat(230,'" y1="').concat(200,'" x2="').concat(ec(s,140,t),'" y2="').concat(eo(s,140,t),'" stroke="').concat(r.axisStroke,'" stroke-width="0.9"/>')).join("\n "),i='<polygon points="'.concat(ed(s,t=>e[t].robustness/100),'" fill="').concat(r.polyFill,'" stroke="').concat(r.polyStroke,'" stroke-width="1.6" stroke-linejoin="round"/>'),c=e.map((e,t)=>{let l=e.robustness/100*140;return'<circle cx="'.concat(ec(s,l,t),'" cy="').concat(eo(s,l,t),'" r="4" fill="').concat(er(e.robustness),'" stroke="').concat(r.dotStroke,'" stroke-width="1.5"/>')}).join("\n "),o=e.map((e,t)=>{let l=ec(s,164,t),n=eo(s,164,t)+eu(s,t),a=ex(s,t);return['<text x="'.concat(l,'" y="').concat(n,'" font-size="10" font-weight="600" fill="').concat(r.labelText,'" font-family="').concat(em(ea),'" text-anchor="').concat(a,'">').concat(em(el(e.name)),"</text>"),'<text x="'.concat(l,'" y="').concat(n+13,'" font-size="9" fill="').concat(er(e.robustness),'" font-family="').concat(em(ea),'" text-anchor="').concat(a,'" font-weight="700">').concat(e.robustness,"% robust</text>")].join("\n ")}).join("\n ");return'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '.concat(460," ").concat(400,'" width="').concat(460,'" height="').concat(400,'">\n ').concat(l,"\n ").concat(n,"\n ").concat(a,"\n ").concat(i,"\n ").concat(c,"\n ").concat(o,"\n</svg>")}(e,t);if(!r)return;let l=new Blob([r],{type:"image/svg+xml"}),n=URL.createObjectURL(l),a=document.createElement("a");a.href=n,a.download="robustness-radar-".concat(s,"-").concat(t,".svg"),document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>URL.revokeObjectURL(n),100)}function ez(e){var t;let{results:s,attack:l=null}=e,n=null==l?void 0:l._configuration,a=(()=>{let e={};return s.forEach(t=>{let s=(0,Q.Bn)(t,n);e[s]||(e[s]={vuln:0,safe:0,error:0,total:0});let r=(0,Q.km)(t.evaluationStatus);"vulnerable"===r?e[s].vuln++:"safe"===r?e[s].safe++:e[s].error++,e[s].total++}),Object.entries(e).map(e=>{let[t,s]=e;return{name:t,...s,rate:s.total>0?Math.round(s.vuln/s.total*100):0}}).sort((e,t)=>t.vuln-e.vuln)})(),c=a.map(e=>({name:e.name,robustness:100-e.rate,vuln:e.vuln,total:e.total}));if(0===c.length)return null;let o=Math.round(c.reduce((e,t)=>e+t.robustness,0)/c.length),x=er(o),u=s[0]&&null!=(t=s[0].run)?t:"report",p=()=>(0,r.jsxs)(eg.rI,{children:[(0,r.jsx)(eg.ty,{asChild:!0,children:(0,r.jsxs)(i.$,{variant:"outline",size:"sm",className:"h-7 px-2.5 gap-1.5 text-xs",children:[(0,r.jsx)(d.A,{className:"h-3 w-3"})," Download SVG"]})}),(0,r.jsxs)(eg.SQ,{align:"end",children:[(0,r.jsxs)(eg._2,{onClick:()=>eA(c,"light",u),children:[(0,r.jsx)(Z.A,{className:"h-3.5 w-3.5 mr-2"})," Light background"]}),(0,r.jsxs)(eg._2,{onClick:()=>eA(c,"dark",u),children:[(0,r.jsx)($.A,{className:"h-3.5 w-3.5 mr-2"})," Dark background"]})]})]});return c.length<3?(0,r.jsxs)("div",{className:"space-y-3 w-full",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:"Overall robustness"}),(0,r.jsxs)("span",{className:"text-lg font-bold",style:{color:x},children:[o,"%"]})]}),(0,r.jsx)(p,{})]}),a.map(e=>(0,r.jsxs)("div",{className:"grid items-center gap-2",style:{gridTemplateColumns:"180px 1fr 40px"},children:[(0,r.jsx)("span",{className:"text-xs font-medium truncate",children:e.name}),(0,r.jsx)("div",{className:"h-2 bg-muted rounded overflow-hidden",children:(0,r.jsx)("div",{className:"h-full rounded",style:{width:"".concat(100-e.rate,"%"),background:er(100-e.rate)}})}),(0,r.jsxs)("span",{className:"text-xs font-semibold text-right",style:{color:er(100-e.rate)},children:[100-e.rate,"%"]})]},e.name)),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Robustness = 100 − vulnerability rate per category"})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-2 w-full",children:[(0,r.jsxs)("div",{className:"flex w-full items-center justify-between px-1",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground uppercase tracking-widest",children:"Overall robustness"}),(0,r.jsxs)("p",{className:"text-3xl font-bold",style:{color:x},children:[o,"%"]})]}),(0,r.jsx)(p,{})]}),(0,r.jsx)(B.u,{width:"100%",height:340,children:(0,r.jsxs)(_.V,{data:c,margin:{top:10,right:40,bottom:10,left:40},children:[(0,r.jsx)(J.z,{stroke:"currentColor",className:"text-border"}),(0,r.jsx)(V.r,{dataKey:"name",tick:e=>{let{x:t,y:s,textAnchor:l,payload:n}=e,a=n.value,i=a.length>18?a.slice(0,17)+"…":a;return(0,r.jsx)("text",{x:t,y:s,textAnchor:l,fontSize:11,fill:"currentColor",className:"text-foreground",dy:4,children:i})}}),(0,r.jsx)(H.E,{domain:[0,100],tickCount:5,tick:{fontSize:9}}),(0,r.jsx)(G.Vd,{name:"Robustness",dataKey:"robustness",stroke:"#3b82f6",fill:"#3b82f6",fillOpacity:.15,strokeWidth:2,dot:e=>{let{cx:t,cy:s,payload:l}=e;return(0,r.jsx)("circle",{cx:t,cy:s,r:5,fill:er(l.robustness),stroke:"white",strokeWidth:1.5},"dot-".concat(l.name))}}),(0,r.jsx)(O.m,{content:(0,r.jsx)(e=>{let{active:t,payload:s}=e;if(!t||!(null==s?void 0:s.length))return null;let l=s[0].payload;return(0,r.jsxs)("div",{className:"bg-background border rounded-lg shadow-md px-3 py-2 text-xs space-y-1",children:[(0,r.jsx)("p",{className:"font-semibold text-sm",children:l.name}),(0,r.jsxs)("p",{children:["Robustness: ",(0,r.jsxs)("strong",{style:{color:er(l.robustness)},children:[l.robustness,"%"]})]}),(0,r.jsxs)("p",{className:"text-muted-foreground",children:["Vulnerable: ",l.vuln," / ",l.total]})]})},{})})]})}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground text-center",children:"Robustness = 100 − vulnerability rate per category. Hover a point for details."})]})}function eT(e){let{report:t,agent:s=null,attack:l=null,results:n=[]}=e,a=q.xv[t.riskLevel],i=null==l?void 0:l._configuration,c=(0,Q.PL)(i),o=Array.from(new Set(n.map(e=>(0,Q.Bn)(e,i)))),d=(()=>{let e={};return n.forEach(t=>{let s=(0,Q.Bn)(t,i);e[s]||(e[s]={vuln:0,safe:0,error:0,total:0});let r=(0,Q.km)(t.evaluationStatus);"vulnerable"===r?e[s].vuln++:"safe"===r?e[s].safe++:e[s].error++,e[s].total++}),Object.entries(e).map(e=>{let[t,s]=e;return{name:t,...s,rate:s.total>0?Math.round(s.vuln/s.total*100):0}}).sort((e,t)=>t.vuln-e.vuln)})(),x="Category",u=null==l?void 0:l._configuration,p=u?Object.entries(u).filter(e=>{let[t,s]=e;return null!=s&&!q.CG.has(t)}):[],m=null==u?void 0:u.generator,h={border:"1px solid #e5e7eb",borderRadius:"8px",marginBottom:"20px",overflow:"hidden",pageBreakInside:"avoid"},g={background:"#f9fafb",padding:"9px 14px",borderBottom:"1px solid #e5e7eb"},f={margin:0,fontSize:"12px",fontWeight:700,color:"#111827"},j={margin:"2px 0 0",fontSize:"10px",color:"#9ca3af"},b={padding:"7px 10px",textAlign:"left",fontWeight:500,color:"#6b7280",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",background:"#f9fafb",borderBottom:"1px solid #e5e7eb"},v={padding:"7px 10px",fontSize:"11px",borderBottom:"1px solid #f3f4f6"},y=e=>({display:"inline-block",padding:"2px 7px",borderRadius:"4px",fontSize:"10px",fontWeight:500,marginRight:"4px",marginBottom:"4px",background:e+"18",color:e,border:"1px solid ".concat(e,"44")});return(0,r.jsxs)("div",{style:{fontFamily:'system-ui, -apple-system, "Helvetica Neue", sans-serif',color:"#111827",lineHeight:1.5},children:[(0,r.jsxs)("div",{style:{borderBottom:"3px solid ".concat(a),paddingBottom:"18px",marginBottom:"20px",display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"5px"},children:[(0,r.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",children:[(0,r.jsx)("path",{d:"M12 2L3 7v5c0 5.25 3.75 10.15 9 11.25C17.25 22.15 21 17.25 21 12V7L12 2z",fill:a,fillOpacity:"0.15",stroke:a,strokeWidth:"1.8"}),(0,r.jsx)("path",{d:"M9 12l2 2 4-4",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),(0,r.jsx)("h1",{style:{margin:0,fontSize:"20px",fontWeight:700,letterSpacing:"-0.02em"},children:"HackAgent Security Report"})]}),(0,r.jsxs)("p",{style:{margin:"2px 0",fontSize:"12px",color:"#6b7280"},children:["Agent: ",(0,r.jsx)("strong",{style:{color:"#111827"},children:t.run.agentName}),t.run.organizationName&&(0,r.jsxs)(r.Fragment,{children:[" \xa0\xb7\xa0 Org: ",(0,r.jsx)("strong",{style:{color:"#111827"},children:t.run.organizationName})]})]}),(0,r.jsxs)("p",{style:{margin:"1px 0 0",fontSize:"10px",color:"#9ca3af"},children:["Run ID: ",t.run.id," \xa0\xb7\xa0 ",new Date(t.run.timestamp).toLocaleString()]})]}),(0,r.jsxs)("div",{style:{textAlign:"right",flexShrink:0},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:"10px",color:"#9ca3af"},children:"Generated"}),(0,r.jsx)("p",{style:{margin:"2px 0 0",fontSize:"11px",fontWeight:500},children:new Date().toLocaleString()}),(0,r.jsxs)("span",{style:{display:"inline-block",marginTop:"6px",padding:"2px 8px",borderRadius:"4px",fontSize:"10px",fontWeight:700,background:a+"18",color:a,border:"1px solid ".concat(a,"55"),textTransform:"uppercase",letterSpacing:"0.06em"},children:[t.riskLevel," risk"]})]})]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"10px",marginBottom:"20px"},children:[{label:"Total Tests",value:String(t.totalTests),color:"#3b82f6"},{label:"Vulnerabilities",value:String(t.successfulJailbreaks),color:q.Ez.vulnerable},{label:"Mitigated",value:String(t.failedJailbreaks),color:q.Ez.safe},{label:"Errors",value:String(t.errors),color:q.Ez.error},{label:"Risk Score",value:"".concat(t.riskScore,"%"),color:a}].map(e=>(0,r.jsxs)("div",{style:{border:"1px solid #e5e7eb",borderTop:"3px solid ".concat(e.color),borderRadius:"6px",padding:"10px 8px",textAlign:"center"},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:"22px",fontWeight:700,color:e.color},children:e.value}),(0,r.jsx)("p",{style:{margin:"3px 0 0",fontSize:"9px",color:"#9ca3af",textTransform:"uppercase",letterSpacing:"0.04em"},children:e.label})]},e.label))}),(0,r.jsxs)("div",{style:h,children:[(0,r.jsxs)("div",{style:g,children:[(0,r.jsx)("h2",{style:f,children:"What Was Tested"}),(0,r.jsx)("p",{style:j,children:"Agent details, attack strategy, and evaluated datasets / harmful categories"})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:s?"1fr 1fr":"1fr"},children:[s&&(0,r.jsxs)("div",{style:{padding:"14px",borderRight:"1px solid #e5e7eb"},children:[(0,r.jsx)("p",{style:{margin:"0 0 10px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"#6b7280"},children:"Agent Under Test"}),(0,r.jsx)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"12px"},children:(0,r.jsxs)("tbody",{children:[(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",width:"85px",verticalAlign:"top"},children:"Name"}),(0,r.jsx)("td",{style:{fontWeight:600,paddingBottom:"6px"},children:s.name})]}),(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",verticalAlign:"top"},children:"Type"}),(0,r.jsx)("td",{style:{paddingBottom:"6px"},children:(0,r.jsx)("span",{style:{background:"#f3f4f6",color:"#374151",padding:"1px 6px",borderRadius:"4px",fontSize:"10px",fontWeight:500},children:Y(s.agentType)})})]}),s.endpoint&&(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",verticalAlign:"top"},children:"Endpoint"}),(0,r.jsx)("td",{style:{fontFamily:"monospace",fontSize:"9px",color:"#374151",paddingBottom:"6px",wordBreak:"break-all"},children:s.endpoint})]}),s.description&&(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",verticalAlign:"top"},children:"Description"}),(0,r.jsx)("td",{style:{fontSize:"11px",color:"#374151"},children:s.description})]})]})})]}),(0,r.jsxs)("div",{style:{padding:"14px"},children:[l&&(0,r.jsxs)("div",{style:{marginBottom:c||m||p.length>0||o.length>0?"16px":0},children:[(0,r.jsx)("p",{style:{margin:"0 0 10px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"#6b7280"},children:"Attack Strategy"}),(0,r.jsx)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"12px"},children:(0,r.jsxs)("tbody",{children:[l.type&&(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",width:"85px",verticalAlign:"top",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Type"}),(0,r.jsx)("td",{style:{paddingBottom:"6px"},children:(0,r.jsx)("span",{style:{background:"#f3f4f6",color:"#374151",padding:"1px 6px",borderRadius:"4px",fontSize:"10px",fontWeight:500},children:l.type})})]}),(null==m?void 0:m.identifier)!=null&&(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",width:"85px",verticalAlign:"top",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Model"}),(0,r.jsx)("td",{style:{paddingBottom:"6px",fontFamily:"monospace",fontSize:"11px"},children:String(m.identifier)})]}),(null==m?void 0:m.agent_type)!=null&&(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",width:"85px",verticalAlign:"top",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Gen. Type"}),(0,r.jsx)("td",{style:{paddingBottom:"6px"},children:(0,r.jsx)("span",{style:{background:"#f3f4f6",color:"#374151",padding:"1px 6px",borderRadius:"4px",fontSize:"10px",fontWeight:500},children:String(m.agent_type)})})]}),(null==m?void 0:m.endpoint)!=null&&(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",width:"85px",verticalAlign:"top",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Gen. Endpoint"}),(0,r.jsx)("td",{style:{paddingBottom:"6px",fontFamily:"monospace",fontSize:"10px",wordBreak:"break-all",color:"#6b7280"},children:String(m.endpoint)})]})]})})]}),(c||p.length>0||o.length>0)&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{style:{margin:"0 0 10px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"#6b7280"},children:"Datasets & Harmful Categories"}),c&&(0,r.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,r.jsx)("p",{style:{margin:"0 0 5px",fontSize:"10px",color:"#9ca3af"},children:"Dataset"}),(0,r.jsx)("div",{children:(0,r.jsx)("span",{style:y("#7c3aed"),children:c})})]}),p.length>0&&(0,r.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,r.jsx)("p",{style:{margin:"0 0 6px",fontSize:"10px",color:"#9ca3af"},children:"Parameters"}),(0,r.jsx)("table",{style:{width:"100%",borderCollapse:"collapse"},children:(0,r.jsx)("tbody",{children:p.map(e=>{let[t,s]=e;return(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{style:{color:"#9ca3af",paddingBottom:"6px",verticalAlign:"top",width:"85px",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em"},children:t}),(0,r.jsx)("td",{style:{paddingBottom:"6px",fontSize:"11px"},children:(0,r.jsx)(es,{v:s})})]},t)})})})]}),o.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{style:{margin:"0 0 5px",fontSize:"10px",color:"#9ca3af"},children:["Harm Categories (",o.length,")"]}),(0,r.jsx)("div",{children:o.map(e=>(0,r.jsx)("span",{style:y("#1d4ed8"),children:e},e))})]})]}),!s&&!l&&0===o.length&&!c&&(0,r.jsx)("p",{style:{fontSize:"12px",color:"#9ca3af"},children:"No test metadata available."})]})]})]}),d.length>0&&(0,r.jsxs)("div",{style:{...h,pageBreakBefore:"always"},children:[(0,r.jsxs)("div",{style:g,children:[(0,r.jsx)("h2",{style:f,children:"Vulnerability Results by Category"}),(0,r.jsx)("p",{style:j,children:"Breakdown of test outcomes per harm category"})]}),(0,r.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse"},children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{style:b,children:x}),(0,r.jsx)("th",{style:{...b,textAlign:"center",width:"60px"},children:"Tests"}),(0,r.jsx)("th",{style:{...b,textAlign:"center",width:"80px",color:q.Ez.vulnerable},children:"Vulnerable"}),(0,r.jsx)("th",{style:{...b,textAlign:"center",width:"80px",color:q.Ez.safe},children:"Mitigated"}),(0,r.jsx)("th",{style:{...b,width:"130px"},children:"Vuln. Rate"})]})}),(0,r.jsx)("tbody",{children:d.map(e=>(0,r.jsxs)("tr",{style:{background:e.vuln>0?"#fff5f550":"white"},children:[(0,r.jsx)("td",{style:{...v,fontWeight:500},children:e.name}),(0,r.jsx)("td",{style:{...v,textAlign:"center",color:"#6b7280"},children:e.total}),(0,r.jsx)("td",{style:{...v,textAlign:"center",color:q.Ez.vulnerable,fontWeight:e.vuln>0?600:400},children:e.vuln}),(0,r.jsx)("td",{style:{...v,textAlign:"center",color:q.Ez.safe},children:e.safe}),(0,r.jsx)("td",{style:{...v},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[(0,r.jsx)("div",{style:{flex:1,height:"5px",background:"#f3f4f6",borderRadius:"3px",overflow:"hidden"},children:(0,r.jsx)("div",{style:{width:"".concat(e.rate,"%"),height:"100%",borderRadius:"3px",background:function(e){let t=(0,S.lN)(e);return"critical"===t?q.Ez.vulnerable:"high"===t?"#f97316":q.Ez.safe}(e.rate)}})}),(0,r.jsxs)("span",{style:{fontSize:"10px",color:"#374151",minWidth:"28px",textAlign:"right"},children:[e.rate,"%"]})]})})]},e.name))})]})]}),(()=>{let e=d.map(e=>({name:e.name,robustness:100-e.rate,vuln:e.vuln,total:e.total}));if(e.length<3)return(0,r.jsxs)("div",{style:h,children:[(0,r.jsxs)("div",{style:g,children:[(0,r.jsxs)("h2",{style:f,children:["Robustness by ",x]}),(0,r.jsx)("p",{style:j,children:"Robustness score = 100 − vulnerability rate"})]}),(0,r.jsx)("div",{style:{padding:"14px"},children:(d.length,d).map(e=>(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"180px 1fr 40px",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[(0,r.jsx)("span",{style:{fontSize:"11px",fontWeight:500,color:"#374151"},children:e.name}),(0,r.jsx)("div",{style:{height:"8px",background:"#f3f4f6",borderRadius:"4px",overflow:"hidden"},children:(0,r.jsx)("div",{style:{width:"".concat(100-e.rate,"%"),height:"100%",borderRadius:"4px",background:er(100-e.rate)}})}),(0,r.jsxs)("span",{style:{fontSize:"11px",fontWeight:600,textAlign:"right",color:er(100-e.rate)},children:[100-e.rate,"%"]})]},e.name))})]});let t=Math.round(e.reduce((e,t)=>e+t.robustness,0)/e.length),s=er(t);return(0,r.jsxs)("div",{style:h,children:[(0,r.jsxs)("div",{style:g,children:[(0,r.jsx)("h2",{style:f,children:"Robustness by Category"}),(0,r.jsx)("p",{style:j,children:"Robustness score = 100 − vulnerability rate per harm category. Higher = more robust."})]}),(0,r.jsxs)("div",{style:{padding:"20px",display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,r.jsx)("p",{style:{margin:"0 0 4px",fontSize:"10px",color:"#9ca3af",textTransform:"uppercase",letterSpacing:"0.06em"},children:"Overall robustness"}),(0,r.jsxs)("p",{style:{margin:"0 0 16px",fontSize:"28px",fontWeight:700,color:s},children:[t,"%"]}),(0,r.jsx)(eh,{data:e})]})]})})(),(0,r.jsxs)("div",{style:{borderTop:"1px solid #e5e7eb",paddingTop:"10px",marginTop:"4px",display:"flex",justifyContent:"space-between",fontSize:"9px",color:"#9ca3af"},children:[(0,r.jsxs)("span",{children:["Generated by HackAgent \xb7 ",new Date().toLocaleString()]}),(0,r.jsx)("span",{children:"Confidential"})]})]})}var eR=s(52619),eC=s.n(eR);let eL=(0,w.h)("ReportsPage"),eE=e=>{let t=e.totalResults,s=e.successfulJailbreaks,r=e.failedJailbreaks,l=e.errors,n=e.notEvaluated,a=t>0?Math.round(s/t*100):0,i=(0,S.lN)(a);return{run:e,totalTests:t,successfulJailbreaks:s,failedJailbreaks:r,errors:l,notEvaluated:n,riskScore:a,riskLevel:i}},eB=e=>{switch(e){case"low":default:return"outline";case"medium":return"secondary";case"high":return"default";case"critical":return"destructive"}},eM=e=>{switch(e){case"low":return"text-green-600 dark:text-green-400";case"medium":return"text-yellow-600 dark:text-yellow-400";case"high":return"text-orange-600 dark:text-orange-400";case"critical":return"text-red-600 dark:text-red-400";default:return"text-muted-foreground"}},eW=()=>{let[e,t]=(0,l.useState)([]),[s,w]=(0,l.useState)(!0),[C,L]=(0,l.useState)(null),[E,B]=(0,l.useState)(0),[M,W]=(0,l.useState)(1),[F,D]=(0,l.useState)(null),[O,P]=(0,l.useState)(null),[I,_]=(0,l.useState)(null),[J,V]=(0,l.useState)(!1),[H,G]=(0,l.useState)([]),[K,U]=(0,l.useState)(!1),Z=(0,l.useCallback)(async e=>{w(!0),L(null);try{var s,r;let l=await N.ME.runList({page:e,pageSize:20,status:k.S5d.Completed}),n=(null!=(s=l.results)?s:[]).map(eE);t(n),B(null!=(r=l.count)?r:0),eL.debug({count:n.length,total:l.count},"Fetched reports")}catch(e){eL.error({err:e},"Failed to fetch reports"),L(e.message||"Failed to fetch reports. Please try again.")}w(!1)},[]);(0,l.useEffect)(()=>{Z(M)},[Z,M]);let $=(0,l.useCallback)(async e=>{V(!0),U(!0),G([]),_(null);try{let[t,s]=await Promise.allSettled([N.in.agentRetrieve({id:e.run.agent}),e.run.attack?N.vm.attackRetrieve({id:e.run.attack}):Promise.resolve(null)]),r="fulfilled"===t.status?t.value:null,l="fulfilled"===s.status?s.value:null;_({agent:r,attack:l}),eL.debug({agentId:e.run.agent},"Fetched report detail")}catch(e){eL.error({err:e},"Failed to fetch report detail"),_({agent:null,attack:null})}V(!1);try{var t,s,r;let l=await N.ui.resultList({run:e.run.id,pageSize:1e3,page:1}),n=null!=(t=l.results)?t:[],a=null!=(s=l.count)?s:0,i=Math.ceil(a/1e3);if(i>1)for(let t of(await Promise.all(Array.from({length:i-1},(t,s)=>N.ui.resultList({run:e.run.id,pageSize:1e3,page:s+2})))))n=n.concat(null!=(r=t.results)?r:[]);G(n)}catch(e){eL.error({err:e},"Failed to fetch results for report")}U(!1)},[]),q=l.useMemo(()=>{let t=new Map;return e.forEach(e=>{var s;let r=null!=(s=e.run.agentName)?s:"Unknown Agent";t.has(r)||t.set(r,[]),t.get(r).push(e)}),t},[e]),X=l.useMemo(()=>Array.from(q.entries()),[q]),Q=X.length,Y=Math.ceil(E/20),ee=l.useMemo(()=>{if(0===e.length)return null;let t=e.reduce((e,t)=>e+t.totalTests,0);return{totalTests:t,totalJailbreaks:e.reduce((e,t)=>e+t.successfulJailbreaks,0),avgRisk:Math.round(e.reduce((e,t)=>e+t.riskScore,0)/e.length)}},[e]);if(s)return(0,r.jsx)(A.M,{title:"Security Reports",children:(0,r.jsx)("div",{className:"flex items-center justify-center min-h-[400px]",children:(0,r.jsx)(o.A,{className:"h-8 w-8 animate-spin text-muted-foreground"})})});if(F){var et,es,er,el,en,ea;let e=H.some(e=>"number"==typeof e.latencyMs),t=H.length>0;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"print-only",children:(0,r.jsx)(eT,{report:F,agent:null!=(et=null==I?void 0:I.agent)?et:null,attack:null!=(es=null==I?void 0:I.attack)?es:null,results:H})}),(0,r.jsx)("div",{className:"no-print",children:(0,r.jsx)(A.M,{title:"Report Details",action:(0,r.jsxs)(i.$,{variant:"outline",size:"sm",onClick:()=>{window.print()},className:"gap-2",children:[(0,r.jsx)(d.A,{className:"h-4 w-4"}),"Export PDF"]}),children:(0,r.jsxs)("div",{className:"space-y-6 px-6 pb-8",children:[(0,r.jsxs)(i.$,{variant:"ghost",onClick:()=>{D(null),P(null)},className:"gap-2",children:[(0,r.jsx)(x.A,{className:"h-4 w-4 rotate-180"}),"Back to Reports"]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[{label:"Total Tests",value:F.totalTests,color:"text-blue-600 dark:text-blue-400"},{label:"Vulnerabilities",value:F.successfulJailbreaks,color:"text-red-600 dark:text-red-400"},{label:"Mitigated",value:F.failedJailbreaks,color:"text-green-600 dark:text-green-400"},{label:"Errors",value:F.errors,color:"text-amber-600 dark:text-amber-400"}].map(e=>(0,r.jsxs)("div",{className:"border rounded-lg p-4 text-center",children:[(0,r.jsx)("p",{className:"text-3xl font-bold ".concat(e.color),children:e.value}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:e.label})]},e.label))}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,r.jsxs)(n.Zp,{children:[(0,r.jsxs)(n.aR,{className:"pb-2",children:[(0,r.jsxs)(n.ZB,{className:"text-sm flex items-center gap-1.5",children:[(0,r.jsx)(u.A,{className:"h-4 w-4 text-muted-foreground"})," Risk Score"]}),(0,r.jsxs)(n.BT,{className:"flex items-center gap-2",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1 text-xs",children:[(0,r.jsx)(p.A,{className:"h-3 w-3"})," ",new Date(F.run.timestamp).toLocaleString()]}),(0,r.jsx)(T.t,{children:(0,r.jsx)(a.E,{variant:eB(F.riskLevel),className:"text-xs",children:F.riskLevel.toUpperCase()})})]})]}),(0,r.jsx)(n.Wu,{className:"flex justify-center",children:(0,r.jsx)(ek,{report:F})})]}),(0,r.jsxs)(n.Zp,{children:[(0,r.jsxs)(n.aR,{className:"pb-2",children:[(0,r.jsxs)(n.ZB,{className:"text-sm flex items-center gap-1.5",children:[(0,r.jsx)(m.A,{className:"h-4 w-4 text-muted-foreground"})," Robustness Radar"]}),(0,r.jsx)(n.BT,{children:"Robustness = 100 − vulnerability rate per category. Higher is better."})]}),(0,r.jsx)(n.Wu,{className:"flex items-center justify-center min-h-[200px]",children:K?(0,r.jsx)(o.A,{className:"h-6 w-6 animate-spin text-muted-foreground"}):t?(0,r.jsx)(ez,{results:H,attack:null!=(er=null==I?void 0:I.attack)?er:null}):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No results available"})})]})]}),(0,r.jsxs)(n.Zp,{children:[(0,r.jsxs)(n.aR,{className:"pb-2",children:[(0,r.jsxs)(n.ZB,{className:"text-sm flex items-center gap-1.5",children:[(0,r.jsx)(h.A,{className:"h-4 w-4 text-muted-foreground"})," Vulnerability by Category"]}),(0,r.jsx)(n.BT,{children:"Stacked distribution of outcomes per harm category"})]}),(0,r.jsx)(n.Wu,{className:"flex items-center justify-center min-h-[160px]",children:K?(0,r.jsx)(o.A,{className:"h-6 w-6 animate-spin text-muted-foreground"}):t?(0,r.jsx)(eN,{results:H,attack:null!=(el=null==I?void 0:I.attack)?el:null}):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No results available"})})]}),(K||e)&&(0,r.jsxs)(n.Zp,{children:[(0,r.jsxs)(n.aR,{className:"pb-2",children:[(0,r.jsxs)(n.ZB,{className:"text-sm flex items-center gap-1.5",children:[(0,r.jsx)(g.A,{className:"h-4 w-4 text-muted-foreground"})," Response Latency Distribution"]}),(0,r.jsx)(n.BT,{children:"Count of results per response-time bucket"})]}),(0,r.jsx)(n.Wu,{className:"flex items-center justify-center min-h-[160px]",children:K?(0,r.jsx)(o.A,{className:"h-6 w-6 animate-spin text-muted-foreground"}):(0,r.jsx)(ew,{results:H})})]}),(0,r.jsx)(ev,{agent:null!=(en=null==I?void 0:I.agent)?en:null,attack:null!=(ea=null==I?void 0:I.attack)?ea:null,results:H,isLoading:J}),(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row gap-6",children:[(0,r.jsxs)("div",{className:"space-y-2 ".concat(O?"lg:w-2/5":"w-full"),children:[(0,r.jsxs)("h3",{className:"text-sm font-medium px-1",children:["Test Results ",(0,r.jsx)("span",{className:"text-muted-foreground font-normal",children:"— click a row to inspect"})]}),(0,r.jsx)(c.F,{className:"h-[340px] border rounded-lg",children:(0,r.jsx)("div",{className:"space-y-1 p-2",children:K?(0,r.jsx)("div",{className:"flex items-center justify-center h-[300px]",children:(0,r.jsx)(o.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):H.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-3 p-2.5 rounded-md cursor-pointer transition-colors hover:bg-muted/60 ".concat((null==O?void 0:O.id)===e.id?"bg-muted ring-1 ring-primary":""),onClick:()=>{P(e)},children:[(0,r.jsx)(eS,{status:e.evaluationStatus}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)("p",{className:"text-xs font-medium truncate",children:"Test #".concat(t+1)})}),(0,r.jsx)(a.E,{variant:e.evaluationStatus===k.on2.SuccessfulJailbreak?"destructive":e.evaluationStatus===k.on2.FailedJailbreak||e.evaluationStatus===k.on2.PassedCriteria?"outline":"secondary",className:"text-xs shrink-0",children:e.evaluationStatus===k.on2.SuccessfulJailbreak?"Vulnerable":e.evaluationStatus===k.on2.FailedJailbreak||e.evaluationStatus===k.on2.PassedCriteria?"Safe":"Error"})]},e.id))})})]}),O&&(0,r.jsx)("div",{className:"lg:w-3/5 border rounded-lg bg-card overflow-hidden",children:(0,r.jsx)(R.I,{result:O,onClose:()=>{P(null)}})})]})]})})})]})}return(0,r.jsxs)(A.M,{title:"Security Reports",description:"Security test results and vulnerability analysis.",children:[ee&&(0,r.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 px-6 pb-6",children:[(0,r.jsxs)("div",{className:"border p-4 flex items-center gap-3",children:[(0,r.jsx)("div",{className:"p-2 bg-blue-100 dark:bg-blue-900/30",children:(0,r.jsx)(f.A,{className:"h-5 w-5 text-blue-600 dark:text-blue-400"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-2xl font-bold",children:E}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Total Reports"})]})]}),(0,r.jsxs)("div",{className:"border p-4 flex items-center gap-3",children:[(0,r.jsx)("div",{className:"p-2 bg-purple-100 dark:bg-purple-900/30",children:(0,r.jsx)(u.A,{className:"h-5 w-5 text-purple-600 dark:text-purple-400"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-2xl font-bold",children:ee.totalTests}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Tests (this page)"})]})]}),(0,r.jsxs)("div",{className:"border p-4 flex items-center gap-3",children:[(0,r.jsx)("div",{className:"p-2 bg-red-100 dark:bg-red-900/30",children:(0,r.jsx)(h.A,{className:"h-5 w-5 text-red-600 dark:text-red-400"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-2xl font-bold",children:ee.totalJailbreaks}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Vulnerabilities (this page)"})]})]}),(0,r.jsxs)("div",{className:"border p-4 flex items-center gap-3",children:[(0,r.jsx)("div",{className:"p-2 bg-amber-100 dark:bg-amber-900/30",children:(0,r.jsx)(m.A,{className:"h-5 w-5 text-amber-600 dark:text-amber-400"})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"text-2xl font-bold",children:[ee.avgRisk,"%"]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Avg. Risk Score (this page)"})]})]})]}),(0,r.jsxs)("div",{className:"border mx-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(j.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)("h2",{className:"text-sm font-medium",children:"Security Reports"})]}),(0,r.jsxs)("p",{className:"text-sm text-muted-foreground",children:[Q," agent",1!==Q?"s":""," on this page"]})]}),(0,r.jsxs)("div",{className:"p-4",children:[C&&(0,r.jsx)("div",{className:"bg-destructive/10 border border-destructive/30 rounded-md p-4 mb-4",children:(0,r.jsx)("p",{className:"text-sm text-destructive",children:C})}),0===e.length?(0,r.jsx)(z.p,{icon:f.A,title:"No reports yet",description:"Complete a security test run to see your first report here.",action:(0,r.jsx)(i.$,{asChild:!0,children:(0,r.jsx)(eC(),{href:"/stats",children:"View Test Runs"})})}):(0,r.jsx)(y.nD,{type:"multiple",className:"space-y-2",children:X.map(e=>{let[t,s]=e,l=s.reduce((e,t)=>S.WA.indexOf(t.riskLevel)>S.WA.indexOf(e)?t.riskLevel:e,"low"),n=s.reduce((e,t)=>e+t.successfulJailbreaks,0),c=s.reduce((e,t)=>e+t.totalTests,0);return(0,r.jsxs)(y.As,{value:t,className:"border rounded-lg px-0 overflow-hidden",children:[(0,r.jsx)(y.$m,{className:"px-4 py-3 hover:no-underline hover:bg-muted/50 [&[data-state=open]]:bg-muted/30",children:(0,r.jsxs)("div",{className:"flex items-center gap-4 flex-1 text-left",children:[(0,r.jsx)("div",{className:"p-2 rounded-lg ".concat("low"===l?"bg-green-100 dark:bg-green-900/30":"medium"===l?"bg-yellow-100 dark:bg-yellow-900/30":"high"===l?"bg-orange-100 dark:bg-orange-900/30":"bg-red-100 dark:bg-red-900/30"),children:(0,r.jsx)(b.A,{className:"h-5 w-5 ".concat(eM(l))})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,r.jsx)("span",{className:"font-medium",children:t}),(0,r.jsx)(T.t,{children:(0,r.jsx)(a.E,{variant:eB(l),className:"text-xs",children:l.toUpperCase()})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-sm text-muted-foreground mt-0.5",children:[(0,r.jsxs)("span",{children:[s.length," report",1!==s.length?"s":""]}),(0,r.jsxs)("span",{children:[c," tests total"]}),n>0&&(0,r.jsxs)("span",{className:"text-red-600 dark:text-red-400",children:[n," vulnerabilities"]})]})]})]})}),(0,r.jsx)(y.ub,{className:"px-0 pb-0",children:(0,r.jsx)("div",{className:"divide-y",children:s.map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 hover:bg-muted/50 transition-colors cursor-pointer",onClick:()=>(e=>{D(e),P(null),_(null),$(e)})(e),children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-2 h-2 rounded-full ".concat((e=>{switch(e){case"low":return"bg-green-500";case"medium":return"bg-yellow-500";case"high":return"bg-orange-500";case"critical":return"bg-red-500";default:return"bg-muted"}})(e.riskLevel))}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(T.t,{children:(0,r.jsx)(a.E,{variant:eB(e.riskLevel),className:"text-xs",children:e.riskLevel.toUpperCase()})}),e.successfulJailbreaks>0&&(0,r.jsxs)("span",{className:"text-xs text-red-600 dark:text-red-400",children:[e.successfulJailbreaks," vuln",1!==e.successfulJailbreaks?"s":""]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground mt-0.5",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)(p.A,{className:"h-3 w-3"}),new Date(e.run.timestamp).toLocaleDateString()]}),(0,r.jsxs)("span",{children:[e.totalTests," tests"]})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsxs)("div",{className:"text-right hidden sm:block",children:[(0,r.jsxs)("p",{className:"text-base font-semibold ".concat(eM(e.riskLevel)),children:[e.riskScore,"%"]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Risk"})]}),(0,r.jsx)(i.$,{variant:"ghost",size:"icon",children:(0,r.jsx)(v.A,{className:"h-4 w-4"})})]})]},e.run.id))})})]},t)})}),Y>1&&(0,r.jsxs)("div",{className:"flex items-center justify-between mt-6 pt-4 border-t",children:[(0,r.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Page ",M," of ",Y," (",E," reports total)"]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$,{variant:"outline",size:"sm",onClick:()=>W(e=>Math.max(1,e-1)),disabled:1===M,children:"Previous"}),(0,r.jsx)(i.$,{variant:"outline",size:"sm",onClick:()=>W(e=>Math.min(Y,e+1)),disabled:M>=Y,children:"Next"})]})]})]})]})]})}},63479:(e,t,s)=>{"use strict";s.d(t,{D:()=>a,N:()=>o});var r=s(95155),l=s(12115);let n=(0,l.createContext)({theme:"system",resolvedTheme:"light",setTheme:()=>{}});function a(){return(0,l.useContext)(n)}let i="hackagent-theme";function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function o(e){let{children:t}=e,[s,a]=(0,l.useState)("system"),[o,d]=(0,l.useState)("light"),x=e=>{let t=document.documentElement;"dark"===e?t.classList.add("dark"):t.classList.remove("dark")};return(0,l.useEffect)(()=>{var e;let t=null!=(e=localStorage.getItem(i))?e:"system";a(t);let s="system"===t?c():t;d(s),x(s)},[]),(0,l.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{if("system"===s){let e=c();d(e),x(e)}};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[s]),(0,r.jsx)(n.Provider,{value:{theme:s,resolvedTheme:o,setTheme:e=>{localStorage.setItem(i,e),a(e);let t="system"===e?c():e;d(t),x(t)}},children:t})}},95515:(e,t,s)=>{Promise.resolve().then(s.bind(s,52428))}},e=>{e.O(0,[187,539,355,619,144,855,9,532,411,641,151,924,472,441,493,358],()=>e(e.s=95515)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[266],{11186:(e,t,s)=>{"use strict";s.d(t,{bq:()=>u,eb:()=>m,gC:()=>x,l6:()=>c,yv:()=>o});var a=s(95155);s(12115);var n=s(59929),l=s(24033),r=s(5917),i=s(12108),d=s(64269);function c(e){let{...t}=e;return(0,a.jsx)(n.bL,{"data-slot":"select",...t})}function o(e){let{...t}=e;return(0,a.jsx)(n.WT,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:s="default",children:r,...i}=e;return(0,a.jsxs)(n.l9,{"data-slot":"select-trigger","data-size":s,className:(0,d.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...i,children:[r,(0,a.jsx)(n.In,{asChild:!0,children:(0,a.jsx)(l.A,{className:"size-4 opacity-50"})})]})}function x(e){let{className:t,children:s,position:l="popper",...r}=e;return(0,a.jsx)(n.ZL,{children:(0,a.jsxs)(n.UC,{"data-slot":"select-content",className:(0,d.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===l&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:l,...r,children:[(0,a.jsx)(h,{}),(0,a.jsx)(n.LM,{className:(0,d.cn)("p-1","popper"===l&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:s}),(0,a.jsx)(p,{})]})})}function m(e){let{className:t,children:s,...l}=e;return(0,a.jsxs)(n.q7,{"data-slot":"select-item",className:(0,d.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...l,children:[(0,a.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(n.VF,{children:(0,a.jsx)(r.A,{className:"size-4"})})}),(0,a.jsx)(n.p4,{children:s})]})}function h(e){let{className:t,...s}=e;return(0,a.jsx)(n.PP,{"data-slot":"select-scroll-up-button",className:(0,d.cn)("flex cursor-default items-center justify-center py-1",t),...s,children:(0,a.jsx)(i.A,{className:"size-4"})})}function p(e){let{className:t,...s}=e;return(0,a.jsx)(n.wn,{"data-slot":"select-scroll-down-button",className:(0,d.cn)("flex cursor-default items-center justify-center py-1",t),...s,children:(0,a.jsx)(l.A,{className:"size-4"})})}},34105:(e,t,s)=>{"use strict";s.d(t,{c:()=>a});let a=(0,s(12115).createContext)(void 0)},49819:(e,t,s)=>{Promise.resolve().then(s.bind(s,60232))},51834:(e,t,s)=>{"use strict";s.d(t,{Cf:()=>u,Es:()=>m,HM:()=>c,L3:()=>h,c7:()=>x,lG:()=>i,rr:()=>p});var a=s(95155);s(12115);var n=s(88292),l=s(65229),r=s(64269);function i(e){let{...t}=e;return(0,a.jsx)(n.bL,{"data-slot":"dialog",...t})}function d(e){let{...t}=e;return(0,a.jsx)(n.ZL,{"data-slot":"dialog-portal",...t})}function c(e){let{...t}=e;return(0,a.jsx)(n.bm,{"data-slot":"dialog-close",...t})}function o(e){let{className:t,...s}=e;return(0,a.jsx)(n.hJ,{"data-slot":"dialog-overlay",className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s})}function u(e){let{className:t,children:s,...i}=e;return(0,a.jsxs)(d,{"data-slot":"dialog-portal",children:[(0,a.jsx)(o,{}),(0,a.jsxs)(n.UC,{"data-slot":"dialog-content",className:(0,r.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...i,children:[s,(0,a.jsxs)(n.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,a.jsx)(l.A,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function x(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"dialog-header",className:(0,r.cn)("flex flex-col gap-2 text-center sm:text-left",t),...s})}function m(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"dialog-footer",className:(0,r.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...s})}function h(e){let{className:t,...s}=e;return(0,a.jsx)(n.hE,{"data-slot":"dialog-title",className:(0,r.cn)("text-lg leading-none font-semibold",t),...s})}function p(e){let{className:t,...s}=e;return(0,a.jsx)(n.VY,{"data-slot":"dialog-description",className:(0,r.cn)("text-muted-foreground text-sm",t),...s})}},60232:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>em});var a=s(95155),n=s(12115),l=s(18332),r=s(50803),i=s(66955),d=s(65229),c=s(26989),o=s(35299),u=s(50906),x=s(3998),m=s(17983),h=s(7831),p=s(41444),g=s(80230),f=s(74054),j=s(5917),v=s(64269),N=s(41808),b=s(86651);function w(e){let{className:t,...s}=e;return(0,a.jsx)(N.uB,{"data-slot":"command",className:(0,v.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...s})}function y(e){let{className:t,...s}=e;return(0,a.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,a.jsx)(b.A,{className:"size-4 shrink-0 opacity-50"}),(0,a.jsx)(N.uB.Input,{"data-slot":"command-input",className:(0,v.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),...s})]})}function k(e){let{className:t,...s}=e;return(0,a.jsx)(N.uB.List,{"data-slot":"command-list",className:(0,v.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...s})}function S(e){let{...t}=e;return(0,a.jsx)(N.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}function C(e){let{className:t,...s}=e;return(0,a.jsx)(N.uB.Group,{"data-slot":"command-group",className:(0,v.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...s})}function A(e){let{className:t,...s}=e;return(0,a.jsx)(N.uB.Item,{"data-slot":"command-item",className:(0,v.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}s(51834);var z=s(90067);function _(e){let{...t}=e;return(0,a.jsx)(z.bL,{"data-slot":"popover",...t})}function R(e){let{...t}=e;return(0,a.jsx)(z.l9,{"data-slot":"popover-trigger",...t})}function D(e){let{className:t,align:s="center",sideOffset:n=4,...l}=e;return(0,a.jsx)(z.ZL,{children:(0,a.jsx)(z.UC,{"data-slot":"popover-content",align:s,sideOffset:n,className:(0,v.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...l})})}var F=s(46767);function M(e){let{options:t,value:s,onChange:l,triggerPlaceholder:r="Select an option...",searchPlaceholder:i="Search...",emptyStateMessage:d="No option found.",className:c}=e,[o,u]=n.useState(!1),m=t.find(e=>e.value===s);return(0,a.jsxs)(_,{open:o,onOpenChange:u,children:[(0,a.jsx)(F.Bc,{children:(0,a.jsxs)(F.m_,{children:[(0,a.jsx)(F.k$,{asChild:!0,children:(0,a.jsx)(R,{asChild:!0,children:(0,a.jsxs)(x.$,{variant:"outline",role:"combobox","aria-expanded":o,className:(0,v.cn)("w-[200px] justify-between overflow-hidden",c),children:[m?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;return e.length<=t?e:"".concat(e.substring(0,t),"...")}(m.label):r,(0,a.jsx)(f.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),m&&(0,a.jsx)(F.ZI,{children:(0,a.jsx)("p",{children:m.label})})]})}),(0,a.jsx)(D,{className:(0,v.cn)("w-[200px] p-0",c),children:(0,a.jsxs)(w,{children:[(0,a.jsx)(y,{placeholder:i}),(0,a.jsxs)(k,{children:[(0,a.jsx)(S,{children:d}),(0,a.jsx)(C,{children:t.map(e=>(0,a.jsxs)(A,{value:e.value,onSelect:e=>{l(e===s?"":e),u(!1)},children:[(0,a.jsx)(j.A,{className:(0,v.cn)("mr-2 h-4 w-4",s===e.value?"opacity-100":"opacity-0")}),e.label]},e.value))})]})]})})]})}var O=s(22470),I=s(56419),L=s(11186),P=s(82077);function E(e){let{className:t,...s}=e;return(0,a.jsx)(P.bL,{"data-slot":"checkbox",className:(0,v.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:(0,a.jsx)(P.C1,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:(0,a.jsx)(j.A,{className:"size-3.5"})})})}var T=s(76444),J=s(86259),$=s(87270);let B={agent:!0,owner:!1,organization:!1,attack:!0,status:!0,notes:!0},U=e=>{let{runs:t,selectedRunIds:s,onSelectAllRuns:i,isDetailViewActive:d,children:c,columnVisibility:o}=e,u=t.length>0&&s.size===t.filter(e=>void 0!==e.id).length,x=s.size>0&&!u;return 0===t.length?(0,a.jsxs)(l.Fc,{className:"mt-4",children:[(0,a.jsx)(r.A,{className:"h-4 w-4"}),(0,a.jsx)(l.XL,{children:"No Runs Found"}),(0,a.jsx)(l.TN,{children:"No attack runs have been executed yet."})]}):(0,a.jsx)("div",{children:(0,a.jsxs)($.XI,{children:[(0,a.jsx)($.A0,{children:(0,a.jsxs)($.Hj,{children:[(0,a.jsx)($.nd,{className:"w-[80px]"}),(0,a.jsx)($.nd,{className:"w-[50px] px-2",children:(0,a.jsx)(E,{checked:x?"indeterminate":u,onCheckedChange:i,"aria-label":"Select all runs"})}),(0,a.jsx)($.nd,{className:"w-[70px]",children:"Run #"}),!d&&o.agent&&(0,a.jsx)($.nd,{children:"Agent"}),!d&&o.owner&&(0,a.jsx)($.nd,{children:"Owner"}),!d&&o.organization&&(0,a.jsx)($.nd,{children:"Organization"}),!d&&o.attack&&(0,a.jsx)($.nd,{children:"Attack"}),!d&&o.status&&(0,a.jsx)($.nd,{children:"Status"}),(0,a.jsx)($.nd,{children:"Timestamp"}),(0,a.jsx)($.nd,{children:"Results"}),!d&&o.notes&&(0,a.jsx)($.nd,{className:"max-w-[180px]",children:"Notes"}),!d&&(0,a.jsx)($.nd,{className:"w-[60px]",children:"Actions"})]})}),(0,a.jsx)($.BF,{children:n.Children.map(c,e=>e)})]})})};var V=s(11647),H=s(24033),Z=s(27937),q=s(61362),W=s(78874),X=s(52056),G=s(26983),Q=s(20017),Y=s(6259);let K=/^(google-oauth2|github|windowslive|facebook|twitter|apple|linkedin|email)[|_]/i,ee=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function et(e){return!!e&&(K.test(e)||ee.test(e))}let es=(0,n.memo)(e=>{let{run:t,index:s,selectedRunIds:n,expandedRunId:l,onSelectRun:r,onToggleExpand:i,onDeleteRun:d,deletingRunIds:c,currentUserPk:o,currentUserDisplayName:u,attackName:h,isDetailViewActive:p,totalRuns:g,currentPage:f=1,runsPerPage:j=10,userDisplayNameMap:v={},columnVisibility:N}=e,b=l===t.id,w=void 0!==t.id&&n.has(t.id),y=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e)return"N/A";if(e.includes("@")){let s=e.split("@")[0];return t?"Org ".concat(s):s}if(et(e)){if(v[e])return t?"Org ".concat(v[e]):v[e];let s=e.replace(/^[a-z0-9-]+[|_]/i,"").substring(0,8);return t?"Org ".concat(s):"User ".concat(s)}if(e.includes("'s Organization")){let t=e.replace("'s Organization","").trim();if(v[t])return"Org ".concat(v[t]);if(t.includes("@")){let e=t.split("@")[0];return"Org ".concat(e)}if(et(t)){if(v[t])return"Org ".concat(v[t]);let e=t.replace(/^[a-z0-9-]+[|_]/i,"").substring(0,8);return"Org ".concat(e)}return"Org ".concat(t)}return t?"Org ".concat(e):e},k=e=>{e.stopPropagation(),void 0!==t.id&&i(t.id)};return(0,a.jsxs)($.Hj,{className:"cursor-pointer hover:bg-muted/50","data-state":w?"selected":"",children:[(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:(0,a.jsx)(x.$,{variant:"ghost",size:"sm",children:b?(0,a.jsx)(H.A,{className:"h-4 w-4"}):(0,a.jsx)(Z.A,{className:"h-4 w-4"})})}),(0,a.jsx)($.nA,{className:"px-2",children:void 0!==t.id&&(0,a.jsx)(E,{checked:w,onCheckedChange:e=>r(t.id,e),onClick:e=>{e.stopPropagation()},"aria-label":"Select run ".concat(t.id)})}),(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer font-medium",children:void 0===g?s+1:g-((f-1)*j+s)}),!p&&N.agent&&(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:t.agentName}),!p&&N.owner&&(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:function(e,t){return null!=e&&null!=t&&e===t}(t.owner,o)&&u?u:y(t.ownerUsername,!1)}),!p&&N.organization&&(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:y(t.organizationName,!0)}),!p&&N.attack&&(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:t.attack?h||"Loading type...":"Direct Run"}),!p&&N.status&&(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:(0,a.jsxs)(V.E,{variant:t.status===m.S5d.Completed?"default":t.status===m.S5d.Failed?"destructive":"secondary",className:"capitalize",children:[t.status===m.S5d.Completed&&(0,a.jsx)(q.A,{className:"h-3 w-3 mr-1"}),t.status===m.S5d.Failed&&(0,a.jsx)(W.A,{className:"h-3 w-3 mr-1"}),t.status]})}),(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{className:"text-sm tabular-nums",title:new Date(t.timestamp).toLocaleString(),children:(e=>{let t=Math.floor((Date.now()-e.getTime())/1e3);if(t<60)return"just now";let s=Math.floor(t/60);if(s<60)return"".concat(s," min ago");let a=Math.floor(s/60);if(a<24)return"".concat(a," h ago");let n=Math.floor(a/24);return n<30?"".concat(n," d ago"):e.toLocaleDateString()})(new Date(t.timestamp))}),(0,a.jsx)("span",{className:"text-[11px] text-muted-foreground",children:new Date(t.timestamp).toLocaleDateString()})]})}),(()=>{var e,s,n,l,r;let i=null!=(e=t.totalResults)?e:0,d=null!=(s=t.successfulJailbreaks)?s:0,c=null!=(n=t.failedJailbreaks)?n:0,o=null!=(l=t.errors)?l:0,u=null!=(r=t.notEvaluated)?r:0,x=e=>i>0?e/i*100:0;return(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer",children:0===i?(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"—"}):(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[c>0&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-emerald-600 dark:text-emerald-400 font-medium",children:[(0,a.jsx)(q.A,{className:"h-3 w-3"}),c]}),d>0&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-destructive font-medium",children:[(0,a.jsx)(X.A,{className:"h-3 w-3"}),d]}),o>0&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400 font-medium",children:[(0,a.jsx)(W.A,{className:"h-3 w-3"}),o]}),u>0&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-muted-foreground",children:[(0,a.jsx)(G.A,{className:"h-3 w-3"}),u]})]}),(0,a.jsxs)("div",{className:"flex h-1.5 w-20 overflow-hidden rounded-full bg-muted",children:[c>0&&(0,a.jsx)("div",{className:"h-full bg-emerald-500",style:{width:"".concat(x(c),"%")}}),d>0&&(0,a.jsx)("div",{className:"h-full bg-destructive",style:{width:"".concat(x(d),"%")}}),o>0&&(0,a.jsx)("div",{className:"h-full bg-amber-500",style:{width:"".concat(x(o),"%")}})]})]})})})(),!p&&N.notes&&(0,a.jsx)($.nA,{onClick:k,className:"cursor-pointer max-w-[180px]",children:t.runNotes?(0,a.jsx)("span",{className:"block truncate text-sm text-muted-foreground",title:t.runNotes,children:t.runNotes}):(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"—"})}),!p&&(0,a.jsxs)($.nA,{children:[" ",(0,a.jsxs)(Y.rI,{children:[(0,a.jsx)(Y.ty,{asChild:!0,children:(0,a.jsx)(x.$,{variant:"ghost",size:"icon",title:"Actions",children:(0,a.jsx)(Q.A,{className:"h-4 w-4"})})}),(0,a.jsx)(Y.SQ,{align:"end",children:(0,a.jsx)(Y._2,{onClick:e=>{e.stopPropagation(),t.id&&d(t.id)},disabled:c.has(t.id),className:"text-red-600 hover:text-red-600 hover:bg-red-100 dark:hover:bg-red-900 dark:hover:text-red-50",children:c.has(t.id)?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"animate-spin mr-2",children:(0,a.jsxs)("svg",{width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4",opacity:"0.25"}),(0,a.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"4",strokeLinecap:"round"})]})}),"Deleting..."]}):"Delete"})})]})]})]})});es.displayName="RunRow";var ea=s(13496),en=s(75426);let el=e=>{let{logs:t}=e;return 0===t.length?null:(0,a.jsx)(ea.nD,{type:"multiple",className:"w-full",children:t.map((e,t)=>(0,a.jsxs)(ea.As,{value:"step-".concat(t),children:[(0,a.jsx)(ea.$m,{className:"hover:no-underline",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-sm",children:e.step_name}),(0,a.jsx)(V.E,{variant:"Completed"===e.status?"default":"destructive",className:"text-xs",children:e.status})]})}),(0,a.jsxs)(ea.ub,{children:[(0,a.jsx)("div",{className:"flex justify-end mb-2",children:(0,a.jsxs)(x.$,{size:"sm",variant:"outline",onClick:()=>{var t;return t=e.data_json,void navigator.clipboard.writeText(t)},children:[(0,a.jsx)(en.A,{className:"w-3.5 h-3.5 mr-1.5"}),"Copy JSON"]})}),(0,a.jsx)("pre",{className:"bg-muted p-3 rounded-md text-xs overflow-x-auto max-h-96 leading-relaxed",children:JSON.stringify(JSON.parse(e.data_json),null,2)})]})]},t))})};var er=s(41303);let ei=e=>{let{run:t,isLoading:s,onShowResultDetail:n,isDetailViewActive:l}=e;return s?(0,a.jsx)($.Hj,{children:(0,a.jsx)($.nA,{colSpan:100,className:"p-0",children:(0,a.jsxs)("div",{className:"flex items-center justify-center p-6 h-28 bg-muted/30",children:[(0,a.jsx)(o.A,{className:"h-5 w-5 animate-spin text-muted-foreground"}),(0,a.jsx)("p",{className:"ml-2 text-sm text-muted-foreground",children:"Loading results…"})]})})}):t&&t.results?(0,a.jsx)($.Hj,{children:(0,a.jsx)($.nA,{colSpan:100,className:"p-0",children:(0,a.jsxs)("div",{className:"border-t bg-background",children:[(0,a.jsx)(er.xr,{results:t.results,onShowResultDetail:n,isDetailViewActive:l}),t.step_logs&&t.step_logs.length>0&&(0,a.jsx)("div",{className:"border-t px-4 py-3",children:(0,a.jsx)(el,{logs:t.step_logs})})]})})}):(0,a.jsx)($.Hj,{children:(0,a.jsx)($.nA,{colSpan:100,className:"p-0",children:(0,a.jsx)("div",{className:"p-4 text-center text-muted-foreground text-sm bg-muted/20",children:"No results found or run data missing."})})})};var ed=s(90368),ec=s(28567);let eo=e=>{let{runs:t,expandedRunId:s,selectedRun:n,isLoadingRuns:l,isLoadingResults:r,selectedResultId:i,onToggleExpand:d,onShowResultDetail:c,totalRuns:u,currentPage:h,runsPerPage:p,onPageChange:g}=e,f=Math.ceil(u/p);return(0,a.jsxs)("div",{className:"flex flex-col h-full bg-muted/10",children:[(0,a.jsx)("div",{className:"px-3 py-2.5 border-b bg-card shrink-0",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold",children:"Runs"}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:[u," total"]})]})}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0",children:l?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)(o.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):0===t.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground text-center py-6 px-3",children:"No runs found."}):(0,a.jsx)("div",{className:"divide-y",children:t.map((e,t)=>{let l=s===e.id,x=e.attack?e.attackType||"Unknown":"Direct";return(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{className:"w-full text-left px-3 py-2.5 hover:bg-muted/50 transition-colors flex items-start gap-2 ".concat(l?"bg-muted/40":""),onClick:()=>e.id&&d(e.id),children:[(0,a.jsx)("span",{className:"mt-0.5 shrink-0 text-muted-foreground",children:l?(0,a.jsx)(H.A,{className:"h-3.5 w-3.5"}):(0,a.jsx)(Z.A,{className:"h-3.5 w-3.5"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,a.jsxs)("span",{className:"text-xs font-medium",children:["Run #",u-((h-1)*p+t)]}),(0,a.jsx)(V.E,{variant:(e=>e===m.S5d.Completed?"default":e===m.S5d.Failed?"destructive":"secondary")(e.status),className:"text-[10px] py-0 px-1.5 h-4 shrink-0",children:e.status})]}),(0,a.jsx)("p",{className:"text-[11px] text-muted-foreground truncate mt-0.5",children:x}),(0,a.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:new Date(e.timestamp).toLocaleDateString()})]})]}),l&&(0,a.jsx)("div",{className:"border-t ml-4 border-l-2 border-l-primary/40 bg-muted/20",children:r?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)(o.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}):(null==n?void 0:n.results)&&n.results.length>0?(0,a.jsx)("div",{className:"divide-y",children:[...n.results].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()).map((e,t)=>{let s=(0,er.jI)(e.evaluationStatus),n=(0,ec.Bn)(e,null),l=e.id===i;return(0,a.jsxs)("button",{className:"w-full text-left px-3 py-2 hover:bg-muted/50 transition-colors ".concat(l?"bg-primary/10 border-r-2 border-r-primary":""),onClick:()=>c(e),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,a.jsxs)("span",{className:"text-[11px] font-medium text-muted-foreground",children:["Result ",t+1]}),(0,a.jsx)(V.E,{variant:s.variant,className:"text-[10px] py-0 px-1.5 h-4 shrink-0",children:s.label})]}),n&&(0,a.jsx)("p",{className:"text-[10px] text-muted-foreground truncate mt-0.5",children:n})]},e.id)})}):(0,a.jsx)("p",{className:"text-[11px] text-muted-foreground text-center py-3",children:"No results"})})]},e.id)})})}),f>1&&(0,a.jsxs)("div",{className:"border-t px-3 py-2 bg-card shrink-0 flex items-center justify-between",children:[(0,a.jsx)(x.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>g(Math.max(1,h-1)),disabled:1===h,children:(0,a.jsx)(ed.A,{className:"h-3.5 w-3.5"})}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:[h," / ",f]}),(0,a.jsx)(x.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>g(Math.min(f,h+1)),disabled:h===f,children:(0,a.jsx)(Z.A,{className:"h-3.5 w-3.5"})})]})]})};var eu=s(63819);let ex=(0,p.h)("StatsPage"),em=()=>{var e,t;let[s,p]=(0,n.useState)([]),[f,j]=(0,n.useState)(null),[v,N]=(0,n.useState)(!0),[b,w]=(0,n.useState)(!1),[y,k]=(0,n.useState)(null),[S,C]=(0,n.useState)(null),[A,z]=(0,n.useState)(new Set),[F,P]=(0,n.useState)(0),[$,V]=(0,n.useState)(1),[H,Z]=(0,n.useState)(10),[q,W]=(0,n.useState)(new Set),[X,G]=(0,n.useState)(null),[Q,Y]=(0,n.useState)(null),[K,ee]=(0,n.useState)({}),[ea,en]=(0,n.useState)(void 0),[el,er]=(0,n.useState)(void 0),[ed,ec]=(0,n.useState)(void 0),[em,eh]=(0,n.useState)(void 0),[ep,eg]=(0,n.useState)(B),{user:ef}=(0,g.h)(),ej=(0,n.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};N(!0),C(null);try{var t;let s={page:$,pageSize:H,agent:e.agentId,status:e.status,attack:e.attackId};Object.keys(s).forEach(e=>void 0===s[e]&&delete s[e]);let a=await h.ME.runList(s);p(a.results||[]),P(a.count||0),ex.debug({count:null==(t=a.results)?void 0:t.length},"Fetched runs")}catch(e){ex.error({err:e},"Failed to fetch runs"),C(e.message||"Failed to fetch runs. Please try again.")}N(!1)},[$,H]);(0,n.useEffect)(()=>{let e=!1;return h.userApi.userMeRetrieve().then(t=>{var s;e||G(null!=(s=t.user)?s:null)}).catch(()=>{}),()=>{e=!0}},[]),(0,n.useEffect)(()=>{ej({agentId:ed,status:em,attackId:el,runId:ea})},[ej,ed,em,el,ea,H,$]),(0,n.useEffect)(()=>{(async()=>{if(!s||0===s.length)return;let e=e=>{let t=[e];return e.includes("|")&&t.push(e.replace("|","_")),e.includes("_")&&t.push(e.replace("_","|")),t},t=Array.from(new Set(s.map(e=>e.ownerUsername).filter(t=>!!t&&!e(t).some(e=>K[e]))));if(0!==t.length){ex.debug({count:t.length},"Fetching user profiles for current page runs");try{let t=await h.userApi.userList({page:1}),s={};if(t.results)for(let a of t.results){let t=a.email?a.email.split("@")[0]:null;if(!t)continue;let n=a.keycloakUserId||a.auth0UserId;if(n)for(let a of e(n))s[a]=t;if(a.username&&et(a.username))for(let n of e(a.username))s[n]=t}Object.keys(s).length>0&&(ee(e=>({...e,...s})),ex.debug({count:Object.keys(s).length},"Fetched user display names"))}catch(e){ex.error({err:e},"Failed to fetch user profiles")}}})()},[s]);let ev=(e,t)=>{z(s=>{let a=new Set(s);return!0===t?a.add(e):a.delete(e),a})},eN=async e=>{if(e&&confirm("Are you sure you want to delete this run? This action cannot be undone.")){W(t=>new Set(t).add(e)),C(null);try{await h.ME.runDestroy({id:e}),p(t=>t.filter(t=>t.id!==e)),z(t=>{let s=new Set(t);return s.delete(e),s})}catch(e){C(e.message||"Failed to delete run.")}finally{W(t=>{let s=new Set(t);return s.delete(e),s})}}},eb=async()=>{if(0!==A.size&&confirm("Are you sure you want to delete the selected runs? This action cannot be undone.")){C(null),W(new Set(A));try{await Promise.all(Array.from(A).map(e=>h.ME.runDestroy({id:e}))),p(e=>e.filter(e=>e.id&&!A.has(e.id))),z(new Set)}catch(e){C(e.message||"Failed to delete selected runs.")}finally{W(new Set)}}},ew=async e=>{if(y===e)k(null),j(null);else{k(e),w(!0),j(null);try{var t,s,a;let n=await h.ME.runRetrieve({id:e});j(n),ex.debug({runId:e,resultCount:(null==(t=n.results)?void 0:t.length)||0,firstResultFields:(null==(s=n.results)?void 0:s[0])?{responseStatusCode:n.results[0].responseStatusCode,latencyMs:n.results[0].latencyMs,tracesCount:(null==(a=n.results[0].traces)?void 0:a.length)||0}:null},"Run details fetched")}catch(t){ex.error({err:t,runId:e},"Failed to fetch run details"),C(t.message||"Failed to load details for Run ".concat(e,".")),k(null)}finally{w(!1)}}},ey=e=>{Y(e),ex.debug({resultId:e.id},"Showing detail view for result")},ek=!!Q,eS=(0,n.useMemo)(()=>Q&&(null==f?void 0:f.results)?[...f.results].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()).findIndex(e=>e.id===Q.id):-1,[Q,f]);return(0,a.jsxs)(O.M,{title:"Runs",description:"Monitor and analyze your attack runs.",children:[S&&(0,a.jsxs)(l.Fc,{variant:"destructive",className:"mx-6 mb-4",children:[(0,a.jsx)(r.A,{className:"h-4 w-4"}),(0,a.jsx)(l.XL,{children:"Error"}),(0,a.jsx)(l.TN,{children:S})]}),ek&&Q?(0,a.jsxs)("div",{className:"mx-6 border flex overflow-hidden",style:{height:"calc(100vh - 9rem)"},children:[(0,a.jsx)("div",{className:"w-64 shrink-0 border-r overflow-hidden flex flex-col",children:(0,a.jsx)(eo,{runs:s,expandedRunId:y,selectedRun:f,isLoadingRuns:v,isLoadingResults:b,selectedResultId:Q.id,onToggleExpand:ew,onShowResultDetail:ey,totalRuns:F,currentPage:$,runsPerPage:H,onPageChange:V})}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)(eu.I,{result:Q,onClose:()=>{Y(null)},attackId:null!=(t=null==f?void 0:f.attack)?t:null,resultIndex:eS,totalResults:null==f||null==(e=f.results)?void 0:e.length})})]}):(0,a.jsxs)("div",{className:"border mx-6",children:[!v&&F>0&&(0,a.jsxs)("div",{className:"px-4 py-3 border-b flex flex-wrap justify-between items-center gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-3 items-center",children:[(0,a.jsxs)(_,{children:[(0,a.jsx)(R,{asChild:!0,children:(0,a.jsxs)(x.$,{variant:"outline",size:"sm",className:"h-8",children:[(0,a.jsx)(i.A,{className:"h-4 w-4 mr-2"}),"Filters",(em||ed||el)&&(0,a.jsx)("span",{className:"ml-2 rounded-full bg-primary text-primary-foreground text-xs px-1.5 py-0.5",children:[em,ed,el].filter(Boolean).length})]})}),(0,a.jsx)(D,{className:"w-[320px] p-4",align:"start",children:(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h4",{className:"font-medium text-sm",children:"Filters"}),(em||ed||el)&&(0,a.jsxs)(x.$,{variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",onClick:()=>{eh(void 0),ec(void 0),er(void 0)},children:[(0,a.jsx)(d.A,{className:"h-3 w-3 mr-1"}),"Clear all"]})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(T.J,{className:"text-xs text-muted-foreground",children:"Status"}),(0,a.jsx)(M,{options:Object.values(m.S5d).map(e=>({value:e,label:e})),value:em,onChange:e=>eh(e||void 0),triggerPlaceholder:"Select status...",searchPlaceholder:"Search Status...",emptyStateMessage:"No Status found.",className:"w-full"})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(T.J,{className:"text-xs text-muted-foreground",children:"Agent"}),(0,a.jsx)(M,{options:s.map(e=>e.agent).filter((e,t,s)=>e&&s.indexOf(e)===t).map(e=>({value:e,label:e})),value:ed,onChange:e=>ec(e||void 0),triggerPlaceholder:"Select agent...",searchPlaceholder:"Search Agent...",emptyStateMessage:"No Agent found.",className:"w-full"})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(T.J,{className:"text-xs text-muted-foreground",children:"Attack"}),(0,a.jsx)(M,{options:s.map(e=>e.attack).filter((e,t,s)=>e&&s.indexOf(e)===t).map(e=>({value:e,label:e})),value:el,onChange:e=>er(e||void 0),triggerPlaceholder:"Select attack...",searchPlaceholder:"Search Attack...",emptyStateMessage:"No Attack found.",className:"w-full"})]})]})]})})]}),(0,a.jsxs)(_,{children:[(0,a.jsx)(R,{asChild:!0,children:(0,a.jsxs)(x.$,{variant:"outline",size:"sm",className:"h-8",children:[(0,a.jsx)(c.A,{className:"h-4 w-4 mr-2"}),"Columns"]})}),(0,a.jsx)(D,{className:"w-[200px] p-4",align:"start",children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)("h4",{className:"font-medium text-sm",children:"Toggle columns"}),(0,a.jsx)(J.w,{}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(E,{id:"col-agent",checked:ep.agent,onCheckedChange:()=>eg({...ep,agent:!ep.agent})}),(0,a.jsx)(T.J,{htmlFor:"col-agent",className:"text-sm cursor-pointer",children:"Agent"})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(E,{id:"col-owner",checked:ep.owner,onCheckedChange:()=>eg({...ep,owner:!ep.owner})}),(0,a.jsx)(T.J,{htmlFor:"col-owner",className:"text-sm cursor-pointer",children:"Owner"})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(E,{id:"col-organization",checked:ep.organization,onCheckedChange:()=>eg({...ep,organization:!ep.organization})}),(0,a.jsx)(T.J,{htmlFor:"col-organization",className:"text-sm cursor-pointer",children:"Organization"})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(E,{id:"col-attack",checked:ep.attack,onCheckedChange:()=>eg({...ep,attack:!ep.attack})}),(0,a.jsx)(T.J,{htmlFor:"col-attack",className:"text-sm cursor-pointer",children:"Attack"})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(E,{id:"col-status",checked:ep.status,onCheckedChange:()=>eg({...ep,status:!ep.status})}),(0,a.jsx)(T.J,{htmlFor:"col-status",className:"text-sm cursor-pointer",children:"Status"})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(E,{id:"col-notes",checked:ep.notes,onCheckedChange:()=>eg({...ep,notes:!ep.notes})}),(0,a.jsx)(T.J,{htmlFor:"col-notes",className:"text-sm cursor-pointer",children:"Notes"})]})]})]})})]}),A.size>0&&(0,a.jsxs)(x.$,{variant:"destructive",size:"sm",onClick:()=>eb(),disabled:q.size>0,children:["Delete Selected (",A.size,")"]})]}),(0,a.jsx)("div",{className:"flex flex-wrap items-center gap-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:"Per page:"}),(0,a.jsxs)(L.l6,{value:H.toString(),onValueChange:e=>{Z(parseInt(e,10)),V(1)},children:[(0,a.jsx)(L.bq,{className:"w-[70px] h-8",children:(0,a.jsx)(L.yv,{placeholder:H.toString()})}),(0,a.jsx)(L.gC,{children:[10,20,50,100].map(e=>(0,a.jsx)(L.eb,{value:e.toString(),children:e},e))})]})]}),(0,a.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["Page ",$," of ",Math.ceil(F/H)]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(x.$,{variant:"outline",size:"sm",className:"h-8",onClick:()=>V(e=>Math.max(1,e-1)),disabled:1===$,children:"Previous"}),(0,a.jsx)(x.$,{variant:"outline",size:"sm",className:"h-8",onClick:()=>V(e=>Math.min(Math.ceil(F/H),e+1)),disabled:$===Math.ceil(F/H)||0===F,children:"Next"})]})]})})]}),(0,a.jsx)("div",{className:"p-4",children:v?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-12",children:[(0,a.jsx)(o.A,{className:"h-10 w-10 animate-spin text-muted-foreground mb-3"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Loading runs..."})]}):0===s.length?(0,a.jsx)(I.p,{icon:u.A,title:"No Runs Found",description:"No attack runs have been executed yet. Start a new attack to see results here."}):(0,a.jsx)("div",{className:"flex flex-col gap-4",children:(0,a.jsx)("div",{className:"w-full min-w-0",children:(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsx)(U,{runs:s,selectedRunIds:A,onSelectAllRuns:e=>{!0===e?z(new Set(s.map(e=>e.id).filter(e=>void 0!==e))):z(new Set)},isDetailViewActive:!1,columnVisibility:ep,children:s.map((e,t)=>{var s;return(0,a.jsxs)(n.Fragment,{children:[(0,a.jsx)(es,{run:e,index:t,selectedRunIds:A,expandedRunId:y,onSelectRun:ev,onToggleExpand:ew,onDeleteRun:eN,deletingRunIds:q,currentUserPk:X,currentUserDisplayName:ef?(e=>{if(e)return e.name||e.email||e.preferred_username||e.nickname||void 0})(ef):void 0,attackName:null!=(s=e.attackType)?s:null,isDetailViewActive:!1,totalRuns:F,currentPage:$,runsPerPage:H,userDisplayNameMap:K,columnVisibility:ep}),y===e.id&&(0,a.jsx)(ei,{run:f,isLoading:b,onShowResultDetail:ey,isDetailViewActive:!1})]},e.id)})})})})})})]})]})}},76444:(e,t,s)=>{"use strict";s.d(t,{J:()=>r});var a=s(95155);s(12115);var n=s(85408),l=s(64269);function r(e){let{className:t,...s}=e;return(0,a.jsx)(n.b,{"data-slot":"label",className:(0,l.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...s})}},80230:(e,t,s)=>{"use strict";s.d(t,{h:()=>r});var a=s(12115),n=s(34105);let l=async()=>"";function r(){let e=(0,a.useContext)(n.c);return e||{provider:"disabled",user:void 0,isAuthenticated:!1,isLoading:!0,login:void 0,logout:void 0,getAccessTokenSilently:l}}}},e=>{e.O(0,[187,539,292,355,9,532,889,411,200,924,472,441,493,358],()=>e(e.s=49819)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.1.5 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-900:oklch(38.6% .063 188.416);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-900:oklch(39.8% .07 227.392);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-900:oklch(40.8% .153 2.432);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-800:oklch(27.4% .006 286.033);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:var(--border)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-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,::-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)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-6{margin-inline:calc(var(--spacing)*6)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.my-4{margin-block:calc(var(--spacing)*4)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-0{margin-left:calc(var(--spacing)*0)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.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-10{margin-left:calc(var(--spacing)*10)}.ml-16{margin-left:calc(var(--spacing)*16)}.ml-52{margin-left:calc(var(--spacing)*52)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3\.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-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-14{height:calc(var(--spacing)*14)}.h-24{height:calc(var(--spacing)*24)}.h-28{height:calc(var(--spacing)*28)}.h-32{height:calc(var(--spacing)*32)}.h-40{height:calc(var(--spacing)*40)}.h-56{height:calc(var(--spacing)*56)}.h-\[300px\]{height:300px}.h-\[340px\]{height:340px}.h-\[520px\]{height:520px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[36rem\]{max-height:36rem}.max-h-\[300px\]{max-height:300px}.max-h-\[360px\]{max-height:360px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-\[12px\]{min-height:12px}.min-h-\[160px\]{min-height:160px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-1\/5{width:20%}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-96{width:calc(var(--spacing)*96)}.w-\[12\%\]{width:12%}.w-\[13\%\]{width:13%}.w-\[15\%\]{width:15%}.w-\[20\%\]{width:20%}.w-\[25\%\]{width:25%}.w-\[30\%\]{width:30%}.w-\[40px\]{width:40px}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[70px\]{width:70px}.w-\[80px\]{width:80px}.w-\[90px\]{width:90px}.w-\[110px\]{width:110px}.w-\[200px\]{width:200px}.w-\[320px\]{width:320px}.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-\[10rem\]{max-width:10rem}.max-w-\[45\%\]{max-width:45%}.max-w-\[90rem\]{max-width:90rem}.max-w-\[100px\]{max-width:100px}.max-w-\[105px\]{max-width:105px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[72px\]{min-width:72px}.min-w-\[80px\]{min-width:80px}.min-w-\[90px\]{min-width:90px}.min-w-\[100px\]{min-width:100px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.-translate-y-1\/2,.translate-x-\[-50\%\]{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5)}.translate-y-0\.5,.translate-y-\[-50\%\]{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.animate-in{animation:enter var(--tw-duration,.15s)var(--tw-ease,ease)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-3{column-gap:calc(var(--spacing)*3)}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}.gap-x-8{column-gap:calc(var(--spacing)*8)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0{row-gap:calc(var(--spacing)*0)}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-1\.5{row-gap:calc(var(--spacing)*1.5)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\/50>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\/50>:not(:last-child)){border-color:color-mix(in oklab,var(--border)50%,transparent)}}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--color-border\){border-color:var(--color-border)}.border-amber-400{border-color:var(--color-amber-400)}.border-amber-400\/60{border-color:#fcbb0099}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/60{border-color:color-mix(in oklab,var(--color-amber-400)60%,transparent)}}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-400\/60{border-color:#54a2ff99}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/60{border-color:color-mix(in oklab,var(--color-blue-400)60%,transparent)}}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--border)40%,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-cyan-400{border-color:var(--color-cyan-400)}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.border-green-300{border-color:var(--color-green-300)}.border-green-400{border-color:var(--color-green-400)}.border-input{border-color:var(--input)}.border-muted{border-color:var(--muted)}.border-muted-foreground\/40{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/40{border-color:color-mix(in oklab,var(--muted-foreground)40%,transparent)}}.border-orange-300{border-color:var(--color-orange-300)}.border-orange-400{border-color:var(--color-orange-400)}.border-pink-400{border-color:var(--color-pink-400)}.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-purple-300{border-color:var(--color-purple-300)}.border-purple-400{border-color:var(--color-purple-400)}.border-red-300{border-color:var(--color-red-300)}.border-red-400{border-color:var(--color-red-400)}.border-teal-400{border-color:var(--color-teal-400)}.border-transparent{border-color:#0000}.border-violet-400{border-color:var(--color-violet-400)}.border-violet-400\/60{border-color:#a685ff99}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/60{border-color:color-mix(in oklab,var(--color-violet-400)60%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-r-primary{border-right-color:var(--primary)}.border-l-amber-500{border-left-color:var(--color-amber-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-destructive{border-left-color:var(--destructive)}.border-l-emerald-500{border-left-color:var(--color-emerald-500)}.border-l-gray-400{border-left-color:var(--color-gray-400)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-muted-foreground{border-left-color:var(--muted-foreground)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary\/40{border-left-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-l-primary\/40{border-left-color:color-mix(in oklab,var(--primary)40%,transparent)}}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-teal-500{border-left-color:var(--color-teal-500)}.border-l-transparent{border-left-color:#0000}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-accent{background-color:var(--accent)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border,.bg-border\/60{background-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.bg-border\/60{background-color:color-mix(in oklab,var(--border)60%,transparent)}}.bg-card{background-color:var(--card)}.bg-cyan-50{background-color:var(--color-cyan-50)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-destructive,.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--destructive)5%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/20{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,var(--muted)10%,transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-pink-50{background-color:var(--color-pink-50)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-zinc-100{background-color:var(--color-zinc-100)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0{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-3\.5{padding-block:calc(var(--spacing)*3.5)}.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-12{padding-block:calc(var(--spacing)*12)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-0{padding-right:calc(var(--spacing)*0)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-10{padding-right:calc(var(--spacing)*10)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.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-5{padding-bottom:calc(var(--spacing)*5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-0{padding-left:calc(var(--spacing)*0)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.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-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-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-border{color:var(--border)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-cyan-600{color:var(--color-cyan-600)}.text-cyan-700{color:var(--color-cyan-700)}.text-destructive{color:var(--destructive)}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground{color:var(--foreground)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-muted-foreground,.text-muted-foreground\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--muted-foreground)40%,transparent)}}.text-muted-foreground\/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\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-pink-600{color:var(--color-pink-600)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-teal-600{color:var(--color-teal-600)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.text-yellow-600{color:var(--color-yellow-600)}.text-zinc-600{color:var(--color-zinc-600)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring,.ring-1,.shadow-xs{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)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-destructive{--tw-ring-color:var(--destructive)}.ring-primary{--tw-ring-color:var(--primary)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}.zoom-in-95{--tw-enter-scale:.95}@media (hover:hover){.group-hover\:bg-muted\/40:is(:where(.group):hover *){background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-muted\/40:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\/step\:opacity-100:is(:where(.group\/step):hover *),.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-background\/50:hover{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/50:hover{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-emerald-50\/60:hover{background-color:#ecfdf599}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-50\/60:hover{background-color:color-mix(in oklab,var(--color-emerald-50)60%,transparent)}}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.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-muted\/60:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/60:hover{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.hover\:bg-orange-50\/60:hover{background-color:#fff7ed99}@supports (color:color-mix(in lab,red,red)){.hover\:bg-orange-50\/60:hover{background-color:color-mix(in oklab,var(--color-orange-50)60%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-50\/60:hover{background-color:#fef2f299}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-50\/60:hover{background-color:color-mix(in oklab,var(--color-red-50)60%,transparent)}}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.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-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-red-600:focus{color:var(--color-red-600)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[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:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:border-primary[data-state=active]{border-color:var(--primary)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.data-\[state\=active\]\:shadow-none[data-state=active]{--tw-shadow:0 0 #0000}.data-\[state\=active\]\:shadow-none[data-state=active],.data-\[state\=active\]\:shadow-sm[data-state=active]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}@media (hover:hover){.data-\[state\=active\]\:hover\:bg-background[data-state=active]:hover{background-color:var(--background)}}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-duration,.2s)ease-out}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-duration,.15s)var(--tw-ease,ease)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-duration,.2s)ease-out}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-duration,.15s)var(--tw-ease,ease)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:calc(var(--spacing)*0)}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:w-auto{width:auto}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:justify-start{justify-content:flex-start}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}:where(.md\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.md\:divide-y-0>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(0px*var(--tw-divide-y-reverse));border-bottom-width:calc(0px*calc(1 - var(--tw-divide-y-reverse)))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.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\:flex-row{flex-direction:row}}.dark\:border-blue-700:is(.dark *){border-color:var(--color-blue-700)}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-orange-700:is(.dark *){border-color:var(--color-orange-700)}.dark\:border-purple-700:is(.dark *){border-color:var(--color-purple-700)}.dark\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\:bg-amber-900\/30:is(.dark *){background-color:#7b33064d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-cyan-900\/20:is(.dark *){background-color:#104e6433}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-cyan-900)20%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1e29394d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-800\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-gray-800)30%,transparent)}}.dark\:bg-green-900\/20:is(.dark *){background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-green-900)20%,transparent)}}.dark\:bg-green-900\/30:is(.dark *){background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-green-950\/40:is(.dark *){background-color:#032e1566}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-green-950)40%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-orange-900\/20:is(.dark *){background-color:#7e2a0c33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-orange-900)20%,transparent)}}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7e2a0c4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-orange-900)30%,transparent)}}.dark\:bg-pink-900\/20:is(.dark *){background-color:#86104333}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-pink-900)20%,transparent)}}.dark\:bg-purple-900\/20:is(.dark *){background-color:#59168b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-900)20%,transparent)}}.dark\:bg-purple-900\/30:is(.dark *){background-color:#59168b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-900)30%,transparent)}}.dark\:bg-red-900\/20:is(.dark *){background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:bg-red-900\/30:is(.dark *){background-color:#82181a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}}.dark\:bg-red-950\/40:is(.dark *){background-color:#46080966}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-red-950)40%,transparent)}}.dark\:bg-teal-900\/20:is(.dark *){background-color:#0b4f4a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-teal-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-teal-900)20%,transparent)}}.dark\:bg-yellow-900\/30:is(.dark *){background-color:#733e0a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)30%,transparent)}}.dark\:bg-zinc-800:is(.dark *){background-color:var(--color-zinc-800)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-blue-300:is(.dark *){color:var(--color-blue-300)}.dark\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\:text-cyan-300:is(.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-400:is(.dark *){color:var(--color-cyan-400)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-gray-300:is(.dark *){color:var(--color-gray-300)}.dark\:text-green-300:is(.dark *){color:var(--color-green-300)}.dark\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-orange-300:is(.dark *){color:var(--color-orange-300)}.dark\:text-orange-400:is(.dark *){color:var(--color-orange-400)}.dark\:text-pink-400:is(.dark *){color:var(--color-pink-400)}.dark\:text-purple-300:is(.dark *){color:var(--color-purple-300)}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}.dark\:text-red-300:is(.dark *){color:var(--color-red-300)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-teal-400:is(.dark *){color:var(--color-teal-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}.dark\:text-yellow-400:is(.dark *){color:var(--color-yellow-400)}.dark\:text-zinc-400:is(.dark *){color:var(--color-zinc-400)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-emerald-900\/20:is(.dark *):hover{background-color:#004e3b33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-emerald-900\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-emerald-900)20%,transparent)}}.dark\:hover\:bg-input\/20:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)20%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-orange-900\/20:is(.dark *):hover{background-color:#7e2a0c33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-orange-900\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-orange-900)20%,transparent)}}.dark\:hover\:bg-red-900:is(.dark *):hover{background-color:var(--color-red-900)}.dark\:hover\:bg-red-900\/20:is(.dark *):hover{background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-red-900\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:hover\:text-red-50:is(.dark *):hover{color:var(--color-red-50)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}@media (hover:hover){.dark\:data-\[state\=active\]\:hover\:bg-input\/30:is(.dark *)[data-state=active]:hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:hover\:bg-input\/30:is(.dark *)[data-state=active]:hover{background-color:color-mix(in oklab,var(--input)30%,transparent)}}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:var(--border)}@supports (color:color-mix(in lab,red,red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:color-mix(in oklab,var(--border)50%,transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing)*2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing)*3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing)*2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing)*3)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-state\=open\]\]\:bg-muted\/30[data-state=open]{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.\[\&\[data-state\=open\]\]\:bg-muted\/30[data-state=open]{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}:root{--radius:.25rem;--background:oklch(.95 0 0);--foreground:oklch(.145 0 0);--card:oklch(.95 0 0);--card-foreground:oklch(.145 0 0);--popover:oklch(.95 0 0);--popover-foreground:oklch(.145 0 0);--primary:oklch(.205 0 0);--primary-foreground:oklch(.985 0 0);--secondary:oklch(.88 0 0);--secondary-foreground:oklch(.145 0 0);--muted:oklch(.915 0 0);--muted-foreground:oklch(.5 0 0);--accent:oklch(.915 0 0);--accent-foreground:oklch(.205 0 0);--destructive:oklch(.577 .245 27.325);--border:oklch(.905 0 0);--input:oklch(.905 0 0);--ring:oklch(.708 0 0);--chart-1:oklch(.646 .222 41.116);--chart-2:oklch(.6 .118 184.704);--chart-3:oklch(.398 .07 227.392);--chart-4:oklch(.828 .189 84.429);--chart-5:oklch(.769 .188 70.08);--sidebar:oklch(.942 0 0);--sidebar-foreground:oklch(.145 0 0);--sidebar-primary:oklch(.205 0 0);--sidebar-primary-foreground:oklch(.985 0 0);--sidebar-accent:oklch(.915 0 0);--sidebar-accent-foreground:oklch(.205 0 0);--sidebar-border:oklch(.905 0 0);--sidebar-ring:oklch(.708 0 0)}body,html{margin:0;padding:0}a{color:inherit;text-decoration:none}*{box-sizing:border-box}.dark{--background:oklch(.215 0 0);--foreground:oklch(.985 0 0);--card:oklch(.255 0 0);--card-foreground:oklch(.985 0 0);--popover:oklch(.255 0 0);--popover-foreground:oklch(.985 0 0);--primary:oklch(.922 0 0);--primary-foreground:oklch(.205 0 0);--secondary:oklch(.35 0 0);--secondary-foreground:oklch(.985 0 0);--muted:oklch(.3 0 0);--muted-foreground:oklch(.68 0 0);--accent:oklch(.3 0 0);--accent-foreground:oklch(.985 0 0);--destructive:oklch(.704 .191 22.216);--border:oklch(1 0 0/10%);--input:oklch(1 0 0/15%);--ring:oklch(.556 0 0);--chart-1:oklch(.488 .243 264.376);--chart-2:oklch(.696 .17 162.48);--chart-3:oklch(.769 .188 70.08);--chart-4:oklch(.627 .265 303.9);--chart-5:oklch(.645 .246 16.439);--sidebar:oklch(.255 0 0);--sidebar-foreground:oklch(.985 0 0);--sidebar-primary:oklch(.488 .243 264.376);--sidebar-primary-foreground:oklch(.985 0 0);--sidebar-accent:oklch(.3 0 0);--sidebar-accent-foreground:oklch(.985 0 0);--sidebar-border:oklch(1 0 0/10%);--sidebar-ring:oklch(.556 0 0)}.print-only{display:none}@media print{aside,header,nav{display:none!important}.print-layout-root,body,html{height:auto!important;overflow:visible!important}.print-layout-root{display:block!important}main{height:auto!important;margin-left:0!important;padding:0!important;overflow:visible!important}body{background:#fff!important}.no-print{display:none!important}.print-only{display:block!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{margin:1.5cm}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,auto)))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,auto)))}to{height:0}}
|