@sleep2agi/agent-network-dashboard 0.2.0 → 0.2.1-preview.1

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 (198) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/cache/.tsbuildinfo +1 -1
  5. package/.next/diagnostics/route-bundle-stats.json +45 -31
  6. package/.next/fallback-build-manifest.json +3 -3
  7. package/.next/prerender-manifest.json +24 -0
  8. package/.next/routes-manifest.json +12 -0
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +2 -2
  18. package/.next/server/app/_not-found.rsc +11 -11
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/admin.html +2 -2
  27. package/.next/server/app/admin.rsc +13 -13
  28. package/.next/server/app/admin.segments/_full.segment.rsc +13 -13
  29. package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
  30. package/.next/server/app/admin.segments/_index.segment.rsc +6 -6
  31. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  32. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
  33. package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
  34. package/.next/server/app/api/hub/server-logs/route/app-paths-manifest.json +3 -0
  35. package/.next/server/app/api/hub/server-logs/route/build-manifest.json +9 -0
  36. package/.next/server/app/api/hub/server-logs/route/server-reference-manifest.json +4 -0
  37. package/.next/server/app/api/hub/server-logs/route.js +7 -0
  38. package/.next/server/app/api/hub/server-logs/route.js.map +5 -0
  39. package/.next/server/app/api/hub/server-logs/route.js.nft.json +1 -0
  40. package/.next/server/app/api/hub/server-logs/route_client-reference-manifest.js +3 -0
  41. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/docs.html +3 -3
  43. package/.next/server/app/docs.rsc +13 -13
  44. package/.next/server/app/docs.segments/_full.segment.rsc +13 -13
  45. package/.next/server/app/docs.segments/_head.segment.rsc +4 -4
  46. package/.next/server/app/docs.segments/_index.segment.rsc +6 -6
  47. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  48. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
  49. package/.next/server/app/docs.segments/docs.segment.rsc +3 -3
  50. package/.next/server/app/index.html +2 -2
  51. package/.next/server/app/index.rsc +13 -13
  52. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  53. package/.next/server/app/index.segments/_full.segment.rsc +13 -13
  54. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  55. package/.next/server/app/index.segments/_index.segment.rsc +6 -6
  56. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  57. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/login.html +1 -1
  59. package/.next/server/app/login.rsc +13 -13
  60. package/.next/server/app/login.segments/_full.segment.rsc +13 -13
  61. package/.next/server/app/login.segments/_head.segment.rsc +4 -4
  62. package/.next/server/app/login.segments/_index.segment.rsc +6 -6
  63. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  64. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  65. package/.next/server/app/login.segments/login.segment.rsc +3 -3
  66. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/logs.html +2 -2
  68. package/.next/server/app/logs.rsc +13 -13
  69. package/.next/server/app/logs.segments/_full.segment.rsc +13 -13
  70. package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
  71. package/.next/server/app/logs.segments/_index.segment.rsc +6 -6
  72. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  73. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
  74. package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
  75. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/messages.html +2 -2
  77. package/.next/server/app/messages.rsc +13 -13
  78. package/.next/server/app/messages.segments/_full.segment.rsc +13 -13
  79. package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
  80. package/.next/server/app/messages.segments/_index.segment.rsc +6 -6
  81. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  82. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
  83. package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
  84. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/node.html +2 -2
  86. package/.next/server/app/node.rsc +13 -13
  87. package/.next/server/app/node.segments/_full.segment.rsc +13 -13
  88. package/.next/server/app/node.segments/_head.segment.rsc +4 -4
  89. package/.next/server/app/node.segments/_index.segment.rsc +6 -6
  90. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  91. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
  92. package/.next/server/app/node.segments/node.segment.rsc +3 -3
  93. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/nodes.html +2 -2
  95. package/.next/server/app/nodes.rsc +13 -13
  96. package/.next/server/app/nodes.segments/_full.segment.rsc +13 -13
  97. package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
  98. package/.next/server/app/nodes.segments/_index.segment.rsc +6 -6
  99. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  100. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
  101. package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
  102. package/.next/server/app/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/server-logs/page/app-paths-manifest.json +3 -0
  104. package/.next/server/app/server-logs/page/build-manifest.json +17 -0
  105. package/.next/server/app/server-logs/page/next-font-manifest.json +10 -0
  106. package/.next/server/app/server-logs/page/react-loadable-manifest.json +1 -0
  107. package/.next/server/app/server-logs/page/server-reference-manifest.json +4 -0
  108. package/.next/server/app/server-logs/page.js +14 -0
  109. package/.next/server/app/server-logs/page.js.map +5 -0
  110. package/.next/server/app/server-logs/page.js.nft.json +1 -0
  111. package/.next/server/app/server-logs/page_client-reference-manifest.js +3 -0
  112. package/.next/server/app/server-logs.html +7 -0
  113. package/.next/server/app/server-logs.meta +15 -0
  114. package/.next/server/app/server-logs.rsc +23 -0
  115. package/.next/server/app/server-logs.segments/_full.segment.rsc +23 -0
  116. package/.next/server/app/server-logs.segments/_head.segment.rsc +6 -0
  117. package/.next/server/app/server-logs.segments/_index.segment.rsc +7 -0
  118. package/.next/server/app/server-logs.segments/_tree.segment.rsc +3 -0
  119. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +9 -0
  120. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +5 -0
  121. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/settings/networks.html +2 -2
  123. package/.next/server/app/settings/networks.rsc +13 -13
  124. package/.next/server/app/settings/networks.segments/_full.segment.rsc +13 -13
  125. package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
  126. package/.next/server/app/settings/networks.segments/_index.segment.rsc +6 -6
  127. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  128. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
  129. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
  130. package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
  131. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  132. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  133. package/.next/server/app/settings/tokens.html +2 -2
  134. package/.next/server/app/settings/tokens.rsc +13 -13
  135. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +13 -13
  136. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
  137. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +6 -6
  138. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  139. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
  140. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
  141. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
  142. package/.next/server/app/settings.html +2 -2
  143. package/.next/server/app/settings.rsc +13 -13
  144. package/.next/server/app/settings.segments/_full.segment.rsc +13 -13
  145. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  146. package/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  147. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  148. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  149. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  150. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  151. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/tasks.html +2 -2
  153. package/.next/server/app/tasks.rsc +13 -13
  154. package/.next/server/app/tasks.segments/_full.segment.rsc +13 -13
  155. package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
  156. package/.next/server/app/tasks.segments/_index.segment.rsc +6 -6
  157. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  158. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
  159. package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
  160. package/.next/server/app-paths-manifest.json +2 -0
  161. package/.next/server/chunks/[root-of-the-server]__0h-9kwu._.js +3 -0
  162. package/.next/server/chunks/[root-of-the-server]__0h-9kwu._.js.map +1 -0
  163. package/.next/server/chunks/_next-internal_server_app_api_hub_server-logs_route_actions_00euexv.js +3 -0
  164. package/.next/server/chunks/_next-internal_server_app_api_hub_server-logs_route_actions_00euexv.js.map +1 -0
  165. package/.next/server/chunks/ssr/[root-of-the-server]__0qchqb~._.js +3 -0
  166. package/.next/server/chunks/ssr/[root-of-the-server]__0qchqb~._.js.map +1 -0
  167. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js +1 -1
  168. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js.map +1 -1
  169. package/.next/server/chunks/ssr/[root-of-the-server]__0zie0wm._.js +1 -1
  170. package/.next/server/chunks/ssr/[root-of-the-server]__0zie0wm._.js.map +1 -1
  171. package/.next/server/chunks/ssr/_next-internal_server_app_server-logs_page_actions_0g1gb5c.js +3 -0
  172. package/.next/server/chunks/ssr/_next-internal_server_app_server-logs_page_actions_0g1gb5c.js.map +1 -0
  173. package/.next/server/chunks/ssr/app_server-logs_page_tsx_0_kpp1p._.js +3 -0
  174. package/.next/server/chunks/ssr/app_server-logs_page_tsx_0_kpp1p._.js.map +1 -0
  175. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qm1-a1.js +4 -0
  176. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qm1-a1.js.map +1 -0
  177. package/.next/server/middleware-build-manifest.js +3 -3
  178. package/.next/server/next-font-manifest.js +1 -1
  179. package/.next/server/next-font-manifest.json +3 -0
  180. package/.next/server/pages/404.html +2 -2
  181. package/.next/server/pages/500.html +1 -1
  182. package/.next/static/chunks/{060yf6n1jdcri.js → 00ajkj4areor0.js} +1 -1
  183. package/.next/static/chunks/{0ep9nej0rnar-.js → 07okhs5561y5y.js} +1 -1
  184. package/.next/static/chunks/0fnbsi38p-b6~.js +1 -0
  185. package/.next/static/chunks/15bt8hbbo-gw1.css +2 -0
  186. package/.next/trace +2 -2
  187. package/.next/trace-build +1 -1
  188. package/.next/types/routes.d.ts +4 -2
  189. package/.next/types/validator.ts +18 -0
  190. package/app/api/hub/server-logs/route.ts +40 -0
  191. package/app/components/Sidebar.tsx +2 -1
  192. package/app/lib/useSSE.ts +11 -2
  193. package/app/server-logs/page.tsx +171 -0
  194. package/package.json +1 -1
  195. package/.next/static/chunks/0bajlbn83u82v.css +0 -2
  196. /package/.next/static/{q-j-l-aUCzasmkiiHyEOp → U4yGjxe7O16XnFFqa_0yt}/_buildManifest.js +0 -0
  197. /package/.next/static/{q-j-l-aUCzasmkiiHyEOp → U4yGjxe7O16XnFFqa_0yt}/_clientMiddlewareManifest.js +0 -0
  198. /package/.next/static/{q-j-l-aUCzasmkiiHyEOp → U4yGjxe7O16XnFFqa_0yt}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,38575,e=>{"use strict";var r=e.i(18050),t=e.i(71645);let a={log:"text-gray-300",info:"text-cyan-300",warn:"text-amber-400",error:"text-red-400"},s={log:"bg-gray-500/10 text-gray-400 border-gray-500/20",info:"bg-cyan-500/10 text-cyan-300 border-cyan-500/30",warn:"bg-amber-500/10 text-amber-300 border-amber-500/30",error:"bg-red-500/10 text-red-300 border-red-500/30"};e.s(["default",0,function(){let[e,l]=(0,t.useState)([]),[n,c]=(0,t.useState)(null),[o,d]=(0,t.useState)(!1),[i,x]=(0,t.useState)("all"),[g,b]=(0,t.useState)(""),[u,m]=(0,t.useState)(!0),h=(0,t.useRef)(""),p=(0,t.useCallback)(async(e=!1)=>{try{let r=new URLSearchParams({limit:"500"});!e&&h.current&&r.set("since",h.current);let t=await fetch(`/api/hub/server-logs?${r.toString()}`),a=await t.json();if(!t.ok||!a.ok)return void c(a.error||`HTTP ${t.status}`);c(null);let s=a.logs||[];if(0===s.length)return;h.current=s[0].ts,e?l(s):l(e=>{let r=new Set(e.map(e=>e.ts+e.line));return[...s.filter(e=>!r.has(e.ts+e.line)),...e].slice(0,1e3)})}catch(e){c(e instanceof Error?e.message:"fetch failed")}},[]);(0,t.useEffect)(()=>{p(!0)},[p]),(0,t.useEffect)(()=>{if(!u||o)return;let e=setInterval(()=>p(!1),2e3);return()=>clearInterval(e)},[u,o,p]);let f=e.filter(e=>("all"===i||e.level===i)&&(!g||!!e.line.toLowerCase().includes(g.toLowerCase()))),y={log:0,info:0,warn:0,error:0};for(let r of e)y[r.level]++;return(0,r.jsxs)("div",{className:"p-6 max-w-[1600px] mx-auto",children:[(0,r.jsxs)("div",{className:"flex items-baseline justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-white",children:"Server Logs"}),(0,r.jsx)("span",{className:"text-xs text-gray-500",children:"CommHub stdout/stderr · 最新在上"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)("button",{onClick:()=>d(e=>!e),className:`px-3 py-1 rounded border ${o?"bg-amber-500/10 text-amber-300 border-amber-500/30":"bg-cyan-500/10 text-cyan-300 border-cyan-500/30"}`,children:o?"▶ Resume":"⏸ Pause"}),(0,r.jsxs)("label",{className:"flex items-center gap-1 text-gray-400 select-none",children:[(0,r.jsx)("input",{type:"checkbox",checked:u,onChange:e=>m(e.target.checked),className:"accent-cyan-500"}),"auto-refresh"]}),(0,r.jsx)("button",{onClick:()=>p(!0),className:"px-3 py-1 rounded border bg-gray-500/10 text-gray-300 border-gray-500/20 hover:bg-gray-500/20",children:"↻ Reload"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,r.jsx)("div",{className:"flex items-center gap-1 text-xs",children:["all","log","info","warn","error"].map(e=>(0,r.jsxs)("button",{onClick:()=>x(e),className:`px-2.5 py-1 rounded border ${i===e?"bg-cyan-500/15 text-cyan-200 border-cyan-500/40":"bg-[#11111c] text-gray-400 border-[#2a2a4a] hover:bg-[#1a1a2a]"}`,children:[e,"all"!==e&&y[e]>0?` (${y[e]})`:""]},e))}),(0,r.jsx)("input",{value:g,onChange:e=>b(e.target.value),placeholder:"搜索关键字 (alias / task_id / error message)",className:"flex-1 px-3 py-1.5 text-xs bg-[#11111c] border border-[#2a2a4a] rounded text-gray-200 focus:outline-none focus:border-cyan-500/40"}),(0,r.jsxs)("span",{className:"text-[10px] text-gray-600",children:[f.length," / ",e.length]})]}),n&&(0,r.jsxs)("div",{className:"mb-3 p-3 rounded border border-red-500/30 bg-red-500/10 text-red-300 text-xs",children:["❌ ",n," (admin 角色才能看 server logs)"]}),(0,r.jsx)("div",{className:"rounded border border-[#1a1a2a] bg-[#050510] font-mono text-[11px] leading-relaxed overflow-hidden",children:0===f.length?(0,r.jsx)("div",{className:"p-8 text-center text-gray-600",children:n?"加载失败":0===e.length?"加载中...":"没有匹配的日志"}):(0,r.jsx)("div",{className:"divide-y divide-[#0d0d18] max-h-[calc(100vh-260px)] overflow-y-auto",children:f.map((e,t)=>(0,r.jsxs)("div",{className:"px-3 py-1 hover:bg-[#0a0a14] flex gap-3",children:[(0,r.jsx)("span",{className:"text-gray-600 shrink-0 w-[110px] text-[10px]",children:function(e){try{let r=new Date(e);return r.toTimeString().slice(0,8)+"."+String(r.getMilliseconds()).padStart(3,"0")}catch{return e}}(e.ts)}),(0,r.jsx)("span",{className:`shrink-0 px-1.5 rounded border text-[9px] uppercase ${s[e.level]}`,children:e.level}),(0,r.jsx)("span",{className:`break-all whitespace-pre-wrap ${a[e.level]}`,children:e.line})]},`${e.ts}-${t}`))})})]})}])}]);
@@ -0,0 +1,2 @@
1
+ @font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
2
+ @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-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-geist-mono);--color-red-300:#ffa3a3;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-800:#9f0712;--color-red-900:#82181a;--color-orange-300:#ffb96d;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-amber-300:#ffd236;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-yellow-200:#fff085;--color-yellow-300:#ffe02a;--color-yellow-400:#fac800;--color-yellow-500:#edb200;--color-yellow-800:#874b00;--color-yellow-900:#733e0a;--color-green-300:#7bf1a8;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-600:#00a544;--color-green-800:#016630;--color-green-900:#0d542b;--color-emerald-400:#00d294;--color-cyan-200:#a2f4fd;--color-cyan-300:#53eafd;--color-cyan-400:#00d2ef;--color-cyan-500:#00b7d7;--color-cyan-600:#0092b5;--color-cyan-800:#005f78;--color-cyan-900:#104e64;--color-cyan-950:#053345;--color-blue-300:#90c5ff;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-blue-800:#193cb8;--color-blue-900:#1c398e;--color-purple-200:#e9d5ff;--color-purple-300:#d9b3ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-purple-600:#9810fa;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-600:#4a5565;--color-gray-700:#364153;--color-gray-800:#1e2939;--color-gray-900:#101828;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--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-geist-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-300:lab(76.5514% 36.422 15.5335);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-800:lab(33.7174% 55.8993 41.0293);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-orange-300:lab(80.8059% 21.7313 50.4455);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-yellow-200:lab(94.3433% -5.00429 52.9663);--color-yellow-300:lab(89.7033% -.480294 84.4917);--color-yellow-400:lab(83.2664% 8.65132 106.895);--color-yellow-500:lab(76.3898% 14.5258 98.4589);--color-yellow-800:lab(38.7484% 23.5833 51.4916);--color-yellow-900:lab(32.3865% 21.1273 38.5959);--color-green-300:lab(86.9953% -47.2691 25.0054);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-600:lab(59.0978% -58.6621 41.2579);--color-green-800:lab(37.4616% -36.7971 22.9692);--color-green-900:lab(30.797% -29.6927 17.382);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-cyan-200:lab(91.0821% -24.0435 -12.8306);--color-cyan-300:lab(85.3886% -36.7636 -21.5716);--color-cyan-400:lab(76.6045% -40.9406 -29.6231);--color-cyan-500:lab(67.805% -35.3952 -30.2018);--color-cyan-600:lab(55.1767% -26.7496 -30.5139);--color-cyan-800:lab(36.5114% -17.1989 -21.6292);--color-cyan-900:lab(30.372% -13.1853 -18.7887);--color-cyan-950:lab(19.1528% -9.68757 -15.5267);--color-blue-300:lab(77.5052% -6.4629 -36.42);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-800:lab(30.2514% 27.7853 -70.2699);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-purple-200:lab(87.8405% 13.4282 -18.7159);--color-purple-300:lab(78.3298% 26.2195 -34.9499);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-purple-600:lab(43.0295% 75.21 -86.5669);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-200:lab(91.6229% -.159115 -2.26791);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-600:lab(35.6337% -1.58697 -10.8425);--color-gray-700:lab(27.1134% -.956401 -12.3224);--color-gray-800:lab(16.1051% -1.18239 -11.7533);--color-gray-900:lab(8.11897% .811279 -12.254)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-4{inset:calc(var(--spacing) * 4)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/4{top:25%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-1\/4{bottom:25%}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.-left-6{left:calc(var(--spacing) * -6)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-1\/3{left:33.3333%}.left-3{left:calc(var(--spacing) * 3)}.left-\[9px\]{left:9px}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.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-16{margin-top:calc(var(--spacing) * 16)}.mr-1{margin-right:calc(var(--spacing) * 1)}.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-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)}.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-10{margin-left:calc(var(--spacing) * 10)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-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}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-64{height:calc(var(--spacing) * 64)}.h-\[18px\]{height:18px}.h-\[60px\]{height:60px}.h-\[400px\]{height:400px}.h-\[600px\]{height:600px}.h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[200px\]{max-height:200px}.max-h-\[calc\(100vh-260px\)\]{max-height:calc(100vh - 260px)}.min-h-\[120px\]{min-height:120px}.min-h-full{min-height:100%}.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\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.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-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-\[18px\]{width:18px}.w-\[72px\]{width:72px}.w-\[110px\]{width:110px}.w-\[400px\]{width:400px}.w-\[600px\]{width:600px}.w-full{width:100%}.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-\[80px\]{max-width:80px}.max-w-\[85\%\]{max-width:85%}.max-w-\[200px\]{max-width:200px}.max-w-\[1600px\]{max-width:1600px}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.rotate-\[-20deg\]{rotate:-20deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.scroll-mt-8{scroll-margin-top:calc(var(--spacing) * 8)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.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))}.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}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}: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-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)))}: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-\[\#0d0d18\]>:not(:last-child)){border-color:#0d0d18}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-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-\[\#1a1a2a\]{border-color:#1a1a2a}.border-\[\#2a2a4a\]{border-color:#2a2a4a}.border-\[\#111128\]{border-color:#111128}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-500\/15{border-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/15{border-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.border-blue-500\/20{border-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/20{border-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.border-blue-800\/30{border-color:#193cb84d}@supports (color:color-mix(in lab, red, red)){.border-blue-800\/30{border-color:color-mix(in oklab, var(--color-blue-800) 30%, transparent)}}.border-current{border-color:currentColor}.border-cyan-400{border-color:var(--color-cyan-400)}.border-cyan-500\/15{border-color:#00b7d726}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/15{border-color:color-mix(in oklab, var(--color-cyan-500) 15%, transparent)}}.border-cyan-500\/20{border-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/20{border-color:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-cyan-500\/40{border-color:#00b7d766}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/40{border-color:color-mix(in oklab, var(--color-cyan-500) 40%, transparent)}}.border-cyan-800\/30{border-color:#005f784d}@supports (color:color-mix(in lab, red, red)){.border-cyan-800\/30{border-color:color-mix(in oklab, var(--color-cyan-800) 30%, transparent)}}.border-gray-500\/15{border-color:#6a728226}@supports (color:color-mix(in lab, red, red)){.border-gray-500\/15{border-color:color-mix(in oklab, var(--color-gray-500) 15%, transparent)}}.border-gray-500\/20{border-color:#6a728233}@supports (color:color-mix(in lab, red, red)){.border-gray-500\/20{border-color:color-mix(in oklab, var(--color-gray-500) 20%, transparent)}}.border-gray-600\/20{border-color:#4a556533}@supports (color:color-mix(in lab, red, red)){.border-gray-600\/20{border-color:color-mix(in oklab, var(--color-gray-600) 20%, transparent)}}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-700\/30{border-color:#3641534d}@supports (color:color-mix(in lab, red, red)){.border-gray-700\/30{border-color:color-mix(in oklab, var(--color-gray-700) 30%, transparent)}}.border-gray-700\/50{border-color:#36415380}@supports (color:color-mix(in lab, red, red)){.border-gray-700\/50{border-color:color-mix(in oklab, var(--color-gray-700) 50%, transparent)}}.border-gray-800{border-color:var(--color-gray-800)}.border-gray-800\/30{border-color:#1e29394d}@supports (color:color-mix(in lab, red, red)){.border-gray-800\/30{border-color:color-mix(in oklab, var(--color-gray-800) 30%, transparent)}}.border-gray-800\/40{border-color:#1e293966}@supports (color:color-mix(in lab, red, red)){.border-gray-800\/40{border-color:color-mix(in oklab, var(--color-gray-800) 40%, transparent)}}.border-green-500\/15{border-color:#00c75826}@supports (color:color-mix(in lab, red, red)){.border-green-500\/15{border-color:color-mix(in oklab, var(--color-green-500) 15%, transparent)}}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\/20{border-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.border-green-800\/30{border-color:#0166304d}@supports (color:color-mix(in lab, red, red)){.border-green-800\/30{border-color:color-mix(in oklab, var(--color-green-800) 30%, transparent)}}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/20{border-color:color-mix(in oklab, var(--color-orange-500) 20%, transparent)}}.border-purple-500\/15{border-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/15{border-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.border-purple-500\/20{border-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/20{border-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-500\/10{border-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.border-red-500\/10{border-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-800\/30{border-color:#9f07124d}@supports (color:color-mix(in lab, red, red)){.border-red-800\/30{border-color:color-mix(in oklab, var(--color-red-800) 30%, transparent)}}.border-red-800\/40{border-color:#9f071266}@supports (color:color-mix(in lab, red, red)){.border-red-800\/40{border-color:color-mix(in oklab, var(--color-red-800) 40%, transparent)}}.border-red-900\/30{border-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.border-red-900\/30{border-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.border-yellow-500\/20{border-color:#edb20033}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/20{border-color:color-mix(in oklab, var(--color-yellow-500) 20%, transparent)}}.border-yellow-800\/30{border-color:#874b004d}@supports (color:color-mix(in lab, red, red)){.border-yellow-800\/30{border-color:color-mix(in oklab, var(--color-yellow-800) 30%, transparent)}}.border-yellow-800\/40{border-color:#874b0066}@supports (color:color-mix(in lab, red, red)){.border-yellow-800\/40{border-color:color-mix(in oklab, var(--color-yellow-800) 40%, transparent)}}.border-t-cyan-500{border-top-color:var(--color-cyan-500)}.border-t-white{border-top-color:var(--color-white)}.bg-\[\#0a0a1a\]{background-color:#0a0a1a}.bg-\[\#0a0a15\]{background-color:#0a0a15}.bg-\[\#0d0d1a\]{background-color:#0d0d1a}.bg-\[\#1a1a2a\]{background-color:#1a1a2a}.bg-\[\#2a2a4a\]{background-color:#2a2a4a}.bg-\[\#11111c\]{background-color:#11111c}.bg-\[\#050510\]{background-color:#050510}.bg-\[\#080814\]{background-color:#080814}.bg-\[\#111128\]{background-color:#111128}.bg-\[\#111128\]\/80{background-color:#111128cc;background-color:lab(5.91834% 5.33491 -15.6886/.8)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab, red, red)){.bg-black\/20{background-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/5{background-color:color-mix(in oklab, var(--color-blue-500) 5%, transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-500\/30{background-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/30{background-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/30{background-color:color-mix(in oklab, var(--color-blue-900) 30%, transparent)}}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/5{background-color:#00b7d70d}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/5{background-color:color-mix(in oklab, var(--color-cyan-500) 5%, transparent)}}.bg-cyan-500\/8{background-color:#00b7d714}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/8{background-color:color-mix(in oklab, var(--color-cyan-500) 8%, transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/10{background-color:color-mix(in oklab, var(--color-cyan-500) 10%, transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/15{background-color:color-mix(in oklab, var(--color-cyan-500) 15%, transparent)}}.bg-cyan-500\/20{background-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/20{background-color:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.bg-cyan-500\/40{background-color:#00b7d766}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/40{background-color:color-mix(in oklab, var(--color-cyan-500) 40%, transparent)}}.bg-cyan-600{background-color:var(--color-cyan-600)}.bg-cyan-900\/30{background-color:#104e644d}@supports (color:color-mix(in lab, red, red)){.bg-cyan-900\/30{background-color:color-mix(in oklab, var(--color-cyan-900) 30%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\/5{background-color:#6a72820d}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/5{background-color:color-mix(in oklab, var(--color-gray-500) 5%, transparent)}}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/10{background-color:color-mix(in oklab, var(--color-gray-500) 10%, transparent)}}.bg-gray-500\/30{background-color:#6a72824d}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/30{background-color:color-mix(in oklab, var(--color-gray-500) 30%, transparent)}}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-800\/20{background-color:#1e293933}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/20{background-color:color-mix(in oklab, var(--color-gray-800) 20%, transparent)}}.bg-gray-800\/40{background-color:#1e293966}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/40{background-color:color-mix(in oklab, var(--color-gray-800) 40%, transparent)}}.bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/50{background-color:color-mix(in oklab, var(--color-gray-800) 50%, transparent)}}.bg-gray-800\/60{background-color:#1e293999}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/60{background-color:color-mix(in oklab, var(--color-gray-800) 60%, transparent)}}.bg-gray-900\/30{background-color:#1018284d}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/30{background-color:color-mix(in oklab, var(--color-gray-900) 30%, transparent)}}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/5{background-color:color-mix(in oklab, var(--color-green-500) 5%, transparent)}}.bg-green-500\/8{background-color:#00c75814}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/8{background-color:color-mix(in oklab, var(--color-green-500) 8%, transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-500\/30{background-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/30{background-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/30{background-color:color-mix(in oklab, var(--color-green-900) 30%, transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-purple-500\/30{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/30{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/5{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/30{background-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/30{background-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.bg-red-600\/20{background-color:#e4001433}@supports (color:color-mix(in lab, red, red)){.bg-red-600\/20{background-color:color-mix(in oklab, var(--color-red-600) 20%, transparent)}}.bg-red-800{background-color:var(--color-red-800)}.bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/20{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/5{background-color:color-mix(in oklab, var(--color-yellow-500) 5%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-yellow-500\/30{background-color:#edb2004d}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/30{background-color:color-mix(in oklab, var(--color-yellow-500) 30%, transparent)}}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/20{background-color:color-mix(in oklab, var(--color-yellow-900) 20%, transparent)}}.bg-yellow-900\/30{background-color:#733e0a4d}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/30{background-color:color-mix(in oklab, var(--color-yellow-900) 30%, transparent)}}.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-500\/15{--tw-gradient-from:#3080ff26}@supports (color:color-mix(in lab, red, red)){.from-blue-500\/15{--tw-gradient-from:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.from-blue-500\/15{--tw-gradient-stops:var(--tw-gradient-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-cyan-500{--tw-gradient-from:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-cyan-500\/20{--tw-gradient-from:#00b7d733}@supports (color:color-mix(in lab, red, red)){.from-cyan-500\/20{--tw-gradient-from:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.from-cyan-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-cyan-500\/30{--tw-gradient-from:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.from-cyan-500\/30{--tw-gradient-from:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.from-cyan-500\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-cyan-600{--tw-gradient-from:var(--color-cyan-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-gray-500\/10{--tw-gradient-from:#6a72821a}@supports (color:color-mix(in lab, red, red)){.from-gray-500\/10{--tw-gradient-from:color-mix(in oklab, var(--color-gray-500) 10%, transparent)}}.from-gray-500\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-green-500\/20{--tw-gradient-from:#00c75833}@supports (color:color-mix(in lab, red, red)){.from-green-500\/20{--tw-gradient-from:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.from-green-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-cyan-400\/70{--tw-gradient-via:#00d2efb3}@supports (color:color-mix(in lab, red, red)){.via-cyan-400\/70{--tw-gradient-via:color-mix(in oklab, var(--color-cyan-400) 70%, transparent)}}.via-cyan-400\/70{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-blue-500\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab, red, red)){.to-blue-500\/0{--tw-gradient-to:color-mix(in oklab, var(--color-blue-500) 0%, transparent)}}.to-blue-500\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-500\/20{--tw-gradient-to:#3080ff33}@supports (color:color-mix(in lab, red, red)){.to-blue-500\/20{--tw-gradient-to:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.to-blue-500\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-500\/30{--tw-gradient-to:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.to-blue-500\/30{--tw-gradient-to:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.to-blue-500\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-cyan-500\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab, red, red)){.to-cyan-500\/0{--tw-gradient-to:color-mix(in oklab, var(--color-cyan-500) 0%, transparent)}}.to-cyan-500\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-500\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab, red, red)){.to-gray-500\/0{--tw-gradient-to:color-mix(in oklab, var(--color-gray-500) 0%, transparent)}}.to-gray-500\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-green-500\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab, red, red)){.to-green-500\/0{--tw-gradient-to:color-mix(in oklab, var(--color-green-500) 0%, transparent)}}.to-green-500\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.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\.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)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.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-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.35em\]{--tw-tracking:.35em;letter-spacing:.35em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-cyan-200{color:var(--color-cyan-200)}.text-cyan-300{color:var(--color-cyan-300)}.text-cyan-400{color:var(--color-cyan-400)}.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-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-400\/80{color:#05df72cc}@supports (color:color-mix(in lab, red, red)){.text-green-400\/80{color:color-mix(in oklab, var(--color-green-400) 80%, transparent)}}.text-green-500{color:var(--color-green-500)}.text-orange-300{color:var(--color-orange-300)}.text-orange-400{color:var(--color-orange-400)}.text-purple-200{color:var(--color-purple-200)}.text-purple-200\/80{color:#e9d5ffcc}@supports (color:color-mix(in lab, red, red)){.text-purple-200\/80{color:color-mix(in oklab, var(--color-purple-200) 80%, transparent)}}.text-purple-300{color:var(--color-purple-300)}.text-purple-400{color:var(--color-purple-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-white{color:var(--color-white)}.text-white\/10{color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.text-white\/10{color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.text-yellow-200{color:var(--color-yellow-200)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-400{color:var(--color-yellow-400)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-600::placeholder{color:var(--color-gray-600)}.accent-cyan-500{accent-color:var(--color-cyan-500)}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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)}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/30{--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.shadow-black\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/50{--tw-shadow-color:#00000080}@supports (color:color-mix(in lab, red, red)){.shadow-black\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/60{--tw-shadow-color:#0009}@supports (color:color-mix(in lab, red, red)){.shadow-black\/60{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 60%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/70{--tw-shadow-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.shadow-black\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-cyan-500\/5{--tw-shadow-color:#00b7d70d}@supports (color:color-mix(in lab, red, red)){.shadow-cyan-500\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-cyan-500) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-cyan-500\/10{--tw-shadow-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.shadow-cyan-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-cyan-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-cyan-950\/30{--tw-shadow-color:#0533454d}@supports (color:color-mix(in lab, red, red)){.shadow-cyan-950\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-cyan-950) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/10{--tw-shadow-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.shadow-green-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[100px\]{--tw-blur:blur(100px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[120px\]{--tw-blur:blur(120px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\!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,)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing) * 0)}@media (hover:hover){.hover\:border-\[\#3a3a5a\]:hover{border-color:#3a3a5a}.hover\:border-cyan-500\/30:hover{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.hover\:border-cyan-500\/30:hover{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:bg-\[\#0a0a14\]:hover{background-color:#0a0a14}.hover\:bg-\[\#1a1a2a\]:hover{background-color:#1a1a2a}.hover\:bg-\[\#161630\]:hover{background-color:#161630}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-cyan-500:hover{background-color:var(--color-cyan-500)}.hover\:bg-cyan-500\/10:hover{background-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-cyan-500\/10:hover{background-color:color-mix(in oklab, var(--color-cyan-500) 10%, transparent)}}.hover\:bg-cyan-500\/20:hover{background-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.hover\:bg-cyan-500\/20:hover{background-color:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.hover\:bg-gray-500\/20:hover{background-color:#6a728233}@supports (color:color-mix(in lab, red, red)){.hover\:bg-gray-500\/20:hover{background-color:color-mix(in oklab, var(--color-gray-500) 20%, transparent)}}.hover\:bg-green-500:hover{background-color:var(--color-green-500)}.hover\:bg-green-500\/20:hover{background-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.hover\:bg-green-500\/20:hover{background-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.hover\:bg-orange-500\/10:hover{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-orange-500\/10:hover{background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.hover\:bg-purple-500:hover{background-color:var(--color-purple-500)}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-600\/30:hover{background-color:#e400144d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-600\/30:hover{background-color:color-mix(in oklab, var(--color-red-600) 30%, transparent)}}.hover\:from-cyan-500:hover{--tw-gradient-from:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:to-blue-500:hover{--tw-gradient-to: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))}.hover\:text-cyan-300:hover{color:var(--color-cyan-300)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-400:hover{color:var(--color-gray-400)}.hover\:text-orange-300:hover{color:var(--color-orange-300)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.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-cyan-500\/20:hover{--tw-shadow-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-cyan-500\/20:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-cyan-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-blue-500\/50:focus{border-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.focus\:border-blue-500\/50:focus{border-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.focus\:border-cyan-500:focus{border-color:var(--color-cyan-500)}.focus\:border-cyan-500\/40:focus{border-color:#00b7d766}@supports (color:color-mix(in lab, red, red)){.focus\:border-cyan-500\/40:focus{border-color:color-mix(in oklab, var(--color-cyan-500) 40%, transparent)}}.focus\:border-cyan-500\/50:focus{border-color:#00b7d780}@supports (color:color-mix(in lab, red, red)){.focus\:border-cyan-500\/50:focus{border-color:color-mix(in oklab, var(--color-cyan-500) 50%, transparent)}}.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-blue-500\/20:focus{--tw-ring-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.focus\:ring-blue-500\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.focus\:ring-cyan-500\/20:focus{--tw-ring-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.focus\:ring-cyan-500\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:bg-\[\#1a1a3a\]:active{background-color:#1a1a3a}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-700:disabled{background-color:var(--color-gray-700)}.disabled\:bg-gray-800:disabled{background-color:var(--color-gray-800)}.disabled\:from-gray-800:disabled{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.disabled\:to-gray-800:disabled{--tw-gradient-to:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.disabled\:text-gray-600:disabled{color:var(--color-gray-600)}.disabled\:shadow-none:disabled{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (min-width:40rem){.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:max-w-\[320px\]{max-width:320px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:text-right{text-align:right}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:static{position:static}.lg\:inset-x-\[15\%\]{inset-inline:15%}.lg\:inset-y-\[5\%\]{inset-block:5%}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:ml-0{margin-left:calc(var(--spacing) * 0)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-h-none{max-height:none}.lg\:w-\[280px\]{width:280px}.lg\:w-\[500px\]{width:500px}.lg\:shrink-0{flex-shrink:0}.lg\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.lg\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:96rem){.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--background:#0a0a1a;--foreground:#e5e7eb}body{background:var(--background);color:var(--foreground);font-family:var(--font-mono), ui-monospace, monospace}.scrollbar-thin::-webkit-scrollbar{width:4px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background:#2a2a4a;border-radius:4px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#3a3a5a}@keyframes fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.3s ease-out fade-in}@media (max-width:640px){select,input[type=text],button{min-height:44px}}@supports (padding-bottom:env(safe-area-inset-bottom)){body{padding-bottom:env(safe-area-inset-bottom)}}@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-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-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}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":722,"timestamp":1792920173583,"id":4,"parentId":1,"tags":{},"startTime":1777767020620,"traceId":"29f9aa57b0f36d4d"},{"name":"load-custom-routes","duration":875,"timestamp":1792920174868,"id":5,"parentId":1,"tags":{},"startTime":1777767020621,"traceId":"29f9aa57b0f36d4d"},{"name":"create-dist-dir","duration":11518,"timestamp":1792920175916,"id":6,"parentId":1,"tags":{},"startTime":1777767020623,"traceId":"29f9aa57b0f36d4d"},{"name":"clean","duration":138069,"timestamp":1792920188994,"id":7,"parentId":1,"tags":{},"startTime":1777767020635,"traceId":"29f9aa57b0f36d4d"},{"name":"discover-routes","duration":145534,"timestamp":1792920887552,"id":8,"parentId":1,"tags":{},"startTime":1777767021334,"traceId":"29f9aa57b0f36d4d"},{"name":"create-root-mapping","duration":711,"timestamp":1792921033232,"id":9,"parentId":1,"tags":{},"startTime":1777767021480,"traceId":"29f9aa57b0f36d4d"},{"name":"generate-route-types","duration":112164,"timestamp":1792921048712,"id":10,"parentId":1,"tags":{},"startTime":1777767021495,"traceId":"29f9aa57b0f36d4d"},{"name":"public-dir-conflict-check","duration":949,"timestamp":1792921161316,"id":11,"parentId":1,"tags":{},"startTime":1777767021608,"traceId":"29f9aa57b0f36d4d"},{"name":"generate-routes-manifest","duration":28806,"timestamp":1792921163103,"id":12,"parentId":1,"tags":{},"startTime":1777767021609,"traceId":"29f9aa57b0f36d4d"},{"name":"run-turbopack","duration":52839406,"timestamp":1792921230933,"id":14,"parentId":1,"tags":{},"startTime":1777767021677,"traceId":"29f9aa57b0f36d4d"},{"name":"turbopack-build-events","duration":13443,"timestamp":1792923373931,"id":15,"parentId":1,"tags":{},"startTime":1777767023833,"traceId":"29f9aa57b0f36d4d"},{"name":"run-typescript","duration":47135937,"timestamp":1792974119881,"id":16,"parentId":1,"tags":{},"startTime":1777767074566,"traceId":"29f9aa57b0f36d4d"},{"name":"generate-required-server-files","duration":11161,"timestamp":1793021260737,"id":18,"parentId":1,"tags":{},"startTime":1777767121707,"traceId":"29f9aa57b0f36d4d"},{"name":"check-static-error-page","duration":133066,"timestamp":1793021619361,"id":20,"parentId":19,"tags":{},"startTime":1777767122066,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":2587814,"timestamp":1793021770791,"id":61,"parentId":22,"tags":{},"startTime":1777767122217,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":2710123,"timestamp":1793021648629,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1777767122095,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":2816924,"timestamp":1793021772921,"id":62,"parentId":25,"tags":{},"startTime":1777767122219,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":2926147,"timestamp":1793021664255,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1777767122111,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":2989402,"timestamp":1793021775955,"id":64,"parentId":27,"tags":{},"startTime":1777767122222,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3099899,"timestamp":1793021665665,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1777767122112,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3015851,"timestamp":1793021776617,"id":65,"parentId":28,"tags":{},"startTime":1777767122223,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3126193,"timestamp":1793021666604,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1777767122113,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3056404,"timestamp":1793021776801,"id":66,"parentId":29,"tags":{},"startTime":1777767122223,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3166202,"timestamp":1793021667101,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1777767122113,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3081434,"timestamp":1793021777500,"id":67,"parentId":30,"tags":{},"startTime":1777767122224,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3189763,"timestamp":1793021669333,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1777767122116,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3109532,"timestamp":1793021777608,"id":68,"parentId":32,"tags":{},"startTime":1777767122224,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3216629,"timestamp":1793021670594,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1777767122117,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3134183,"timestamp":1793021777945,"id":69,"parentId":33,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3240983,"timestamp":1793021671211,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1777767122118,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3146850,"timestamp":1793021787694,"id":70,"parentId":34,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3258854,"timestamp":1793021675841,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1777767122122,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3180978,"timestamp":1793021787758,"id":71,"parentId":35,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3292277,"timestamp":1793021676526,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1777767122123,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3204319,"timestamp":1793021775845,"id":63,"parentId":26,"tags":{},"startTime":1777767122222,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3317665,"timestamp":1793021665130,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1777767122111,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3217118,"timestamp":1793021787780,"id":72,"parentId":36,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3327148,"timestamp":1793021677876,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1777767122124,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3243573,"timestamp":1793021787829,"id":74,"parentId":38,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3348661,"timestamp":1793021682821,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1777767122129,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3273126,"timestamp":1793021787838,"id":75,"parentId":39,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3380189,"timestamp":1793021683167,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3307251,"timestamp":1793021787851,"id":76,"parentId":40,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3411674,"timestamp":1793021683564,"id":40,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3315744,"timestamp":1793021787811,"id":73,"parentId":37,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3421203,"timestamp":1793021682575,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1777767122129,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3336539,"timestamp":1793021787870,"id":78,"parentId":42,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3440830,"timestamp":1793021683702,"id":42,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3337066,"timestamp":1793021787863,"id":77,"parentId":41,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3442087,"timestamp":1793021683642,"id":41,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3355771,"timestamp":1793021787884,"id":79,"parentId":43,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3459958,"timestamp":1793021683764,"id":43,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3374258,"timestamp":1793021787897,"id":80,"parentId":44,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3481917,"timestamp":1793021683822,"id":44,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3386753,"timestamp":1793021787906,"id":81,"parentId":45,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3490815,"timestamp":1793021683948,"id":45,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1777767122130,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3397501,"timestamp":1793021787919,"id":82,"parentId":46,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3500360,"timestamp":1793021685179,"id":46,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1777767122132,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3411045,"timestamp":1793021787940,"id":83,"parentId":48,"tags":{},"startTime":1777767122234,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3508933,"timestamp":1793021690332,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1777767122137,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3377542,"timestamp":1793021827660,"id":84,"parentId":24,"tags":{},"startTime":1777767122274,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3555503,"timestamp":1793021649826,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1777767122096,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3381957,"timestamp":1793021841779,"id":85,"parentId":31,"tags":{},"startTime":1777767122288,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3554357,"timestamp":1793021669590,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1777767122116,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3516360,"timestamp":1793021770258,"id":60,"parentId":21,"tags":{},"startTime":1777767122217,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3642546,"timestamp":1793021644162,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1777767122091,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3352726,"timestamp":1793022054792,"id":88,"parentId":50,"tags":{},"startTime":1777767122501,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3701671,"timestamp":1793021717438,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1777767122164,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3395013,"timestamp":1793022054803,"id":89,"parentId":51,"tags":{},"startTime":1777767122501,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3732431,"timestamp":1793021717695,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1777767122164,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3420827,"timestamp":1793022054819,"id":90,"parentId":52,"tags":{},"startTime":1777767122501,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3757489,"timestamp":1793021718278,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1777767122165,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3439275,"timestamp":1793022066879,"id":91,"parentId":53,"tags":{},"startTime":1777767122513,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3787193,"timestamp":1793021719148,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1777767122166,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3487488,"timestamp":1793022066958,"id":92,"parentId":55,"tags":{},"startTime":1777767122513,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3833134,"timestamp":1793021721641,"id":55,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1777767122168,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3516463,"timestamp":1793022054775,"id":87,"parentId":49,"tags":{},"startTime":1777767122501,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3854572,"timestamp":1793021716801,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1777767122163,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3519257,"timestamp":1793022067671,"id":93,"parentId":57,"tags":{},"startTime":1777767122514,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3856534,"timestamp":1793021730559,"id":57,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1777767122177,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3547001,"timestamp":1793022067770,"id":94,"parentId":58,"tags":{},"startTime":1777767122514,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3884057,"timestamp":1793021731051,"id":58,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1777767122177,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3550578,"timestamp":1793022067783,"id":95,"parentId":59,"tags":{},"startTime":1777767122514,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3886727,"timestamp":1793021731775,"id":59,"parentId":19,"tags":{"page":"/tasks"},"startTime":1777767122178,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3578184,"timestamp":1793022054718,"id":86,"parentId":23,"tags":{},"startTime":1777767122501,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3983746,"timestamp":1793021649444,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1777767122096,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3581120,"timestamp":1793022067792,"id":96,"parentId":47,"tags":{},"startTime":1777767122514,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3962188,"timestamp":1793021687343,"id":47,"parentId":19,"tags":{"page":"/docs"},"startTime":1777767122134,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3591181,"timestamp":1793022067845,"id":98,"parentId":56,"tags":{},"startTime":1777767122514,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3933700,"timestamp":1793021725394,"id":56,"parentId":19,"tags":{"page":"/settings"},"startTime":1777767122172,"traceId":"29f9aa57b0f36d4d"},{"name":"is-page-static","duration":3592888,"timestamp":1793022067820,"id":97,"parentId":54,"tags":{},"startTime":1777767122514,"traceId":"29f9aa57b0f36d4d"},{"name":"check-page","duration":3940838,"timestamp":1793021719924,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1777767122166,"traceId":"29f9aa57b0f36d4d"},{"name":"static-check","duration":4043542,"timestamp":1793021617485,"id":19,"parentId":1,"tags":{},"startTime":1777767122064,"traceId":"29f9aa57b0f36d4d"},{"name":"write-routes-manifest","duration":1228,"timestamp":1793025682426,"id":100,"parentId":1,"tags":{},"startTime":1777767126129,"traceId":"29f9aa57b0f36d4d"},{"name":"load-dotenv","duration":145,"timestamp":1793025748322,"id":103,"parentId":102,"tags":{},"startTime":1777767126195,"traceId":"29f9aa57b0f36d4d"},{"name":"run-export-path-map","duration":4961,"timestamp":1793025848073,"id":104,"parentId":102,"tags":{},"startTime":1777767126294,"traceId":"29f9aa57b0f36d4d"},{"name":"next-export","duration":5079335,"timestamp":1793025743363,"id":102,"parentId":1,"tags":{},"startTime":1777767126190,"traceId":"29f9aa57b0f36d4d"},{"name":"move-exported-app-not-found-","duration":2058,"timestamp":1793030833168,"id":105,"parentId":101,"tags":{},"startTime":1777767131280,"traceId":"29f9aa57b0f36d4d"},{"name":"move-exported-app-global-error-","duration":3212,"timestamp":1793030835597,"id":106,"parentId":101,"tags":{},"startTime":1777767131282,"traceId":"29f9aa57b0f36d4d"},{"name":"static-generation","duration":5128859,"timestamp":1793025717830,"id":101,"parentId":1,"tags":{},"startTime":1777767126164,"traceId":"29f9aa57b0f36d4d"},{"name":"write-routes-manifest","duration":5125,"timestamp":1793030847800,"id":107,"parentId":1,"tags":{},"startTime":1777767131294,"traceId":"29f9aa57b0f36d4d"}]
2
- [{"name":"print-tree-view","duration":13335,"timestamp":1793030959504,"id":108,"parentId":1,"tags":{},"startTime":1777767131406,"traceId":"29f9aa57b0f36d4d"},{"name":"write-route-bundle-stats","duration":86263,"timestamp":1793030972902,"id":109,"parentId":1,"tags":{},"startTime":1777767131419,"traceId":"29f9aa57b0f36d4d"},{"name":"telemetry-flush","duration":78709,"timestamp":1793031059224,"id":110,"parentId":1,"tags":{},"startTime":1777767131506,"traceId":"29f9aa57b0f36d4d"},{"name":"next-build","duration":111180397,"timestamp":1792919957687,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777767020404,"traceId":"29f9aa57b0f36d4d"}]
1
+ [{"name":"generate-buildid","duration":435,"timestamp":1840911439278,"id":4,"parentId":1,"tags":{},"startTime":1777815011886,"traceId":"9cf0c6be78242eb7"},{"name":"load-custom-routes","duration":698,"timestamp":1840911440139,"id":5,"parentId":1,"tags":{},"startTime":1777815011886,"traceId":"9cf0c6be78242eb7"},{"name":"create-dist-dir","duration":754,"timestamp":1840911441159,"id":6,"parentId":1,"tags":{},"startTime":1777815011888,"traceId":"9cf0c6be78242eb7"},{"name":"clean","duration":167856,"timestamp":1840911444987,"id":7,"parentId":1,"tags":{},"startTime":1777815011891,"traceId":"9cf0c6be78242eb7"},{"name":"discover-routes","duration":56618,"timestamp":1840911783899,"id":8,"parentId":1,"tags":{},"startTime":1777815012230,"traceId":"9cf0c6be78242eb7"},{"name":"create-root-mapping","duration":258,"timestamp":1840911840637,"id":9,"parentId":1,"tags":{},"startTime":1777815012287,"traceId":"9cf0c6be78242eb7"},{"name":"generate-route-types","duration":53245,"timestamp":1840911847943,"id":10,"parentId":1,"tags":{},"startTime":1777815012294,"traceId":"9cf0c6be78242eb7"},{"name":"public-dir-conflict-check","duration":412,"timestamp":1840911902415,"id":11,"parentId":1,"tags":{},"startTime":1777815012349,"traceId":"9cf0c6be78242eb7"},{"name":"generate-routes-manifest","duration":10316,"timestamp":1840911903128,"id":12,"parentId":1,"tags":{},"startTime":1777815012349,"traceId":"9cf0c6be78242eb7"},{"name":"run-turbopack","duration":20437345,"timestamp":1840911928903,"id":14,"parentId":1,"tags":{},"startTime":1777815012375,"traceId":"9cf0c6be78242eb7"},{"name":"turbopack-build-events","duration":79,"timestamp":1840912741814,"id":15,"parentId":1,"tags":{},"startTime":1777815013188,"traceId":"9cf0c6be78242eb7"},{"name":"run-typescript","duration":19563946,"timestamp":1840932390801,"id":16,"parentId":1,"tags":{},"startTime":1777815032837,"traceId":"9cf0c6be78242eb7"},{"name":"generate-required-server-files","duration":6878,"timestamp":1840951957510,"id":18,"parentId":1,"tags":{},"startTime":1777815052404,"traceId":"9cf0c6be78242eb7"},{"name":"check-static-error-page","duration":35132,"timestamp":1840952098967,"id":20,"parentId":19,"tags":{},"startTime":1777815052545,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":931180,"timestamp":1840952145180,"id":63,"parentId":22,"tags":{},"startTime":1777815052592,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":972245,"timestamp":1840952104422,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1777815052551,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":942839,"timestamp":1840952145431,"id":64,"parentId":25,"tags":{},"startTime":1777815052592,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":975827,"timestamp":1840952112639,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1777815052559,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1004978,"timestamp":1840952150454,"id":66,"parentId":27,"tags":{},"startTime":1777815052597,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1042194,"timestamp":1840952113351,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1777815052560,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1017254,"timestamp":1840952151666,"id":67,"parentId":28,"tags":{},"startTime":1777815052598,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1054990,"timestamp":1840952114104,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1777815052560,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1033432,"timestamp":1840952151912,"id":68,"parentId":29,"tags":{},"startTime":1777815052598,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1071006,"timestamp":1840952114508,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1777815052561,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1042509,"timestamp":1840952152065,"id":69,"parentId":30,"tags":{},"startTime":1777815052598,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1079592,"timestamp":1840952115219,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1777815052562,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1061020,"timestamp":1840952152126,"id":70,"parentId":32,"tags":{},"startTime":1777815052598,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1097527,"timestamp":1840952115995,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1777815052563,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1073980,"timestamp":1840952152683,"id":71,"parentId":33,"tags":{},"startTime":1777815052599,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1110139,"timestamp":1840952116778,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1777815052563,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1091046,"timestamp":1840952152824,"id":72,"parentId":34,"tags":{},"startTime":1777815052599,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1127064,"timestamp":1840952117631,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1777815052564,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1104762,"timestamp":1840952152850,"id":73,"parentId":35,"tags":{},"startTime":1777815052599,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1142902,"timestamp":1840952118145,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1777815052565,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1124257,"timestamp":1840952152872,"id":74,"parentId":36,"tags":{},"startTime":1777815052599,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1158230,"timestamp":1840952119039,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1777815052565,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1131952,"timestamp":1840952153174,"id":75,"parentId":37,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1168392,"timestamp":1840952119792,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1777815052566,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1144999,"timestamp":1840952153215,"id":76,"parentId":38,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1177801,"timestamp":1840952120577,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1777815052567,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1159553,"timestamp":1840952153230,"id":77,"parentId":39,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1192042,"timestamp":1840952120847,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1777815052567,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1173909,"timestamp":1840952145617,"id":65,"parentId":26,"tags":{},"startTime":1777815052592,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1206563,"timestamp":1840952113063,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1777815052559,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1168318,"timestamp":1840952153241,"id":78,"parentId":40,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1200632,"timestamp":1840952121206,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1777815052568,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1175372,"timestamp":1840952153248,"id":79,"parentId":41,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1207264,"timestamp":1840952121625,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1777815052568,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1176653,"timestamp":1840952153260,"id":80,"parentId":42,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1208975,"timestamp":1840952122483,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1777815052569,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1188920,"timestamp":1840952153272,"id":81,"parentId":43,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1216825,"timestamp":1840952125451,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1777815052572,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1195795,"timestamp":1840952153280,"id":82,"parentId":44,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1223472,"timestamp":1840952125686,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1777815052572,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1197663,"timestamp":1840952153290,"id":83,"parentId":45,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1225353,"timestamp":1840952125767,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1777815052572,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1204483,"timestamp":1840952153326,"id":85,"parentId":47,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1231982,"timestamp":1840952125890,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1777815052572,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1211208,"timestamp":1840952153337,"id":86,"parentId":49,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1237563,"timestamp":1840952127060,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1777815052573,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1211563,"timestamp":1840952153298,"id":84,"parentId":46,"tags":{},"startTime":1777815052600,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1239055,"timestamp":1840952125832,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1777815052572,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1217420,"timestamp":1840952162176,"id":88,"parentId":31,"tags":{},"startTime":1777815052609,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1264119,"timestamp":1840952115645,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1777815052562,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1240460,"timestamp":1840952160447,"id":87,"parentId":24,"tags":{},"startTime":1777815052607,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1295806,"timestamp":1840952105460,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1777815052552,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1329095,"timestamp":1840952166255,"id":89,"parentId":23,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1390273,"timestamp":1840952105223,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1777815052552,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1358734,"timestamp":1840952166364,"id":91,"parentId":51,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1396996,"timestamp":1840952128190,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1777815052575,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1387286,"timestamp":1840952144607,"id":62,"parentId":21,"tags":{},"startTime":1777815052591,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1430660,"timestamp":1840952101333,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1777815052548,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1378248,"timestamp":1840952166376,"id":92,"parentId":52,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1416324,"timestamp":1840952128424,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1777815052575,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1400373,"timestamp":1840952166346,"id":90,"parentId":50,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1438927,"timestamp":1840952127893,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1777815052574,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1401155,"timestamp":1840952166396,"id":94,"parentId":54,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1438743,"timestamp":1840952128894,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1777815052575,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1412306,"timestamp":1840952166416,"id":96,"parentId":57,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1448790,"timestamp":1840952130115,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1777815052576,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1426113,"timestamp":1840952166432,"id":97,"parentId":59,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1459426,"timestamp":1840952133206,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1777815052580,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1436089,"timestamp":1840952166407,"id":95,"parentId":56,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1472827,"timestamp":1840952129758,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1777815052576,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1449841,"timestamp":1840952166446,"id":98,"parentId":60,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1482826,"timestamp":1840952133603,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1777815052580,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1455189,"timestamp":1840952166470,"id":99,"parentId":61,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1487945,"timestamp":1840952133817,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1777815052580,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1452502,"timestamp":1840952180678,"id":100,"parentId":48,"tags":{},"startTime":1777815052627,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1507350,"timestamp":1840952125948,"id":48,"parentId":19,"tags":{"page":"/docs"},"startTime":1777815052572,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1434224,"timestamp":1840952199313,"id":101,"parentId":55,"tags":{},"startTime":1777815052646,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1504409,"timestamp":1840952129159,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1777815052576,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1428679,"timestamp":1840952220413,"id":102,"parentId":58,"tags":{},"startTime":1777815052667,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1518592,"timestamp":1840952130675,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1777815052577,"traceId":"9cf0c6be78242eb7"},{"name":"is-page-static","duration":1502911,"timestamp":1840952166383,"id":93,"parentId":53,"tags":{},"startTime":1777815052613,"traceId":"9cf0c6be78242eb7"},{"name":"check-page","duration":1540810,"timestamp":1840952128661,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1777815052575,"traceId":"9cf0c6be78242eb7"},{"name":"static-check","duration":1571747,"timestamp":1840952097755,"id":19,"parentId":1,"tags":{},"startTime":1777815052544,"traceId":"9cf0c6be78242eb7"},{"name":"write-routes-manifest","duration":1330,"timestamp":1840953688969,"id":104,"parentId":1,"tags":{},"startTime":1777815054135,"traceId":"9cf0c6be78242eb7"},{"name":"load-dotenv","duration":125,"timestamp":1840953719493,"id":107,"parentId":106,"tags":{},"startTime":1777815054166,"traceId":"9cf0c6be78242eb7"},{"name":"run-export-path-map","duration":1273,"timestamp":1840953727155,"id":108,"parentId":106,"tags":{},"startTime":1777815054174,"traceId":"9cf0c6be78242eb7"},{"name":"next-export","duration":1715301,"timestamp":1840953716949,"id":106,"parentId":1,"tags":{},"startTime":1777815054163,"traceId":"9cf0c6be78242eb7"}]
2
+ [{"name":"move-exported-app-not-found-","duration":5737,"timestamp":1840955436760,"id":109,"parentId":105,"tags":{},"startTime":1777815055883,"traceId":"9cf0c6be78242eb7"},{"name":"move-exported-app-global-error-","duration":2664,"timestamp":1840955442711,"id":110,"parentId":105,"tags":{},"startTime":1777815055889,"traceId":"9cf0c6be78242eb7"},{"name":"static-generation","duration":1751445,"timestamp":1840953701069,"id":105,"parentId":1,"tags":{},"startTime":1777815054147,"traceId":"9cf0c6be78242eb7"},{"name":"write-routes-manifest","duration":1128,"timestamp":1840955453146,"id":111,"parentId":1,"tags":{},"startTime":1777815055900,"traceId":"9cf0c6be78242eb7"},{"name":"print-tree-view","duration":8833,"timestamp":1840955479100,"id":112,"parentId":1,"tags":{},"startTime":1777815055925,"traceId":"9cf0c6be78242eb7"},{"name":"write-route-bundle-stats","duration":30450,"timestamp":1840955488207,"id":113,"parentId":1,"tags":{},"startTime":1777815055935,"traceId":"9cf0c6be78242eb7"},{"name":"telemetry-flush","duration":365,"timestamp":1840955518751,"id":114,"parentId":1,"tags":{},"startTime":1777815055965,"traceId":"9cf0c6be78242eb7"},{"name":"next-build","duration":44343438,"timestamp":1840911175747,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777815011622,"traceId":"9cf0c6be78242eb7"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":52839406,"timestamp":1792921230933,"id":14,"parentId":1,"tags":{},"startTime":1777767021677,"traceId":"29f9aa57b0f36d4d"},{"name":"turbopack-build-events","duration":13443,"timestamp":1792923373931,"id":15,"parentId":1,"tags":{},"startTime":1777767023833,"traceId":"29f9aa57b0f36d4d"},{"name":"run-typescript","duration":47135937,"timestamp":1792974119881,"id":16,"parentId":1,"tags":{},"startTime":1777767074566,"traceId":"29f9aa57b0f36d4d"},{"name":"static-check","duration":4043542,"timestamp":1793021617485,"id":19,"parentId":1,"tags":{},"startTime":1777767122064,"traceId":"29f9aa57b0f36d4d"},{"name":"static-generation","duration":5128859,"timestamp":1793025717830,"id":101,"parentId":1,"tags":{},"startTime":1777767126164,"traceId":"29f9aa57b0f36d4d"},{"name":"telemetry-flush","duration":78709,"timestamp":1793031059224,"id":110,"parentId":1,"tags":{},"startTime":1777767131506,"traceId":"29f9aa57b0f36d4d"},{"name":"next-build","duration":111180397,"timestamp":1792919957687,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777767020404,"traceId":"29f9aa57b0f36d4d"}]
1
+ [{"name":"run-turbopack","duration":20437345,"timestamp":1840911928903,"id":14,"parentId":1,"tags":{},"startTime":1777815012375,"traceId":"9cf0c6be78242eb7"},{"name":"turbopack-build-events","duration":79,"timestamp":1840912741814,"id":15,"parentId":1,"tags":{},"startTime":1777815013188,"traceId":"9cf0c6be78242eb7"},{"name":"run-typescript","duration":19563946,"timestamp":1840932390801,"id":16,"parentId":1,"tags":{},"startTime":1777815032837,"traceId":"9cf0c6be78242eb7"},{"name":"static-check","duration":1571747,"timestamp":1840952097755,"id":19,"parentId":1,"tags":{},"startTime":1777815052544,"traceId":"9cf0c6be78242eb7"},{"name":"static-generation","duration":1751445,"timestamp":1840953701069,"id":105,"parentId":1,"tags":{},"startTime":1777815054147,"traceId":"9cf0c6be78242eb7"},{"name":"telemetry-flush","duration":365,"timestamp":1840955518751,"id":114,"parentId":1,"tags":{},"startTime":1777815055965,"traceId":"9cf0c6be78242eb7"},{"name":"next-build","duration":44343438,"timestamp":1840911175747,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777815011622,"traceId":"9cf0c6be78242eb7"}]
@@ -1,8 +1,8 @@
1
1
  // This file is generated automatically by Next.js
2
2
  // Do not edit this file manually
3
3
 
4
- type AppRoutes = "/" | "/admin" | "/docs" | "/login" | "/logs" | "/messages" | "/node" | "/nodes" | "/settings" | "/settings/networks" | "/settings/tokens" | "/tasks" | "/tasks/[id]"
5
- type AppRouteHandlerRoutes = "/api/anet/config" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/v3" | "/api/hub/audit-log" | "/api/hub/auth" | "/api/hub/broadcast" | "/api/hub/events" | "/api/hub/health" | "/api/hub/inbox" | "/api/hub/license" | "/api/hub/messages" | "/api/hub/networks" | "/api/hub/nodes" | "/api/hub/register" | "/api/hub/send" | "/api/hub/session" | "/api/hub/stats" | "/api/hub/status" | "/api/hub/task-events" | "/api/hub/tasks" | "/api/hub/tmux" | "/api/hub/tokens"
4
+ type AppRoutes = "/" | "/admin" | "/docs" | "/login" | "/logs" | "/messages" | "/node" | "/nodes" | "/server-logs" | "/settings" | "/settings/networks" | "/settings/tokens" | "/tasks" | "/tasks/[id]"
5
+ type AppRouteHandlerRoutes = "/api/anet/config" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/v3" | "/api/hub/audit-log" | "/api/hub/auth" | "/api/hub/broadcast" | "/api/hub/events" | "/api/hub/health" | "/api/hub/inbox" | "/api/hub/license" | "/api/hub/messages" | "/api/hub/networks" | "/api/hub/nodes" | "/api/hub/register" | "/api/hub/send" | "/api/hub/server-logs" | "/api/hub/session" | "/api/hub/stats" | "/api/hub/status" | "/api/hub/task-events" | "/api/hub/tasks" | "/api/hub/tmux" | "/api/hub/tokens"
6
6
  type PageRoutes = never
7
7
  type LayoutRoutes = "/"
8
8
  type RedirectRoutes = never
@@ -29,6 +29,7 @@ interface ParamMap {
29
29
  "/api/hub/nodes": {}
30
30
  "/api/hub/register": {}
31
31
  "/api/hub/send": {}
32
+ "/api/hub/server-logs": {}
32
33
  "/api/hub/session": {}
33
34
  "/api/hub/stats": {}
34
35
  "/api/hub/status": {}
@@ -42,6 +43,7 @@ interface ParamMap {
42
43
  "/messages": {}
43
44
  "/node": {}
44
45
  "/nodes": {}
46
+ "/server-logs": {}
45
47
  "/settings": {}
46
48
  "/settings/networks": {}
47
49
  "/settings/tokens": {}
@@ -119,6 +119,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
119
119
  type __Unused = __Check
120
120
  }
121
121
 
122
+ // Validate ../../app/server-logs/page.tsx
123
+ {
124
+ type __IsExpected<Specific extends AppPageConfig<"/server-logs">> = Specific
125
+ const handler = {} as typeof import("../../app/server-logs/page.js")
126
+ type __Check = __IsExpected<typeof handler>
127
+ // @ts-ignore
128
+ type __Unused = __Check
129
+ }
130
+
122
131
  // Validate ../../app/settings/networks/page.tsx
123
132
  {
124
133
  type __IsExpected<Specific extends AppPageConfig<"/settings/networks">> = Specific
@@ -308,6 +317,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
308
317
  type __Unused = __Check
309
318
  }
310
319
 
320
+ // Validate ../../app/api/hub/server-logs/route.ts
321
+ {
322
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/hub/server-logs">> = Specific
323
+ const handler = {} as typeof import("../../app/api/hub/server-logs/route.js")
324
+ type __Check = __IsExpected<typeof handler>
325
+ // @ts-ignore
326
+ type __Unused = __Check
327
+ }
328
+
311
329
  // Validate ../../app/api/hub/session/route.ts
312
330
  {
313
331
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/hub/session">> = Specific
@@ -0,0 +1,40 @@
1
+ import { requireDashboardAuth, getV3UserToken } from '@/app/lib/dashboard-auth';
2
+
3
+ const HUB_URL = process.env.COMMHUB_URL || 'http://47.77.216.1:9200';
4
+ const AUTH_TOKEN = process.env.COMMHUB_AUTH_TOKEN || '';
5
+
6
+ async function hubHeaders(): Promise<Record<string, string>> {
7
+ const userToken = await getV3UserToken();
8
+ const bearer = userToken || AUTH_TOKEN;
9
+ const h: Record<string, string> = {};
10
+ if (bearer) h['Authorization'] = `Bearer ${bearer}`;
11
+ return h;
12
+ }
13
+
14
+ /**
15
+ * Proxy: GET /api/server-logs from CommHub. Newest-first ring buffer of
16
+ * the hub's stdout/stderr lines. Admin-only on the hub side.
17
+ */
18
+ export async function GET(req: Request) {
19
+ const authFailure = await requireDashboardAuth();
20
+ if (authFailure) return authFailure;
21
+
22
+ const { searchParams } = new URL(req.url);
23
+ const limit = searchParams.get('limit') || '200';
24
+ const since = searchParams.get('since') || '';
25
+
26
+ try {
27
+ const params = new URLSearchParams({ limit });
28
+ if (since) params.set('since', since);
29
+ const res = await fetch(
30
+ `${HUB_URL}/api/server-logs?${params.toString()}`,
31
+ { headers: await hubHeaders(), next: { revalidate: 0 } },
32
+ );
33
+ if (!res.ok) {
34
+ return Response.json({ error: `hub ${res.status}` }, { status: res.status });
35
+ }
36
+ return Response.json(await res.json());
37
+ } catch (e: unknown) {
38
+ return Response.json({ error: 'hub unreachable', detail: e instanceof Error ? e.message : String(e) }, { status: 502 });
39
+ }
40
+ }
@@ -14,7 +14,8 @@ const NAV_ITEMS = [
14
14
  { href: '/nodes', label: 'Nodes', icon: 'M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01' },
15
15
  { href: '/messages', label: 'Messages', icon: 'M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z' },
16
16
  { href: '/settings/networks', label: 'Networks', icon: 'M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9' },
17
- { href: '/logs', label: 'Logs', icon: 'M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z' },
17
+ { href: '/logs', label: 'Audit Log', icon: 'M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z' },
18
+ { href: '/server-logs', label: 'Server Logs', icon: 'M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z' },
18
19
  { href: '/admin', label: 'Admin', icon: 'M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z' },
19
20
  { href: '/docs', label: 'Docs', icon: 'M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' },
20
21
  { href: '/settings', label: 'Settings', icon: 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z' },
package/app/lib/useSSE.ts CHANGED
@@ -37,6 +37,15 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
37
37
  const probeAbortRef = useRef<AbortController | null>(null);
38
38
  const cancelledRef = useRef(false);
39
39
 
40
+ // Hold onEvent in a ref so callers can pass an inline callback without it
41
+ // forcing the EventSource to tear down on every render. Production hit
42
+ // this — page.tsx re-renders on each SWR mutate, the inline onEvent had a
43
+ // new identity each time, useCallback's deps changed, useEffect cleaned up
44
+ // and reconnected. Each render opened a fresh /events/<alias> upstream;
45
+ // the hub saw 1500+ "admin connected" within minutes and stalled mcp/tools.
46
+ const onEventRef = useRef(onEvent);
47
+ useEffect(() => { onEventRef.current = onEvent; }, [onEvent]);
48
+
40
49
  const connect = useCallback(() => {
41
50
  if (!enabled || !url || unsupportedRef.current || cancelledRef.current) return;
42
51
 
@@ -72,7 +81,7 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
72
81
  try {
73
82
  const data: SSEEvent = JSON.parse(e.data);
74
83
  setLastEvent(data);
75
- onEvent?.(data);
84
+ onEventRef.current?.(data);
76
85
  } catch {}
77
86
  };
78
87
 
@@ -90,7 +99,7 @@ export function useSSE({ url, onEvent, reconnectDelay = 3000, enabled = true }:
90
99
  setConnected(false);
91
100
  setSupported(false);
92
101
  });
93
- }, [url, onEvent, reconnectDelay, enabled]);
102
+ }, [url, reconnectDelay, enabled]);
94
103
 
95
104
  useEffect(() => {
96
105
  unsupportedRef.current = false;