@codeyam/codeyam-cli 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/analyzer-template/.build-info.json +6 -6
  2. package/analyzer-template/log.txt +3 -3
  3. package/codeyam-cli/src/cli.js +9 -0
  4. package/codeyam-cli/src/cli.js.map +1 -1
  5. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  6. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  7. package/codeyam-cli/src/commands/editor.js +180 -18
  8. package/codeyam-cli/src/commands/editor.js.map +1 -1
  9. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  10. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  11. package/codeyam-cli/src/commands/telemetry.js +37 -0
  12. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  13. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +70 -0
  14. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  15. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  16. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  17. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +13 -7
  18. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  19. package/codeyam-cli/src/utils/telemetry.js +106 -0
  20. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  21. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  22. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  23. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +28 -0
  24. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  25. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CjC3_6JI.js +58 -0
  26. package/codeyam-cli/src/webserver/build/client/assets/globals-DRvOjyO3.css +1 -0
  27. package/codeyam-cli/src/webserver/build/client/assets/{manifest-b3f77062.js → manifest-75b1b319.js} +1 -1
  28. package/codeyam-cli/src/webserver/build/client/assets/{root-D5Zi3U2Z.js → root-F-k2uYj5.js} +15 -15
  29. package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-yTyb36j3.js → analysisRunner-lv2ooewK.js} +1 -1
  30. package/codeyam-cli/src/webserver/build/server/assets/{index-Cr7d_IsG.js → index-Im3Smyei.js} +1 -1
  31. package/codeyam-cli/src/webserver/build/server/assets/{init-M_wqNAfu.js → init-BjuAFKGM.js} +1 -1
  32. package/codeyam-cli/src/webserver/build/server/assets/{server-build-_ybRgrlc.js → server-build-CNjF0B9B.js} +116 -116
  33. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  34. package/codeyam-cli/src/webserver/build-info.json +5 -5
  35. package/codeyam-cli/src/webserver/editorProxy.js +19 -2
  36. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  37. package/codeyam-cli/src/webserver/server.js +32 -0
  38. package/codeyam-cli/src/webserver/server.js.map +1 -1
  39. package/package.json +2 -1
  40. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DmBK1JBK.js +0 -58
  41. package/codeyam-cli/src/webserver/build/client/assets/globals-CGrDAxj0.css +0 -1
@@ -1,58 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Blo6EK8G.js","assets/jsx-runtime-D_zvdyIk.js","assets/chunk-JZWAC4HX-BBXArFPl.js"])))=>i.map(i=>d[i]);
2
- var xs=Object.defineProperty;var ps=(t,s,a)=>s in t?xs(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var yt=(t,s,a)=>ps(t,typeof s!="symbol"?s+"":s,a);import{r as i,w as hs,u as us,b as fs,a as gs,c as js,O as bs}from"./chunk-JZWAC4HX-BBXArFPl.js";import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{u as ys,C as vs}from"./useCustomSizes-BR3Rs7JY.js";import{g as Ns,s as ws,r as qe,b as Ye,c as Ss,l as ks,d as Cs,e as Ps,f as Es,a as Ms,T as Is,D as Ts}from"./editorPreview-DBa7T2FK.js";import{C as he}from"./CopyButton-CzTDWkF2.js";import{_ as Xe}from"./preload-helper-ckwbz45p.js";import{c as Rs}from"./cy-logo-cli-DcX-ZS3p.js";import{u as $s,S as vt}from"./Spinner-Df3UCi8k.js";import"./copy-zK0B6Nu-.js";import"./createLucideIcon-DJB0YQJL.js";import"./useLastLogLine-BxxP_XF9.js";function Ee(t){var l;if(!t.startsWith("app/")&&!t.startsWith("("))return"/";const a=t.replace(/^app\//,"").split("/"),n=a.pop(),c=((l=n.match(/\.(tsx?|jsx?|js)$/))==null?void 0:l[0])||"",r=n.slice(0,-c.length);let o;return r==="page"||r==="index"?o=a:o=[...a,r],o=o.filter(m=>!m.startsWith("(")),o.length===0?"/":"/"+o.join("/")}function Me(t){return t==="/"?"Home":t.replace(/^\//,"").split("/").map(a=>a.startsWith("[")?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" / ")}function _e(t){if(!t||t==="/")return"Home";const s=t.split("?")[0].replace(/^\//,"");if(!s)return"Home";const a=s.split("/")[0].replace(/\.[^.]+$/,"");return a.charAt(0).toUpperCase()+a.slice(1)}function _t(t){return t?t.includes("/isolated-components"):!1}function As(t,s){return!s||Object.keys(s).length===0?t:t.filter(a=>s[a.name])}const Ae=[{name:"Desktop",width:1440,height:900},{name:"Laptop",width:1024,height:768},{name:"Tablet",width:768,height:1024},{name:"Mobile",width:375,height:667}];function _s(t){if(!t)return Ae;const s=Object.entries(t).map(([n,c])=>({name:n,width:c.width,height:c.height})),a=new Set(s.map(n=>n.name));return[...s,...Ae.filter(n=>!a.has(n.name))]}function Ls({featureName:t,editorStep:s,editorStepLabel:a,onContinue:n}){const c=i.useCallback(r=>{r.key==="Enter"&&(r.preventDefault(),n())},[n]);return i.useEffect(()=>(window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)),[c]),e.jsx("div",{className:"flex items-center justify-center h-full bg-[#1e1e1e] text-[#d4d4d4]",children:e.jsxs("div",{className:"max-w-md w-full mx-4 p-6 bg-[#252526] border border-[#3d3d3d] rounded-lg",children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-white",children:"Resume Previous Session?"}),e.jsx("p",{className:"text-sm text-[#999] mb-4",children:"An editor session is still in progress:"}),e.jsxs("div",{className:"bg-[#1e1e1e] rounded p-3 mb-5 text-sm",children:[t&&e.jsxs("div",{className:"mb-1",children:[e.jsx("span",{className:"text-[#999]",children:"Feature:"})," ",e.jsx("span",{className:"text-white",children:t})]}),s!=null&&a&&e.jsxs("div",{children:[e.jsx("span",{className:"text-[#999]",children:"Step:"})," ",e.jsxs("span",{className:"text-white",children:[s," (",a,")"]})]})]}),e.jsx("button",{onClick:n,className:"w-full px-4 py-2 text-sm rounded transition-colors cursor-pointer bg-[#005c75] text-white font-medium hover:bg-[#004d63] ring-2 ring-white/50",children:"Continue Session"})]})})}function Qe(t){const[s,a]=i.useState(null),[n,c]=i.useState(!1),r=i.useCallback(()=>{t&&(c(!0),fetch(`/api/editor-test-results?testFile=${encodeURIComponent(t)}`).then(o=>o.json()).then(o=>{a(o),c(!1)}).catch(()=>{a({testFilePath:t,status:"error",testCases:[],errorMessage:"Failed to fetch test results"}),c(!1)}))},[t]);return i.useEffect(()=>{t&&r()},[t,r]),{results:s,isRunning:n,runTests:r}}function Le({scenarioId:t,updatedAt:s,alt:a,className:n="",imgClassName:c=""}){const[r,o]=i.useState(!1),l=`/api/editor-scenario-image/${t}.png${s?`?v=${encodeURIComponent(s)}`:""}`;return i.useEffect(()=>{o(!1)},[t]),r?e.jsx("div",{className:`flex items-center justify-center ${n}`,children:e.jsx("span",{className:"text-[8px] text-gray-500",children:"No img"})}):e.jsx("div",{className:n,children:e.jsx("img",{src:l,alt:a,className:c,loading:"lazy",onError:()=>o(!0)})})}function Ce({scenarioId:t,updatedAt:s,hasScreenshot:a,imgSrc:n,name:c,isActive:r,onSelect:o}){const l=t&&a,m=!t&&n;return e.jsxs("button",{onClick:o,className:"flex flex-col items-center gap-1 cursor-pointer group",title:c,children:[e.jsx("div",{className:`w-32 h-32 rounded overflow-hidden border-2 transition-all bg-[#1a1a1a] ${r?"border-[#005c75] ring-1 ring-[#005c75]":"border-transparent hover:border-[#4d4d4d]"}`,children:l?e.jsx(Le,{scenarioId:t,updatedAt:s,alt:c,className:"w-full h-full",imgClassName:"w-full h-full object-contain"}):m?e.jsx("img",{src:n,alt:c,className:"w-full h-full object-contain",loading:"lazy"}):e.jsx("div",{className:"w-full h-full bg-[#1a1a1a] flex items-center justify-center",children:e.jsx("span",{className:"text-[8px] text-gray-600",children:"No img"})})}),e.jsx("span",{className:`text-[10px] leading-tight text-center truncate w-32 ${r?"text-white":"text-gray-500 group-hover:text-gray-300"}`,children:c})]})}function Ke({testFile:t,entityName:s}){const{results:a,isRunning:n,runTests:c}=Qe(t);if(n&&!a)return e.jsxs("div",{className:"px-2 pt-1 flex items-center gap-1.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),e.jsx("span",{className:"text-[10px] text-gray-400",children:"Running tests..."})]});if(!a)return null;if(a.status==="error")return e.jsx("div",{className:"px-2 pt-1",children:e.jsx("span",{className:"text-[10px] text-red-400",children:a.errorMessage})});const r=s?a.testCases.filter(m=>m.fullName.startsWith(s)):a.testCases,o=r.length>0?r:a.testCases;if(o.length===0)return null;const l=s?`${s} > `:"";return e.jsxs("div",{className:"px-2 pt-1 space-y-0.5",children:[o.map(m=>{var y;const v=l&&m.fullName.startsWith(l)?m.fullName.slice(l.length):m.fullName;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[m.status==="passed"?e.jsx("span",{className:"text-green-400 text-[10px]",children:"✓"}):m.status==="failed"?e.jsx("span",{className:"text-red-400 text-[10px]",children:"✗"}):e.jsx("span",{className:"text-gray-500 text-[10px]",children:"—"}),e.jsx("span",{className:`text-[10px] ${m.status==="passed"?"text-green-400":m.status==="failed"?"text-red-400":"text-gray-500"}`,children:v})]}),m.status==="failed"&&((y=m.failureMessages)==null?void 0:y.map((S,g)=>e.jsx("div",{className:"pl-4 text-[9px] text-red-300/70 truncate max-w-full",title:S,children:S.split(`
3
- `)[0]},g)))]},m.fullName)}),e.jsx("button",{onClick:c,disabled:n,className:"mt-1 text-[10px] text-[#00a0c4] hover:text-[#00c4ee] transition-colors cursor-pointer disabled:opacity-50 bg-transparent border-none p-0",children:n?"Running...":"Re-run"})]})}function oe({filePath:t}){return t?e.jsxs("div",{className:"flex items-center gap-1 px-2 mt-0.5",children:[e.jsxs("a",{href:`/api/editor-file?path=${encodeURIComponent(t)}`,target:"_blank",rel:"noopener noreferrer",title:"Open file",className:"flex items-center gap-1 text-gray-500 hover:text-gray-300 transition-colors min-w-0",children:[e.jsx("span",{className:"text-[9px] truncate",children:t}),e.jsx("svg",{className:"shrink-0",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:e.jsx("path",{d:"M4.5 1.5H2.5C1.95 1.5 1.5 1.95 1.5 2.5V9.5C1.5 10.05 1.95 10.5 2.5 10.5H9.5C10.05 10.5 10.5 10.05 10.5 9.5V7.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e.jsx(he,{content:t,icon:!0,iconSize:10,className:"shrink-0 text-gray-500 hover:text-gray-300 transition-colors"})]}):null}function Ds({scenarios:t,projectRoot:s,activeScenarioId:a,onScenarioSelect:n,zoomComponent:c,focusedEntity:r,onZoomChange:o,analyzedEntities:l=[],glossaryFunctions:m=[],activeAnalyzedScenarioId:v,onAnalyzedScenarioSelect:y,entityImports:S,pageFilePaths:g={}}){const{pageGroups:I,componentGroups:f}=i.useMemo(()=>{var h;const p=new Map,x=new Map;for(const w of t)if(w.componentName){const k=x.get(w.componentName)||[];k.push(w),x.set(w.componentName,k)}else if(_t(w.url)){const k=(h=w.url)==null?void 0:h.match(/[?&]c=([^&]+)/),T=k?decodeURIComponent(k[1]):"Isolated",A=x.get(T)||[];A.push(w),x.set(T,A)}else{const k=w.pageFilePath?Me(Ee(w.pageFilePath)):_e(w.url),T=p.get(k)||[];T.push(w),p.set(k,T)}const b=new Map([...x.entries()].sort(([w],[k])=>w.localeCompare(k)));return{pageGroups:p,componentGroups:b}},[t]),B=i.useMemo(()=>{const p=new Set((l||[]).filter(b=>b.entityType==="visual").map(b=>b.name)),x=new Map;for(const[b,h]of f)p.has(b)||x.set(b,h);return x},[f,l]),{visualEntities:O,libraryEntities:L}=i.useMemo(()=>{const p=l.filter(b=>b.entityType==="visual").sort((b,h)=>b.name.localeCompare(h.name)),x=l.filter(b=>b.entityType==="library"||b.entityType==="functionCall").sort((b,h)=>b.name.localeCompare(h.name));return{visualEntities:p,libraryEntities:x}},[l]),D=i.useMemo(()=>{const p=new Set(L.map(x=>x.name));return m.filter(x=>!p.has(x.name)).sort((x,b)=>x.name.localeCompare(b.name))},[m,L]),_=l.some(p=>p.isAnalyzing),N=i.useRef(null),M=i.useRef(0),U=i.useCallback(()=>{N.current&&(M.current=N.current.scrollTop)},[]);if(i.useEffect(()=>{N.current&&M.current>0&&(N.current.scrollTop=M.current)}),t.length===0&&l.length===0&&D.length===0)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center text-gray-500 px-8",children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"No scenarios yet"}),e.jsx("p",{className:"text-xs",children:"Scenarios will appear here as Claude creates them alongside your code. Each scenario represents a different state of your app's data."})]})});if(c&&r){const p=r.name,x=r.filePath,b=r.sha,h=t.filter(C=>C.componentName===p||C.componentPath===x||!C.componentName&&(C.pageFilePath===x||b&&C.entitySha===b)),w=new Set((S==null?void 0:S[p])||[]),k=w.size>0,T=k?O.filter(C=>w.has(C.name)):[],A=k?L.filter(C=>w.has(C.name)):[];return e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-3 space-y-1",children:[e.jsxs("button",{onClick:()=>o(void 0),className:"w-full flex items-center gap-2 px-3 py-1.5 text-xs text-gray-400 hover:text-white transition-colors cursor-pointer",children:[e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M7.5 9L4.5 6L7.5 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"All scenarios"]}),e.jsx("div",{className:"px-3 py-1.5",children:e.jsx("span",{className:"text-xs font-semibold text-white uppercase tracking-wider",children:r.displayName})}),e.jsx("div",{className:"flex flex-wrap gap-2 px-2",children:h.length===0?e.jsx("div",{className:"px-3 py-2 text-xs text-gray-500",children:"No scenarios for this component"}):h.map(C=>e.jsx(Ce,{scenarioId:C.id,updatedAt:C.updatedAt,hasScreenshot:!!C.screenshotPath,name:C.name,isActive:C.id===a,onSelect:()=>n(C)},C.id))}),T.length>0&&e.jsxs("div",{className:"pt-2 mt-1 border-t border-[#3d3d3d]",children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Components"})}),T.map(C=>e.jsxs("div",{className:"mt-2",children:[e.jsx("div",{className:"flex items-center gap-2 px-2 py-1",children:e.jsx("button",{onClick:()=>o(C.name),className:"text-[11px] font-medium text-gray-400 truncate cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:C.name})}),e.jsx(oe,{filePath:C.filePath,projectRoot:s}),(C.scenarios.length>0||C.pendingScenarios.length>0)&&e.jsx("div",{className:"flex flex-wrap gap-2 px-2 pt-1",children:C.scenarios.map(q=>e.jsx(Ce,{imgSrc:q.screenshotPath?`/api/screenshot/${q.screenshotPath}`:null,name:q.name,isActive:q.id===v,onSelect:()=>y==null?void 0:y({analysisId:C.analysisId,scenarioId:q.id,scenarioName:q.name,entitySha:C.sha,entityName:C.name})},q.id))})]},C.sha))]}),A.length>0&&e.jsxs("div",{className:"pt-2 mt-1",children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Functions"})}),A.map(C=>e.jsxs("div",{className:"mt-2",children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-[11px] font-medium text-gray-300",children:C.name})}),e.jsx(oe,{filePath:C.filePath,projectRoot:s}),C.testFile&&e.jsx(Ke,{testFile:C.testFile,entityName:C.name})]},C.sha))]})]})})}return e.jsx("div",{ref:N,onScroll:U,className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-3 space-y-3",children:[I.size>0&&e.jsxs("div",{children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Application"})}),[...I.entries()].sort(([p],[x])=>p==="Home"?-1:x==="Home"?1:p.localeCompare(x)).map(([p,x])=>{var b,h;return e.jsxs("div",{className:"px-2 pt-1",children:[e.jsx("div",{className:"py-0.5",children:e.jsx("span",{className:"text-[11px] font-medium text-gray-400",children:p})}),(((b=x[0])==null?void 0:b.pageFilePath)||g[p])&&e.jsx(oe,{filePath:((h=x[0])==null?void 0:h.pageFilePath)||g[p],projectRoot:s}),e.jsx("div",{className:"flex flex-wrap gap-2 pt-1",children:x.map(w=>e.jsx(Ce,{scenarioId:w.id,updatedAt:w.updatedAt,hasScreenshot:!!w.screenshotPath,name:w.name,isActive:w.id===a&&!v,onSelect:()=>n(w)},w.id))})]},p)})]}),B.size>0&&e.jsxs("div",{className:"pt-2 mt-1 border-t border-[#3d3d3d]",children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Components"})}),[...B.entries()].map(([p,x])=>{var b;return e.jsxs("div",{className:"mt-2",children:[e.jsx("div",{className:"flex items-center justify-between px-2 py-1",children:e.jsx("button",{onClick:()=>o(p),className:"text-[11px] font-medium text-gray-400 truncate cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:p})}),((b=x[0])==null?void 0:b.componentPath)&&e.jsx(oe,{filePath:x[0].componentPath,projectRoot:s}),e.jsx("div",{className:"flex flex-wrap gap-2 px-2 pt-1",children:x.map(h=>e.jsx(Ce,{scenarioId:h.id,updatedAt:h.updatedAt,hasScreenshot:!!h.screenshotPath,name:h.name,isActive:h.id===a&&!v,onSelect:()=>n(h)},h.id))})]},p)})]}),O.length>0&&e.jsxs("div",{className:"pt-2 mt-1 border-t border-[#3d3d3d]",children:[e.jsxs("div",{className:"px-2 py-1",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Components"}),_&&t.length===0&&l.every(p=>p.scenarioCount===0)&&e.jsx("span",{className:"ml-2 text-[10px] text-gray-500",children:"— Entities are being analyzed..."})]}),O.map(p=>e.jsxs("div",{className:"mt-2",children:[e.jsxs("div",{className:"flex items-center gap-2 px-2 py-1",children:[e.jsx("button",{onClick:()=>o(p.name),className:"text-[11px] font-medium text-gray-400 truncate cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:p.name}),p.isAnalyzing&&p.scenarioCount===0&&e.jsxs("span",{className:"flex items-center gap-1.5 text-[10px] text-gray-400",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),"Analyzing..."]})]}),e.jsx(oe,{filePath:p.filePath,projectRoot:s}),(p.scenarios.length>0||p.pendingScenarios.length>0)&&e.jsxs("div",{className:"flex flex-wrap gap-2 px-2 pt-1",children:[p.scenarios.map(x=>e.jsx(Ce,{imgSrc:x.screenshotPath?`/api/screenshot/${x.screenshotPath}`:null,name:x.name,isActive:x.id===v,onSelect:()=>y==null?void 0:y({analysisId:p.analysisId,scenarioId:x.id,scenarioName:x.name,entitySha:p.sha,entityName:p.name})},x.id)),p.pendingScenarios.map(x=>e.jsx("div",{className:"px-2.5 py-1 bg-[#2a2a2a] text-gray-400 text-[10px] rounded-full",title:x,children:x},x))]})]},p.sha))]}),(L.length>0||D.length>0)&&e.jsxs("div",{className:`pt-2 mt-1 ${O.length>0?"":"border-t border-[#3d3d3d]"}`,children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Functions"})}),L.map(p=>e.jsxs("div",{className:"mt-2",children:[e.jsxs("div",{className:"px-2 py-1",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-300",children:p.name}),p.isAnalyzing&&p.scenarioCount===0&&e.jsxs("span",{className:"ml-2 inline-flex items-center gap-1.5 text-[10px] text-gray-400",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),"Analyzing..."]})]}),e.jsx(oe,{filePath:p.filePath,projectRoot:s}),p.testFile?e.jsx(Ke,{testFile:p.testFile,entityName:p.name}):e.jsx("div",{className:"px-2 pt-1",children:e.jsx("span",{className:"text-[10px] text-gray-500",children:"No test file"})})]},p.sha)),D.map(p=>e.jsxs("div",{className:"mt-2",children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-[11px] font-medium text-gray-300",children:p.name})}),e.jsx(oe,{filePath:p.filePath,projectRoot:s}),e.jsx(Ke,{testFile:p.testFile,entityName:p.name})]},p.name))]})]})})}function Fs(t,s,a=new Date){const n={"1d":1,"3d":3,"7d":7,"30d":30}[s],c=new Date(a);c.setDate(c.getDate()-n);const r=c.toISOString().split("T")[0],o=t.filter(S=>S.date>=r),l=new Set(o.map(S=>S.commitSha).filter(Boolean)),m=new Map;for(const S of o)if(S.scenarioScreenshots)for(const g of S.scenarioScreenshots){m.has(g.name)||m.set(g.name,[]);const I=m.get(g.name);I.some(f=>f.path===g.path)||I.push({path:g.path,time:S.time})}for(const S of m.values())S.sort((g,I)=>g.time.localeCompare(I.time));const v=[],y=new Map;for(const[S,g]of m){const I=S.indexOf(" - ");if(I!==-1){const f=S.slice(0,I);y.has(f)||y.set(f,[]),y.get(f).push({name:S,screenshots:g})}else v.push({name:S,screenshots:g})}return{commitCount:l.size,entryCount:o.length,appScenarios:v,componentGroups:y,totalScenarios:m.size}}function Bs(t){const s=new Map;for(const a of[...t].reverse()){const n=s.get(a.date)||[];n.push(a),s.set(a.date,n)}return s}function Os(t){const s=new Map;for(const a of t){let n;if("componentName"in a&&a.componentName)n=a.componentName;else if("componentName"in a&&a.componentName===null)n="App";else{const r=a.name.indexOf(" - ");n=r!==-1?a.name.slice(0,r):"App"}const c=s.get(n)||[];c.push(a),s.set(n,c)}return[...s.entries()].sort(([a],[n])=>a==="App"?-1:n==="App"?1:a.localeCompare(n))}const Nt=120;function Lt({text:t,theme:s}){const[a,n]=i.useState(!1),c=t.length>Nt,r=c&&!a?t.slice(0,Nt)+"…":t,o=s==="light";return e.jsxs("div",{className:`px-4 py-2 ${o?"border-b border-gray-200 bg-gray-50":"border-b border-[#3d3d3d] bg-[#252525]"}`,children:[e.jsx("span",{className:"text-[9px] font-semibold uppercase tracking-wider text-gray-500",children:"User Prompt"}),e.jsxs("p",{className:`text-[11px] mt-0.5 mb-0 leading-relaxed ${o?"text-gray-600":"text-gray-400"}`,children:[r,c&&e.jsx("button",{onClick:()=>n(!a),className:`ml-1 text-[11px] font-medium bg-transparent border-none p-0 cursor-pointer ${o?"text-blue-500 hover:text-blue-700":"text-[#00a0c4] hover:text-[#00c0e8]"}`,children:a?"Show less":"Read more…"})]})]})}function wt({status:t}){const s={new:{label:"New",bg:"bg-green-900/40",text:"text-green-400",border:"border-green-700/50"},edited:{label:"Edited",bg:"bg-blue-900/40",text:"text-blue-400",border:"border-blue-700/50"},impacted:{label:"Impacted",bg:"bg-amber-900/40",text:"text-amber-400",border:"border-amber-700/50"}}[t.status];return e.jsx("span",{className:`${s.bg} ${s.text} ${s.border} border text-[8px] font-bold px-1 py-0 rounded-full uppercase tracking-wider`,children:s.label})}function zs({testFile:t,entityName:s}){const{results:a,isRunning:n,runTests:c}=Qe(t);if(n&&!a)return e.jsxs("div",{className:"pt-1 flex items-center gap-1.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#00a0c4] animate-pulse"}),e.jsx("span",{className:"text-[10px] text-gray-500",children:"Running tests..."})]});if(!a)return null;if(a.status==="error")return e.jsx("div",{className:"pt-1",children:e.jsx("span",{className:"text-[10px] text-red-400",children:a.errorMessage})});const r=s?a.testCases.filter(m=>m.fullName.startsWith(s)):a.testCases,o=r.length>0?r:a.testCases;if(o.length===0)return null;const l=s?`${s} > `:"";return e.jsxs("div",{className:"pt-1 space-y-0.5",children:[o.map(m=>{var y;const v=l&&m.fullName.startsWith(l)?m.fullName.slice(l.length):m.fullName;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[m.status==="passed"?e.jsx("span",{className:"text-green-400 text-[10px]",children:"✓"}):m.status==="failed"?e.jsx("span",{className:"text-red-400 text-[10px]",children:"✗"}):e.jsx("span",{className:"text-gray-500 text-[10px]",children:"—"}),e.jsx("span",{className:`text-[10px] ${m.status==="passed"?"text-green-400":m.status==="failed"?"text-red-400":"text-gray-500"}`,children:v})]}),m.status==="failed"&&((y=m.failureMessages)==null?void 0:y.map((S,g)=>e.jsx("div",{className:"pl-4 text-[9px] text-red-400/70 truncate max-w-full",title:S,children:S.split(`
4
- `)[0]},g)))]},m.fullName)}),e.jsx("button",{onClick:c,disabled:n,className:"mt-1 text-[10px] text-[#00a0c4] hover:text-[#38bdf8] transition-colors cursor-pointer disabled:opacity-50 bg-transparent border-none p-0",children:n?"Running...":"Re-run"})]})}const Ws={added:"text-green-400",untracked:"text-green-400",modified:"text-blue-400",renamed:"text-purple-400"};function Us({files:t}){return e.jsxs("div",{className:"border-t border-[#3d3d3d] pt-2 mt-1",children:[e.jsxs("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:["Modified Files (",t.length,")"]}),e.jsx("div",{className:"mt-1 space-y-0.5 max-h-[150px] overflow-auto",children:t.map(s=>e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`text-[9px] font-bold uppercase w-[14px] text-center ${Ws[s.status]||"text-gray-500"}`,children:s.status==="added"||s.status==="untracked"?"A":s.status==="modified"?"M":s.status==="renamed"?"R":"?"}),e.jsx("span",{className:"text-[10px] text-gray-400 truncate font-mono",children:s.path})]},s.path))})]})}const Hs={feature:{label:"Feature",color:"bg-[#005c75]"},fix:{label:"Fix",color:"bg-amber-700"},refactor:{label:"Refactor",color:"bg-purple-700"},scaffold:{label:"Scaffold",color:"bg-green-700"},data:{label:"Data",color:"bg-blue-700"},milestone:{label:"Milestone",color:"bg-yellow-600"}};function Js(t){try{return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return""}}function Vs(t){try{return new Date(t+"T00:00:00").toLocaleDateString([],{weekday:"long",month:"long",day:"numeric"})}catch{return t}}const Gs=[{value:"1d",label:"1 Day"},{value:"3d",label:"3 Days"},{value:"7d",label:"1 Week"},{value:"30d",label:"1 Month"}];function qs({entries:t,onScreenshotClick:s}){const[a,n]=i.useState(!1),[c,r]=i.useState("7d"),o=i.useMemo(()=>Fs(t,c),[t,c]);return e.jsxs("div",{className:"bg-[#2d2d2d] rounded-lg overflow-hidden",children:[e.jsxs("button",{onClick:()=>n(!a),className:"w-full flex items-center justify-between px-3 py-2.5 cursor-pointer bg-transparent border-none text-left hover:bg-[#333] transition-colors",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-400 uppercase tracking-wider",children:"Timeframe Summary"}),e.jsx("span",{className:`text-gray-500 text-[10px] transition-transform ${a?"rotate-180":""}`,children:"▼"})]}),a&&e.jsxs("div",{className:"px-3 pb-3 space-y-3 border-t border-[#3d3d3d]",children:[e.jsx("div",{className:"flex gap-1 pt-2.5",children:Gs.map(l=>e.jsx("button",{onClick:()=>r(l.value),className:`px-2.5 py-1 text-[10px] font-medium rounded transition-colors cursor-pointer border ${c===l.value?"bg-[#005c75] text-white border-[#005c75]":"bg-transparent text-gray-400 border-[#4d4d4d] hover:text-white hover:border-[#005c75]"}`,children:l.label},l.value))}),e.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-gray-400",children:[e.jsxs("span",{children:[e.jsx("span",{className:"text-white font-medium",children:o.commitCount})," ",o.commitCount===1?"commit":"commits"]}),e.jsx("span",{className:"text-[#3d3d3d]",children:"|"}),e.jsxs("span",{children:[e.jsx("span",{className:"text-white font-medium",children:o.totalScenarios})," ",o.totalScenarios===1?"scenario changed":"scenarios changed"]}),e.jsx("span",{className:"text-[#3d3d3d]",children:"|"}),e.jsxs("span",{children:[e.jsx("span",{className:"text-white font-medium",children:o.entryCount})," ",o.entryCount===1?"entry":"entries"]})]}),o.totalScenarios===0?e.jsx("p",{className:"text-[11px] text-gray-500 italic m-0",children:"No scenario changes in this period."}):e.jsxs("div",{className:"space-y-3",children:[o.appScenarios.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Application"}),o.appScenarios.map(l=>e.jsx(St,{scenario:l,onScreenshotClick:s},l.name))]}),o.componentGroups.size>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Components"}),[...o.componentGroups.entries()].sort(([l],[m])=>l.localeCompare(m)).map(([l,m])=>e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("span",{className:"text-[10px] font-medium text-gray-400",children:l}),m.map(v=>e.jsx(St,{scenario:v,onScreenshotClick:s},v.name))]},l))]})]})]})]})}function St({scenario:t,onScreenshotClick:s}){const a=t.name.indexOf(" - "),n=a!==-1?t.name.slice(a+3):t.name;return e.jsxs("div",{className:"pl-2",children:[e.jsx("span",{className:"text-[10px] text-gray-500 block mb-1",children:n}),e.jsx("div",{className:"flex items-center gap-1 overflow-x-auto",children:t.screenshots.map((c,r)=>e.jsxs("div",{className:"flex items-center shrink-0",children:[r>0&&e.jsx("span",{className:"text-[8px] text-gray-600 mx-0.5",children:"→"}),e.jsx("button",{type:"button",className:"w-16 h-16 rounded overflow-hidden border border-[#3d3d3d] hover:border-[#00a0c4] bg-[#1e1e1e] shrink-0 flex items-center justify-center cursor-pointer transition-colors",title:`${t.name} (${new Date(c.time).toLocaleDateString()})`,onClick:()=>s==null?void 0:s({screenshotUrl:`/api/editor-journal-image/${c.path.replace("screenshots/","")}`,commitSha:null,commitMessage:null,scenarioName:t.name}),children:e.jsx("img",{src:`/api/editor-journal-image/${c.path.replace("screenshots/","")}`,alt:t.name,className:"max-w-full max-h-full object-contain",loading:"lazy"})})]},c.path))})]})}function Ys({isActive:t,onScreenshotClick:s,glossaryFunctions:a=[]}){const[n,c]=i.useState([]),[r,o]=i.useState(!0),[l,m]=i.useState(new Set),v=i.useCallback(g=>{m(I=>{const f=new Set(I);return f.has(g)?f.delete(g):f.add(g),f})},[]),y=i.useCallback(async()=>{try{const g=await fetch("/api/editor-journal");if(g.ok){const I=await g.json();c(I.entries||[])}}catch{}finally{o(!1)}},[]);if(i.useEffect(()=>{y()},[y]),i.useEffect(()=>{t&&y()},[t,y]),i.useEffect(()=>{if(!t)return;const g=setInterval(()=>void y(),5e3);return()=>clearInterval(g)},[t,y]),r)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx("span",{className:"text-gray-500 text-sm",children:"Loading journal..."})});if(n.length===0)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center text-gray-500 px-8",children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"No journal entries yet"}),e.jsx("p",{className:"text-xs",children:"Journal entries will appear as you build. Claude records features, screenshots, and commits as the project evolves."})]})});const S=Bs(n);return e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-3 space-y-4",children:[e.jsx(qs,{entries:n,onScreenshotClick:s}),[...S.entries()].map(([g,I])=>e.jsxs("div",{children:[e.jsx("div",{className:"px-3 py-1.5 sticky top-0 bg-[#1e1e1e] z-10",children:e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:Vs(g)})}),e.jsx("div",{className:"space-y-2",children:I.map((f,B)=>{const O=Hs[f.type]||{label:f.type,color:"bg-gray-600"},L=`${f.time}-${B}`,D=l.has(L);return e.jsxs("div",{className:"bg-[#2d2d2d] rounded-lg overflow-hidden",children:[e.jsxs("div",{className:`p-3 space-y-2 ${D?"":"max-h-[300px] overflow-y-auto"}`,children:[e.jsx("div",{className:"flex items-start gap-2 cursor-pointer",onClick:()=>v(L),children:e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-white truncate",children:f.title}),e.jsx("span",{className:`${O.color} text-white text-[9px] font-bold px-1.5 py-0.5 rounded uppercase tracking-wider shrink-0`,children:O.label})]}),e.jsx("span",{className:"text-[10px] text-gray-500",children:Js(f.time)}),f.featureName&&e.jsx("span",{className:"text-[10px] text-gray-500 italic truncate",title:f.featureName,children:f.featureName})]})}),f.userPrompt&&e.jsx(Lt,{text:f.userPrompt,theme:"dark"}),e.jsx("p",{className:"text-xs text-gray-400 leading-relaxed",children:f.description}),f.screenshot&&e.jsx("button",{type:"button",className:"rounded overflow-hidden border border-[#3d3d3d] hover:border-[#00a0c4] bg-[#1e1e1e] flex items-center justify-center p-1 cursor-pointer transition-colors w-full",onClick:()=>s==null?void 0:s({screenshotUrl:`/api/editor-journal-image/${f.screenshot.replace("screenshots/","")}`,commitSha:f.commitSha,commitMessage:f.commitMessage,scenarioName:f.title}),children:e.jsx("img",{src:`/api/editor-journal-image/${f.screenshot.replace("screenshots/","")}`,alt:f.title,className:"max-w-full max-h-full object-contain",loading:"lazy"})}),f.scenarioScreenshots&&f.scenarioScreenshots.length>0&&(()=>{const _=Os(f.scenarioScreenshots),N=f.entityChangeStatus,M=_.filter(([h])=>h==="App").flatMap(([,h])=>h),U=_.filter(([h])=>h!=="App"),p=new Map;for(const h of M){const w=h,k=w.pageFilePath?Me(Ee(w.pageFilePath)):_e(w.url??null),T=p.get(k)||[];T.push(h),p.set(k,T)}const x=[...p.entries()],b=h=>e.jsx("button",{type:"button",className:"w-[4.5rem] h-[4.5rem] rounded overflow-hidden border border-[#3d3d3d] hover:border-[#00a0c4] bg-[#1e1e1e] shrink-0 flex items-center justify-center cursor-pointer transition-colors",onClick:()=>s==null?void 0:s({screenshotUrl:`/api/editor-journal-image/${h.path.replace("screenshots/","")}`,commitSha:f.commitSha,commitMessage:f.commitMessage,scenarioName:h.name}),children:e.jsx("img",{src:`/api/editor-journal-image/${h.path.replace("screenshots/","")}`,alt:h.name,title:h.name,className:"max-w-full max-h-full object-contain",loading:"lazy"})},h.path);return e.jsxs("div",{className:"space-y-2",children:[x.length>0&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Application"}),x.map(([h,w])=>e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[10px] font-medium text-gray-400",children:h}),(N==null?void 0:N[h])&&e.jsx(wt,{status:N[h]})]}),e.jsx("div",{className:"flex flex-wrap gap-1 mt-0.5",children:w.map(b)})]},h))]}),U.length>0&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Components"}),U.map(([h,w])=>e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[10px] font-medium text-gray-400",children:h}),(N==null?void 0:N[h])&&e.jsx(wt,{status:N[h]})]}),e.jsx("div",{className:"flex flex-wrap gap-1 mt-0.5",children:w.map(b)})]},h))]})]})})(),a.length>0&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Functions"}),e.jsx("div",{className:"space-y-2",children:a.map(_=>e.jsxs("div",{children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-200",children:_.name}),e.jsx("span",{className:"text-[9px] text-gray-500 truncate block",children:_.filePath}),_.testFile?e.jsx(zs,{testFile:_.testFile,entityName:_.name}):e.jsx("div",{className:"pt-1",children:e.jsx("span",{className:"text-[10px] text-gray-500",children:"No test file"})})]},_.name))})]}),f.commitSha&&e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",children:[e.jsx("span",{className:"font-mono text-[#00a0c4] bg-[#00a0c4]/10 px-1.5 py-0.5 rounded",children:f.commitSha.slice(0,7)}),e.jsx("span",{className:"text-gray-500 truncate",children:f.commitMessage})]}),D&&f.modifiedFiles&&f.modifiedFiles.length>0&&e.jsx(Us,{files:f.modifiedFiles})]}),e.jsxs("button",{onClick:()=>v(L),className:"w-full py-1.5 text-[10px] text-gray-500 hover:text-gray-300 border-t border-[#3d3d3d] transition-colors cursor-pointer",children:["——— ",D?"Collapse":"Expand"," ———"]})]},L)})})]},g))]})})}function Ks({prompt:t,height:s=300,onClose:a}){const n=i.useRef(null),c=i.useRef(null),r=i.useRef(null),o=i.useRef(!1),l=i.useRef(t);return i.useEffect(()=>{const m=n.current;if(!m)return;let v=!1,y=null;async function S(){const[g,I]=await Promise.all([Xe(()=>import("./xterm-BqvuqXEL.js"),[]),Xe(()=>import("./addon-fit-YJmn1quW.js"),[])]);if(v)return;{let p=document.getElementById("xterm-css");p||(p=document.createElement("style"),p.id="xterm-css",document.head.appendChild(p)),p.textContent=`
5
- .xterm { cursor: text; position: relative; user-select: none; -ms-user-select: none; -webkit-user-select: none; }
6
- .xterm.focus, .xterm:focus { outline: none; }
7
- .xterm .xterm-helpers { position: absolute; top: 0; z-index: 5; }
8
- .xterm .xterm-helper-textarea { padding: 0; border: 0; margin: 0; position: absolute; opacity: 0; left: -9999em; top: 0; width: 0; height: 0; z-index: -5; white-space: nowrap; overflow: hidden; resize: none; caret-color: transparent !important; clip-path: inset(100%) !important; }
9
- .xterm .composition-view { background: #000; color: #FFF; display: none; position: absolute; white-space: nowrap; z-index: 1; }
10
- .xterm .composition-view.active { display: block; }
11
- .xterm .xterm-viewport { background-color: #000; overflow-y: scroll; cursor: default; position: absolute; right: 0; left: 0; top: 0; bottom: 0; }
12
- .xterm .xterm-screen { position: relative; }
13
- .xterm .xterm-screen canvas { position: absolute; left: 0; top: 0; }
14
- .xterm .xterm-scroll-area { visibility: hidden; }
15
- .xterm-char-measure-element { display: inline-block; visibility: hidden; position: absolute; top: 0; left: -9999em; line-height: normal; }
16
- .xterm.enable-mouse-events { cursor: default; }
17
- .xterm.xterm-cursor-pointer, .xterm .xterm-cursor-pointer { cursor: pointer; }
18
- .xterm.column-select.focus { cursor: crosshair; }
19
- .xterm .xterm-accessibility:not(.debug), .xterm .xterm-message { position: absolute; left: 0; top: 0; bottom: 0; right: 0; z-index: 10; color: transparent; pointer-events: none; }
20
- .xterm .xterm-accessibility-tree:not(.debug) *::selection { color: transparent; }
21
- .xterm .xterm-accessibility-tree { user-select: text; white-space: pre; }
22
- .xterm .live-region { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
23
- .xterm-dim { opacity: 1 !important; }
24
- .xterm-underline-1 { text-decoration: underline; }
25
- .xterm-underline-2 { text-decoration: double underline; }
26
- .xterm-underline-3 { text-decoration: wavy underline; }
27
- .xterm-underline-4 { text-decoration: dotted underline; }
28
- .xterm-underline-5 { text-decoration: dashed underline; }
29
- .xterm-overline { text-decoration: overline; }
30
- .xterm-strikethrough { text-decoration: line-through; }
31
- .xterm-screen .xterm-decoration-container .xterm-decoration { z-index: 6; position: absolute; }
32
- .xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer { z-index: 7; }
33
- .xterm-decoration-overview-ruler { z-index: 8; position: absolute; top: 0; right: 0; pointer-events: none; }
34
- .xterm-decoration-top { z-index: 2; position: relative; }
35
- `}const f=new g.Terminal({theme:{background:"#1a1a1a",foreground:"#d4d4d4",cursor:"#d4d4d4",selectionBackground:"#264f78"},fontSize:12,fontFamily:"'IBM Plex Mono', 'Menlo', 'Monaco', monospace",cursorBlink:!0,scrollback:5e3,allowProposedApi:!0}),B=new I.FitAddon;f.loadAddon(B),f.open(m),requestAnimationFrame(()=>{try{B.fit()}catch{}}),r.current=f;let O=null;try{const p=await fetch("/api/editor-scenario-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:l.current})});p.ok&&(O=(await p.json()).promptFile)}catch{}if(v)return;const L=window.location.protocol==="https:"?"wss:":"ws:",D=window.location.host,_=new URLSearchParams;_.set("entityName","inline-claude");const N=`${L}//${D}/ws/terminal?${_.toString()}`,M=new WebSocket(N);c.current=M,M.onopen=()=>{M.send(JSON.stringify({type:"resize",cols:f.cols,rows:f.rows}))};let U=!1;M.onmessage=p=>{try{const x=JSON.parse(p.data);if(x.type==="session-id"&&!U){U=!0,setTimeout(()=>{const b=O?`claude "Read the file at '${O.replace(/'/g,"'\\''")}' for your instructions."`:"claude";M.send(JSON.stringify({type:"input",data:b+"\r"}))},300);return}if(x.type==="output"&&x.data){f.write(x.data);return}}catch{f.write(p.data)}},M.onclose=()=>{o.current||f.write(`\r
36
- \x1B[90m--- Session ended ---\x1B[0m\r
37
- `)},M.onerror=()=>{f.write(`\r
38
- \x1B[31mConnection error\x1B[0m\r
39
- `)},f.onData(p=>{M.readyState===WebSocket.OPEN&&M.send(JSON.stringify({type:"input",data:p}))}),y=new ResizeObserver(()=>{try{B.fit(),M.readyState===WebSocket.OPEN&&M.send(JSON.stringify({type:"resize",cols:f.cols,rows:f.rows}))}catch{}}),y.observe(m)}return S(),()=>{var g,I;v=!0,o.current=!0,y==null||y.disconnect(),((g=c.current)==null?void 0:g.readyState)===WebSocket.OPEN&&c.current.close(),(I=r.current)==null||I.dispose()}},[]),e.jsxs("div",{className:"border-t border-[#2d2d2d]",children:[e.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5 bg-[#1e1e1e]",children:[e.jsx("span",{className:"text-[10px] font-medium text-[#00a0c4]",children:"Claude"}),a&&e.jsx("button",{onClick:a,className:"text-gray-500 hover:text-gray-300 text-[10px] bg-transparent border-none cursor-pointer",children:"Close"})]}),e.jsx("div",{ref:n,style:{height:s,background:"#1a1a1a",padding:"4px 0",position:"relative",overflow:"hidden"}})]})}const kt=()=>e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"text-gray-500 shrink-0",children:e.jsx("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function Xs(t,s){if(t.length<=s)return t;const a=s-2;return[t[0],"ellipsis",...t.slice(t.length-a)]}function Ct({items:t,onNavigate:s}){if(t.length===0)return null;const a=Xs(t,4);return e.jsx("nav",{className:"flex items-center gap-1 text-xs min-w-0",children:a.map((n,c)=>{if(n==="ellipsis")return e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(kt,{}),e.jsx("span",{className:"text-gray-500",children:"..."})]},"ellipsis");const r=c===a.length-1;return e.jsxs("span",{className:"flex items-center gap-1 min-w-0",children:[c>0&&e.jsx(kt,{}),r?e.jsx("span",{className:"text-white font-medium truncate",children:n.name}):e.jsx("button",{onClick:()=>s(n.componentName,n.entitySha),className:"text-gray-400 hover:text-white transition-colors cursor-pointer bg-transparent border-none p-0 truncate",children:n.name})]},n.componentName||"app")})})}function Qs(t,s,a,n){var m;const c=n.length>0?n.map(v=>`- "${v.name}" (ID: ${v.id})${v.url?` — URL: ${v.url}`:""}`).join(`
40
- `):"(no scenarios yet)",r=s.endsWith("/page.tsx")||s.endsWith("/page.js"),o=((m=n.find(v=>v.url))==null?void 0:m.url)||"/",l=[`You are helping edit scenarios for the "${t}" entity in a CodeYam project.`,"","## Entity",`- **Name:** ${t}`,`- **File:** ${s}`,`- **Type:** ${r?"Page (application scenario with seed data)":"Component (component scenario with mock props)"}`,"","## Existing Scenarios",c,""];return r?l.push("## How Seed Data Works","","Application scenarios use `seed` data to populate the database before the page is captured.","The seed is a JSON object where each key is a Prisma model name in camelCase singular (matching the Prisma client accessor name) and the value is an array of records.","","### Seed Key Naming Convention","The key must be the camelCase singular form of the Prisma model name:",'- `model User` → key `"user"`','- `model BlogPost` → key `"blogPost"`','- `model Feedback` → key `"feedback"`',"",'**WARNING:** Do NOT use plural forms like "users", "blogPosts", or "feedbacks" — the seed adapter will silently fail to match them.',"","To understand the data models, read the Prisma schema at `prisma/schema.prisma`.","To see examples of existing seed data, look at `.codeyam/editor-scenarios/*.seed.json` files.","",`Also read the source file at \`${s}\` to understand what data the page queries and renders.`,"","## Registering a Scenario","","For small seed data, pass it inline:","```",`codeyam editor register '{"name":"Scenario Name","type":"application","url":"${o}","dimensions":["Laptop"],"seed":{"user":[...],"feedback":[...]}}'`,"```","","For large seed data, write it to a temp file and use @file syntax:","```","# Write JSON to a temp file","cat > .codeyam/tmp/scenario.json << 'SCENARIO_EOF'",`{"name":"Scenario Name","type":"application","url":"${o}","dimensions":["Laptop"],"seed":{"user":[...],"feedback":[...]}}`,"SCENARIO_EOF","codeyam editor register @.codeyam/tmp/scenario.json","```"):l.push("## Registering a Scenario","",`Read the source file at \`${s}\` to understand what props the component expects.`,"","```",`codeyam editor register '{"name":"Scenario Name","type":"component","componentName":"${t}","componentPath":"${s}","dimensions":["Laptop"],"mockData":{"propName":"value"}}'`,"```"),l.push("","## Deleting a Scenario","","To delete a scenario, use its ID from the list above:","```","codeyam editor delete <scenarioId>","```","","## Validating Seed Data","","Before registering, you can validate seed data structure and check that keys match Prisma models:","```",`codeyam editor validate-seed '{"user":[...]}'`,"```"),l.push("","## Important","- DO NOT take any action until the user tells you what they want","- Start by briefly listing the existing scenarios",'- Then ask: "Would you like to modify an existing scenario or add a new one?"',"- Wait for the user's answer before proceeding",'- Keep scenario names descriptive: "Empty State", "With Comments", "Admin View", etc.',`- Each scenario should capture a distinct, meaningful state of the ${r?"page":"component"}`),l.join(`
41
- `)}function Dt(t){var c,r;const s=new Map,a=new Map;for(const o of t)if(o.componentName){const l=a.get(o.componentName)||[];l.push(o),a.set(o.componentName,l)}else if(_t(o.url)){const l=(c=o.url)==null?void 0:c.match(/[?&]c=([^&]+)/),m=l?decodeURIComponent(l[1]):"Isolated",v=a.get(m)||[];v.push(o),a.set(m,v)}else{const l=o.displayName||((r=o.pageFilePath)!=null&&r.startsWith("app/")?Me(Ee(o.pageFilePath)):_e(o.url)),m=s.get(l)||[];m.push(o),s.set(l,m)}const n=new Map([...a.entries()].sort(([o],[l])=>o.localeCompare(l)));return{pageGroups:s,componentGroups:n}}function Zs(t,s){var n,c;const a=new Map;for(const[r,o]of t){const l=(n=o.find(m=>m.entitySha))==null?void 0:n.entitySha;l&&a.set(r,l)}for(const[r,o]of s){const l=(c=o.find(m=>m.entitySha))==null?void 0:c.entitySha;l&&a.set(r,l)}return a}function ea(t,s,a,n){if(s.has(t))return!0;const c=a.find(r=>r.sha===t);return c?n.has(c.name):!1}function ta(t,s,a,n){const c=[];for(const[r,o]of t){const l=a.get(r);l?n(l)||c.push({name:r,scenarios:o,reason:"incomplete"}):c.push({name:r,scenarios:o,reason:"missing"})}for(const[r,o]of s){const l=a.get(r);l?n(l)||c.push({name:r,scenarios:o,reason:"incomplete"}):c.push({name:r,scenarios:o,reason:"missing"})}return c}function sa(t,s,a){if(!t)return null;const n=s.find(r=>r.sha===t);if(!n)return null;const c=a.find(r=>r.entitySha===t);return{sha:t,name:n.name,filePath:n.filePath,entityType:n.entityType,displayName:(c==null?void 0:c.displayName)||n.name}}function Ft(t,s){const a=s.some(c=>!c.componentName),n=s.map(c=>`'${c.id}'`).join(", ");return a?[`### Page: "${t}" (${s.length} scenario(s))`,"","Step A: Find the source file that renders this page by running:",' find src app -name "App.tsx" -o -name "App.jsx" -o -name "page.tsx" -o -name "page.jsx" -o -name "index.tsx" 2>/dev/null',"","Pick the file that is the main app entry point or the page component for this route. Confirm it exists with `cat <filepath> | head -5`.","","Step B: Set page_file_path on all scenarios for this page (replace PAGE_FILE_PATH with the path from Step A):",` sqlite3 .codeyam/db.sqlite3 "UPDATE editor_scenarios SET page_file_path = 'PAGE_FILE_PATH' WHERE id IN (${n});"`,"","Step C: Get the entity SHA (after running analyze-imports in the shared step above):",` sqlite3 .codeyam/db.sqlite3 "SELECT sha FROM entities WHERE file_path = 'PAGE_FILE_PATH' ORDER BY created_at DESC LIMIT 1;"`,"","If no rows appear, the path was wrong — go back to Step A.","","Step D: Set entity_sha and display_name on all scenarios (replace ENTITY_SHA with the SHA from Step C):",` sqlite3 .codeyam/db.sqlite3 "UPDATE editor_scenarios SET entity_sha = 'ENTITY_SHA', display_name = '${t}' WHERE id IN (${n});"`].join(`
42
- `):[`### Component: "${t}" (${s.length} scenario(s))`,"","Step A: Get the entity SHA (after running analyze-imports in the shared step above):",` sqlite3 .codeyam/db.sqlite3 "SELECT sha FROM entities WHERE name = '${t}' ORDER BY created_at DESC LIMIT 1;"`,"","If no rows appear, check that .codeyam/glossary.json contains an entry for this component.","","Step B: Set entity_sha and display_name on all scenarios (replace ENTITY_SHA with the SHA from Step A):",` sqlite3 .codeyam/db.sqlite3 "UPDATE editor_scenarios SET entity_sha = 'ENTITY_SHA', display_name = '${t}' WHERE id IN (${n});"`].join(`
43
- `)}function Pt({name:t,scenarios:s,reason:a="missing"}){var r,o;const n=((r=s[0])==null?void 0:r.componentPath)||((o=s[0])==null?void 0:o.pageFilePath)||null,c=a==="incomplete"?[`The "${t}" entity exists but has not been fully analyzed — its components and functions cannot be displayed.`,"","Follow these steps:","",`Step 1: Check if "${t}" is in the glossary:`,` cat .codeyam/glossary.json | grep "${t}"`,"","If not found, add an entry to .codeyam/glossary.json:",` { "name": "${t}", "filePath": "${n||"FILL_IN_PATH"}", "description": "...", "returnType": "JSX.Element" }`,"","Step 2: Run: codeyam editor analyze-imports","","Step 3: Reload the editor page and verify components/functions appear."].join(`
44
- `):[`The "${t}" ${s.some(l=>!l.componentName)?"page":"component"} is missing entity data in the CodeYam database. Its scenarios are hidden until this is fixed.`,"","IMPORTANT: Do NOT re-register scenarios — that would overwrite their screenshots. Only update the database directly.","","Follow these steps EXACTLY:","","Step 1: Run: codeyam editor analyze-imports","","Step 2: Fix this entity:","",Ft(t,s),"","Step 3: Reload the editor page in the browser and verify the scenarios appear."].join(`
45
- `);return e.jsx(he,{content:c,label:"Copy Fix Prompt",copiedLabel:"Copied!",className:"text-[9px] text-amber-400 hover:text-amber-300 bg-transparent border border-amber-400/30 rounded px-1.5 py-0.5 cursor-pointer transition-colors ml-2"})}function aa({brokenEntities:t}){if(t.length===0)return null;const s=t.reduce((r,o)=>r+o.scenarios.length,0),a=t.filter(r=>r.reason==="incomplete"),n=t.filter(r=>r.reason==="missing"),c=[`${t.length} entities are missing data in the CodeYam database. ${s} total scenario(s) are hidden until this is fixed.`,"","IMPORTANT: Do NOT re-register scenarios — that would overwrite their screenshots. Only update the database directly.","","Follow these steps EXACTLY:","",...a.length>0?["## Step 1: Add missing entries to the glossary","","Read `.codeyam/glossary.json` and check if these entities have entries. For each one that is missing, add an entry:","",...a.map(r=>{var l,m;const o=((l=r.scenarios[0])==null?void 0:l.componentPath)||((m=r.scenarios[0])==null?void 0:m.pageFilePath)||"FILL_IN_PATH";return`- "${r.name}" (filePath: "${o}")`}),"",'Each glossary entry needs: name, filePath, description, returnType (use "JSX.Element" for components/pages).',""]:["## Step 1: No glossary changes needed",""],"## Step 2: Run import analysis"," codeyam editor analyze-imports","",...n.length>0?["## Step 3: Fix missing entity associations","",...n.map(r=>Ft(r.name,r.scenarios)),""]:[],`## Step ${n.length>0?"4":"3"}: Reload the editor page in the browser and verify all scenarios appear.`].join(`
46
- `);return e.jsxs("div",{className:"mb-3 p-2 rounded border border-amber-400/30 bg-amber-400/5",children:[e.jsxs("p",{className:"text-[10px] text-amber-400/80 m-0 leading-relaxed",children:[t.length," ",t.length===1?"entity is":"entities are"," missing data (",s," hidden scenario",s!==1?"s":"","). Copy this prompt into Claude to fix them all at once."]}),e.jsx("div",{className:"mt-1.5",children:e.jsx(he,{content:c,label:"Copy Fix All Prompt",copiedLabel:"Copied!",className:"text-[9px] text-amber-400 hover:text-amber-300 bg-transparent border border-amber-400/30 rounded px-1.5 py-0.5 cursor-pointer transition-colors"})})]})}function na({scenarios:t,entityName:s,entityFilePath:a,entityType:n,onSwitchToBuild:c,onScenarioSelect:r}){const[o,l]=i.useState(!1),[m,v]=i.useState(null),[y,S]=i.useState(""),[g,I]=i.useState(!1),[f,B]=i.useState(null),[O,L]=i.useState(!1),D=i.useCallback(async N=>{if(!(!y.trim()||g)){I(!0);try{(await fetch("/api/editor-rename-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioId:N,name:y.trim()})})).ok&&v(null)}catch{}finally{I(!1)}}},[y,g]),_=i.useCallback(async N=>{if(confirm(`Delete scenario "${N.name}"?`)){B(N.id);try{const M=N.screenshotPaths?Object.values(N.screenshotPaths):N.screenshotPath?[N.screenshotPath]:[];await fetch("/api/delete-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioId:N.id,screenshotPaths:M})})}catch{}finally{B(null)}}},[]);return o?e.jsxs("div",{className:"border border-[#3d3d3d] rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 bg-[#1e1e1e]",children:[e.jsx("span",{className:"text-xs font-medium text-gray-400",children:"Edit Scenarios"}),e.jsx("button",{onClick:()=>{l(!1),v(null)},className:"text-gray-500 hover:text-gray-300 text-xs bg-transparent border-none cursor-pointer",children:"Close"})]}),e.jsx("div",{className:"divide-y divide-[#2d2d2d]",children:t.map(N=>e.jsxs("div",{className:"px-3 py-2 flex items-center gap-2 hover:bg-[#252525] cursor-pointer transition-colors",style:{opacity:f===N.id?.4:1},onClick:()=>{m!==N.id&&r(N)},children:[N.screenshotPath?e.jsx(Le,{scenarioId:N.id,updatedAt:N.updatedAt,alt:"",className:"rounded w-[40px] h-[40px] shrink-0 overflow-hidden",imgClassName:"w-full h-full object-cover"}):e.jsx("div",{className:"rounded bg-[#1e1e1e]",style:{width:40,height:40,flexShrink:0}}),m===N.id?e.jsxs("form",{className:"flex-1 flex items-center gap-1.5 min-w-0",onSubmit:M=>{M.preventDefault(),D(N.id)},children:[e.jsx("input",{type:"text",value:y,onChange:M=>S(M.target.value),className:"flex-1 px-2 py-1 text-xs bg-[#1e1e1e] text-white border border-[#3d3d3d] rounded outline-none focus:border-[#005c75] min-w-0",autoFocus:!0,disabled:g}),e.jsx("button",{type:"submit",disabled:g||!y.trim(),className:"px-2 py-1 text-[10px] bg-[#005c75] text-white rounded hover:bg-[#004d63] disabled:opacity-40 cursor-pointer border-none",children:g?"...":"Save"}),e.jsx("button",{type:"button",onClick:()=>v(null),className:"px-2 py-1 text-[10px] text-gray-400 hover:text-white cursor-pointer bg-transparent border-none",children:"Cancel"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1 text-xs text-gray-300 truncate min-w-0",children:N.name}),e.jsx("button",{onClick:M=>{M.stopPropagation(),v(N.id),S(N.name)},className:"text-[10px] text-gray-500 hover:text-gray-300 cursor-pointer bg-transparent border-none px-1",title:"Rename",children:"Rename"}),e.jsx("button",{onClick:M=>{M.stopPropagation(),_(N)},disabled:f===N.id,className:"text-[10px] text-red-400/60 hover:text-red-400 cursor-pointer bg-transparent border-none px-1",title:"Delete",children:"Delete"})]})]},N.id))}),O?e.jsx(Ks,{prompt:Qs(s,a,n,t),height:500,onClose:()=>L(!1)}):e.jsx("div",{className:"px-3 py-2.5 bg-[#1e1e1e] border-t border-[#2d2d2d] flex justify-center",children:e.jsx("button",{onClick:()=>L(!0),className:"px-5 py-2 text-xs font-medium text-white cursor-pointer bg-[#005c75] hover:bg-[#004d63] border-none rounded-md transition-colors",children:"Modify with Claude"})})]}):e.jsx("div",{className:"flex justify-center",children:e.jsx("button",{onClick:()=>l(!0),className:"px-5 py-2 text-xs font-medium text-gray-300 hover:text-white transition-colors cursor-pointer bg-[#2a2a2a] hover:bg-[#333] border border-[#4a4a4a] hover:border-[#666] rounded-md",children:"Edit Scenarios"})})}function pe({scenarioId:t,updatedAt:s,hasScreenshot:a,imgSrc:n,name:c,isActive:r,onSelect:o}){const l=t&&a,m=!t&&n;return e.jsxs("button",{onClick:o,className:"flex flex-col items-center gap-1 cursor-pointer group w-full",title:c,children:[e.jsx("div",{className:`w-full aspect-square rounded overflow-hidden border-2 transition-all bg-[#1a1a1a] ${r?"border-[#005c75] ring-1 ring-[#005c75]":"border-transparent hover:border-[#4d4d4d]"}`,children:l?e.jsx(Le,{scenarioId:t,updatedAt:s,alt:c,className:"w-full h-full",imgClassName:"w-full h-full object-contain"}):m?e.jsx("img",{src:n,alt:c,className:"w-full h-full object-contain",loading:"lazy"}):e.jsx("div",{className:"w-full h-full bg-[#1a1a1a] flex items-center justify-center",children:e.jsx("span",{className:"text-[8px] text-gray-600",children:"No img"})})}),e.jsx("span",{className:`text-[10px] leading-tight text-center truncate w-full ${r?"text-white":"text-gray-500 group-hover:text-gray-300"}`,children:c})]})}function Pe({filePath:t}){return t?e.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[e.jsxs("a",{href:`/api/editor-file?path=${encodeURIComponent(t)}`,target:"_blank",rel:"noopener noreferrer",title:"Open file",className:"flex items-center gap-1 text-gray-500 hover:text-gray-300 transition-colors min-w-0",children:[e.jsx("span",{className:"text-[9px] truncate",children:t}),e.jsx("svg",{className:"shrink-0",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:e.jsx("path",{d:"M4.5 1.5H2.5C1.95 1.5 1.5 1.95 1.5 2.5V9.5C1.5 10.05 1.95 10.5 2.5 10.5H9.5C10.05 10.5 10.5 10.05 10.5 9.5V7.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e.jsx(he,{content:t,icon:!0,iconSize:10,className:"shrink-0 text-gray-500 hover:text-gray-300 transition-colors"})]}):null}function ra({hasProject:t,scenarios:s,analyzedEntities:a,allEntities:n=[],glossaryFunctions:c=[],glossaryEntries:r=[],projectRoot:o,activeScenarioId:l,onScenarioSelect:m,onAnalyzedScenarioSelect:v,onSwitchToBuild:y,zoomComponent:S,focusedEntity:g,onZoomChange:I,entityImports:f,pageFilePaths:B={},projectTitle:O,projectDescription:L,migrationMode:D="none",migrationState:_,onStartMigration:N,breadcrumbItems:M=[]}){var ee;const{pageGroups:U,componentGroups:p}=i.useMemo(()=>Dt(s),[s]),x=i.useMemo(()=>Zs(U,p),[U,p]),b=i.useMemo(()=>new Set(a.map(E=>E.sha)),[a]),h=i.useMemo(()=>new Set(Object.keys(f||{})),[f]),w=i.useCallback(E=>ea(E,b,n,h),[b,n,h]),k=i.useMemo(()=>ta(U,p,x,w),[U,p,x,w]),T=i.useMemo(()=>a.filter(E=>E.entityType==="visual").sort((E,R)=>E.name.localeCompare(R.name)),[a]),A=i.useMemo(()=>{const E=new Map;for(const R of c)E.set(R.name,R);return E},[c]),C=i.useRef(null),q=i.useRef(0),ue=i.useCallback(()=>{C.current&&(q.current=C.current.scrollTop)},[]);i.useEffect(()=>{C.current&&q.current>0&&(C.current.scrollTop=q.current)});const fe=(g==null?void 0:g.sha)??"overview";if(!t)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0",children:"Ready to build something?"}),e.jsx("button",{onClick:y,className:"px-6 py-3 bg-[#005c75] text-white text-sm font-medium rounded-lg hover:bg-[#004d63] transition-colors cursor-pointer",children:"Start Building"})]})});if(D==="candidate")return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-5 px-8 text-center max-w-[420px]",children:[e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0",children:"Migrate Your Project"}),e.jsx("p",{className:"text-sm text-gray-400 m-0 font-['IBM_Plex_Sans'] leading-relaxed",children:"It looks like you have an existing project. Claude can survey your codebase and systematically migrate it — deconstructing pages into clean components, extracting functions with tests, and creating scenarios. One page per session."}),e.jsx("button",{onClick:N,className:"px-6 py-3 bg-[#005c75] text-white text-sm font-medium rounded-lg hover:bg-[#004d63] transition-colors cursor-pointer",children:"Get Started"}),e.jsx("button",{onClick:y,className:"text-xs text-gray-500 hover:text-gray-300 bg-transparent border-none p-0 cursor-pointer underline",children:"Skip — build a new feature instead"})]})});if(D==="active"&&_){const E=_.pages||[],R=E.filter($=>$.status==="complete").length,J=E.length,V=J>0?Math.round(R/J*100):0;return e.jsxs("div",{className:"flex-1 flex flex-col overflow-auto p-4",children:[e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0 mb-3",children:"Project Migration"}),e.jsxs("div",{className:"mb-4",children:[e.jsx("div",{className:"flex items-center gap-2 mb-1",children:e.jsxs("span",{className:"text-xs text-gray-400 font-['IBM_Plex_Sans']",children:[R,"/",J," pages (",V,"%)"]})}),e.jsx("div",{className:"w-full h-1.5 bg-[#2d2d2d] rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-[#005c75] rounded-full transition-all",style:{width:`${V}%`}})})]}),e.jsx("div",{className:"space-y-1.5",children:E.map(($,se)=>{const ne=$.status==="complete"?"✓":$.status==="in-progress"?"→":"○",G=$.status==="complete"?"text-green-400":$.status==="in-progress"?"text-cyan-400":"text-gray-600";return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-xs ${G} w-3 text-center`,children:ne}),e.jsx("span",{className:`text-xs font-['IBM_Plex_Sans'] ${$.status==="in-progress"?"text-white font-medium":$.status==="complete"?"text-gray-400":"text-gray-600"}`,children:$.name}),e.jsx("span",{className:"text-[10px] text-gray-600",children:$.route}),$.status==="complete"&&e.jsxs("span",{className:"text-[10px] text-gray-600",children:[($.extractedComponents||[]).length,"c"," ",($.extractedFunctions||[]).length,"f"," ",$.scenarioCount||0,"s"]})]},se)})}),(_.sharedComponents||[]).length>0&&e.jsxs("div",{className:"mt-4",children:[e.jsx("h3",{className:"text-xs font-medium text-gray-400 font-['IBM_Plex_Sans'] mb-1.5",children:"Shared Components"}),(_.sharedComponents||[]).map(($,se)=>e.jsxs("div",{className:"text-[10px] text-gray-500 mb-0.5",children:[$.name," ",e.jsxs("span",{className:"text-gray-600",children:["— used in: ",($.usedInPages||[]).join(", ")]})]},se))]}),e.jsx("div",{className:"mt-4",children:e.jsx("button",{onClick:y,className:"px-4 py-2 bg-[#005c75] text-white text-xs font-medium rounded-lg hover:bg-[#004d63] transition-colors cursor-pointer",children:"Continue in Chat"})})]})}if(!(s.length>0||T.length>0))return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-4 px-8 text-center",children:[O?e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0",children:O}),L&&e.jsx("p",{className:"text-sm text-gray-400 m-0 font-['IBM_Plex_Sans'] leading-relaxed",children:L})]}):e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0",children:"Your project is ready"}),e.jsx("p",{className:"text-sm text-gray-400 m-0 font-['IBM_Plex_Sans'] leading-relaxed",children:"Describe what you want to build in the Chat and your pages and components will appear here."}),e.jsx("button",{onClick:y,className:"px-6 py-3 bg-[#005c75] text-white text-sm font-medium rounded-lg hover:bg-[#004d63] transition-colors cursor-pointer",children:"Start Building"})]})});if(g){const E=g.filePath,R=g.name,J=a.some(u=>u.sha===g.sha||u.filePath===E),V=!!((ee=f==null?void 0:f[R])!=null&&ee.length);if(!J&&!V){s.some(F=>F.componentName===R&&F.entitySha===g.sha);const u=s.filter(F=>F.entitySha===g.sha),W=[`The "${g.displayName}" entity (${E}) exists in the database but has not been fully analyzed. Its components and functions cannot be shown until it has import metadata.`,"","Follow these steps:","",`Step 1: Add "${R}" to the glossary if it's not already there:`,` Check: cat .codeyam/glossary.json | grep "${R}"`,"",` If not found, add an entry with name "${R}" and filePath "${E}" to .codeyam/glossary.json`,"","Step 2: Run import analysis:"," codeyam editor analyze-imports","","Step 3: Reload the editor page and verify components/functions appear."].join(`
47
- `);return e.jsx("div",{ref:C,onScroll:ue,className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-4 space-y-3",children:[e.jsx(Ct,{items:M,onNavigate:I}),e.jsx("h2",{className:"text-sm font-semibold text-white m-0 font-['IBM_Plex_Sans'] uppercase tracking-wider",children:g.displayName}),E&&e.jsx(Pe,{filePath:E,projectRoot:o}),e.jsxs("div",{className:"py-2",children:[e.jsx("p",{className:"text-[11px] text-amber-400/80 m-0 leading-relaxed",children:"This entity has not been fully analyzed. Its components and functions cannot be displayed. Please copy and paste this prompt into Claude to fix the data."}),e.jsx("div",{className:"mt-2",children:e.jsx(he,{content:W,label:"Copy Fix Prompt",copiedLabel:"Copied!",className:"text-[10px] text-amber-400 hover:text-amber-300 bg-transparent border border-amber-400/30 rounded px-2 py-1 cursor-pointer transition-colors"})})]}),u.length>0&&e.jsx("div",{className:"grid grid-cols-3 gap-2",children:u.map(F=>e.jsx(pe,{scenarioId:F.id,updatedAt:F.updatedAt,hasScreenshot:!!F.screenshotPath,name:F.name,isActive:F.id===l,onSelect:()=>m(F)},F.id))})]})},fe)}const $=g.sha,se=s.filter(u=>!u.componentName&&(u.pageFilePath===E||$&&u.entitySha===$)),ne=s.filter(u=>u.componentName===R||u.componentPath===E),G=T.find(u=>u.filePath===E||u.name===R),le=A.get(R)||c.find(u=>u.filePath===E),ae=[...se,...ne],re=new Set((f==null?void 0:f[R])||[]),je=V?[...p.entries()].filter(([u])=>re.has(u)):[],Ie=V?T.filter(u=>re.has(u.name)&&!je.some(([W])=>W===u.name)):[],Te=V?r.filter(u=>re.has(u.name)&&u.returnType!=="JSX.Element"&&u.returnType!=="React.ReactNode").map(u=>({name:u.name,filePath:u.filePath,description:u.description||"",testFile:u.testFile,feature:u.feature})):[],be=je.length>0||Ie.length>0,Z=Te.length>0,Y=be||Z;return e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-4 space-y-3",children:[e.jsx(Ct,{items:M,onNavigate:I}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm font-semibold text-white m-0 font-['IBM_Plex_Sans'] uppercase tracking-wider",children:g.displayName}),g.filePath&&e.jsx(Pe,{filePath:g.filePath,projectRoot:o})]}),ae.length>0&&e.jsx("div",{className:"grid grid-cols-3 gap-2",children:ae.map(u=>e.jsx(pe,{scenarioId:u.id,updatedAt:u.updatedAt,hasScreenshot:!!u.screenshotPath,name:u.name,isActive:u.id===l,onSelect:()=>m(u)},u.id))}),G&&(G.scenarios.length>0||G.pendingScenarios.length>0)&&e.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[G.scenarios.map(u=>e.jsx(pe,{imgSrc:u.screenshotPath?`/api/screenshot/${u.screenshotPath}`:null,name:u.name,isActive:!1,onSelect:()=>v({analysisId:G.analysisId,scenarioId:u.id,scenarioName:u.name,entitySha:G.sha,entityName:G.name})},u.id)),G.pendingScenarios.map(u=>e.jsx("div",{className:"px-2.5 py-1 bg-[#2a2a2a] text-gray-400 text-[10px] rounded-full",title:u,children:u},u))]}),le&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[10px] text-gray-500",children:"Tests:"}),e.jsx(Pe,{filePath:le.testFile,projectRoot:o})]}),ae.length===0&&!G&&!le&&e.jsx("div",{className:"text-xs text-gray-500",children:"No scenarios for this entity"}),ae.length>0&&e.jsx(na,{scenarios:ae,entityName:g.displayName,entityFilePath:g.filePath,entityType:g.entityType,onSwitchToBuild:y,onScenarioSelect:m}),Y&&e.jsxs("div",{className:"pt-3 mt-2 border-t border-[#3d3d3d] space-y-3",children:[be&&e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Components"}),je.map(([u,W])=>e.jsx("div",{className:"mt-3",children:x.has(u)?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-1",children:e.jsx("button",{onClick:()=>I(u,x.get(u)),className:"text-[11px] font-medium text-gray-400 cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:u})}),W.length>0&&e.jsx("div",{className:"grid grid-cols-3 gap-2 pt-1",children:W.map(F=>e.jsx(pe,{scenarioId:F.id,updatedAt:F.updatedAt,hasScreenshot:!!F.screenshotPath,name:F.name,isActive:F.id===l,onSelect:()=>m(F)},F.id))})]}):e.jsxs("div",{className:"py-2",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-500",children:u}),e.jsx("p",{className:"text-[10px] text-amber-400/80 m-0 mt-1.5 leading-relaxed",children:"There is data missing that is required to show the scenarios for this component. Please copy and paste this prompt into Claude to ask Claude to fix the data."}),e.jsx("div",{className:"mt-1.5",children:e.jsx(Pt,{name:u,scenarios:W})})]})},u)),Ie.map(u=>e.jsxs("div",{className:"mt-3",children:[e.jsx("div",{className:"py-1",children:e.jsx("button",{onClick:()=>I(u.name,u.sha),className:"text-[11px] font-medium text-gray-400 cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:u.name})}),(u.scenarios.length>0||u.pendingScenarios.length>0)&&e.jsxs("div",{className:"grid grid-cols-3 gap-2 pt-1",children:[u.scenarios.map(W=>e.jsx(pe,{imgSrc:W.screenshotPath?`/api/screenshot/${W.screenshotPath}`:null,name:W.name,isActive:!1,onSelect:()=>v({analysisId:u.analysisId,scenarioId:W.id,scenarioName:W.name,entitySha:u.sha,entityName:u.name})},W.id)),u.pendingScenarios.map(W=>e.jsx("div",{className:"px-2.5 py-1 bg-[#2a2a2a] text-gray-400 text-[10px] rounded-full",title:W,children:W},W))]})]},u.sha))]}),Z&&e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Functions"}),Te.map(u=>e.jsxs("div",{className:"mt-2",children:[e.jsx("div",{className:"py-1",children:e.jsx("button",{onClick:()=>I(u.name,x.get(u.name)),className:"text-[11px] font-medium text-gray-400 cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:u.name})}),e.jsx(Pe,{filePath:u.filePath,projectRoot:o}),u.testFile&&e.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5",children:[e.jsx("span",{className:"text-[9px] text-gray-600",children:"test:"}),e.jsx("span",{className:"text-[9px] text-gray-500 truncate",children:u.testFile})]})]},u.name))]})]})]})})}return e.jsx("div",{ref:C,onScroll:ue,className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-4 space-y-4",children:[O&&e.jsxs("div",{children:[e.jsx("h2",{className:"text-base font-semibold text-white m-0 font-['IBM_Plex_Sans']",children:O}),L&&e.jsx("p",{className:"text-xs text-gray-400 m-0 mt-1 font-['IBM_Plex_Sans'] leading-relaxed",children:L})]}),k.length>1&&e.jsx(aa,{brokenEntities:k}),U.size>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Application"}),e.jsx("button",{onClick:y,className:"px-2.5 py-1 text-[10px] font-medium text-gray-400 bg-[#2a2a2a] border border-[#4d4d4d] rounded hover:bg-[#333] hover:text-white hover:border-[#005c75] transition-colors cursor-pointer",children:"+ New Page"})]}),e.jsxs("p",{className:"text-[11px] text-gray-500 m-0 mt-1.5 font-['IBM_Plex_Sans'] leading-relaxed",children:["Select a page scenario below and switch to"," ",e.jsx("button",{onClick:y,className:"text-[#00a0c4] hover:text-[#00c4eb] bg-transparent border-none p-0 cursor-pointer underline font-inherit text-inherit",children:"Build"})," ","to change or enhance an existing page or"," ",e.jsx("button",{onClick:y,className:"text-[#00a0c4] hover:text-[#00c4eb] bg-transparent border-none p-0 cursor-pointer underline font-inherit text-inherit",children:"create a new page"})]}),[...U.entries()].sort(([E],[R])=>E==="Home"?-1:R==="Home"?1:E.localeCompare(R)).map(([E,R])=>{var J,V;return e.jsx("div",{className:"mt-2",children:x.has(E)&&w(x.get(E))?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-1",children:e.jsx("button",{onClick:()=>I(E,x.get(E)),className:"text-[11px] font-medium text-gray-400 cursor-pointer hover:text-white transition-colors bg-transparent border-none p-0",children:E})}),(((J=R[0])==null?void 0:J.pageFilePath)||B[E])&&e.jsx(Pe,{filePath:((V=R[0])==null?void 0:V.pageFilePath)||B[E],projectRoot:o}),e.jsx("div",{className:"grid grid-cols-3 gap-2 pt-1",children:R.map($=>e.jsx(pe,{scenarioId:$.id,updatedAt:$.updatedAt,hasScreenshot:!!$.screenshotPath,name:$.name,isActive:$.id===l,onSelect:()=>m($)},$.id))})]}):e.jsxs("div",{className:"py-2",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-500",children:E}),e.jsx("p",{className:"text-[10px] text-amber-400/80 m-0 mt-1.5 leading-relaxed",children:"There is data missing that is required to show the scenarios for this page. Please copy and paste this prompt into Claude to ask Claude to fix the data."}),e.jsx("div",{className:"mt-1.5",children:e.jsx(Pt,{name:E,scenarios:R,reason:x.has(E)?"incomplete":"missing"})})]})},E)})]})]})},fe)}const Et={new:0,edited:1,impacted:2};function Mt({status:t,onClick:s}){const a={new:{label:"New",bg:"bg-green-100",text:"text-green-700",border:"border-green-200"},edited:{label:"Edited",bg:"bg-blue-100",text:"text-blue-700",border:"border-blue-200"},impacted:{label:"Impacted",bg:"bg-amber-100",text:"text-amber-700",border:"border-amber-200"}}[t.status],n=s&&(t.status==="edited"||t.status==="impacted");return e.jsx("button",{onClick:n?s:void 0,className:`${a.bg} ${a.text} ${a.border} border text-[9px] font-bold px-1.5 py-0.5 rounded-full uppercase tracking-wider shrink-0 ${n?"cursor-pointer hover:opacity-80 transition-opacity":"cursor-default"}`,children:a.label})}function It({filePath:t}){const[s,a]=i.useState(null),[n,c]=i.useState(!0),[r,o]=i.useState(null);return i.useEffect(()=>{Xe(()=>import("./index-Blo6EK8G.js"),__vite__mapDeps([0,1,2])).then(l=>{o(()=>l.default)})},[]),i.useEffect(()=>{c(!0),fetch(`/api/editor-file-diff?path=${encodeURIComponent(t)}`).then(l=>l.json()).then(l=>{a({oldContent:l.oldContent,newContent:l.newContent})}).catch(()=>{a(null)}).finally(()=>c(!1))},[t]),n?e.jsx("div",{className:"p-2 text-[10px] text-gray-400",children:"Loading diff..."}):!s||!r?e.jsx("div",{className:"p-2 text-[10px] text-gray-400",children:"Could not load diff"}):e.jsx("div",{className:"mt-2 border border-gray-200 rounded-lg overflow-hidden max-h-[300px] overflow-auto text-xs",children:e.jsx(r,{oldValue:s.oldContent,newValue:s.newContent,splitView:!1,useDarkTheme:!1,showDiffOnly:!0,styles:{contentText:{fontSize:"11px",lineHeight:"1.4"},line:{padding:"1px 8px",fontSize:"11px"}}})})}function Tt({impactedBy:t,changedEntities:s}){return e.jsx("div",{className:"mt-2 bg-amber-50 border border-amber-200 rounded-lg p-2.5",children:t&&t.length>0?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-[10px] font-semibold text-amber-700 uppercase tracking-wider",children:"Re-captured because these dependencies changed"}),e.jsx("ul",{className:"mt-1.5 space-y-1",children:t.map(a=>e.jsxs("li",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`text-[9px] font-bold px-1 py-0 rounded-full uppercase tracking-wider border ${a.changeType==="new"?"bg-green-100 text-green-700 border-green-200":"bg-blue-100 text-blue-700 border-blue-200"}`,children:a.changeType==="new"?"New":"Edited"}),e.jsx("span",{className:"text-[11px] font-medium text-amber-800",children:a.name}),e.jsx("span",{className:"text-[9px] text-amber-500 truncate",children:a.filePath})]},a.filePath))})]}):s&&s.length>0?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-[10px] font-semibold text-amber-700 uppercase tracking-wider",children:"Unchanged — these entities were modified in this session"}),e.jsx("ul",{className:"mt-1.5 space-y-1",children:s.map(a=>e.jsxs("li",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`text-[9px] font-bold px-1 py-0 rounded-full uppercase tracking-wider border ${a.status==="new"?"bg-green-100 text-green-700 border-green-200":"bg-blue-100 text-blue-700 border-blue-200"}`,children:a.status==="new"?"New":"Edited"}),e.jsx("span",{className:"text-[11px] font-medium text-amber-800",children:a.name})]},a.name))})]}):e.jsx("span",{className:"text-[10px] text-amber-600",children:"This component was re-captured because a dependency changed"})})}function Rt({scenarioId:t,name:s,isActive:a,onSelect:n,updatedAt:c}){const r=i.useRef(null);return i.useEffect(()=>{a&&r.current&&r.current.scrollIntoView({block:"nearest",behavior:"smooth"})},[a]),e.jsxs("button",{ref:r,onClick:n,className:"flex flex-col items-center gap-1.5 cursor-pointer group",title:s,children:[e.jsx("div",{className:`w-32 h-32 rounded-lg overflow-hidden border-2 transition-all ${a?"border-[#0ea5e9] ring-2 ring-[#0ea5e9]/40 shadow-lg shadow-[#0ea5e9]/20":"border-gray-200 hover:border-gray-400 shadow-sm"}`,children:e.jsx(Le,{scenarioId:t,updatedAt:c,alt:s,className:"w-full h-full bg-white",imgClassName:"w-full h-full object-contain bg-white"})}),e.jsx("span",{className:`text-[11px] leading-tight text-center truncate w-32 font-medium ${a?"text-gray-900":"text-gray-600 group-hover:text-gray-900"}`,children:s})]})}function ia({filePath:t}){return t?e.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[e.jsxs("a",{href:`/api/editor-file?path=${encodeURIComponent(t)}`,target:"_blank",rel:"noopener noreferrer",title:"Open file",className:"flex items-center gap-1 text-gray-400 hover:text-gray-600 transition-colors min-w-0",children:[e.jsx("span",{className:"text-[9px] truncate",children:t}),e.jsx("svg",{className:"shrink-0",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:e.jsx("path",{d:"M4.5 1.5H2.5C1.95 1.5 1.5 1.95 1.5 2.5V9.5C1.5 10.05 1.95 10.5 2.5 10.5H9.5C10.05 10.5 10.5 10.05 10.5 9.5V7.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e.jsx(he,{content:t,icon:!0,iconSize:10,className:"shrink-0 text-gray-400 hover:text-gray-600 transition-colors"})]}):null}function oa({testFile:t,entityName:s}){const{results:a,isRunning:n,runTests:c}=Qe(t);if(n&&!a)return e.jsxs("div",{className:"pt-1 flex items-center gap-1.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#0ea5e9] animate-pulse"}),e.jsx("span",{className:"text-[10px] text-gray-400",children:"Running tests..."})]});if(!a)return null;if(a.status==="error")return e.jsx("div",{className:"pt-1",children:e.jsx("span",{className:"text-[10px] text-red-500",children:a.errorMessage})});const r=s?a.testCases.filter(m=>m.fullName.startsWith(s)):a.testCases,o=r.length>0?r:a.testCases;if(o.length===0)return null;const l=s?`${s} > `:"";return e.jsxs("div",{className:"pt-1 space-y-0.5",children:[o.map(m=>{var y;const v=l&&m.fullName.startsWith(l)?m.fullName.slice(l.length):m.fullName;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[m.status==="passed"?e.jsx("span",{className:"text-green-600 text-[10px]",children:"✓"}):m.status==="failed"?e.jsx("span",{className:"text-red-500 text-[10px]",children:"✗"}):e.jsx("span",{className:"text-gray-400 text-[10px]",children:"—"}),e.jsx("span",{className:`text-[10px] ${m.status==="passed"?"text-green-600":m.status==="failed"?"text-red-500":"text-gray-400"}`,children:v})]}),m.status==="failed"&&((y=m.failureMessages)==null?void 0:y.map((S,g)=>e.jsx("div",{className:"pl-4 text-[9px] text-red-400 truncate max-w-full",title:S,children:S.split(`
48
- `)[0]},g)))]},m.fullName)}),e.jsx("button",{onClick:c,disabled:n,className:"mt-1 text-[10px] text-[#0ea5e9] hover:text-[#38bdf8] transition-colors cursor-pointer disabled:opacity-50 bg-transparent border-none p-0",children:n?"Running...":"Re-run"})]})}function $t(t){const s=t.indexOf(" - ");return s!==-1?t.slice(s+3):t}function At(t,s){return!s||Object.keys(s).length===0?t:[...t].sort(([a],[n])=>{var l,m;const c=((l=s[a])==null?void 0:l.status)||"impacted",r=((m=s[n])==null?void 0:m.status)||"impacted",o=(Et[c]??2)-(Et[r]??2);return o!==0?o:a.localeCompare(n)})}function la({scenarios:t,allScenarios:s=[],glossaryFunctions:a=[],projectRoot:n,activeScenarioId:c,onScenarioSelect:r,onClose:o,entityChangeStatus:l={},modifiedFiles:m=[],featureName:v,userPrompt:y}){const S=i.useMemo(()=>{if(s.length===0||Object.keys(l).length===0)return t;const x=new Set(t.map(h=>h.id)),b=s.filter(h=>{var k,T;if(x.has(h.id))return!1;const w=h.componentName||h.displayName||((k=h.pageFilePath)!=null&&k.startsWith("app/")?Me(Ee(h.pageFilePath)):_e(h.url));return((T=l[w])==null?void 0:T.status)==="impacted"});return b.length===0?t:[...t,...b]},[t,s,l]),g=i.useMemo(()=>Object.entries(l).filter(([,x])=>x.status==="new"||x.status==="edited").map(([x,b])=>({name:x,status:b.status})),[l]),[I,f]=i.useState(null),B=i.useCallback(x=>{f(b=>b===x?null:x)},[]),{pageGroups:O,componentGroups:L}=i.useMemo(()=>Dt(S),[S]),D=i.useMemo(()=>At([...O.entries()],l),[O,l]),_=i.useMemo(()=>At([...L.entries()],l),[L,l]),N=D,M=_,U=i.useMemo(()=>As(a,l),[a,l]),p=i.useMemo(()=>{const x=[];for(const[,b]of N)x.push(...b);for(const[,b]of M)x.push(...b);return x},[N,M]);return i.useEffect(()=>{if(p.length===0)return;const x=b=>{var T;if(b.key!=="ArrowLeft"&&b.key!=="ArrowRight")return;const h=(T=b.target)==null?void 0:T.tagName;if(h==="INPUT"||h==="TEXTAREA"||h==="SELECT")return;b.preventDefault();const w=p.findIndex(A=>A.id===c);let k;b.key==="ArrowLeft"?k=w<=0?p.length-1:w-1:k=w>=p.length-1?0:w+1,r(p[k])};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[p,c,r]),S.length===0&&a.length===0?e.jsxs("div",{className:"h-full bg-white flex items-center justify-center relative",children:[e.jsx("button",{onClick:o,className:"absolute top-2 right-3 text-gray-400 hover:text-gray-700 text-lg leading-none cursor-pointer bg-transparent border-none",title:"Close results",children:"×"}),e.jsx("span",{className:"text-sm text-gray-400",children:"No scenarios registered yet"})]}):e.jsxs("div",{className:"h-full bg-white flex flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-b border-gray-200 shrink-0",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Working Session Results"}),v&&e.jsx("div",{className:"text-[11px] text-gray-400 truncate",title:v,children:v})]}),e.jsx("button",{onClick:o,className:"text-gray-400 hover:text-gray-700 text-lg leading-none cursor-pointer bg-transparent border-none shrink-0",title:"Close results",children:"×"})]}),y&&e.jsx(Lt,{text:y,theme:"light"}),e.jsx("div",{className:"flex-1 overflow-auto p-4",children:e.jsxs("div",{className:"space-y-5",children:[N.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"mb-2",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Application"})}),e.jsx("div",{className:"space-y-3 pl-1",children:N.map(([x,b])=>{var T;const h=l[x],w=I===x,k=(T=b[0])==null?void 0:T.componentPath;return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1.5 flex items-center gap-2",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-600",children:x}),h&&e.jsx(Mt,{status:h,onClick:()=>B(x)})]}),w&&(h==null?void 0:h.status)==="edited"&&k&&e.jsx(It,{filePath:k}),w&&(h==null?void 0:h.status)==="impacted"&&e.jsx(Tt,{impactedBy:h.impactedBy,changedEntities:g}),e.jsx("div",{className:"flex flex-wrap gap-3",children:b.map(A=>e.jsx(Rt,{scenarioId:A.id,name:$t(A.name),isActive:A.id===c,onSelect:()=>r(A),updatedAt:A.updatedAt},A.id))})]},x)})})]}),M.length>0&&e.jsxs("div",{className:N.length>0?"pt-3 border-t border-gray-200":"",children:[e.jsx("div",{className:"mb-2",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Components"})}),e.jsx("div",{className:"space-y-3 pl-1",children:M.map(([x,b])=>{var T;const h=l[x],w=I===x,k=(T=b[0])==null?void 0:T.componentPath;return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1.5 flex items-center gap-2",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-600",children:x}),h&&e.jsx(Mt,{status:h,onClick:()=>B(x)})]}),w&&(h==null?void 0:h.status)==="edited"&&k&&e.jsx(It,{filePath:k}),w&&(h==null?void 0:h.status)==="impacted"&&e.jsx(Tt,{impactedBy:h.impactedBy,changedEntities:g}),e.jsx("div",{className:"flex flex-wrap gap-3",children:b.map(A=>e.jsx(Rt,{scenarioId:A.id,name:$t(A.name),isActive:A.id===c,onSelect:()=>r(A),updatedAt:A.updatedAt},A.id))})]},x)})})]}),U.length>0&&e.jsxs("div",{className:N.length>0||M.length>0?"pt-3 border-t border-gray-200":"",children:[e.jsx("div",{className:"mb-2",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"Functions"})}),e.jsx("div",{className:"space-y-2 pl-1",children:U.map(x=>e.jsxs("div",{children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsx("span",{className:"text-[11px] font-medium text-gray-700",children:x.name})}),e.jsx(ia,{filePath:x.filePath,projectRoot:n}),x.testFile?e.jsx(oa,{testFile:x.testFile,entityName:x.name}):e.jsx("div",{className:"pt-1",children:e.jsx("span",{className:"text-[10px] text-gray-400",children:"No test file"})})]},x.name))})]}),m.length>0&&e.jsxs("div",{className:N.length>0||M.length>0||U.length>0?"pt-3 border-t border-gray-200":"",children:[e.jsx("div",{className:"mb-2",children:e.jsxs("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:["Modified Files (",m.length,")"]})}),e.jsx("div",{className:"space-y-0.5 pl-1 max-h-[200px] overflow-auto",children:m.map(x=>e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`text-[9px] font-bold uppercase w-[14px] text-center ${x.status==="added"||x.status==="untracked"?"text-green-600":x.status==="modified"?"text-blue-600":x.status==="renamed"?"text-purple-600":"text-gray-400"}`,children:x.status==="added"||x.status==="untracked"?"A":x.status==="modified"?"M":x.status==="renamed"?"R":"?"}),e.jsx("span",{className:"text-[10px] text-gray-500 truncate font-mono",children:x.path})]},x.path))})]})]})})]})}const ca=[{key:"app",label:"App"},{key:"build",label:"Build"},{key:"data",label:"Structure"},{key:"journal",label:"Journal"}];function da({activeTab:t,onTabChange:s,buildIdle:a,panelLayout:n,onToggleExpand:c}){return e.jsxs("div",{className:"bg-[#3d3d3d] h-10 flex items-center px-3 gap-3 shrink-0 z-20 border-b border-[#2d2d2d]",children:[e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsx("img",{src:Rs,alt:"CodeYam",className:"h-5 brightness-0 invert"}),e.jsx("span",{className:"text-white font-medium text-xs whitespace-nowrap",children:"Codeyam Editor"})]}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsx("div",{className:"flex items-center gap-0.5 bg-[#4a3232] rounded-lg p-0.5",children:ca.map(r=>e.jsxs("button",{onClick:()=>s(r.key),className:`px-2.5 py-1 text-xs font-medium rounded-md transition-colors cursor-pointer ${t===r.key?"bg-[#7a4444] text-white":"text-gray-300 hover:text-white"}`,children:[r.label,r.key==="build"&&a&&t!=="build"&&e.jsx("span",{className:"ml-1 inline-block w-1.5 h-1.5 rounded-full bg-amber-400 animate-pulse"})]},r.key))}),c&&e.jsx("button",{onClick:c,className:"p-1.5 rounded text-gray-400 hover:text-white transition-colors cursor-pointer",title:n==="editor-only"?"Show preview":"Hide preview",children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:n==="editor-only"?e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e.jsx("path",{d:"M9 3v18"}),e.jsx("path",{d:"M16 15l-3-3 3-3"})]}):e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e.jsx("path",{d:"M9 3v18"}),e.jsx("path",{d:"M14 9l3 3-3 3"})]})})})]})]})}function ma({preview:t,onDismiss:s,onLoadCommit:a}){return e.jsxs("div",{className:"flex flex-col items-center gap-6 max-w-[700px] w-full",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h2",{className:"text-lg font-semibold text-[#333] m-0 font-['IBM_Plex_Sans']",children:"Journal Screenshot"}),e.jsx("p",{className:"text-sm text-[#888] mt-1 m-0 font-['IBM_Plex_Sans']",children:"This is a snapshot from a previous version — not a live preview"})]}),e.jsx("div",{className:"rounded-lg overflow-hidden border-2 border-[#ccc] shadow-md max-w-full w-fit",children:e.jsx("img",{src:t.screenshotUrl,alt:t.scenarioName,className:"max-w-full h-auto block"})}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[#666]",children:[t.commitSha&&e.jsx("span",{className:"font-mono text-xs text-[#00a0c4] bg-[#00a0c4]/15 px-2 py-0.5 rounded",children:t.commitSha.slice(0,7)}),e.jsxs("span",{className:"truncate",children:[t.scenarioName,t.commitMessage&&` — ${t.commitMessage}`]})]}),e.jsx("div",{className:"flex items-center gap-3",children:t.commitSha&&a&&e.jsx(xa,{commitSha:t.commitSha,onLoadCommit:a})})]})}function xa({commitSha:t,onLoadCommit:s}){const[a,n]=i.useState(!1),[c,r]=i.useState(null);return e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>{n(!0),r(null),s(t).then(o=>{o.success||r(o.error||"Failed to load commit")}).catch(o=>{r(o instanceof Error?o.message:"Network error")}).finally(()=>n(!1))},disabled:a,className:"bg-[#005c75] hover:bg-[#004d63] disabled:opacity-50 text-white text-sm font-medium px-4 py-1.5 rounded transition-colors cursor-pointer",children:a?"Reverting...":"Revert to this code and load this version"}),c&&e.jsx("div",{className:"bg-red-50 border border-red-200 rounded px-4 py-2 text-sm text-red-600 w-full text-center",children:c})]})}function pa({analysisId:t,scenarioId:s,scenarioName:a,entityName:n,projectSlug:c,onStateChange:r}){const{interactiveServerUrl:o,isStarting:l,isLoading:m}=$s({analysisId:t,scenarioId:s,scenarioName:a,entityName:n,projectSlug:c,enabled:!0});return i.useEffect(()=>{r(o,l||m)},[o,l,m,r]),null}function ha({onSaveToCurrent:t,onSaveAsNew:s,onDismiss:a,isSaving:n}){return e.jsxs("div",{className:"flex items-center justify-between px-4 py-1.5 bg-emerald-900/60 border-b border-emerald-700/50 text-emerald-200 text-xs",children:[e.jsx("span",{className:"font-medium",children:"Data modified."}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{onClick:t,disabled:n,className:"px-2.5 py-0.5 bg-emerald-600 hover:bg-emerald-500 disabled:opacity-50 text-white text-xs font-medium rounded transition-colors cursor-pointer disabled:cursor-not-allowed",children:n?"Saving...":"Save to Scenario"}),e.jsx("button",{onClick:s,disabled:n,className:"px-2.5 py-0.5 bg-emerald-800 hover:bg-emerald-700 disabled:opacity-50 text-emerald-200 text-xs font-medium rounded transition-colors cursor-pointer disabled:cursor-not-allowed",children:"Save as New"}),e.jsx("button",{onClick:a,disabled:n,className:"text-emerald-400 hover:text-emerald-200 disabled:opacity-50 transition-colors cursor-pointer disabled:cursor-not-allowed",title:"Dismiss",children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})}function ua(t,s){return s.status==="error"?{url:null,proxyUrl:null,isStarting:!1,error:s.errorMessage||"Dev server crashed",canStartServer:t.canStartServer,autoStartAttempted:t.autoStartAttempted,shouldAutoStart:!1}:s.url?{url:s.url,proxyUrl:s.proxyUrl||null,isStarting:!1,error:null,canStartServer:!0,autoStartAttempted:t.autoStartAttempted,shouldAutoStart:!1}:s.status==="starting"?{...t,isStarting:!0,error:null,canStartServer:!0,shouldAutoStart:!1}:s.status==="stopped"?t.url?{...t,url:null,isStarting:!1,shouldAutoStart:!1}:t.autoStartAttempted?{...t,isStarting:!1,shouldAutoStart:!1}:{...t,autoStartAttempted:!0,shouldAutoStart:!0}:{...t,shouldAutoStart:!1}}function fa(t){const[s,a]=i.useState({url:null,proxyUrl:null,isStarting:!1,error:null,canStartServer:!0,autoStartAttempted:!1}),n=i.useRef(s);n.current=s,i.useEffect(()=>{let o=!1,l=null;const m=async()=>{try{const v=await fetch("/api/editor-dev-server");if(o)return;const y=await v.json(),S=ua(n.current,y),{shouldAutoStart:g,...I}=S;if(a(I),g&&!(t!=null&&t.skipAutoStart))try{const f=await fetch("/api/editor-dev-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start"})});if(o)return;f.ok?a(B=>({...B,isStarting:!0})):a(B=>({...B,canStartServer:!1}))}catch{}}catch{}};return m(),l=setInterval(()=>void m(),2e3),()=>{o=!0,l&&clearInterval(l)}},[s.url]);const c=i.useCallback(()=>{a(o=>({...o,error:null,isStarting:!0})),fetch("/api/editor-dev-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"restart"})}).catch(()=>{})},[]),r=i.useCallback(()=>{a(o=>({...o,error:null,isStarting:!0})),fetch("/api/editor-dev-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start"})}).catch(()=>{})},[]);return{devServerUrl:s.url,proxyUrl:s.proxyUrl,isStarting:s.isStarting,error:s.error,canStartServer:s.canStartServer,retryServer:c,startServer:r}}function ga(t){const s=i.useRef(null),a=i.useRef(null);i.useEffect(()=>{if(typeof document>"u")return;a.current||(a.current=document.createElement("canvas"),a.current.width=64,a.current.height=64);const n=document.querySelector('link[rel="icon"]');if(!n)return;if(s.current||(s.current=n.href),!t){n.href=s.current;return}const c=new Image;c.crossOrigin="anonymous",c.onload=()=>{const r=a.current,o=r.getContext("2d");o.clearRect(0,0,64,64);const l=56,m=(64-l)/2;o.drawImage(c,m,m,l,l);const v=12,y=64-v-1,S=v+1;o.beginPath(),o.arc(y,S,v+3,0,2*Math.PI),o.fillStyle="#ffffff",o.fill(),o.beginPath(),o.arc(y,S,v,0,2*Math.PI),o.fillStyle="#ef4444",o.fill(),n.href=r.toDataURL("image/png")},c.src=s.current},[t]),i.useEffect(()=>()=>{if(typeof document>"u")return;const n=document.querySelector('link[rel="icon"]');n&&s.current&&(n.href=s.current)},[])}function Ta({currentUrl:t,nextUrl:s,formMethod:a,defaultShouldRevalidate:n}){return a||t.pathname===s.pathname?n:t.pathname.startsWith("/editor")&&s.pathname.startsWith("/editor")?!1:n}const Ra=()=>[{title:"Editor - CodeYam"},{name:"description",content:"CodeYam Code + Data Editor"}];class ja extends i.Component{constructor(){super(...arguments);yt(this,"state",{error:null,errorInfo:null})}static getDerivedStateFromError(a){return{error:a,errorInfo:null}}componentDidCatch(a,n){console.error("[EditorErrorBoundary] Error:",a.message),console.error("[EditorErrorBoundary] Component stack:",n.componentStack),console.error("[EditorErrorBoundary] Loader snapshot:",JSON.stringify(this.props.loaderSnapshot,null,2)),this.setState({errorInfo:n})}render(){var a;return this.state.error?e.jsx("div",{className:"fixed inset-0 bg-[#1e1e1e] flex items-center justify-center p-8",children:e.jsxs("div",{className:"max-w-[600px] w-full space-y-4",children:[e.jsx("h2",{className:"text-lg font-semibold text-red-400 font-['IBM_Plex_Sans'] m-0",children:"Something went wrong"}),e.jsx("pre",{className:"text-xs text-gray-300 bg-[#2d2d2d] p-3 rounded overflow-auto max-h-[120px]",children:this.state.error.message}),((a=this.state.errorInfo)==null?void 0:a.componentStack)&&e.jsxs("details",{className:"text-xs text-gray-500",children:[e.jsx("summary",{className:"cursor-pointer hover:text-gray-300 transition-colors",children:"Component stack"}),e.jsx("pre",{className:"mt-2 bg-[#2d2d2d] p-3 rounded overflow-auto max-h-[200px] text-yellow-300",children:this.state.errorInfo.componentStack})]}),e.jsx("p",{className:"text-xs text-gray-500 m-0",children:"Full diagnostics are in the browser console."}),e.jsx("button",{onClick:()=>window.location.reload(),className:"px-4 py-2 bg-[#005c75] text-white text-sm rounded hover:bg-[#004d63] transition-colors cursor-pointer",children:"Reload"})]})}):this.props.children}}const $a=hs(function(){const{projectSlug:s,projectRoot:a,hasProject:n,scenarios:c,allScenarios:r,analyzedEntities:o,allEntities:l,glossaryFunctions:m,glossaryEntries:v,entityImports:y,pageFilePaths:S,entityChangeStatus:g,modifiedFiles:I,featureName:f,userPrompt:B,projectTitle:O,projectDescription:L,defaultScreenSize:D,screenSizes:_,editorStep:N,editorStepLabel:M,claudeSessionId:U,focusedEntitySha:p,newerEntitySha:x,focusedEntity:b,migrationMode:h,migrationState:w}=us(),[k,T]=fs(),A=gs(),C=i.useRef(null),q=i.useRef(null),ue=i.useRef(null),[fe,ge]=i.useState(p);i.useEffect(()=>{ge(p)},[p]);const ee=i.useMemo(()=>sa(fe,l,r),[fe,l,r]),E=(ee==null?void 0:ee.displayName)??void 0,R=k.get("scenario")||void 0,[J,V]=i.useState(()=>E?[E]:[]),$=i.useRef(null),se=i.useRef([]),ne=i.useRef(null);i.useEffect(()=>{var H;const d=R||((H=Ns(r))==null?void 0:H.id);if(!ws(d,$.current))return;const j=r.find(Q=>Q.id===d);if(!j)return;$.current=d;const P=qe(j,se.current,ne.current);P&&ce(P);const z=Ye(j.name);fetch("/api/editor-switch-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioSlug:z,scenarioId:j.id,scenarioName:j.name,scenarioType:j.type})}).catch(()=>{})},[R,r]),i.useEffect(()=>{const d=new BroadcastChannel("codeyam-editor");return d.onmessage=j=>{var P;if(((P=j.data)==null?void 0:P.type)==="switch-scenario"&&j.data.scenarioId){const z=j.data.scenarioId,H=r.find(xe=>xe.id===z);if(!H)return;$.current=z;const Q=new URLSearchParams(k);Q.set("scenario",z),Q.delete("zoom"),T(Q),u(null),F(null),ie(null),ve(!0);const ke=Ye(H.name);fetch("/api/editor-switch-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioSlug:ke,scenarioId:z,scenarioType:H.type})}).then(()=>{Z(!1),$e(xe=>xe+1)}).catch(()=>{ve(!1)})}},()=>d.close()},[k,T,r]),i.useEffect(()=>{if(k.get("ref")!=="link"||!R)return;const d=new BroadcastChannel("codeyam-editor");d.postMessage({type:"switch-scenario",scenarioId:R}),d.close(),window.close()},[]);const{devServerUrl:G,proxyUrl:le,isStarting:ae,error:re,canStartServer:je,retryServer:Ie,startServer:Te}=fa({skipAutoStart:h==="candidate"||h==="active"}),[be,Z]=i.useState(!1),[Y,u]=i.useState(null),[W,F]=i.useState(null),[De,Ze]=i.useState(!1),[Fe,ie]=i.useState(null),Bt=i.useCallback(async d=>{const P=await(await fetch("/api/editor-load-commit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commitSha:d})})).json();return P.success&&(ie(null),Z(!1)),P},[]),Ot=i.useCallback((d,j)=>{F(P=>(d&&d!==P&&Z(!1),d)),!j&&d&&Z(!0),Ze(j)},[]),et=i.useCallback(d=>{ie(null),u(P=>(P&&P.analysisId===d.analysisId||(F(null),$e(H=>H+1)),d)),Ze(!0),Z(!1);const j=new URLSearchParams(k);j.delete("scenario"),j.delete("zoom"),T(j)},[k,T]),[K,ce]=i.useState(D?{name:D.name,width:D.width,height:D.height}:{name:"Desktop",width:1440,height:900}),[tt,st]=i.useState(!1),at=D?{name:D.name,width:D.width,height:D.height}:null;ne.current=at;const nt=js(),X=i.useMemo(()=>{const d=nt.pathname.split("/").filter(Boolean),j=d[d.length-1];return j==="build"||j==="journal"?j:j==="structure"?"data":"app"},[nt.pathname]),te=i.useCallback(d=>{ge(null),V([]);const j=d==="app"?"":`/${d==="data"?"structure":d}`,P=k.get("scenario"),z=P?`?scenario=${P}`:"";A(`/editor${j}${z}`)},[A,k]),zt=i.useCallback(()=>{te("build"),de(!0)},[te]),Wt=i.useCallback(()=>{te("build"),de(!0),setTimeout(()=>{var d;(d=C.current)==null||d.sendInput("codeyam editor migrate")},300)},[te]),[Ut,de]=i.useState(X==="build"),Ht=!!(f&&N),[Re,Jt]=i.useState(Ht?"pending":"no-session");i.useEffect(()=>{Re==="pending"&&(te("build"),de(!0))},[Re,te]);const Vt=i.useCallback(()=>{Jt("continue")},[]),[Be,Oe]=i.useState(!1),[Gt,rt]=i.useState(!1),qt=i.useCallback(d=>{Oe(d),d&&rt(!1)},[]);ga(Be);const[ye,it]=i.useState("split"),[ze,ot]=i.useState(!1),Yt=i.useCallback(()=>{ot(!0),te("build"),de(!0)},[te]),lt=i.useCallback(()=>{ot(!1)},[]),Kt=i.useCallback(d=>{ce(d),fetch("/api/editor-project-info",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultScreenSize:d,skipBroadcast:!0})})},[]),[ct,dt]=i.useState(Ss);i.useEffect(()=>{const d=ks();dt(d),d.systemNotification&&typeof Notification<"u"&&Notification.permission==="default"&&Notification.requestPermission()},[]);const Xt=i.useCallback(d=>{dt(d),Cs(d)},[]);i.useEffect(()=>{if(X==="build"){Oe(!1);const d=setTimeout(()=>{var j,P;(j=C.current)==null||j.scrollToBottom(),(P=C.current)==null||P.focus()},50);return()=>clearTimeout(d)}},[X]),i.useEffect(()=>{function d(){!document.hidden&&X==="build"&&Oe(!1)}return document.addEventListener("visibilitychange",d),()=>document.removeEventListener("visibilitychange",d)},[X]);const[We,Qt]=i.useState(null);i.useEffect(()=>{const d=ue.current;if(!d)return;const j=new ResizeObserver(P=>{const z=P[0];z&&Qt({width:z.contentRect.width,height:z.contentRect.height})});return j.observe(d),()=>j.disconnect()},[]);const me=i.useMemo(()=>We?Ps(We,K):1,[We,K]),[Ue,$e]=i.useState(0),[mt,He]=i.useState(null),[xt,ve]=i.useState(!1),[Zt,Ne]=i.useState(!1),[es,pt]=i.useState(!1),ts=i.useCallback(()=>{Ne(!0)},[]);i.useEffect(()=>{const d=j=>{var P;((P=j.data)==null?void 0:P.type)==="codeyam-localstorage-changed"&&Ne(!0)};return window.addEventListener("message",d),()=>window.removeEventListener("message",d)},[]);const ht=i.useCallback(async d=>{pt(!0);try{let j;const P=q.current;P!=null&&P.contentWindow&&(j=await new Promise(Q=>{const ke=setTimeout(()=>Q(void 0),2e3),xe=jt=>{var bt;((bt=jt.data)==null?void 0:bt.type)==="codeyam-localstorage-state"&&(clearTimeout(ke),window.removeEventListener("message",xe),Q(jt.data.data))};window.addEventListener("message",xe),P.contentWindow.postMessage({type:"codeyam-get-localstorage"},"*")}));const H=await(await fetch("/api/editor-save-seed-state",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:d,localStorage:j})})).json();H.success?Ne(!1):console.error("[editor] Save seed state failed:",H.error)}catch(j){console.error("[editor] Save seed state error:",j)}finally{pt(!1)}},[]),ss=i.useCallback((d,j)=>{if(He(d||null),j){const P=new URLSearchParams(k);P.set("scenario",j),$.current=j,T(P);const z=r.find(H=>H.id===j);if(z){const H=qe(z,se.current,ne.current);H&&ce(H)}}ie(null),Z(!1),$e(P=>P+1)},[k,T,r]),{customSizes:Je,addCustomSize:as,removeCustomSize:ns}=ys(s),Ve=i.useMemo(()=>_s(_),[_]),Ge=i.useMemo(()=>[...Ve,...Je],[Ve,Je]);se.current=Ge;const ut=i.useMemo(()=>{const d=new Map;for(const j of l){d.set(j.name,j.sha);const P=Me(Ee(j.filePath));P!==j.name&&d.set(P,j.sha)}return d},[l]),rs=i.useMemo(()=>{const d=[{name:"App"}];for(const j of J)d.push({name:j,componentName:j,entitySha:ut.get(j)});return d},[J,ut]),ft=i.useCallback((d,j)=>{if(!d){V([]),ge(null);const Q=k.get("scenario"),ke=Q?`?scenario=${Q}`:"";A(`/editor${ke}`);return}if(!j){console.error(`[editor] No entity SHA for "${d}" — entity missing from database`);return}const P=J.indexOf(d);P>=0?V(J.slice(0,P+1)):V([...J,d]);const z=r.find(Q=>Q.entitySha===j);ge(j);const H=z?`?scenario=${z.id}`:"";A(`/editor/entity/${j}${H}`)},[A,r,J,k]),we=i.useCallback(d=>{u(null),F(null),ie(null),He(null);const j=qe(d,Ge,at);j&&ce(j),$.current=d.id;const P=new URLSearchParams(k);P.set("scenario",d.id),T(P),ve(!0),Ne(!1);const z=Ye(d.name);fetch("/api/editor-switch-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioSlug:z,scenarioId:d.id,scenarioType:d.type,skipBroadcast:!0})}).then(()=>{Z(!1),$e(H=>H+1)}).catch(()=>{ve(!1)})},[k,T,Ge]),is=i.useCallback(d=>{if(!d.commitSha){const j=r.find(P=>P.name===d.scenarioName);if(j){we(j);return}}ie(d)},[r,we]),os=d=>{const j={name:d.name,width:d.width,height:d.height};ce(j),fetch("/api/editor-project-info",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultScreenSize:j,skipBroadcast:!0})})},ls=(d,j,P)=>{as(d,j,P)},cs=d=>{ce(d),fetch("/api/editor-project-info",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultScreenSize:d,skipBroadcast:!0})})},ds=()=>{Y||Z(!0),ve(!1)},Se=i.useMemo(()=>Es({activeAnalyzedScenario:!!Y,analyzedPreviewUrl:W,activeScenarioId:R||null,scenarios:r,proxyUrl:le,devServerUrl:G,zoomComponent:E||null}),[le,G,E,R,r,Y,W]),gt=i.useMemo(()=>{const d=Ms(Se,mt);if(!d)return null;const j=d.includes("?")?"&":"?";return`${d}${j}__cb=${Ue}`},[Se,mt,Ue]),ms=i.useMemo(()=>({projectSlug:s,hasProject:n,scenarioCount:c==null?void 0:c.length,allScenarioCount:r==null?void 0:r.length,analyzedEntityCount:o==null?void 0:o.length,glossaryFunctionCount:m==null?void 0:m.length,entityChangeStatusKeys:g?Object.keys(g):[],featureName:f}),[s,n,c,r,o,m,g,f]);return e.jsxs(e.Fragment,{children:[e.jsx(ja,{loaderSnapshot:ms,children:e.jsxs("div",{className:"fixed inset-0 bg-[#2d2d2d] flex flex-col",children:[Y&&e.jsx(pa,{analysisId:Y.analysisId,scenarioId:Y.scenarioId,scenarioName:Y.scenarioName,entityName:Y.entityName,projectSlug:s,onStateChange:Ot},Y.analysisId),e.jsxs("div",{className:"flex-1 flex min-h-0",children:[e.jsxs("div",{className:"flex-1 flex flex-col min-w-0",style:ye==="editor-only"?{display:"none"}:void 0,children:[e.jsxs("div",{className:"bg-[#2d2d2d] border-b border-[#3d3d3d] shrink-0 z-10 h-10 flex items-center px-4 relative",children:[e.jsx("div",{className:"flex items-center gap-1 shrink-0 z-10",children:e.jsx("button",{onClick:()=>it(d=>d==="preview-only"?"split":"preview-only"),className:"p-1.5 rounded text-gray-500 hover:text-gray-300 transition-colors cursor-pointer",title:ye==="preview-only"?"Show sidebar":"Hide sidebar",children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e.jsx("path",{d:"M9 3v18"})]})})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center gap-1 pointer-events-none",children:e.jsxs("div",{className:"flex items-center gap-1 pointer-events-auto",children:[Ae.map(d=>e.jsxs("button",{onClick:()=>os(d),className:`p-1.5 rounded transition-colors cursor-pointer ${K.name===d.name?"text-white bg-[#555]":"text-gray-500 hover:text-gray-300"}`,title:`${d.name} (${d.width}×${d.height})`,children:[d.name==="Desktop"&&e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),e.jsx("path",{d:"M8 21h8M12 17v4"})]}),d.name==="Laptop"&&e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8H4V6z"}),e.jsx("path",{d:"M2 18h20"})]}),d.name==="Tablet"&&e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2"}),e.jsx("path",{d:"M12 18h.01"})]}),d.name==="Mobile"&&e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"7",y:"2",width:"10",height:"20",rx:"2"}),e.jsx("path",{d:"M12 18h.01"})]})]},d.name)),e.jsxs("div",{className:"relative",children:[e.jsxs("button",{onClick:()=>st(d=>!d),className:`flex items-center gap-1.5 px-2 py-1 rounded transition-colors cursor-pointer ${tt||!Ae.some(d=>d.name===K.name)?"text-white bg-[#555]":"text-gray-400 hover:text-gray-200 hover:bg-[#444]"}`,title:"Custom dimensions",children:[e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"M17 3a2.83 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})}),e.jsxs("span",{className:"text-xs font-mono",children:[K.width," ×"," ",K.height??900]})]}),tt&&e.jsx(vs,{currentWidth:K.width,currentHeight:K.height??900,devicePresets:Ve,customSizes:Je,onApply:cs,onSave:ls,onRemove:ns,onClose:()=>st(!1)})]})]})}),e.jsx("div",{className:"ml-auto flex items-center gap-1 shrink-0 z-10",children:e.jsx("button",{onClick:()=>{const d=gt||Se;d&&window.open(d,"_blank")},className:"p-1.5 rounded text-gray-500 hover:text-gray-300 transition-colors cursor-pointer",title:"Open preview in new window",children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),e.jsx("polyline",{points:"15 3 21 3 21 9"}),e.jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})})})]}),Zt&&e.jsx(ha,{onSaveToCurrent:()=>void ht("overwrite"),onSaveAsNew:()=>void ht("new"),onDismiss:()=>Ne(!1),isSaving:es}),e.jsx("div",{ref:ue,className:"flex-1 flex items-center justify-center overflow-hidden p-8",style:Fe?{backgroundColor:"#f5f0e8",backgroundImage:"repeating-linear-gradient(0deg, transparent, transparent 19px, #e8e0d0 19px, #e8e0d0 20px), repeating-linear-gradient(90deg, transparent, transparent 19px, #e8e0d0 19px, #e8e0d0 20px)"}:{backgroundImage:`
49
- linear-gradient(45deg, #333 25%, transparent 25%),
50
- linear-gradient(-45deg, #333 25%, transparent 25%),
51
- linear-gradient(45deg, transparent 75%, #333 75%),
52
- linear-gradient(-45deg, transparent 75%, #333 75%)
53
- `,backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px",backgroundColor:"#2d2d2d"},children:Fe?e.jsx(ma,{preview:Fe,onDismiss:()=>ie(null),onLoadCommit:Bt}):Se?e.jsx("div",{style:{width:`${K.width*me}px`,height:`${(K.height??900)*me}px`},children:e.jsxs("div",{className:"relative bg-white origin-top-left",style:{width:`${K.width}px`,height:`${K.height??900}px`,transform:me<1?`scale(${me})`:void 0},children:[!be&&!xt&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:e.jsxs("div",{className:"flex flex-col items-center justify-center gap-6 bg-[#2a2a2a] rounded-lg p-8 w-[500px] h-[300px]",children:[e.jsx("div",{className:"mb-4",children:e.jsx(vt,{})}),e.jsxs("div",{className:"flex flex-col gap-3 text-center",children:[e.jsx("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Loading Preview"}),e.jsx("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Waiting for the app to render"})]})]})}),xt&&e.jsx("div",{className:"absolute inset-0 z-20 flex items-center justify-center",style:{backgroundColor:"rgba(0, 0, 0, 0.25)",backdropFilter:"blur(1px)",transition:"opacity 200ms ease-out"},children:e.jsxs("div",{className:"flex flex-col items-center gap-3 animate-pulse",children:[e.jsx("svg",{className:"w-6 h-6 text-white/80 animate-spin",viewBox:"0 0 24 24",fill:"none",children:e.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:"50 100"})}),e.jsx("span",{className:"text-white/70 text-xs font-['IBM_Plex_Sans']",children:"Switching scenario"})]})}),e.jsx("iframe",{ref:q,src:gt||Se,className:"w-full h-full border-none",title:"Editor preview",onLoad:ds,style:{opacity:be?1:0}},Ue)]})}):e.jsx("div",{className:"bg-[#2a2a2a] rounded-lg flex flex-col items-center justify-center",style:{width:`${K.width*me}px`,height:`${(K.height??900)*me}px`},children:re?e.jsxs("div",{className:"flex flex-col gap-4 text-center px-8 max-w-[600px]",children:[e.jsx("h2",{className:"text-xl font-medium text-red-400 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Dev Server Failed"}),e.jsx("pre",{className:"text-xs text-left bg-[#1e1e1e] text-gray-300 p-4 rounded overflow-auto max-h-[300px] w-full font-mono whitespace-pre-wrap",children:re}),e.jsx("button",{onClick:Ie,className:"mx-auto px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded hover:bg-[#004d63] transition-colors cursor-pointer",children:"Retry"})]}):ae||De?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mb-4",children:e.jsx(vt,{})}),e.jsxs("div",{className:"flex flex-col gap-3 text-center",children:[e.jsx("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:De?"Starting Interactive Mode":"Starting Dev Server"}),e.jsx("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:De?"Loading component preview...":"Your dev server is starting up..."})]})]}):e.jsxs("div",{className:"flex flex-col gap-3 text-center px-8",children:[e.jsx("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Live Preview"}),e.jsx("p",{className:"text-sm text-gray-500 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Describe what you want to build in the Build tab"})]})})})]}),e.jsxs("aside",{className:`bg-[#1e1e1e] border-r border-[#3d3d3d] shrink-0 flex flex-col overflow-hidden order-first ${ye==="editor-only"?"w-full max-w-none min-w-0":"w-[50%] min-w-[400px] max-w-[800px]"}`,style:ye==="preview-only"?{display:"none"}:void 0,children:[x&&ee&&e.jsxs("div",{className:"px-3 py-2 text-xs flex items-center justify-between",style:{background:"#2a1f00",borderBottom:"1px solid #3d2e00",color:"#f0c040"},children:[e.jsxs("span",{children:["Viewing an older version of"," ",e.jsx("strong",{children:ee.name}),". A newer version exists."]}),e.jsx("a",{href:`/editor/entity/${x}`,className:"px-2 py-0.5 rounded text-xs",style:{background:"#3d2e00",color:"#f0c040",textDecoration:"none"},children:"View latest"})]}),e.jsx(da,{activeTab:X,onTabChange:d=>{te(d),d==="build"&&de(!0)},buildIdle:Be,panelLayout:ye,onToggleExpand:()=>it(d=>d==="editor-only"?"split":"editor-only")}),e.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[Be&&X!=="build"&&!Gt&&e.jsxs("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-50 animate-[slideDown_0.3s_ease-out]",children:[e.jsx("style",{children:`
54
- @keyframes slideDown {
55
- from { transform: translate(-50%, -100%); opacity: 0; }
56
- to { transform: translate(-50%, 0); opacity: 1; }
57
- }
58
- `}),e.jsxs("div",{className:"flex items-center gap-1 bg-amber-50 border-2 border-amber-300 rounded-lg shadow-lg",children:[e.jsxs("button",{onClick:()=>{te("build"),de(!0)},className:"flex items-center gap-2 px-4 py-2 cursor-pointer hover:bg-amber-100 transition-colors rounded-l-md",children:[e.jsx("span",{className:"inline-block w-2 h-2 rounded-full bg-amber-400 animate-pulse"}),e.jsx("span",{className:"text-sm font-medium text-amber-900",children:"Claude is waiting for you"}),e.jsx("span",{className:"text-xs text-amber-600 ml-1",children:"Go to Build"})]}),e.jsx("button",{onClick:d=>{d.stopPropagation(),rt(!0)},className:"px-2 py-2 cursor-pointer hover:bg-amber-100 transition-colors rounded-r-md text-amber-400 hover:text-amber-600","aria-label":"Dismiss",children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:e.jsx("path",{d:"M3 3l8 8M11 3l-8 8"})})})]})]}),Ut&&e.jsxs("div",{className:"absolute inset-0 flex flex-col overflow-hidden",style:{visibility:X==="build"?"visible":"hidden"},children:[e.jsx("div",{className:ze?"flex-1 min-h-0":"flex-1",style:ze?{flex:"1 1 50%"}:void 0,children:Re==="pending"?e.jsx(Ls,{featureName:f,editorStep:N,editorStepLabel:M,onContinue:Vt}):e.jsx(Is,{ref:C,entityName:"Editor",projectSlug:s,entityFilePath:null,scenarioName:null,onRefreshPreview:ss,onShowResults:Yt,onHideResults:lt,onSetViewport:Kt,onDataMutationForwarded:ts,editorMode:!0,onIdleChange:qt,notificationSettings:ct,buildTabActive:X==="build",claudeStartMode:Re==="continue"?"resume":"fresh",claudeSessionId:U})}),ze&&e.jsx("div",{style:{flex:"1 1 50%"},className:"min-h-0 border-t-2 border-gray-300",children:e.jsx(la,{scenarios:c,allScenarios:r,glossaryFunctions:m,projectRoot:a,activeScenarioId:R,onScenarioSelect:we,onClose:lt,entityChangeStatus:g,modifiedFiles:I,featureName:f,userPrompt:B})})]}),e.jsx("div",{className:"absolute inset-0 flex flex-col overflow-hidden",style:{visibility:X==="app"?"visible":"hidden"},children:e.jsx(ra,{hasProject:n,scenarios:r,analyzedEntities:o,allEntities:l,glossaryFunctions:m,glossaryEntries:v,projectRoot:a,activeScenarioId:R,onScenarioSelect:we,onAnalyzedScenarioSelect:et,onSwitchToBuild:zt,zoomComponent:E,focusedEntity:ee,onZoomChange:ft,entityImports:y,pageFilePaths:S,projectTitle:O,projectDescription:L,breadcrumbItems:rs,migrationMode:h,migrationState:w,onStartMigration:Wt})}),e.jsx("div",{className:"absolute inset-0 flex flex-col overflow-hidden",style:{visibility:X==="data"?"visible":"hidden"},children:e.jsx(Ds,{scenarios:r,projectRoot:a,activeScenarioId:R,onScenarioSelect:we,zoomComponent:E,focusedEntity:ee,onZoomChange:ft,analyzedEntities:[],glossaryFunctions:m,activeAnalyzedScenarioId:Y==null?void 0:Y.scenarioId,onAnalyzedScenarioSelect:et,entityImports:y,pageFilePaths:S})}),e.jsx("div",{className:"absolute inset-0 flex flex-col overflow-hidden",style:{visibility:X==="journal"?"visible":"hidden"},children:e.jsx(Ys,{isActive:X==="journal",onScreenshotClick:is,glossaryFunctions:m})})]}),e.jsx(Ts,{serverUrl:G,isStarting:ae,projectSlug:s,devServerError:re,onStartServer:je?Te:void 0,notificationSettings:ct,onChangeNotificationSettings:Xt})]})]})]})}),e.jsx(bs,{})]})});export{$a as default,Ra as meta,Ta as shouldRevalidate};
@@ -1 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap";/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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{:root,:host{--font-sans:"IBM Plex Sans",sans-serif;--font-serif:"Playfair Display",Georgia,serif;--font-mono:"IBM Plex Mono",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-800:oklch(45% .085 224.283);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--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-50:oklch(96.2% .018 272.314);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-700:oklch(52.5% .223 3.958);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-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-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--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;--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-cyblack-100:#232323;--color-cyblack-75:#3e3e3e;--color-cygray-50:#8e8e8e;--color-cygray-30:#e1e1e1;--color-cygray-20:#efefef;--color-cygray-10:#f8f7f6;--color-cywhite-100:#fff;--color-primary-200:#233b46;--color-primary-100:#005c75}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}body{margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-2{top:calc(var(--spacing)*-2)}.top-0{top:calc(var(--spacing)*0)}.top-0\.5{top:calc(var(--spacing)*.5)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-8{top:calc(var(--spacing)*8)}.top-10{top:calc(var(--spacing)*10)}.top-\[-1px\]{top:-1px}.top-\[19px\]{top:19px}.top-\[42px\]{top:42px}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-0\.5{right:calc(var(--spacing)*.5)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.-bottom-px{bottom:-1px}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-0\.5{bottom:calc(var(--spacing)*.5)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-10{bottom:calc(var(--spacing)*10)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-0\.5{left:calc(var(--spacing)*.5)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing)*2.5)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-\[-35px\]{left:-35px}.left-\[15px\]{left:15px}.left-\[17\.5px\]{left:17.5px}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-1000{z-index:1000}.z-9998{z-index:9998}.z-9999{z-index:9999}.z-10000{z-index:10000}.z-\[9999\]{z-index:9999}.order-first{order:-9999}.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}}.-m-0\.5{margin:calc(var(--spacing)*-.5)}.m-0{margin:calc(var(--spacing)*0)}.mx-0\.5{margin-inline:calc(var(--spacing)*.5)}.mx-1\.5{margin-inline:calc(var(--spacing)*1.5)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-6{margin-inline:calc(var(--spacing)*6)}.mx-\[-15px\]{margin-inline:-15px}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-5{margin-block:calc(var(--spacing)*5)}.my-auto{margin-block:auto}.-mt-2{margin-top:calc(var(--spacing)*-2)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.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)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-\[6px\]{margin-bottom:6px}.mb-\[15px\]{margin-bottom:15px}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.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-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-5{margin-left:calc(var(--spacing)*5)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-10{margin-left:calc(var(--spacing)*10)}.ml-14{margin-left:calc(var(--spacing)*14)}.ml-\[-1px\]{margin-left:-1px}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.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}.aspect-4\/3{aspect-ratio:4/3}.aspect-square{aspect-ratio:1}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-3\.75{height:calc(var(--spacing)*3.75)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\.75{height:calc(var(--spacing)*5.75)}.h-6{height:calc(var(--spacing)*6)}.h-6\.5{height:calc(var(--spacing)*6.5)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-9\.75{height:calc(var(--spacing)*9.75)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-15{height:calc(var(--spacing)*15)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-40{height:calc(var(--spacing)*40)}.h-48{height:calc(var(--spacing)*48)}.h-\[4\.5rem\]{height:4.5rem}.h-\[10px\]{height:10px}.h-\[11\.5px\]{height:11.5px}.h-\[13\.26px\]{height:13.26px}.h-\[20\.464px\]{height:20.464px}.h-\[20px\]{height:20px}.h-\[22px\]{height:22px}.h-\[23px\]{height:23px}.h-\[25px\]{height:25px}.h-\[26px\]{height:26px}.h-\[28px\]{height:28px}.h-\[29px\]{height:29px}.h-\[38px\]{height:38px}.h-\[39px\]{height:39px}.h-\[40px\]{height:40px}.h-\[54px\]{height:54px}.h-\[67px\]{height:67px}.h-\[90px\]{height:90px}.h-\[100px\]{height:100px}.h-\[110px\]{height:110px}.h-\[300px\]{height:300px}.h-\[339\.923px\]{height:339.923px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-72{max-height:calc(var(--spacing)*72)}.max-h-75{max-height:calc(var(--spacing)*75)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[90vh\]{max-height:90vh}.max-h-\[100px\]{max-height:100px}.max-h-\[120px\]{max-height:120px}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-50{min-height:calc(var(--spacing)*50)}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-2\/3{width:66.6667%}.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-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-50{width:calc(var(--spacing)*50)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-\[4\.5rem\]{width:4.5rem}.w-\[10px\]{width:10px}.w-\[11\.5px\]{width:11.5px}.w-\[13\.26px\]{width:13.26px}.w-\[14px\]{width:14px}.w-\[40px\]{width:40px}.w-\[50\%\]{width:50%}.w-\[50px\]{width:50px}.w-\[120px\]{width:120px}.w-\[125px\]{width:125px}.w-\[130px\]{width:130px}.w-\[148px\]{width:148px}.w-\[165px\]{width:165px}.w-\[175px\]{width:175px}.w-\[183px\]{width:183px}.w-\[187px\]{width:187px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[250px\]{width:250px}.w-\[400px\]{width:400px}.w-\[500px\]{width:500px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;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-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-120{max-width:calc(var(--spacing)*120)}.max-w-\[300px\]{max-width:300px}.max-w-\[420px\]{max-width:420px}.max-w-\[500px\]{max-width:500px}.max-w-\[600px\]{max-width:600px}.max-w-\[700px\]{max-width:700px}.max-w-\[800px\]{max-width:800px}.max-w-\[1000px\]{max-width:1000px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[1800px\]{max-width:1800px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-75{min-width:calc(var(--spacing)*75)}.min-w-\[22px\]{min-width:22px}.min-w-\[25px\]{min-width:25px}.min-w-\[60px\]{min-width:60px}.min-w-\[320px\]{min-width:320px}.min-w-\[350px\]{min-width:350px}.min-w-\[380px\]{min-width:380px}.min-w-\[400px\]{min-width:400px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing)*6);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\[slideDown_0\.3s_ease-out\]{animation:.3s ease-out slideDown}.animate-\[slideIn_0\.3s_ease-out\]{animation:.3s ease-out slideIn}.animate-\[slideUp_0\.3s_ease-out\]{animation:.3s ease-out slideUp}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-wait{cursor:wait}.resize{resize:both}.resize-none{resize:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-\[1fr_90px_80px_100px\]{grid-template-columns:1fr 90px 80px 100px}.grid-cols-\[1fr_140px_150px\]{grid-template-columns:1fr 140px 150px}.grid-cols-\[340px_1fr\]{grid-template-columns:340px 1fr}.flex-col{flex-direction:column}.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}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-\[1px\]{gap:1px}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[10px\]{gap:10px}.gap-\[11\.6px\]{gap:11.6px}.gap-\[14px\]{gap:14px}.gap-\[15px\]{gap:15px}.gap-\[45px\]{gap:45px}: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-4{-moz-column-gap:calc(var(--spacing)*4);column-gap:calc(var(--spacing)*4)}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}: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-\[\#2d2d2d\]>:not(:last-child)){border-color:#2d2d2d}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[5\.155px\]{border-radius:5.155px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9\.095px\]{border-radius:9.095px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-tl-\[8px\]{border-top-left-radius:8px}.rounded-tl-lg{border-top-left-radius:var(--radius-lg)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-tr-lg{border-top-right-radius:var(--radius-lg)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-br-\[4px\]{border-bottom-right-radius:4px}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-\[4px\]{border-bottom-left-radius:4px}.rounded-bl-\[8px\]{border-bottom-left-radius:8px}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.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-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#0ea5e9\]{border-color:#0ea5e9}.border-\[\#2d2d2d\]{border-color:#2d2d2d}.border-\[\#3d3d3d\]{border-color:#3d3d3d}.border-\[\#4a4a4a\]{border-color:#4a4a4a}.border-\[\#4d4d4d\]{border-color:#4d4d4d}.border-\[\#005C75\],.border-\[\#005c75\]{border-color:#005c75}.border-\[\#333\]{border-color:#333}.border-\[\#444\]{border-color:#444}.border-\[\#555\]{border-color:#555}.border-\[\#232323\]{border-color:#232323}.border-\[\#646464\]{border-color:#646464}.border-\[\#A5E8F0\]{border-color:#a5e8f0}.border-\[\#BBCCD3\]{border-color:#bbccd3}.border-\[\#BCCDD3\]{border-color:#bccdd3}.border-\[\#CBF3FA\]{border-color:#cbf3fa}.border-\[\#E0E9EC\]{border-color:#e0e9ec}.border-\[\#FEE585\]{border-color:#fee585}.border-\[\#bae6fd\]{border-color:#bae6fd}.border-\[\#c7c7c7\]{border-color:#c7c7c7}.border-\[\#c8f2e3\]{border-color:#c8f2e3}.border-\[\#c69538\]{border-color:#c69538}.border-\[\#ccc\]{border-color:#ccc}.border-\[\#e0e9ec\]{border-color:#e0e9ec}.border-\[\#e1e1e1\]{border-color:#e1e1e1}.border-\[\#efefef\]{border-color:#efefef}.border-\[\#fecaca\]{border-color:#fecaca}.border-\[rgba\(0\,0\,0\,0\.1\)\]{border-color:#0000001a}.border-\[rgba\(0\,0\,0\,0\.2\)\]{border-color:#0003}.border-\[rgba\(0\,92\,117\,0\.05\)\]{border-color:#005c750d}.border-\[rgba\(0\,92\,117\,0\.25\)\]{border-color:#005c7540}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-400\/30{border-color:#fcbb004d}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/30{border-color:color-mix(in oklab,var(--color-amber-400)30%,transparent)}}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-700{border-color:var(--color-amber-700)}.border-amber-700\/50{border-color:#b7500080}@supports (color:color-mix(in lab,red,red)){.border-amber-700\/50{border-color:color-mix(in oklab,var(--color-amber-700)50%,transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-blue-700\/50{border-color:#1447e680}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/50{border-color:color-mix(in oklab,var(--color-blue-700)50%,transparent)}}.border-blue-800{border-color:var(--color-blue-800)}.border-cyblack-100{border-color:var(--color-cyblack-100)}.border-cygray-30{border-color:var(--color-cygray-30)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-700{border-color:var(--color-emerald-700)}.border-emerald-700\/50{border-color:#00795680}@supports (color:color-mix(in lab,red,red)){.border-emerald-700\/50{border-color:color-mix(in oklab,var(--color-emerald-700)50%,transparent)}}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-300{border-color:var(--color-green-300)}.border-green-600{border-color:var(--color-green-600)}.border-green-700\/50{border-color:#00813880}@supports (color:color-mix(in lab,red,red)){.border-green-700\/50{border-color:color-mix(in oklab,var(--color-green-700)50%,transparent)}}.border-orange-300{border-color:var(--color-orange-300)}.border-primary-100{border-color:var(--color-primary-100)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-300{border-color:var(--color-purple-300)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-400{border-color:var(--color-red-400)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-l-\[\#00b4d8\]{border-left-color:#00b4d8}.border-l-\[\#7c3aed\]{border-left-color:#7c3aed}.border-l-\[\#a8dadc\]{border-left-color:#a8dadc}.border-l-\[\#f4a261\]{border-left-color:#f4a261}.bg-\[\#0ea5e9\]{background-color:#0ea5e9}.bg-\[\#00a0c4\]{background-color:#00a0c4}.bg-\[\#00a0c4\]\/10{background-color:#00a0c41a}.bg-\[\#00a0c4\]\/15{background-color:#00a0c426}.bg-\[\#00b4d8\]{background-color:#00b4d8}.bg-\[\#1a1a1a\]{background-color:#1a1a1a}.bg-\[\#1a3a44\]{background-color:#1a3a44}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#2a2a2a\]{background-color:#2a2a2a}.bg-\[\#2a9d8f\]{background-color:#2a9d8f}.bg-\[\#2d2d2d\]{background-color:#2d2d2d}.bg-\[\#3d3d3d\]{background-color:#3d3d3d}.bg-\[\#3e3e3e\]{background-color:#3e3e3e}.bg-\[\#4a3232\]{background-color:#4a3232}.bg-\[\#005C75\]{background-color:#005c75}.bg-\[\#005C75\]\/5{background-color:#005c750d}.bg-\[\#005c75\]{background-color:#005c75}.bg-\[\#007a99\]{background-color:#007a99}.bg-\[\#7a4444\]{background-color:#7a4444}.bg-\[\#7c3aed\]{background-color:#7c3aed}.bg-\[\#022A35\]{background-color:#022a35}.bg-\[\#051C22\]{background-color:#051c22}.bg-\[\#333\]{background-color:#333}.bg-\[\#444\]{background-color:#444}.bg-\[\#555\]{background-color:#555}.bg-\[\#00925d\]{background-color:#00925d}.bg-\[\#252525\]{background-color:#252525}.bg-\[\#252526\]{background-color:#252526}.bg-\[\#343434\]{background-color:#343434}.bg-\[\#626262\]{background-color:#626262}.bg-\[\#CBF3FA\]{background-color:#cbf3fa}.bg-\[\#D1F3F9\]{background-color:#d1f3f9}.bg-\[\#DEE3E5\]{background-color:#dee3e5}.bg-\[\#E0E9EC\]{background-color:#e0e9ec}.bg-\[\#E0F2F1\]{background-color:#e0f2f1}.bg-\[\#EDF1F3\]{background-color:#edf1f3}.bg-\[\#F6F9FC\]{background-color:#f6f9fc}.bg-\[\#F8F7F6\]{background-color:#f8f7f6}.bg-\[\#a8dadc\]{background-color:#a8dadc}.bg-\[\#c7c7c7\]{background-color:#c7c7c7}.bg-\[\#cbf3fa\]{background-color:#cbf3fa}.bg-\[\#deeafc\]{background-color:#deeafc}.bg-\[\#e0e9ec\]{background-color:#e0e9ec}.bg-\[\#e1e1e1\]{background-color:#e1e1e1}.bg-\[\#e5e7eb\]{background-color:#e5e7eb}.bg-\[\#e5eff1\]{background-color:#e5eff1}.bg-\[\#e6fbff\]{background-color:#e6fbff}.bg-\[\#e8ffe6\]{background-color:#e8ffe6}.bg-\[\#ebf0f2\]{background-color:#ebf0f2}.bg-\[\#efefef\]{background-color:#efefef}.bg-\[\#f0f9ff\]{background-color:#f0f9ff}.bg-\[\#f0fdf4\]{background-color:#f0fdf4}.bg-\[\#f2fcf9\]{background-color:#f2fcf9}.bg-\[\#f3eefe\]{background-color:#f3eefe}.bg-\[\#f4a261\]{background-color:#f4a261}.bg-\[\#f5f5f5\]{background-color:#f5f5f5}.bg-\[\#f6f9fc\]{background-color:#f6f9fc}.bg-\[\#f9f9f9\]{background-color:#f9f9f9}.bg-\[\#f59e0c\]{background-color:#f59e0c}.bg-\[\#fafafa\]{background-color:#fafafa}.bg-\[\#fce8c5\]{background-color:#fce8c5}.bg-\[\#fdf9c9\]{background-color:#fdf9c9}.bg-\[\#fef2f2\]{background-color:#fef2f2}.bg-\[\#ffdbf6\]{background-color:#ffdbf6}.bg-\[\#ffe1e1\]{background-color:#ffe1e1}.bg-\[rgba\(0\,0\,0\,0\.2\)\]{background-color:#0003}.bg-\[rgba\(255\,255\,255\,0\.3\)\]{background-color:#ffffff4d}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-200{background-color:var(--color-amber-200)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/5{background-color:#fcbb000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/5{background-color:color-mix(in oklab,var(--color-amber-400)5%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-amber-700{background-color:var(--color-amber-700)}.bg-amber-900\/40{background-color:#7b330666}@supports (color:color-mix(in lab,red,red)){.bg-amber-900\/40{background-color:color-mix(in oklab,var(--color-amber-900)40%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-blue-900\/40{background-color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/40{background-color:color-mix(in oklab,var(--color-blue-900)40%,transparent)}}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cygray-10{background-color:var(--color-cygray-10)}.bg-cygray-20{background-color:var(--color-cygray-20)}.bg-cywhite-100{background-color:var(--color-cywhite-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-200{background-color:var(--color-emerald-200)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-emerald-800{background-color:var(--color-emerald-800)}.bg-emerald-900\/60{background-color:#004e3b99}@supports (color:color-mix(in lab,red,red)){.bg-emerald-900\/60{background-color:color-mix(in oklab,var(--color-emerald-900)60%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/60{background-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/60{background-color:color-mix(in oklab,var(--color-gray-200)60%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-700{background-color:var(--color-green-700)}.bg-green-900\/40{background-color:#0d542b66}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/40{background-color:color-mix(in oklab,var(--color-green-900)40%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/15{background-color:#005c7526}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/15{background-color:color-mix(in oklab,var(--color-primary-100)15%,transparent)}}.bg-primary-200{background-color:var(--color-primary-200)}.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-purple-600{background-color:var(--color-purple-600)}.bg-purple-700{background-color:var(--color-purple-700)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-900{background-color:var(--color-red-900)}.bg-teal-600{background-color:var(--color-teal-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-600{background-color:var(--color-yellow-600)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-400{--tw-gradient-to:var(--color-blue-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-400{--tw-gradient-to:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-50{--tw-gradient-to:var(--color-indigo-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-600{--tw-gradient-to:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-500{--tw-gradient-to:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.object-top{-o-object-position:top;object-position:top}.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-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.p-\[5\.6px\]{padding:5.6px}.p-\[15px\]{padding:15px}.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-3\.75{padding-inline:calc(var(--spacing)*3.75)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-12{padding-inline:calc(var(--spacing)*12)}.px-20{padding-inline:calc(var(--spacing)*20)}.px-\[4px\]{padding-inline:4px}.px-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[8px\]{padding-inline:8px}.px-\[10px\]{padding-inline:10px}.px-\[15px\]{padding-inline:15px}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.py-\[5px\]{padding-block:5px}.py-\[6px\]{padding-block:6px}.py-\[15px\]{padding-block:15px}.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-2\.5{padding-top:calc(var(--spacing)*2.5)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-3\.5{padding-top:calc(var(--spacing)*3.5)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-12{padding-top:calc(var(--spacing)*12)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-7{padding-right:calc(var(--spacing)*7)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-9{padding-right:calc(var(--spacing)*9)}.pr-10{padding-right:calc(var(--spacing)*10)}.pr-20{padding-right:calc(var(--spacing)*20)}.pr-24{padding-right:calc(var(--spacing)*24)}.pr-\[10px\]{padding-right:10px}.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-2\.5{padding-bottom:calc(var(--spacing)*2.5)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-10{padding-bottom:calc(var(--spacing)*10)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-\[14px\]{padding-bottom:14px}.pb-\[17px\]{padding-bottom:17px}.pl-1{padding-left:calc(var(--spacing)*1)}.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-5{padding-left:calc(var(--spacing)*5)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-10{padding-left:calc(var(--spacing)*10)}.pl-12{padding-left:calc(var(--spacing)*12)}.pl-\[10px\]{padding-left:10px}.pl-\[52px\]{padding-left:52px}.text-center{text-align:center}.text-left{text-align:left}.font-\[\'IBM_Plex_Mono\'\]{font-family:IBM Plex Mono}.font-\[\'IBM_Plex_Sans\'\]{font-family:IBM Plex Sans}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--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-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.2px\]{font-size:10.2px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[28px\]{font-size:28px}.text-\[32px\]{font-size:32px}.text-\[40px\]{font-size:40px}.leading-3\.75{--tw-leading:calc(var(--spacing)*3.75);line-height:calc(var(--spacing)*3.75)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-10{--tw-leading:calc(var(--spacing)*10);line-height:calc(var(--spacing)*10)}.leading-\[13px\]{--tw-leading:13px;line-height:13px}.leading-\[14px\]{--tw-leading:14px;line-height:14px}.leading-\[15px\]{--tw-leading:15px;line-height:15px}.leading-\[16px\]{--tw-leading:16px;line-height:16px}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.leading-\[22px\]{--tw-leading:22px;line-height:22px}.leading-\[24px\]{--tw-leading:24px;line-height:24px}.leading-\[26px\]{--tw-leading:26px;line-height:26px}.leading-\[28px\]{--tw-leading:28px;line-height:28px}.leading-\[30px\]{--tw-leading:30px;line-height:30px}.leading-\[40px\]{--tw-leading:40px;line-height:40px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.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-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)}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0c4a6e\]{color:#0c4a6e}.text-\[\#0ea5e9\]{color:#0ea5e9}.text-\[\#00a0c4\]{color:#00a0c4}.text-\[\#001f3f\]{color:#001f3f}.text-\[\#1A5276\]{color:#1a5276}.text-\[\#1B7A4A\]{color:#1b7a4a}.text-\[\#2a9d8f\]{color:#2a9d8f}.text-\[\#2f80ed\]{color:#2f80ed}.text-\[\#3d3d3d\]{color:#3d3d3d}.text-\[\#3e3e3e\]{color:#3e3e3e}.text-\[\#005C75\],.text-\[\#005c75\]{color:#005c75}.text-\[\#5B21B6\]{color:#5b21b6}.text-\[\#8a8a8a\]{color:#8a8a8a}.text-\[\#8e8e8e\]{color:#8e8e8e}.text-\[\#9b51e0\]{color:#9b51e0}.text-\[\#9e9e9e\]{color:#9e9e9e}.text-\[\#022A35\]{color:#022a35}.text-\[\#0284c7\]{color:#0284c7}.text-\[\#333\]{color:#333}.text-\[\#0369a1\]{color:#0369a1}.text-\[\#568B94\]{color:#568b94}.text-\[\#666\]{color:#666}.text-\[\#00796B\]{color:#00796b}.text-\[\#888\]{color:#888}.text-\[\#00925d\]{color:#00925d}.text-\[\#999\]{color:#999}.text-\[\#3098b4\]{color:#3098b4}.text-\[\#232323\]{color:#232323}.text-\[\#343434\]{color:#343434}.text-\[\#626262\]{color:#626262}.text-\[\#646464\]{color:#646464}.text-\[\#808080\]{color:gray}.text-\[\#CBF3FA\]{color:#cbf3fa}.text-\[\#c69538\]{color:#c69538}.text-\[\#ccc\]{color:#ccc}.text-\[\#d4d4d4\]{color:#d4d4d4}.text-\[\#dc2626\]{color:#dc2626}.text-\[\#ef4444\]{color:#ef4444}.text-\[\#efefef\]{color:#efefef}.text-\[\#f4a261\]{color:#f4a261}.text-\[\#ff2ab5\]{color:#ff2ab5}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400)80%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-black{color:var(--color-black)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.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-blue-900{color:var(--color-blue-900)}.text-cyan-400{color:var(--color-cyan-400)}.text-cyan-800{color:var(--color-cyan-800)}.text-cyblack-75{color:var(--color-cyblack-75)}.text-cyblack-100{color:var(--color-cyblack-100)}.text-cygray-30{color:var(--color-cygray-30)}.text-cygray-50{color:var(--color-cygray-50)}.text-emerald-200{color:var(--color-emerald-200)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-50{color:var(--color-gray-50)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-600{color:var(--color-indigo-600)}.text-inherit{color:inherit}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-pink-700{color:var(--color-pink-700)}.text-primary-100{color:var(--color-primary-100)}.text-primary-200{color:var(--color-primary-200)}.text-purple-400{color:var(--color-purple-400)}.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-purple-900{color:var(--color-purple-900)}.text-red-300\/70{color:#ffa3a3b3}@supports (color:color-mix(in lab,red,red)){.text-red-300\/70{color:color-mix(in oklab,var(--color-red-300)70%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-400\/60{color:#ff656899}@supports (color:color-mix(in lab,red,red)){.text-red-400\/60{color:color-mix(in oklab,var(--color-red-400)60%,transparent)}}.text-red-400\/70{color:#ff6568b3}@supports (color:color-mix(in lab,red,red)){.text-red-400\/70{color:color-mix(in oklab,var(--color-red-400)70%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-600{color:var(--color-yellow-600)}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-\[\#005C75\]{accent-color:#005c75}.accent-green-500{accent-color:var(--color-green-500)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_25px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:0 10px 25px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[\#0ea5e9\]\/20{--tw-shadow-color:#0ea5e933}@supports (color:color-mix(in lab,red,red)){.shadow-\[\#0ea5e9\]\/20{--tw-shadow-color:color-mix(in oklab,oklab(68.4687% -.0798357 -.124464/.2) var(--tw-shadow-alpha),transparent)}}.ring-\[\#0ea5e9\]\/40{--tw-ring-color:oklab(68.4687% -.0798357 -.124464/.4)}.ring-\[\#005c75\]{--tw-ring-color:#005c75}.ring-white\/50{--tw-ring-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.ring-white\/50{--tw-ring-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.brightness-0{--tw-brightness:brightness(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.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,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-1000{--tw-duration:1s;transition-duration:1s}.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)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}@media(hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:text-\[\#005C75\]:is(:where(.group):hover *),.group-hover\:text-\[\#005c75\]:is(:where(.group):hover *){color:#005c75}.group-hover\:text-gray-300:is(:where(.group):hover *){color:var(--color-gray-300)}.group-hover\:text-gray-900:is(:where(.group):hover *){color:var(--color-gray-900)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-gray-400::-moz-placeholder{color:var(--color-gray-400)}.placeholder\:text-gray-400::placeholder{color:var(--color-gray-400)}.first\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}.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\:pb-0:last-child{padding-bottom:calc(var(--spacing)*0)}@media(hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-\[\#00a0c4\]:hover{border-color:#00a0c4}.hover\:border-\[\#4d4d4d\]:hover{border-color:#4d4d4d}.hover\:border-\[\#005C75\]:hover,.hover\:border-\[\#005c75\]:hover{border-color:#005c75}.hover\:border-\[\#555\]:hover{border-color:#555}.hover\:border-\[\#666\]:hover{border-color:#666}.hover\:border-\[\#777\]:hover{border-color:#777}.hover\:border-\[\#a07a2d\]:hover{border-color:#a07a2d}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyblack-100:hover{border-color:var(--color-cyblack-100)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-indigo-400:hover{border-color:var(--color-indigo-400)}.hover\:bg-\[\#3a3a3a\]:hover{background-color:#3a3a3a}.hover\:bg-\[\#004a5c\]:hover{background-color:#004a5c}.hover\:bg-\[\#004a5d\]:hover{background-color:#004a5d}.hover\:bg-\[\#004a5e\]:hover{background-color:#004a5e}.hover\:bg-\[\#004d63\]:hover{background-color:#004d63}.hover\:bg-\[\#007a9a\]:hover{background-color:#007a9a}.hover\:bg-\[\#011a21\]:hover{background-color:#011a21}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#444\]:hover{background-color:#444}.hover\:bg-\[\#006080\]:hover{background-color:#006080}.hover\:bg-\[\#232323\]:hover{background-color:#232323}.hover\:bg-\[\#252525\]:hover{background-color:#252525}.hover\:bg-\[\#E6F5F8\]:hover{background-color:#e6f5f8}.hover\:bg-\[\#EDF4F8\]:hover{background-color:#edf4f8}.hover\:bg-\[\#cbf3fa\]:hover{background-color:#cbf3fa}.hover\:bg-\[\#d0dde1\]:hover{background-color:#d0dde1}.hover\:bg-\[\#d0dfe4\]:hover{background-color:#d0dfe4}.hover\:bg-\[\#d0dfe5\]:hover{background-color:#d0dfe5}.hover\:bg-\[\#e0f2fe\]:hover{background-color:#e0f2fe}.hover\:bg-\[\#e1e1e1\]:hover{background-color:#e1e1e1}.hover\:bg-\[\#edf2f7\]:hover{background-color:#edf2f7}.hover\:bg-\[\#f0f9ff\]:hover{background-color:#f0f9ff}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-300:hover{background-color:var(--color-amber-300)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-black\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/10:hover{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-cyblack-100:hover{background-color:var(--color-cyblack-100)}.hover\:bg-emerald-200:hover{background-color:var(--color-emerald-200)}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-primary-100:hover{background-color:var(--color-primary-100)}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-300:hover{background-color:var(--color-red-300)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-teal-700:hover{background-color:var(--color-teal-700)}.hover\:bg-white\/90:hover{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/90:hover{background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.hover\:text-\[\#0c4a6e\]:hover{color:#0c4a6e}.hover\:text-\[\#00c0e8\]:hover{color:#00c0e8}.hover\:text-\[\#00c4eb\]:hover{color:#00c4eb}.hover\:text-\[\#00c4ee\]:hover{color:#00c4ee}.hover\:text-\[\#003d4f\]:hover{color:#003d4f}.hover\:text-\[\#3e3e3e\]:hover{color:#3e3e3e}.hover\:text-\[\#004a5e\]:hover{color:#004a5e}.hover\:text-\[\#005C75\]:hover,.hover\:text-\[\#005c75\]:hover{color:#005c75}.hover\:text-\[\#38bdf8\]:hover{color:#38bdf8}.hover\:text-\[\#001530\]:hover{color:#001530}.hover\:text-\[\#232323\]:hover{color:#232323}.hover\:text-\[\#626262\]:hover{color:#626262}.hover\:text-\[\#CBF3FA\]:hover{color:#cbf3fa}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-amber-600:hover{color:var(--color-amber-600)}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-cyblack-100:hover{color:var(--color-cyblack-100)}.hover\:text-emerald-200:hover{color:var(--color-emerald-200)}.hover\:text-emerald-800:hover{color:var(--color-emerald-800)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:text-green-900:hover{color:var(--color-green-900)}.hover\:text-indigo-700:hover{color:var(--color-indigo-700)}.hover\:text-primary-100:hover{color:var(--color-primary-100)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-800:hover{color:var(--color-red-800)}.hover\:text-red-900:hover{color:var(--color-red-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-2:focus{border-style:var(--tw-border-style);border-width:2px}.focus\:border-\[\#005C75\]:focus,.focus\:border-\[\#005c75\]:focus{border-color:#005c75}.focus\:border-\[\#007a99\]:focus{border-color:#007a99}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-blue-600:focus{border-color:var(--color-blue-600)}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\: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-\[\#005C75\]:focus{--tw-ring-color:#005c75}.focus\:ring-\[\#005C75\]\/10:focus{--tw-ring-color:oklab(44.137% -.0593993 -.0582973/.1)}.focus\:ring-\[\#005c75\]:focus{--tw-ring-color:#005c75}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-gray-300:focus{--tw-ring-color:var(--color-gray-300)}.focus\:ring-primary-100:focus{--tw-ring-color:var(--color-primary-100)}.focus\:ring-offset-1:focus{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:translate-y-0:disabled{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.disabled\:scale-100:disabled{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:bg-\[\#333\]:disabled{background-color:#333}.disabled\:bg-gray-300:disabled{background-color:var(--color-gray-300)}.disabled\:bg-gray-400:disabled{background-color:var(--color-gray-400)}.disabled\:bg-gray-600:disabled{background-color:var(--color-gray-600)}.disabled\:bg-red-400:disabled{background-color:var(--color-red-400)}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:text-gray-600:disabled{color:var(--color-gray-600)}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-75:disabled{opacity:.75}@media(min-width:40rem){.sm\:hidden{display:none}.sm\:flex-1{flex:1}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-8{padding:calc(var(--spacing)*8)}.sm\:p-12{padding:calc(var(--spacing)*12)}.sm\:px-5{padding-inline:calc(var(--spacing)*5)}.sm\:px-12{padding-inline:calc(var(--spacing)*12)}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-\[24px\]{font-size:24px}.sm\:text-\[28px\]{font-size:28px}.sm\:text-\[32px\]{font-size:32px}.sm\:text-\[48px\]{font-size:48px}}@media(min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:p-6{padding:calc(var(--spacing)*6)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:w-64{width:calc(var(--spacing)*64)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}.lg\:flex-row{flex-direction:row}.lg\:gap-8{gap:calc(var(--spacing)*8)}.lg\:px-0{padding-inline:calc(var(--spacing)*0)}.lg\:px-20{padding-inline:calc(var(--spacing)*20)}.lg\:py-12{padding-block:calc(var(--spacing)*12)}}.\[\&_ul\]\:text-amber-700 ul{color:var(--color-amber-700)}.\[\&_ul\]\:text-gray-500 ul{color:var(--color-gray-500)}.\[\&_ul\]\:text-green-700 ul{color:var(--color-green-700)}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-resizer\]\:bg-gray-700::-webkit-resizer{background-color:var(--color-gray-700)}.\[\&\:\:-webkit-scrollbar\]\:w-2::-webkit-scrollbar{width:calc(var(--spacing)*2)}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-gray-600::-webkit-scrollbar-thumb{background-color:var(--color-gray-600)}@media(hover:hover){.\[\&\:\:-webkit-scrollbar-thumb\]\:hover\:bg-gray-500::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-500)}}.\[\&\:\:-webkit-scrollbar-track\]\:bg-gray-800::-webkit-scrollbar-track{background-color:var(--color-gray-800)}}@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-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-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(360deg)}}@keyframes pulse{50%{opacity:.5}}