blade-code 0.10.98 → 0.10.99

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 (117) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-q74f1pj9.js → chunk-0zhdjaen.js} +1 -1
  3. package/dist/{chunk-b4ahgdtn.js → chunk-10taec1j.js} +2 -2
  4. package/dist/{chunk-7wgtj7w4.js → chunk-12vzyc3x.js} +2 -2
  5. package/dist/{chunk-my7nr1sx.js → chunk-1gjn9bp7.js} +2 -2
  6. package/dist/{chunk-p47hbq3a.js → chunk-1pscfw5q.js} +2 -2
  7. package/dist/{chunk-4004spc1.js → chunk-2hb222re.js} +1 -1
  8. package/dist/{chunk-e99cqtmv.js → chunk-2jffgzdf.js} +2 -2
  9. package/dist/{chunk-j9cnp8ms.js → chunk-2va6ex5v.js} +1 -1
  10. package/dist/{chunk-mf2s05b7.js → chunk-39qzk9nm.js} +1 -1
  11. package/dist/chunk-3awjdsef.js +5 -0
  12. package/dist/{chunk-drqezf1p.js → chunk-3ghvdscg.js} +1 -1
  13. package/dist/{chunk-krhr8xbg.js → chunk-425p4nwx.js} +2 -2
  14. package/dist/{chunk-azcca8bk.js → chunk-45sgvghd.js} +1 -1
  15. package/dist/{chunk-hdhxzmw7.js → chunk-4fmtv329.js} +1 -1
  16. package/dist/{chunk-wzgdm617.js → chunk-53xtssbf.js} +2 -2
  17. package/dist/chunk-5dkzqgxa.js +1 -0
  18. package/dist/{chunk-szccdrah.js → chunk-5tq3s9h5.js} +1 -1
  19. package/dist/{chunk-1j3mmdbt.js → chunk-6vcy0nq7.js} +1 -1
  20. package/dist/{chunk-7kbtqzy0.js → chunk-6yz49rz2.js} +3 -3
  21. package/dist/{chunk-8jtwm19d.js → chunk-70hwyc2w.js} +1 -1
  22. package/dist/{chunk-7yn3d4cf.js → chunk-71jnx206.js} +1 -1
  23. package/dist/{chunk-8v8frtnd.js → chunk-9hsbjy6a.js} +1 -1
  24. package/dist/{chunk-j0ndrqv6.js → chunk-9sx3vsyj.js} +1 -1
  25. package/dist/chunk-9z0yx0bn.js +1 -0
  26. package/dist/{chunk-0bsn86gg.js → chunk-a42rvwg4.js} +1 -1
  27. package/dist/chunk-akfez2cs.js +1 -0
  28. package/dist/{chunk-hy9tkb5x.js → chunk-ap8539bw.js} +419 -414
  29. package/dist/{chunk-9qqhkwbw.js → chunk-b4d43ap3.js} +1 -1
  30. package/dist/{chunk-qdf2a3vf.js → chunk-bdbyy2ah.js} +1 -1
  31. package/dist/chunk-c2s9rgyj.js +1 -0
  32. package/dist/{chunk-h1wvtdh4.js → chunk-c6tq09mt.js} +1 -1
  33. package/dist/{chunk-7k38nj7a.js → chunk-cc3d4nne.js} +1 -1
  34. package/dist/{chunk-fra0nwzj.js → chunk-cp7xsjj2.js} +2 -2
  35. package/dist/{chunk-nvypaz88.js → chunk-czcxx8tb.js} +1 -1
  36. package/dist/{chunk-3wjb3bhw.js → chunk-d7j7z8hy.js} +2 -2
  37. package/dist/{chunk-54syvhtz.js → chunk-d8wzc602.js} +2 -2
  38. package/dist/{chunk-ef5b0ysc.js → chunk-dg0d3303.js} +1 -1
  39. package/dist/chunk-et6pvc3y.js +1 -0
  40. package/dist/{chunk-4ytvrkks.js → chunk-f9asjkfz.js} +1 -1
  41. package/dist/{chunk-4crf8nvz.js → chunk-fqwq3626.js} +2 -2
  42. package/dist/{chunk-17ck16tq.js → chunk-fvfc95g3.js} +1 -1
  43. package/dist/{chunk-gcy8nczq.js → chunk-ga15nptz.js} +1 -1
  44. package/dist/chunk-gmnv1jme.js +1 -0
  45. package/dist/chunk-gwj637ey.js +1 -0
  46. package/dist/{chunk-wzx5s1dm.js → chunk-h8qjkxee.js} +2 -2
  47. package/dist/chunk-hcz98dbj.js +1 -0
  48. package/dist/chunk-hyk4fw18.js +10 -0
  49. package/dist/{chunk-qb1wev32.js → chunk-hz5rsfxv.js} +1 -1
  50. package/dist/{chunk-e6wgta3m.js → chunk-j00px1es.js} +1 -1
  51. package/dist/{chunk-63wahkkf.js → chunk-k7vv9vne.js} +1 -1
  52. package/dist/chunk-kvdk0pfk.js +1 -0
  53. package/dist/chunk-maebpz1j.js +2 -0
  54. package/dist/{chunk-tae9c030.js → chunk-mhfwp1f0.js} +2 -2
  55. package/dist/{chunk-hphdt9ph.js → chunk-mq4x8zhq.js} +36 -36
  56. package/dist/chunk-n4cw6vt1.js +1 -0
  57. package/dist/{chunk-rzcm8hw3.js → chunk-p0rvgzpx.js} +1 -1
  58. package/dist/chunk-p7t010gq.js +1 -0
  59. package/dist/chunk-p7zvg7e3.js +1 -0
  60. package/dist/{chunk-ks3f9h9n.js → chunk-pmb5kr86.js} +2 -2
  61. package/dist/{chunk-s6n0cgg5.js → chunk-q3vza5gt.js} +2 -2
  62. package/dist/{chunk-gaj6kkb6.js → chunk-qcy79mva.js} +1 -1
  63. package/dist/{chunk-v2p30pe1.js → chunk-qdgwprcv.js} +1 -1
  64. package/dist/{chunk-wkfhpjkf.js → chunk-qwjfxvda.js} +1 -1
  65. package/dist/{chunk-dp9xbrjy.js → chunk-r22mdmtr.js} +2 -2
  66. package/dist/{chunk-ps9vc0m3.js → chunk-rej5bbbs.js} +2 -2
  67. package/dist/chunk-s0tq8gyx.js +2 -0
  68. package/dist/{chunk-rmkw6dpm.js → chunk-spdrxj5e.js} +1 -1
  69. package/dist/chunk-vd6kmnc7.js +1 -0
  70. package/dist/{chunk-d2f41jxt.js → chunk-w9xfks7f.js} +1 -1
  71. package/dist/{chunk-hmgxkjbx.js → chunk-x5j6nexe.js} +39 -39
  72. package/dist/chunk-xg959k9w.js +1 -0
  73. package/dist/chunk-xz5ar75z.js +8 -0
  74. package/dist/{chunk-vw2j0avq.js → chunk-ykkqywtq.js} +1 -1
  75. package/dist/web/assets/{ChatView-DRfyX8iK.js → ChatView-Cwc3fRAC.js} +4 -4
  76. package/dist/web/assets/{CodeBlockHighlighter-DAFduwex.js → CodeBlockHighlighter-IGDocZUy.js} +1 -1
  77. package/dist/web/assets/FilePreview-EWE-k9VN.js +65 -0
  78. package/dist/web/assets/{KanbanBoard-CWMPGJNx.js → KanbanBoard-FiiVQgTQ.js} +1 -1
  79. package/dist/web/assets/{MarkdownRenderer-Dp8ahj7G.js → MarkdownRenderer-DjhWmikM.js} +3 -3
  80. package/dist/web/assets/{SettingsModal-BR_98FMD.js → SettingsModal-bHPx0fVG.js} +1 -1
  81. package/dist/web/assets/{TaskSwitcher-D5WijUhR.js → TaskSwitcher-CclOfJEl.js} +1 -1
  82. package/dist/web/assets/{TerminalPanel-CE33pxwb.js → TerminalPanel-Bnep8jE2.js} +1 -1
  83. package/dist/web/assets/{arrow-left-Cv-KDeEq.js → arrow-left-CiX0E9Mt.js} +1 -1
  84. package/dist/web/assets/{calendar-clock-Cv_w0wjo.js → calendar-clock-Bgfr-twh.js} +1 -1
  85. package/dist/web/assets/{chevrons-up-down-BAdiQ6sx.js → chevrons-up-down-B4T5fHUs.js} +1 -1
  86. package/dist/web/assets/{clock-3-wrrODhWr.js → clock-3-CGIhJjon.js} +1 -1
  87. package/dist/web/assets/{external-link-CBEu1rS8.js → external-link-DnQv1VYE.js} +1 -1
  88. package/dist/web/assets/{folder-aphP4iXp.js → folder-C5f8TpGj.js} +1 -1
  89. package/dist/web/assets/index-DGf6Z2kM.css +1 -0
  90. package/dist/web/assets/{index-rQ1P5u3I.js → index-DNoVz0u1.js} +61 -57
  91. package/dist/web/assets/{pause-Bp8TFDGG.js → pause-Cb0ijwnO.js} +1 -1
  92. package/dist/web/assets/{play-CuOkQMyB.js → play-Dsw1qmpk.js} +1 -1
  93. package/dist/web/assets/{session-events-C95VE6d2.js → session-events-B4Cq2TwN.js} +1 -1
  94. package/dist/web/assets/{teamService-BXTinwSE.js → teamService-C69fFhny.js} +1 -1
  95. package/dist/web/index.html +3 -3
  96. package/package.json +1 -1
  97. package/dist/chunk-4n7zxjk0.js +0 -1
  98. package/dist/chunk-6b232wd7.js +0 -1
  99. package/dist/chunk-78bmtbzh.js +0 -1
  100. package/dist/chunk-8dtggj9c.js +0 -2
  101. package/dist/chunk-a7hz8scf.js +0 -8
  102. package/dist/chunk-a9ek5zt1.js +0 -5
  103. package/dist/chunk-d1je4wzc.js +0 -2
  104. package/dist/chunk-d3z12cgn.js +0 -1
  105. package/dist/chunk-d62jkv36.js +0 -1
  106. package/dist/chunk-dc3k9999.js +0 -1
  107. package/dist/chunk-hdrap16m.js +0 -1
  108. package/dist/chunk-hvz0wk1j.js +0 -1
  109. package/dist/chunk-kv6w817v.js +0 -10
  110. package/dist/chunk-m4bg4jp9.js +0 -1
  111. package/dist/chunk-mpm2kdf6.js +0 -1
  112. package/dist/chunk-rztsp1jj.js +0 -1
  113. package/dist/chunk-wq8zryfj.js +0 -1
  114. package/dist/chunk-ysckkpw0.js +0 -1
  115. package/dist/chunk-zppdqh51.js +0 -1
  116. package/dist/web/assets/FilePreview-DP5FG_5E.js +0 -59
  117. package/dist/web/assets/index-zY4JU9fd.css +0 -1
@@ -1 +0,0 @@
1
- import{Ie as a,Je as b,Ke as c,Le as d,Me as e,Ne as f,Oe as g,Pe as h,Qe as i,Re as j,Se as k,Te as l,Ue as m,Ve as n,We as o,Xe as p,Ye as q}from"./chunk-p47hbq3a.js";import"./chunk-v508x7cg.js";import"./chunk-ef5b0ysc.js";import"./chunk-4crf8nvz.js";import"./chunk-4ytvrkks.js";import"./chunk-nvypaz88.js";import"./chunk-d1je4wzc.js";import"./chunk-j0ndrqv6.js";import"./chunk-8jtwm19d.js";import"./chunk-54syvhtz.js";import"./chunk-krhr8xbg.js";import"./chunk-63wahkkf.js";import"./chunk-tae9c030.js";import"./chunk-fra0nwzj.js";import"./chunk-j9cnp8ms.js";import"./chunk-s6n0cgg5.js";import"./chunk-d2f41jxt.js";export{a as vanillaStore,c as sessionActions,l as getThinkingModeEnabled,b as getState,n as getServiceTier,o as getResponseVerbosity,m as getReasoningEffort,j as getModelById,e as getMessages,k as getMcpServers,i as getCurrentModel,f as getConfig,p as getCommunicationStyle,h as getAllModels,g as ensureStoreInitialized,q as configActions,d as appActions};
@@ -1,10 +0,0 @@
1
- import{a as T,b as W,c as X,d as Y}from"./chunk-a7hz8scf.js";import"./chunk-e6wgta3m.js";import"./chunk-mf2s05b7.js";import"./chunk-gcy8nczq.js";import"./chunk-0bsn86gg.js";import"./chunk-1j3mmdbt.js";import"./chunk-hy9tkb5x.js";import"./chunk-q74f1pj9.js";import"./chunk-qdf2a3vf.js";import"./chunk-qb1wev32.js";import"./chunk-hphdt9ph.js";import"./chunk-8hprmrd5.js";import"./chunk-hmgxkjbx.js";import"./chunk-8dtggj9c.js";import"./chunk-wzx5s1dm.js";import{se as R}from"./chunk-7wgtj7w4.js";import"./chunk-ps9vc0m3.js";import{Oe as Q}from"./chunk-p47hbq3a.js";import"./chunk-v508x7cg.js";import"./chunk-ef5b0ysc.js";import"./chunk-a9ek5zt1.js";import"./chunk-wzgdm617.js";import"./chunk-4004spc1.js";import"./chunk-dp9xbrjy.js";import"./chunk-3wjb3bhw.js";import"./chunk-17ck16tq.js";import"./chunk-gaj6kkb6.js";import"./chunk-rzcm8hw3.js";import"./chunk-7kbtqzy0.js";import"./chunk-h1wvtdh4.js";import"./chunk-4crf8nvz.js";import"./chunk-4ytvrkks.js";import"./chunk-nvypaz88.js";import"./chunk-d1je4wzc.js";import"./chunk-j0ndrqv6.js";import"./chunk-8jtwm19d.js";import"./chunk-54syvhtz.js";import"./chunk-krhr8xbg.js";import"./chunk-63wahkkf.js";import{yi as M}from"./chunk-tae9c030.js";import"./chunk-fra0nwzj.js";import"./chunk-j9cnp8ms.js";import"./chunk-s6n0cgg5.js";import"./chunk-d2f41jxt.js";import m from"chalk";import K from"open";var A=`
2
- ____ _ _
3
- | __ )| | __ _ __| | ___
4
- | _ \\| |/ _\` |/ _\` |/ _ \\
5
- | |_) | | (_| | (_| | __/
6
- |____/|_|\\__,_|\\__,_|\\___|
7
- `,C={command:"web",describe:"Start Blade server and open web interface",builder:T,handler:async(Z)=>{let H=W(Z);if(await Q(),!process.env.BLADE_SERVER_PASSWORD)console.log(m.yellow("[WARN] BLADE_SERVER_PASSWORD is not set; server is unsecured.")),console.log(m.gray(` Set this environment variable to enable Basic Auth.
8
- `));let F=await Y.listenAsync(H);if(console.log(m.cyan(A)),console.log(m.gray(` v${M()}
9
- `)),H.hostname==="0.0.0.0"){let q=`http://localhost:${F.port}`;console.log(m.blue.bold(" Local access: "),m.white(q));let x=X();for(let z of x)console.log(m.blue.bold(" Network access: "),m.white(`http://${z}:${F.port}`));K(q).catch(()=>{})}else{let q=F.url.toString();console.log(m.blue.bold(" Web interface: "),m.white(q)),K(q).catch(()=>{})}console.log(""),console.log(m.gray(` Press Ctrl+C to stop the server.
10
- `));let J,$=new Promise((q)=>{J=q}),b=R(async()=>{await F.stop(),J()});try{await $}finally{b(),await F.stop()}}};export{C as webCommand};
@@ -1 +0,0 @@
1
- import{de as a,ee as b,fe as c,ge as d,he as e,ie as f,je as g,ke as h}from"./chunk-wzx5s1dm.js";import"./chunk-54syvhtz.js";import"./chunk-s6n0cgg5.js";import"./chunk-d2f41jxt.js";export{d as syncSession,e as syncAll,h as searchProjectionText,c as resetProjectionDbCache,f as removeSessionFromProjection,g as rebuildProjectionIndex,b as getProjectionDb,a as getIndexDbPath};
@@ -1 +0,0 @@
1
- import{a,b as i,c as l,d as m}from"./chunk-a7hz8scf.js";import"./chunk-e6wgta3m.js";import"./chunk-mf2s05b7.js";import"./chunk-gcy8nczq.js";import"./chunk-0bsn86gg.js";import"./chunk-1j3mmdbt.js";import"./chunk-hy9tkb5x.js";import"./chunk-q74f1pj9.js";import"./chunk-qdf2a3vf.js";import"./chunk-qb1wev32.js";import"./chunk-hphdt9ph.js";import"./chunk-8hprmrd5.js";import"./chunk-hmgxkjbx.js";import"./chunk-8dtggj9c.js";import"./chunk-wzx5s1dm.js";import{se as n}from"./chunk-7wgtj7w4.js";import"./chunk-ps9vc0m3.js";import{Oe as s}from"./chunk-p47hbq3a.js";import"./chunk-v508x7cg.js";import"./chunk-ef5b0ysc.js";import"./chunk-a9ek5zt1.js";import"./chunk-wzgdm617.js";import"./chunk-4004spc1.js";import"./chunk-dp9xbrjy.js";import"./chunk-3wjb3bhw.js";import"./chunk-17ck16tq.js";import"./chunk-gaj6kkb6.js";import"./chunk-rzcm8hw3.js";import"./chunk-7kbtqzy0.js";import"./chunk-h1wvtdh4.js";import"./chunk-4crf8nvz.js";import"./chunk-4ytvrkks.js";import"./chunk-nvypaz88.js";import"./chunk-d1je4wzc.js";import"./chunk-j0ndrqv6.js";import"./chunk-8jtwm19d.js";import"./chunk-54syvhtz.js";import"./chunk-krhr8xbg.js";import"./chunk-63wahkkf.js";import"./chunk-tae9c030.js";import"./chunk-fra0nwzj.js";import"./chunk-j9cnp8ms.js";import"./chunk-s6n0cgg5.js";import"./chunk-d2f41jxt.js";import v from"chalk";var C={command:"serve",describe:"Start a headless Blade server (no browser)",builder:a,handler:async(p)=>{let r=i(p);if(await s(),!process.env.BLADE_SERVER_PASSWORD)console.log(v.yellow("Warning: BLADE_SERVER_PASSWORD is not set; server is unsecured."));let e=await m.listenAsync(r);if(console.log(`Blade server listening on http://${e.hostname}:${e.port}`),r.hostname==="0.0.0.0"){let o=l();for(let g of o)console.log(` Network: http://${g}:${e.port}`)}let t,c=new Promise((o)=>{t=o}),d=n(async()=>{await e.stop(),t()});try{await c}finally{d(),await e.stop()}}};export{C as serveCommand};
@@ -1 +0,0 @@
1
- import{Bb as d,Cb as e,Db as f,Eb as g,Fb as h,Gb as i,Hb as j,Ib as k,Pb as l,Qb as m,Rb as n,Sb as o,Ub as p,Vb as q,Wb as r,ub as a,vb as b,xb as c}from"./chunk-hphdt9ph.js";import"./chunk-8hprmrd5.js";import"./chunk-hmgxkjbx.js";import"./chunk-8dtggj9c.js";import"./chunk-wzx5s1dm.js";import"./chunk-ef5b0ysc.js";import"./chunk-a9ek5zt1.js";import"./chunk-4004spc1.js";import"./chunk-17ck16tq.js";import"./chunk-gaj6kkb6.js";import"./chunk-7kbtqzy0.js";import"./chunk-h1wvtdh4.js";import"./chunk-4ytvrkks.js";import"./chunk-nvypaz88.js";import"./chunk-d1je4wzc.js";import"./chunk-j0ndrqv6.js";import"./chunk-8jtwm19d.js";import"./chunk-54syvhtz.js";import"./chunk-krhr8xbg.js";import"./chunk-63wahkkf.js";import"./chunk-tae9c030.js";import"./chunk-j9cnp8ms.js";import"./chunk-s6n0cgg5.js";import"./chunk-d2f41jxt.js";export{g as saveUserMessage,i as saveToolUse,j as saveToolResult,k as saveCompaction,h as saveAssistantMessage,d as isRootSystemPrompt,m as handleTaskListUpdate,n as handleSkillActivation,o as extractModelSwitch,r as executeLoopGenerator,f as drainLoop,c as checkStopHook,a as checkOutputRecovery,b as checkIncompleteIntent,q as checkAndCompactInLoop,p as applyToolDomainEffects,l as StreamingToolExecutor,e as ConversationState};
@@ -1 +0,0 @@
1
- import{le as a,me as b}from"./chunk-my7nr1sx.js";import"./chunk-tae9c030.js";import"./chunk-d2f41jxt.js";export{a as globalOptions,b as cliConfig};
@@ -1 +0,0 @@
1
- import{ne as a,oe as b,pe as c}from"./chunk-e99cqtmv.js";import"./chunk-b4ahgdtn.js";import"./chunk-p47hbq3a.js";import"./chunk-v508x7cg.js";import"./chunk-ef5b0ysc.js";import"./chunk-rzcm8hw3.js";import"./chunk-4crf8nvz.js";import"./chunk-4ytvrkks.js";import"./chunk-nvypaz88.js";import"./chunk-d1je4wzc.js";import"./chunk-j0ndrqv6.js";import"./chunk-8jtwm19d.js";import"./chunk-54syvhtz.js";import"./chunk-krhr8xbg.js";import"./chunk-63wahkkf.js";import"./chunk-tae9c030.js";import"./chunk-fra0nwzj.js";import"./chunk-j9cnp8ms.js";import"./chunk-s6n0cgg5.js";import"./chunk-d2f41jxt.js";export{a as validatePermissions,c as validateOutput,b as loadConfiguration};
@@ -1 +0,0 @@
1
- import{Ai as d,Bi as e,Ci as f,xi as a,yi as b,zi as c}from"./chunk-tae9c030.js";import"./chunk-d2f41jxt.js";export{b as getVersion,c as getPackageName,a as getPackageInfo,e as getFormattedVersion,d as getDescription,f as getCopyright};
@@ -1,59 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B5mUEr6D.js","assets/vendor-react-DofNRwfy.js"])))=>i.map(i=>d[i]);
2
- import{c as re,j as U,a3 as Ue,am as mr,r as Ke,L as Re,an as xr,U as W,S as vr,y as Bt,R as Ot,B as br,N as qt,u as he,$ as lt,n as Ht,o as Gt,F as Vt,ao as gr,a as Te,s as $e,ap as nt,l as kr,X as wr,x as yr,_ as jr}from"./index-rQ1P5u3I.js";import{r as i,j as e}from"./vendor-react-DofNRwfy.js";import{o as wt,l as yt}from"./session-events-C95VE6d2.js";import{A as Nr,C as Sr}from"./chevrons-up-down-BAdiQ6sx.js";import{A as Er,E as jt}from"./external-link-CBEu1rS8.js";import{A as Cr}from"./arrow-left-Cv-KDeEq.js";import{A as Tr,F as Lr}from"./folder-aphP4iXp.js";import"./vendor-radix-Bc1_Q9tz.js";/**
3
- * @license lucide-react v0.300.0 - ISC
4
- *
5
- * This source code is licensed under the ISC license.
6
- * See the LICENSE file in the root directory of this source tree.
7
- */const Rr=re("AppWindow",[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]);/**
8
- * @license lucide-react v0.300.0 - ISC
9
- *
10
- * This source code is licensed under the ISC license.
11
- * See the LICENSE file in the root directory of this source tree.
12
- */const Pr=re("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/**
13
- * @license lucide-react v0.300.0 - ISC
14
- *
15
- * This source code is licensed under the ISC license.
16
- * See the LICENSE file in the root directory of this source tree.
17
- */const Ir=re("ChevronsDownUp",[["path",{d:"m7 20 5-5 5 5",key:"13a0gw"}],["path",{d:"m7 4 5 5 5-5",key:"1kwcof"}]]);/**
18
- * @license lucide-react v0.300.0 - ISC
19
- *
20
- * This source code is licensed under the ISC license.
21
- * See the LICENSE file in the root directory of this source tree.
22
- */const Ge=re("FileCode",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"m10 13-2 2 2 2",key:"17smn8"}],["path",{d:"m14 17 2-2-2-2",key:"14mezr"}]]);/**
23
- * @license lucide-react v0.300.0 - ISC
24
- *
25
- * This source code is licensed under the ISC license.
26
- * See the LICENSE file in the root directory of this source tree.
27
- */const Dr=re("FlaskConical",[["path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2",key:"pzvekw"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M7 16h10",key:"wp8him"}]]);/**
28
- * @license lucide-react v0.300.0 - ISC
29
- *
30
- * This source code is licensed under the ISC license.
31
- * See the LICENSE file in the root directory of this source tree.
32
- */const Nt=re("MonitorUp",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]);/**
33
- * @license lucide-react v0.300.0 - ISC
34
- *
35
- * This source code is licensed under the ISC license.
36
- * See the LICENSE file in the root directory of this source tree.
37
- */const St=re("MousePointer2",[["path",{d:"m4 4 7.07 17 2.51-7.39L21 11.07z",key:"1vqm48"}]]);/**
38
- * @license lucide-react v0.300.0 - ISC
39
- *
40
- * This source code is licensed under the ISC license.
41
- * See the LICENSE file in the root directory of this source tree.
42
- */const Fr=re("TerminalSquare",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/**
43
- * @license lucide-react v0.300.0 - ISC
44
- *
45
- * This source code is licensed under the ISC license.
46
- * See the LICENSE file in the root directory of this source tree.
47
- */const Ar=re("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);/**
48
- * @license lucide-react v0.300.0 - ISC
49
- *
50
- * This source code is licensed under the ISC license.
51
- * See the LICENSE file in the root directory of this source tree.
52
- */const Mr=re("Wifi",[["path",{d:"M5 13a10 10 0 0 1 14 0",key:"6v8j51"}],["path",{d:"M8.5 16.5a5 5 0 0 1 7 0",key:"sej527"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["line",{x1:"12",x2:"12.01",y1:"20",y2:"20",key:"of4bc4"}]]),Kt=i.createContext(null);function Jt(t){const n=i.useContext(Kt);if(!n)throw new Error(`${t} must be used within <Tabs>`);return n}function Ur({value:t,onValueChange:n,className:r,children:s}){const l=i.useMemo(()=>({value:t,setValue:n}),[t,n]);return e.jsx(Kt.Provider,{value:l,children:e.jsx("div",{className:r,children:s})})}function $r({className:t,children:n}){return e.jsx("div",{role:"tablist",className:U("inline-flex items-center",t),children:n})}function Oe({value:t,className:n,children:r}){const{value:s,setValue:l}=Jt("TabsTrigger"),a=s===t;return e.jsx("button",{type:"button",role:"tab","aria-selected":a,"data-state":a?"active":"inactive",onClick:()=>l(t),className:U("inline-flex items-center justify-center whitespace-nowrap rounded-sm transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--deck-accent))]",n),children:r})}function qe({value:t,className:n,children:r,forceMount:s=!1}){const{value:l}=Jt("TabsContent"),a=l===t;return!a&&!s?null:e.jsx("div",{role:"tabpanel",hidden:!a,className:n,children:r})}const zr={"ayu-dark":{background:{primary:"#0f1419",secondary:"#14191f"},text:{primary:"#e6e1cf",secondary:"#bae67e",muted:"#5c6773"},border:{light:"#2d323b"},syntax:{comment:"#5c6773",string:"#bae67e",number:"#ffcc66",keyword:"#ff8f40",function:"#73d0ff",variable:"#e6e1cf",operator:"#f29e74",type:"#73d0ff",tag:"#ff8f40",attr:"#ffd580",default:"#e6e1cf"}},dracula:{background:{primary:"#282a36",secondary:"#44475a"},text:{primary:"#f8f8f2",secondary:"#f1fa8c",muted:"#6272a4"},border:{light:"#44475a"},syntax:{comment:"#6272a4",string:"#f1fa8c",number:"#bd93f9",keyword:"#ff79c6",function:"#50fa7b",variable:"#f8f8f2",operator:"#ff79c6",type:"#8be9fd",tag:"#ff79c6",attr:"#50fa7b",default:"#f8f8f2"}},monokai:{background:{primary:"#272822",secondary:"#3e3d32"},text:{primary:"#f8f8f2",secondary:"#e6db74",muted:"#75715e"},border:{light:"#3e3d32"},syntax:{comment:"#75715e",string:"#e6db74",number:"#ae81ff",keyword:"#f92672",function:"#a6e22e",variable:"#f8f8f2",operator:"#f92672",type:"#66d9ef",tag:"#f92672",attr:"#a6e22e",default:"#f8f8f2"}},nord:{background:{primary:"#2e3440",secondary:"#3b4252"},text:{primary:"#eceff4",secondary:"#d8dee9",muted:"#4c566a"},border:{light:"#434c5e"},syntax:{comment:"#616e88",string:"#a3be8c",number:"#b48ead",keyword:"#81a1c1",function:"#88c0d0",variable:"#d8dee9",operator:"#81a1c1",type:"#8fbcbb",tag:"#81a1c1",attr:"#8fbcbb",default:"#eceff4"}},"solarized-light":{background:{primary:"#fdf6e3",secondary:"#eee8d5"},text:{primary:"#586e75",secondary:"#657b83",muted:"#93a1a1"},border:{light:"#eee8d5"},syntax:{comment:"#93a1a1",string:"#2aa198",number:"#d33682",keyword:"#859900",function:"#268bd2",variable:"#657b83",operator:"#859900",type:"#b58900",tag:"#268bd2",attr:"#93a1a1",default:"#657b83"}},"solarized-dark":{background:{primary:"#002b36",secondary:"#073642"},text:{primary:"#839496",secondary:"#93a1a1",muted:"#586e75"},border:{light:"#073642"},syntax:{comment:"#586e75",string:"#2aa198",number:"#d33682",keyword:"#859900",function:"#268bd2",variable:"#839496",operator:"#859900",type:"#b58900",tag:"#268bd2",attr:"#93a1a1",default:"#839496"}},"tokyo-night":{background:{primary:"#1a1b26",secondary:"#292e42"},text:{primary:"#a9b1d6",secondary:"#c0caf5",muted:"#565f89"},border:{light:"#292e42"},syntax:{comment:"#565f89",string:"#9ece6a",number:"#ff9e64",keyword:"#bb9af7",function:"#7aa2f7",variable:"#c0caf5",operator:"#89ddff",type:"#7dcfff",tag:"#f7768e",attr:"#7aa2f7",default:"#a9b1d6"}},github:{background:{primary:"#ffffff",secondary:"#f6f8fa"},text:{primary:"#24292f",secondary:"#57606a",muted:"#6e7781"},border:{light:"#d0d7de"},syntax:{comment:"#6e7781",string:"#0a3069",number:"#0550ae",keyword:"#cf222e",function:"#8250df",variable:"#24292f",operator:"#cf222e",type:"#0550ae",tag:"#116329",attr:"#0550ae",default:"#24292f"}},gruvbox:{background:{primary:"#282828",secondary:"#3c3836"},text:{primary:"#ebdbb2",secondary:"#d5c4a1",muted:"#928374"},border:{light:"#3c3836"},syntax:{comment:"#928374",string:"#b8bb26",number:"#d3869b",keyword:"#fb4934",function:"#b8bb26",variable:"#ebdbb2",operator:"#fe8019",type:"#fabd2f",tag:"#fb4934",attr:"#fabd2f",default:"#ebdbb2"}},"one-dark":{background:{primary:"#282c34",secondary:"#21252b"},text:{primary:"#abb2bf",secondary:"#e5c07b",muted:"#5c6370"},border:{light:"#3e4451"},syntax:{comment:"#5c6370",string:"#98c379",number:"#d19a66",keyword:"#c678dd",function:"#61afef",variable:"#e06c75",operator:"#56b6c2",type:"#e5c07b",tag:"#e06c75",attr:"#d19a66",default:"#abb2bf"}},catppuccin:{background:{primary:"#1e1e2e",secondary:"#313244"},text:{primary:"#cdd6f4",secondary:"#f5e0dc",muted:"#6c7086"},border:{light:"#313244"},syntax:{comment:"#6c7086",string:"#a6e3a1",number:"#fab387",keyword:"#cba6f7",function:"#89b4fa",variable:"#f5e0dc",operator:"#89dceb",type:"#f9e2af",tag:"#f38ba8",attr:"#f9e2af",default:"#cdd6f4"}},"rose-pine":{background:{primary:"#191724",secondary:"#1f1d2e"},text:{primary:"#e0def4",secondary:"#908caa",muted:"#6e6a86"},border:{light:"#26233a"},syntax:{comment:"#6e6a86",string:"#f6c177",number:"#ebbcba",keyword:"#c4a7e7",function:"#9ccfd8",variable:"#e0def4",operator:"#31748f",type:"#eb6f92",tag:"#eb6f92",attr:"#c4a7e7",default:"#e0def4"}},kanagawa:{background:{primary:"#1f1f28",secondary:"#2a2a37"},text:{primary:"#dcd7ba",secondary:"#c8c093",muted:"#727169"},border:{light:"#2a2a37"},syntax:{comment:"#727169",string:"#98bb6c",number:"#d27e99",keyword:"#957fb8",function:"#7e9cd8",variable:"#dcd7ba",operator:"#c0a36e",type:"#7aa89f",tag:"#e46876",attr:"#ffa066",default:"#dcd7ba"}}};function Wr(t){const n=t.replace("#",""),r=parseInt(n.substring(0,2),16),s=parseInt(n.substring(2,4),16),l=parseInt(n.substring(4,6),16);return(.299*r+.587*s+.114*l)/255<.5}function _r(t){return{base:Wr(t.background.primary)?"vs-dark":"vs",inherit:!0,rules:[{token:"",foreground:t.text.primary.replace("#",""),background:t.background.primary.replace("#","")},{token:"comment",foreground:t.syntax.comment.replace("#",""),fontStyle:"italic"},{token:"string",foreground:t.syntax.string.replace("#","")},{token:"number",foreground:t.syntax.number.replace("#","")},{token:"keyword",foreground:t.syntax.keyword.replace("#","")},{token:"type",foreground:t.syntax.type.replace("#","")},{token:"identifier",foreground:t.syntax.variable.replace("#","")},{token:"function",foreground:t.syntax.function.replace("#","")},{token:"variable",foreground:t.syntax.variable.replace("#","")},{token:"operator",foreground:t.syntax.operator.replace("#","")},{token:"delimiter",foreground:t.syntax.operator.replace("#","")},{token:"tag",foreground:t.syntax.tag.replace("#","")},{token:"attribute.name",foreground:t.syntax.attr.replace("#","")},{token:"attribute.value",foreground:t.syntax.string.replace("#","")}],colors:{"editor.background":t.background.primary,"editor.foreground":t.text.primary,"editor.lineHighlightBackground":t.background.secondary,"editor.selectionBackground":`${t.syntax.function}40`,"editorLineNumber.foreground":t.text.muted,"editorLineNumber.activeForeground":t.text.secondary,"editorCursor.foreground":t.text.primary,"editorIndentGuide.background":t.border.light,"editorWidget.background":t.background.secondary,"editorWidget.border":t.border.light,"scrollbarSlider.background":`${t.text.muted}40`,"scrollbarSlider.hoverBackground":`${t.text.muted}60`}}}const Et=new Set;function Ct(t,n){const r=n.toLowerCase().replace(/\s+/g,"-"),s=zr[r];if(!s)return"vs-dark";if(!Et.has(r)){const l=_r(s);t.editor.defineTheme(r,l),Et.add(r)}return r}function Ee(t,n,r={}){const s=mr.parse(t),l=new URLSearchParams({projectPath:s.projectPath});for(const[a,b]of Object.entries(r))b!==void 0&&l.set(a,String(b));return`/sessions/${encodeURIComponent(s.sessionId)}/browser/${n}?${l.toString()}`}const ce={navigate:async(t,n)=>Ue(Ee(t,"navigate"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),snapshot:async(t,n={})=>Ue(Ee(t,"snapshot",n)),interact:async(t,n)=>Ue(Ee(t,"interact"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),inspect:async(t,n)=>Ue(Ee(t,"inspect",n)),screenshot:async(t,n={})=>{var s;const r=await fetch(Ee(t,"inspect",{...n,target:"screenshot"}));if(!r.ok){const l=await r.json().catch(()=>{});throw new Error(((s=l==null?void 0:l.error)==null?void 0:s.message)||"Failed to capture browser image")}return r.blob()},reset:async t=>{await Ue(Ee(t,"reset"),{method:"POST"})}},Br={en:{frameTitle:"Project preview",empty:"No preview open",loading:"Loading preview…"},zh:{frameTitle:"项目预览",empty:"未打开项目预览",loading:"正在加载预览…"}};function Or({url:t,revision:n,loadState:r,onLoad:s,onError:l}){const{locale:a}=Ke(),b=Br[a];return e.jsx("section",{"data-preview-browser":!0,className:"relative h-full min-h-0 overflow-hidden bg-white",children:t?e.jsxs(e.Fragment,{children:[e.jsx("iframe",{"data-preview-browser-frame":!0,src:t,title:b.frameTitle,sandbox:"allow-downloads allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts",referrerPolicy:"no-referrer",onLoad:s,onError:l,className:"block h-full w-full border-0 bg-white"},`${t}:${n}`),r==="loading"&&e.jsxs("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex h-8 items-center justify-center border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas)/0.92)] backdrop-blur-sm",children:[e.jsx(Re,{className:"mr-2 h-3.5 w-3.5 animate-spin text-[hsl(var(--deck-accent))]"}),e.jsx("span",{className:"font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))]",children:b.loading})]})]}):e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 bg-[hsl(var(--deck-canvas-veil))] text-center",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink-faint))]",children:e.jsx(Ge,{className:"h-5 w-5"})}),e.jsx("span",{className:"font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]",children:b.empty})]})})}const qr={en:{unavailable:"No active Session",empty:"No Test page",screenshotAlt:"Chromium page",selectedRef:"Selected ref",noRef:"No ref selected",valuePlaceholder:"Input value",click:"Click selected element",fill:"Fill selected control",scrollUp:"Scroll up",scrollDown:"Scroll down",snapshot:"Refresh snapshot",reset:"Reset Test browser",dom:"DOM",console:"Console",network:"Network",errors:"Errors",noEntries:"No entries",user:"User",agent:"Agent",sourceAria:"Test browser source"},zh:{unavailable:"没有活动 Session",empty:"未打开测试页面",screenshotAlt:"Chromium 页面",selectedRef:"已选 ref",noRef:"未选择 ref",valuePlaceholder:"输入内容",click:"点击已选元素",fill:"填入已选控件",scrollUp:"向上滚动",scrollDown:"向下滚动",snapshot:"刷新快照",reset:"重置测试浏览器",dom:"DOM",console:"控制台",network:"网络",errors:"错误",noEntries:"暂无记录",user:"用户",agent:"Agent",sourceAria:"测试浏览器来源"}};function Hr(t){return t.split(`
53
- `).map(n=>{var r;return{text:n,ref:(r=n.match(/\[ref=([a-z][a-z0-9]*)\]/))==null?void 0:r[1]}})}function Gr(t){return[t.kind,t.level,t.method,t.status,t.url,t.text].filter(n=>n!==void 0&&n!=="").join(" · ")}function Vr({source:t,agentAvailable:n,sessionAvailable:r,observation:s,screenshotUrl:l,interaction:a,pointerRevision:b,busy:c,error:w,diagnostics:m,diagnosticsLoading:g,onInteract:d,onInspect:y,onSnapshot:D,onReset:x,onSourceChange:j}){const{locale:k}=Ke(),v=qr[k],[L,F]=i.useState(null),[C,G]=i.useState(""),[z,pe]=i.useState("dom"),Q=i.useRef(null),[_,me]=i.useState({left:0,top:0,width:0,height:0}),A=t==="agent",xe=i.useMemo(()=>Hr((s==null?void 0:s.snapshot)??""),[s==null?void 0:s.snapshot]),V=z==="dom"?[]:m[z]??[];i.useEffect(()=>{F(null)},[s==null?void 0:s.snapshotId]),i.useEffect(()=>{A&&pe("dom")},[A]);const se=i.useCallback(()=>{const h=Q.current,E=a==null?void 0:a.viewport;if(!h||!E||E.width<=0||E.height<=0){me({left:0,top:0,width:0,height:0});return}const $=h.getBoundingClientRect(),O=Math.min($.width/E.width,$.height/E.height),K=E.width*O,ae=E.height*O;me({left:($.width-K)/2,top:($.height-ae)/2,width:K,height:ae})},[a==null?void 0:a.viewport]);i.useEffect(()=>{se();const h=Q.current;if(!h||typeof ResizeObserver>"u")return;const E=new ResizeObserver(se);return E.observe(h),()=>E.disconnect()},[se,l]);const B=i.useMemo(()=>{const h=a==null?void 0:a.targetBox,E=a==null?void 0:a.viewport;if(!h||!E||_.width<=0||_.height<=0)return null;const $=Math.min(E.width,Math.max(0,h.x+h.width/2)),O=Math.min(E.height,Math.max(0,h.y+h.height/2));return{left:_.left+$/E.width*_.width,top:_.top+O/E.height*_.height}},[a,_]),ne=h=>{A&&h!=="dom"||(pe(h),h!=="dom"&&y(h))};return e.jsxs("section",{"data-browser-test":!0,"data-browser-source":t,"data-browser-snapshot-id":s==null?void 0:s.snapshotId,className:"flex h-full min-h-0 flex-col bg-[hsl(var(--deck-canvas))]",children:[e.jsxs("div",{ref:Q,className:"relative flex min-h-0 flex-1 items-center justify-center overflow-hidden bg-neutral-950",children:[l?e.jsx("img",{"data-browser-test-screenshot":!0,src:l,alt:v.screenshotAlt,onLoad:se,className:"h-full w-full object-contain"}):e.jsxs("div",{className:"flex flex-col items-center gap-3 text-[hsl(var(--deck-ink-faint))]",children:[e.jsx(Rr,{className:"h-7 w-7"}),e.jsx("span",{className:"font-mono text-[11px]",children:r?v.empty:v.unavailable})]}),A&&B&&e.jsxs("div",{"data-browser-agent-pointer":!0,"data-browser-action":a==null?void 0:a.action,className:"pointer-events-none absolute z-10 transition-[left,top] duration-300 ease-out",style:B,children:[e.jsx("span",{className:"absolute -left-2 -top-2 h-4 w-4 animate-ping rounded-full bg-cyan-400/70"},b),e.jsx(St,{className:"relative h-5 w-5 fill-white text-neutral-950 drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)]"})]}),c&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/35",children:e.jsx(Re,{className:"h-5 w-5 animate-spin text-white"})}),w&&e.jsx("div",{role:"alert",className:"absolute inset-x-0 bottom-0 border-t border-red-500/30 bg-red-950/90 px-3 py-2 font-mono text-[10.5px] text-red-200",children:w})]}),e.jsxs("div",{className:"flex h-10 shrink-0 items-center gap-1 border-y border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-2",children:[e.jsx("div",{role:"group","aria-label":v.sourceAria,className:"flex h-7 shrink-0 items-center border border-[hsl(var(--deck-border))]",children:[["user",v.user,Ar],["agent",v.agent,xr]].map(([h,E,$])=>e.jsxs("button",{type:"button",disabled:h==="agent"&&!n,"aria-pressed":t===h,onClick:()=>j(h),className:U("flex h-full items-center gap-1 border-r border-[hsl(var(--deck-border))] px-1.5 font-mono text-[9.5px] text-[hsl(var(--deck-ink-muted))] last:border-r-0 disabled:opacity-40",t===h&&"bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]"),children:[e.jsx($,{className:"h-3 w-3"}),e.jsx("span",{children:E})]},h))}),e.jsx("span",{title:L?`${v.selectedRef}: ${L}`:v.noRef,className:"w-20 shrink-0 truncate font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]",children:L??"ref"}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:A||!L||c,title:v.click,"aria-label":v.click,onClick:()=>{L&&d({kind:"click"},L)},className:"h-7 w-7 rounded-md",children:e.jsx(St,{className:"h-3.5 w-3.5"})}),e.jsxs("div",{className:"flex h-7 min-w-0 flex-1 items-center border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-2",children:[e.jsx("input",{value:C,onChange:h=>G(h.target.value),disabled:A,placeholder:v.valuePlaceholder,"aria-label":v.valuePlaceholder,className:"min-w-0 flex-1 bg-transparent font-mono text-[10.5px] outline-none"}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:A||!L||!C||c,title:v.fill,"aria-label":v.fill,onClick:()=>{L&&d({kind:"fill",value:C},L)},className:"h-6 w-6 rounded-md",children:e.jsx(vr,{className:"h-3 w-3"})})]}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:A||!s||c,title:v.scrollUp,"aria-label":v.scrollUp,onClick:()=>void d({kind:"scroll",direction:"up",amount:560}),className:"h-7 w-7 rounded-md",children:e.jsx(Pr,{className:"h-3.5 w-3.5"})}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:A||!s||c,title:v.scrollDown,"aria-label":v.scrollDown,onClick:()=>void d({kind:"scroll",direction:"down",amount:560}),className:"h-7 w-7 rounded-md",children:e.jsx(Nr,{className:"h-3.5 w-3.5"})}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:A||!s||c,title:v.snapshot,"aria-label":v.snapshot,onClick:()=>void D(),className:"h-7 w-7 rounded-md",children:e.jsx(Bt,{className:"h-3.5 w-3.5"})}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:A||!r||c,title:v.reset,"aria-label":v.reset,onClick:()=>{F(null),x()},className:"h-7 w-7 rounded-md",children:e.jsx(Ot,{className:"h-3.5 w-3.5"})})]}),e.jsxs("div",{className:"flex h-[38%] min-h-32 shrink-0 flex-col overflow-hidden",children:[e.jsx("div",{role:"tablist",className:"grid h-8 shrink-0 grid-cols-4 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]",children:[["dom",v.dom,br],["console",v.console,Fr],["network",v.network,Mr],["page-errors",v.errors,Er]].map(([h,E,$])=>e.jsxs("button",{type:"button",role:"tab",disabled:A&&h!=="dom","aria-selected":z===h,onClick:()=>ne(h),className:U("flex min-w-0 items-center justify-center gap-1 border-r border-[hsl(var(--deck-border))] px-1 font-mono text-[10px] text-[hsl(var(--deck-ink-muted))] last:border-r-0",z===h&&"bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]"),children:[e.jsx($,{className:"h-3 w-3 shrink-0"}),e.jsx("span",{className:"truncate",children:E})]},h))}),e.jsx("div",{className:"min-h-0 flex-1 overflow-auto bg-[hsl(var(--deck-canvas-veil))] p-2 font-mono text-[10px] leading-5 text-[hsl(var(--deck-ink-muted))]",children:z==="dom"?xe.length>0?xe.map((h,E)=>h.ref?e.jsx("button",{type:"button","data-browser-ref":h.ref,disabled:A,onClick:()=>F(h.ref??null),className:U("block w-full whitespace-pre-wrap px-1 text-left hover:bg-[hsl(var(--deck-accent)/0.08)]",L===h.ref&&"bg-[hsl(var(--deck-accent)/0.12)] text-[hsl(var(--deck-ink))]"),children:h.text},`${h.ref}:${E}`):e.jsx("div",{className:"whitespace-pre-wrap px-1",children:h.text},`${h.text}:${E}`)):e.jsx("div",{className:"flex h-full items-center justify-center",children:v.noEntries}):g===z?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(Re,{className:"h-4 w-4 animate-spin"})}):V.length>0?V.map(h=>e.jsx("div",{className:"border-b border-[hsl(var(--deck-border))] px-1 py-1 last:border-b-0",children:Gr(h)},h.sequence)):e.jsx("div",{className:"flex h-full items-center justify-center",children:v.noEntries})})]})]})}const Kr="http://localhost:3000",Jr=2048,Qr=/^(?:localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|10(?:\.\d{1,3}){3}|192\.168(?:\.\d{1,3}){2}|172\.(?:1[6-9]|2\d|3[01])(?:\.\d{1,3}){2})(?::\d+)?$/i,Xr=/^[a-z\d.-]+:\d+$/i;function Qt(){return typeof window>"u"?void 0:window.location.origin}function ot(t,n=Qt(),r=!1){const s=t.trim();if(!s)return{ok:!1,reason:"empty"};if(s.length>Jr)return{ok:!1,reason:"invalid"};let l=s;const a=l.split(/[/?#]/,1)[0]??"";Qr.test(a)||Xr.test(a)?l=`http://${l}`:l.startsWith("//")?l=`https:${l}`:/^[a-z][a-z\d+.-]*:/i.test(l)||(l=`https://${l}`);let b;try{b=new URL(l)}catch{return{ok:!1,reason:"invalid"}}return b.protocol!=="http:"&&b.protocol!=="https:"?{ok:!1,reason:"protocol"}:b.username||b.password?{ok:!1,reason:"credentials"}:r&&n&&b.origin===n?{ok:!1,reason:"same_origin"}:{ok:!0,url:b.href}}function Yr(t,n=Qt()){return ot(t,n,!0)}function Zr(t,n){if(t.entries[t.index]===n)return t;const r=[...t.entries.slice(0,t.index+1),n].slice(-50);return{entries:r,index:r.length-1}}function es(t){try{const n=new URL(t).protocol;return n==="http:"||n==="https:"}catch{return!1}}const ts={en:{modeAria:"Browser mode",preview:"Preview",test:"Test",external:"External",noSession:"No active Session",snapshotRefreshed:"The page changed. Snapshot refreshed; select the element again.",toolbarAria:"Browser navigation",addressAria:"Browser address",addressPlaceholder:"Enter an HTTP or HTTPS URL",back:"Go back",forward:"Go forward",reload:"Reload page",go:"Open address",openExternal:"Open in system browser",externalEmpty:"No external page selected",status:{idle:"Idle",loading:"Loading…",ready:"Ready",error:"Failed"},error:{empty:"Enter a URL.",invalid:"Enter a valid URL.",protocol:"Only HTTP and HTTPS URLs are supported.",credentials:"URLs containing credentials are not allowed.",same_origin:"The Blade Web origin cannot be embedded in itself."}},zh:{modeAria:"浏览器模式",preview:"预览",test:"测试",external:"外部",noSession:"没有活动 Session",snapshotRefreshed:"页面已变化,快照已刷新,请重新选择元素。",toolbarAria:"浏览器导航",addressAria:"浏览器地址",addressPlaceholder:"输入 HTTP 或 HTTPS 地址",back:"后退",forward:"前进",reload:"刷新页面",go:"打开地址",openExternal:"在系统浏览器中打开",externalEmpty:"未选择外部页面",status:{idle:"空闲",loading:"正在加载…",ready:"就绪",error:"失败"},error:{empty:"请输入地址。",invalid:"请输入有效地址。",protocol:"仅支持 HTTP 与 HTTPS 地址。",credentials:"不允许使用包含凭据的地址。",same_origin:"不能在面板中嵌套 Blade Web 自身地址。"}}};function rs({sessionRef:t=null}){const{locale:n}=Ke(),r=ts[n],s=wt(u=>u.agentActivity),l=t!==null&&s!==null&&s.sessionRef.sessionId===t.sessionId&&s.sessionRef.projectPath===t.projectPath,[a,b]=i.useState("preview"),[c,w]=i.useState("user"),[m,g]=i.useState(Kr),[d,y]=i.useState({entries:[],index:-1}),D=i.useRef(d),[x,j]=i.useState(0),[k,v]=i.useState("idle"),[L,F]=i.useState(null),[C,G]=i.useState(null),[z,pe]=i.useState(null),[Q,_]=i.useState(null),[me,A]=i.useState(!1),[xe,V]=i.useState(null),[se,B]=i.useState(!1),[ne,h]=i.useState(null),[E,$]=i.useState(null),[O,K]=i.useState({}),[ae,ve]=i.useState(null),R=i.useRef(0),X=i.useRef(null),be=i.useRef(null),Y=d.entries[d.index]??null,Z=a==="preview"?Y:a==="test"?c==="agent"&&l?(s==null?void 0:s.url)??null:(C==null?void 0:C.url)??null:E,Je=i.useMemo(()=>{if(!Z)return"";try{return new URL(Z).host}catch{return""}},[Z]),H=a==="preview"?k:a==="test"?c==="agent"&&l?me||(s==null?void 0:s.phase)==="running"?"loading":xe||(s==null?void 0:s.phase)==="error"?"error":Q?"ready":"idle":se?"loading":ne?"error":C?"ready":"idle":E?"ready":"idle",oe=L!==null?r.error[L]:a==="test"?c==="agent"&&l?xe??(s==null?void 0:s.errorCode)??null:ne:null,Pe=u=>{X.current&&URL.revokeObjectURL(X.current),X.current=u,pe(u)},ge=u=>{be.current&&URL.revokeObjectURL(be.current),be.current=u,_(u)};i.useEffect(()=>{const u=R.current+1;return R.current=u,G(null),w("user"),h(null),V(null),A(!1),K({}),Pe(null),ge(null),()=>{R.current===u&&(R.current+=1)}},[t==null?void 0:t.projectPath,t==null?void 0:t.sessionId]),i.useEffect(()=>()=>{X.current&&URL.revokeObjectURL(X.current),be.current&&URL.revokeObjectURL(be.current)},[]),i.useEffect(()=>{!t||!l||!s||(b("test"),w("agent"),F(null),s.url&&g(s.url))},[s==null?void 0:s.revision,l,t]),i.useEffect(()=>{if(!t||!l||!s||!s.pageId||!s.origin||s.frameRevision===0)return;if(!es(s.origin)){A(!1),V(null),ge(null);return}const u=R.current,f=s.frameRevision,N=()=>{const P=wt.getState().agentActivity;return R.current===u&&(P==null?void 0:P.frameRevision)===f&&P.sessionRef.sessionId===t.sessionId&&P.sessionRef.projectPath===t.projectPath};A(!0),V(null),ce.screenshot(t,{source:"agent",pageId:s.pageId,expectedOrigin:s.origin}).then(P=>{N()&&ge(URL.createObjectURL(P))}).catch(P=>{N()&&V(P instanceof Error?P.message:String(P))}).finally(()=>{N()&&A(!1)})},[s==null?void 0:s.frameRevision,s==null?void 0:s.origin,s==null?void 0:s.pageId,l,t]);const Qe=async(u,f,N)=>{const P=await ce.screenshot(u,{pageId:f.pageId,expectedOrigin:f.origin});R.current===N&&Pe(URL.createObjectURL(P))},ee=async(u,f,N)=>{R.current===N&&(G(f),g(f.url),K({}),await Qe(u,f,N))},J=async u=>{if(!t){h(r.noSession);return}const f=R.current;B(!0),h(null);try{const N=await ce.navigate(t,u);await ee(t,N,f)}catch(N){R.current===f&&h(N instanceof Error?N.message:String(N))}finally{R.current===f&&B(!1)}},ze=u=>{const f=Zr(D.current,u);D.current=f,y(f),g(u),v("loading")},Xe=u=>{u.preventDefault();const f=a==="preview"?Yr(m):ot(m);if(!f.ok){F(f.reason);return}if(F(null),a==="preview"){f.url===Y&&j(N=>N+1),ze(f.url);return}if(a==="test"){if(c==="agent")return;J({action:"goto",url:f.url});return}$(f.url),g(f.url),window.open(f.url,"_blank","noopener,noreferrer")},Ne=u=>{const f=D.current.index+u,N=D.current.entries[f];if(!N)return;const P={...D.current,index:f};D.current=P,y(P),g(N),v("loading")},ke=u=>{if(a==="preview"){u==="back"?Ne(-1):u==="forward"?Ne(1):Y&&(v("loading"),j(f=>f+1));return}a==="test"&&c==="user"&&C&&J({action:u,pageId:C.pageId,expectedOrigin:C.origin})},Ie=u=>{b(u),F(null),h(null);const f=u==="preview"?Y:u==="test"?c==="agent"&&l?s==null?void 0:s.url:C==null?void 0:C.url:E;f&&g(f)},De=u=>{if(u==="agent"&&!l)return;w(u),F(null),h(null),V(null);const f=u==="agent"?s==null?void 0:s.url:C==null?void 0:C.url;f&&g(f)},Fe=async(u,f)=>{if(!t||!C)return;const N=C,P=R.current;B(!0),h(null);try{const q=await ce.interact(t,{pageId:N.pageId,snapshotId:N.snapshotId,expectedOrigin:N.origin,...f?{ref:f}:{},action:u});if(q.outcome==="applied")await ee(t,q.observation,P);else if(q.outcome==="applied_observation_failed"){const ue=await ce.snapshot(t,{pageId:q.pageId});await ee(t,ue,P)}else h(q.errorCode)}catch(q){if(R.current===P){const ue=q instanceof Error?q.message:String(q);if(/snapshot is stale/i.test(ue))try{const fe=await ce.snapshot(t,{pageId:N.pageId});await ee(t,fe,P),R.current===P&&h(r.snapshotRefreshed)}catch(fe){R.current===P&&h(fe instanceof Error?fe.message:String(fe))}else h(ue)}}finally{R.current===P&&B(!1)}},We=async()=>{if(!t||!C)return;const u=R.current;B(!0),h(null);try{const f=await ce.snapshot(t,{pageId:C.pageId});await ee(t,f,u)}catch(f){R.current===u&&h(f instanceof Error?f.message:String(f))}finally{R.current===u&&B(!1)}},Ae=async u=>{if(!t||!C)return;const f=R.current;ve(u);try{const N=await ce.inspect(t,{target:u,pageId:C.pageId,expectedOrigin:C.origin});R.current===f&&K(P=>({...P,[u]:N.entries??[]}))}catch(N){R.current===f&&h(N instanceof Error?N.message:String(N))}finally{R.current===f&&ve(null)}},_e=async()=>{if(!t)return;const u=R.current;B(!0),h(null);try{await ce.reset(t),R.current===u&&(G(null),K({}),Pe(null))}catch(f){R.current===u&&h(f instanceof Error?f.message:String(f))}finally{R.current===u&&B(!1)}},ie=()=>{const f=ot(Z??m);if(!f.ok){F(f.reason);return}$(f.url),window.open(f.url,"_blank","noopener,noreferrer")},Se=a==="preview"?d.index>0:a==="test"&&c==="user"&&!!C,de=a==="preview"?d.index>=0&&d.index<d.entries.length-1:a==="test"&&c==="user"&&!!C,we=a==="test"&&c==="agent",te=c==="agent"?me||(s==null?void 0:s.phase)==="running":se;return e.jsxs("section",{"data-browser-panel":!0,"data-browser-mode":a,"data-browser-test-source":c,"data-browser-history-count":d.entries.length,"data-browser-history-index":d.index,className:"flex h-full min-h-0 flex-col bg-[hsl(var(--deck-canvas))]",children:[e.jsx("div",{role:"tablist","aria-label":r.modeAria,className:"grid h-9 shrink-0 grid-cols-3 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]",children:[["preview",r.preview,Ge],["test",r.test,Dr],["external",r.external,Nt]].map(([u,f,N])=>e.jsxs("button",{type:"button",role:"tab","aria-selected":a===u,onClick:()=>Ie(u),className:U("flex min-w-0 items-center justify-center gap-1.5 border-r border-[hsl(var(--deck-border))] px-2 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] last:border-r-0",a===u&&"bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]"),children:[e.jsx(N,{className:"h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:f})]},u))}),e.jsxs("form",{"aria-label":r.toolbarAria,onSubmit:Xe,className:"flex h-12 shrink-0 items-center gap-1 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-2",children:[e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:!Se||a==="test"&&te,"aria-label":r.back,title:r.back,onClick:()=>ke("back"),className:"h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]",children:e.jsx(Cr,{className:"h-4 w-4"})}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:!de||a==="test"&&te,"aria-label":r.forward,title:r.forward,onClick:()=>ke("forward"),className:"h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]",children:e.jsx(Tr,{className:"h-4 w-4"})}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:a==="external"||we||!Z||a==="test"&&te,"aria-label":r.reload,title:r.reload,onClick:()=>ke("reload"),className:"h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]",children:e.jsx(Bt,{className:U("h-4 w-4",H==="loading"&&"animate-spin")})}),e.jsxs("div",{className:U("flex h-8 min-w-0 flex-1 items-center gap-2 rounded-md border bg-[hsl(var(--deck-canvas))] px-2",oe?"border-red-500/70":"border-[hsl(var(--deck-border))] focus-within:border-[hsl(var(--deck-accent)/0.65)]"),children:[e.jsx(Ge,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]"}),e.jsx("input",{"data-browser-panel-address":!0,"data-preview-browser-address":a==="preview"||void 0,value:m,readOnly:we,onChange:u=>{g(u.target.value),F(null)},onKeyDown:u=>{u.key==="Escape"&&Z&&(u.preventDefault(),g(Z),F(null))},"aria-label":r.addressAria,placeholder:r.addressPlaceholder,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,className:"min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]"})]}),e.jsx(W,{type:"submit",variant:"ghost",size:"icon","aria-label":r.go,title:r.go,disabled:we||a==="test"&&te,className:"h-8 w-8 rounded-md text-[hsl(var(--deck-accent))]",children:H==="loading"?e.jsx(Re,{className:"h-4 w-4 animate-spin"}):e.jsx(qt,{className:"h-4 w-4"})}),e.jsx(W,{type:"button",variant:"ghost",size:"icon",disabled:!Z,"aria-label":r.openExternal,title:r.openExternal,onClick:ie,className:"h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]",children:e.jsx(jt,{className:"h-4 w-4"})})]}),oe&&a!=="test"&&e.jsx("div",{role:"alert",className:"shrink-0 border-b border-red-500/25 bg-red-500/10 px-3 py-2 font-mono text-[10.5px] text-red-700 dark:text-red-300",children:oe}),e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:a==="preview"?e.jsx(Or,{url:Y,revision:x,loadState:k,onLoad:()=>v("ready"),onError:()=>v("error")}):a==="test"?e.jsx(Vr,{source:c,agentAvailable:l,sessionAvailable:!!t,observation:c==="agent"?null:C,screenshotUrl:c==="agent"?Q:z,interaction:c==="agent"?s==null?void 0:s.interaction:void 0,pointerRevision:c==="agent"?(s==null?void 0:s.pointerRevision)??0:0,busy:te,error:oe,diagnostics:c==="agent"?{}:O,diagnosticsLoading:c==="agent"?null:ae,onInteract:Fe,onInspect:Ae,onSnapshot:We,onReset:_e,onSourceChange:De}):e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 bg-[hsl(var(--deck-canvas-veil))]",children:[e.jsx(Nt,{className:"h-7 w-7 text-[hsl(var(--deck-ink-faint))]"}),e.jsx("span",{className:"font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]",children:E?new URL(E).host:r.externalEmpty}),e.jsxs(W,{type:"button",variant:"outline",onClick:ie,disabled:!m.trim(),className:"h-8 rounded-md font-mono text-[11px]",children:[e.jsx(jt,{className:"mr-2 h-3.5 w-3.5"}),r.openExternal]})]})}),e.jsxs("div",{"data-browser-panel-status":H,"data-preview-browser-status":a==="preview"?H:void 0,"aria-live":"polite",className:"flex h-7 shrink-0 items-center justify-between border-t border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]",children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:U("h-1.5 w-1.5 shrink-0 rounded-full bg-[hsl(var(--deck-ink-faint))]",H==="loading"&&"bg-amber-500",H==="ready"&&"bg-emerald-500",H==="error"&&"bg-red-500")}),e.jsx("span",{children:r.status[H]})]}),e.jsx("span",{className:"ml-3 truncate",children:Je||r[a]})]})]})}function Ve(t){return t.normalize("NFKC").toLocaleLowerCase().trim()}function ss(t,n,r){const s=Ve(n).split(/\s+/).filter(Boolean);return t.filter(l=>{if(r!=="all"&&l.status!==r)return!1;if(s.length===0)return!0;const a=Ve([l.title,l.subtitle,l.content].filter(Boolean).join(" "));return s.every(b=>a.includes(b))})}function Xt(t){return t.replace(/\/+$/,"").split("/").filter(Boolean).at(-1)||t}function ns(t,n){const r=Ve(n).split(/\s+/).filter(Boolean);return r.length===0?t:t.filter(s=>{const l=Ve([s.filePath,s.summary].filter(Boolean).join(" "));return r.every(a=>l.includes(a))})}function as(t,n,r){return n===0?0:(t+r+n)%n}const Tt=20,Lt=20,Rt=160,Pt=240;function It(t,n){const r=a=>a.replace(/\\/g,"/").replace(/^\.?\//,"").replace(/\/+/g,"/"),s=r(t),l=r(n);return s===l||s.endsWith(`/${l}`)||l.endsWith(`/${s}`)}function os({diffs:t,expanded:n,targetPath:r,onToggle:s,onSetAllExpanded:l}){var x,j;const a=he(),[b,c]=i.useState(""),w=`${b}\0${t.length}\0${((x=t[0])==null?void 0:x.filePath)??""}\0${((j=t.at(-1))==null?void 0:j.filePath)??""}`,[m,g]=i.useState({key:w,count:Tt}),d=m.key===w?m.count:Tt,y=i.useMemo(()=>ns(t,b),[t,b]),D=i.useMemo(()=>{const k=y.slice(0,d);if(!r)return k;const v=y.find(L=>L.filePath&&It(L.filePath,r));return v&&!k.includes(v)?[...k,v]:k},[y,r,d]);return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"sticky top-0 z-10 space-y-2 bg-[hsl(var(--deck-canvas))] pb-1",children:[e.jsxs("div",{className:"flex h-8 items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 focus-within:border-[hsl(var(--deck-accent)/0.6)]",children:[e.jsx(lt,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]"}),e.jsx("input",{type:"search","aria-label":a("preview.diff.searchAria"),placeholder:a("preview.diff.searchPlaceholder"),value:b,onChange:k=>c(k.target.value),className:"min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]"}),e.jsxs("span",{className:"font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]",children:[y.length,"/",t.length]})]}),e.jsxs("div",{className:"flex items-center justify-between font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]",children:[e.jsx("span",{children:a("preview.diff.changedFiles",{count:t.length})}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsxs("button",{type:"button",onClick:()=>l(!0),className:"inline-flex items-center gap-1 rounded px-1.5 py-1 transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink-muted))]",children:[e.jsx(Sr,{className:"h-3 w-3"}),a("preview.diff.expandAll")]}),e.jsxs("button",{type:"button",onClick:()=>l(!1),className:"inline-flex items-center gap-1 rounded px-1.5 py-1 transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink-muted))]",children:[e.jsx(Ir,{className:"h-3 w-3"}),a("preview.diff.collapseAll")]})]})]})]}),y.length===0?e.jsx("div",{className:"rounded-lg border border-dashed border-[hsl(var(--deck-border))] p-6 text-center font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:a("preview.diff.noMatches")}):D.map(k=>{const v=k.filePath||"unknown",L=t.indexOf(k),F=n[v]??L===0,C=!!(r&&It(v,r));return e.jsxs("div",{"data-preview-diff-path":k.filePath,className:U("overflow-hidden rounded-lg border border-[hsl(var(--deck-border))] transition-colors",C&&"border-[hsl(var(--deck-accent)/0.7)] bg-[hsl(var(--deck-accent-soft))] ring-1 ring-[hsl(var(--deck-accent)/0.2)]"),children:[e.jsxs("button",{type:"button","aria-expanded":F,onClick:()=>s(v),className:"flex w-full items-center gap-2 bg-[hsl(var(--deck-surface-2))] px-3 py-2 transition-colors hover:bg-[hsl(var(--deck-surface))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent)/0.65)]",children:[F?e.jsx(Ht,{className:"h-4 w-4 text-[hsl(var(--deck-ink-muted))]"}):e.jsx(Gt,{className:"h-4 w-4 text-[hsl(var(--deck-ink-muted))]"}),e.jsx(Vt,{className:"h-4 w-4 text-[hsl(var(--deck-ink-muted))]"}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-left font-mono text-[13px] text-[hsl(var(--deck-ink))]",children:Xt(v)}),k.summary&&e.jsx("span",{className:"shrink-0 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]",children:k.summary})]}),F&&e.jsxs("div",{className:"border-t border-[hsl(var(--deck-border))]",children:[e.jsx("div",{className:"truncate px-3 py-1 font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]",children:k.filePath}),e.jsx(is,{diff:k.diff})]})]},v)}),d<y.length&&e.jsx("div",{className:"flex justify-center pt-1",children:e.jsx("button",{type:"button",onClick:()=>g({key:w,count:Math.min(y.length,d+Lt)}),className:"rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-3 py-1.5 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:border-[hsl(var(--deck-border-strong))] hover:text-[hsl(var(--deck-ink))]",children:a("preview.diff.showMoreFiles",{count:Math.min(Lt,y.length-d)})})})]})}function is({diff:t}){const n=he(),r=i.useMemo(()=>t.patch.split(`
54
- `),[t.patch]),[s,l]=i.useState({patch:t.patch,count:Rt}),a=s.patch===t.patch?s.count:Rt,b=r.slice(0,a);let c=0,w=0;return e.jsxs("div",{className:"overflow-hidden rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:[e.jsx("span",{children:n("preview.diff.patch")}),t.matchLine&&e.jsx("span",{children:n("preview.diff.line",{line:t.matchLine})})]}),e.jsx("div",{className:"overflow-x-auto font-mono text-[12px]",children:b.map((m,g)=>{if(m.startsWith("@@")){const d=/@@ -(?<old>\d+),?(?<oldCount>\d*) \+(?<new>\d+),?(?<newCount>\d*) @@/.exec(m);return d!=null&&d.groups&&(c=Number.parseInt(d.groups.old,10),w=Number.parseInt(d.groups.new,10)),e.jsx(Ce,{line:m},`${m}-${g}`)}if(m.startsWith("---")||m.startsWith("+++")||m.startsWith("Index:")||m.startsWith("==="))return e.jsx(Ce,{line:m},`${m}-${g}`);if(m.startsWith("+")){const d=w++;return e.jsx(Ce,{line:m,oldLine:null,newLine:d},`${m}-${g}`)}if(m.startsWith("-")){const d=c++;return e.jsx(Ce,{line:m,oldLine:d,newLine:null},`${m}-${g}`)}return m.startsWith(" ")?e.jsx(Ce,{line:m,oldLine:c++,newLine:w++},`${m}-${g}`):e.jsx(Ce,{line:m},`${m}-${g}`)})}),a<r.length&&e.jsx("div",{className:"flex justify-center border-t border-[hsl(var(--deck-border))] p-2",children:e.jsx("button",{type:"button",onClick:()=>l({patch:t.patch,count:Math.min(r.length,a+Pt)}),className:"rounded-md border border-[hsl(var(--deck-border))] px-3 py-1 font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:bg-[hsl(var(--deck-surface-2))] hover:text-[hsl(var(--deck-ink))]",children:n("preview.diff.showMoreLines",{count:Math.min(Pt,r.length-a)})})})]})}function Ce({line:t,oldLine:n,newLine:r}){const s=t.startsWith("---")||t.startsWith("+++")||t.startsWith("Index:")||t.startsWith("==="),l=t.startsWith("@@"),a=t[0],b=s||l?t:t.slice(1),c=s?"text-[hsl(var(--deck-ink-muted))]":a==="+"?"bg-[#22C55E]/10 text-[#166534] dark:bg-[#22C55E]/10 dark:text-[#86efac]":a==="-"?"bg-[#EF4444]/10 text-[#b91c1c] dark:bg-[#EF4444]/10 dark:text-[#fca5a5]":l?"bg-[#DBEAFE] text-[#1d4ed8] dark:bg-[#1e3a8a]/30 dark:text-[#93c5fd]":"text-[hsl(var(--deck-ink))]";return e.jsxs("div",{"data-preview-diff-line":!0,className:U("grid min-w-max grid-cols-[40px_40px_1fr] gap-2 px-3 py-0.5",c),children:[e.jsx("span",{className:"text-right text-[hsl(var(--deck-ink-faint))]",children:n?String(n).padStart(2," "):""}),e.jsx("span",{className:"text-right text-[hsl(var(--deck-ink-faint))]",children:r?String(r).padStart(2," "):""}),e.jsx("span",{className:"whitespace-pre",children:b})]})}function ls({nodes:t,expandedDirs:n,childrenCache:r,directoryStates:s,selectedPath:l,onToggleDir:a,onRetryDir:b,onSelectFile:c}){return e.jsx(e.Fragment,{children:t.map(w=>e.jsx(Yt,{node:w,depth:0,expandedDirs:n,childrenCache:r,directoryStates:s,selectedPath:l,onToggleDir:a,onRetryDir:b,onSelectFile:c},w.path))})}function Yt({node:t,depth:n,expandedDirs:r,childrenCache:s,directoryStates:l,selectedPath:a,onToggleDir:b,onRetryDir:c,onSelectFile:w}){const m=he(),g=t.type==="dir",d=!!r[t.path],y=!g&&a===t.path,D=s[t.path]??[],x=l[t.path],j=n*14+24;return e.jsxs("div",{children:[e.jsxs("button",{type:"button","aria-expanded":g?d:void 0,"aria-busy":g&&(x==null?void 0:x.status)==="loading",onClick:()=>g?b(t.path):w(t.path),className:U("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left font-mono text-[12px] transition-colors",y?"border border-[#16A34A]/30 bg-[#16A34A]/10 text-[#111827] dark:border-[#22C55E]/30 dark:bg-[#22C55E]/10 dark:text-[#E5E5E5]":"text-[hsl(var(--deck-ink-muted))] hover:bg-[hsl(var(--deck-surface))]",g&&"cursor-pointer"),style:{paddingLeft:n*14+8},children:[g?(x==null?void 0:x.status)==="loading"?e.jsx(Re,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-[hsl(var(--deck-accent))]"}):d?e.jsx(gr,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink))]"}):e.jsx(Lr,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-muted))]"}):e.jsx(Vt,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]"}),e.jsx("span",{className:"truncate text-[hsl(var(--deck-ink))]",children:t.name})]}),g&&d&&e.jsxs("div",{children:[(x==null?void 0:x.status)==="loading"&&e.jsx("div",{role:"status",style:{paddingLeft:j},className:"py-1 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]",children:m("preview.files.directoryLoading")}),(x==null?void 0:x.status)==="error"&&e.jsxs("div",{role:"alert",style:{marginLeft:j},className:"my-1 mr-1 rounded-md border border-red-200 bg-red-50/70 px-2 py-1.5 font-mono text-[10px] text-red-700 dark:border-red-900/60 dark:bg-red-950/30 dark:text-red-300",children:[e.jsx("div",{className:"truncate",title:x.message,children:x.message}),e.jsxs("button",{type:"button",onClick:()=>c(t.path),className:"mt-1 inline-flex items-center gap-1 font-medium underline-offset-2 hover:underline",children:[e.jsx(Ot,{className:"h-2.5 w-2.5"}),m("preview.action.retry")]})]}),(x==null?void 0:x.status)==="loaded"&&D.length===0&&e.jsx("div",{style:{paddingLeft:j},className:"py-1 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]",children:m("preview.files.directoryEmpty")}),D.map(k=>e.jsx(Yt,{node:k,depth:n+1,expandedDirs:r,childrenCache:s,directoryStates:l,selectedPath:a,onToggleDir:b,onRetryDir:c,onSelectFile:w},k.path))]})]})}const Dt=80,Ft=80;function cs({logs:t}){var x,j;const n=he(),[r,s]=i.useState(""),[l,a]=i.useState("all"),[b,c]=i.useState({}),w=`${l}\0${r}\0${t.length}\0${((x=t[0])==null?void 0:x.id)??""}\0${((j=t.at(-1))==null?void 0:j.id)??""}`,[m,g]=i.useState({key:w,count:Dt}),d=i.useMemo(()=>ss(t,r,l),[l,t,r]),y=m.key===w?m.count:Dt,D=d.slice(0,y);return e.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[e.jsxs("div",{className:"space-y-2 border-b border-[hsl(var(--deck-border))] px-4 py-3",children:[e.jsxs("div",{className:"flex h-8 items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 focus-within:border-[hsl(var(--deck-accent)/0.6)]",children:[e.jsx(lt,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]"}),e.jsx("input",{type:"search","aria-label":n("preview.logs.searchAria"),placeholder:n("preview.logs.searchPlaceholder"),value:r,onChange:k=>s(k.target.value),className:"min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]"}),e.jsxs("span",{className:"font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]",children:[d.length,"/",t.length]})]}),e.jsx("div",{className:"flex items-center gap-1","aria-label":n("preview.logs.filterAria"),children:["all","running","error","success"].map(k=>e.jsx("button",{type:"button","aria-pressed":l===k,onClick:()=>a(k),className:U("rounded-md border px-2 py-1 font-mono text-[9.5px] transition-colors",l===k?"border-[hsl(var(--deck-accent)/0.45)] bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))]":"border-[hsl(var(--deck-border))] text-[hsl(var(--deck-ink-faint))] hover:text-[hsl(var(--deck-ink-muted))]"),children:n(`preview.logs.filter.${k}`)},k))})]}),e.jsxs("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4",children:[t.length===0?e.jsx(At,{title:n("preview.logs.emptyTitle"),subtitle:n("preview.logs.emptyHint")}):d.length===0?e.jsx(At,{title:n("preview.logs.noMatches"),subtitle:n("preview.logs.noMatchesHint")}):D.map(k=>{var G;const v=b[k.id],L=(k.content||"").split(`
55
- `),F=L.length>10||(((G=k.content)==null?void 0:G.length)||0)>800,C=v||!F?L:L.slice(0,8);return e.jsxs("div",{"data-preview-log-id":k.id,className:"overflow-hidden rounded-lg border border-[hsl(var(--deck-border))]",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("div",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink))]",children:k.title}),k.subtitle&&e.jsx("div",{className:"font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]",children:k.subtitle})]}),e.jsx(ds,{status:k.status})]}),k.content&&e.jsxs("div",{className:"space-y-2 px-3 py-3",children:[e.jsxs("pre",{className:"overflow-x-auto whitespace-pre-wrap rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] p-3 font-mono text-[12px] text-[hsl(var(--deck-ink))]",children:[C.join(`
56
- `),!v&&F&&`
57
- …`]}),F&&e.jsxs("button",{type:"button",onClick:()=>c(z=>({...z,[k.id]:!z[k.id]})),className:"flex items-center gap-1 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:text-[hsl(var(--deck-ink))]",children:[v?e.jsx(Ht,{className:"h-3 w-3"}):e.jsx(Gt,{className:"h-3 w-3"}),n(v?"preview.logs.collapse":"preview.logs.expand")]})]})]},k.id)}),y<d.length&&e.jsx("div",{className:"flex justify-center",children:e.jsx("button",{type:"button",onClick:()=>g({key:w,count:Math.min(d.length,y+Ft)}),className:"rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-3 py-1.5 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:border-[hsl(var(--deck-border-strong))] hover:text-[hsl(var(--deck-ink))]",children:n("preview.logs.showMore",{count:Math.min(Ft,d.length-y)})})})]})]})}function At({title:t,subtitle:n}){return e.jsxs("div",{className:"rounded-lg border border-dashed border-[hsl(var(--deck-border))] p-6 text-center",children:[e.jsx("div",{className:"font-mono text-[13px] text-[hsl(var(--deck-ink))]",children:t}),e.jsx("div",{className:"mt-1 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:n})]})}function ds({status:t}){const n=he(),r=n(t==="success"?"preview.logs.status.success":t==="error"?"preview.logs.status.error":"preview.logs.status.running"),s=t==="success"?"bg-[#22C55E] text-white":t==="error"?"bg-[#FEE2E2] text-[#b91c1c] dark:bg-[#EF4444]/20 dark:text-[#fca5a5]":"bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink-muted))]";return e.jsx("span",{className:U("rounded-full px-2 py-0.5 font-mono text-[11px]",s),children:r})}const us=640,Zt=360,it=960,Ss=i.forwardRef(function({open:n,maximized:r,disabled:s,onToggleMaximized:l,onTogglePreview:a},b){const c=he(),{locale:w}=Ke(),m=w==="zh"?{maximize:"全屏预览",restore:"还原分栏预览"}:{maximize:"Maximize preview",restore:"Restore split preview"},g=r?m.restore:m.maximize;return e.jsxs(e.Fragment,{children:[n&&e.jsx(W,{variant:"ghost",size:"icon","aria-pressed":!!r,"aria-label":g,title:g,onClick:l,className:U("hidden h-8 w-8 rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))] lg:inline-flex",r&&"bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink))]"),children:e.jsx(qt,{className:U("h-4 w-4 transition-transform",r&&"rotate-180")})}),e.jsx(W,{ref:b,variant:"ghost",size:"icon",onClick:a,disabled:s,title:c("preview.title"),"aria-label":w==="zh"?"切换预览面板":"Toggle preview panel",className:U("h-8 w-8 rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))]",n&&"bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))] hover:bg-[hsl(var(--deck-accent-soft))] hover:text-[hsl(var(--deck-accent))]"),children:e.jsx(Ge,{className:"h-4 w-4"})})]})});function Mt(t){const n=typeof window>"u"?it:Math.max(280,Math.floor(window.innerWidth*.72));return Math.min(it,n,Math.max(Zt,Math.round(t)))}function er(t,n,r){var s;if(t){const l=(s=r==null?void 0:r.taskDelivery)==null?void 0:s.status;return(r==null?void 0:r.taskIsolation)==="worktree"&&r.taskSourceProjectPath&&(l==="applied"||l==="discarded")?{sessionId:t.sessionId,projectPath:r.taskSourceProjectPath}:t}return n?{sessionId:`project:${n}`,projectPath:n}:null}function at(){const t=Te.getState(),n=t.sessions.find(r=>$e({sessionId:r.sessionId,projectPath:r.projectPath},t.currentSessionRef));return er(t.currentSessionRef,t.selectedProjectPath,n)}function Ut(t,n){const r=a=>a.replace(/\\/g,"/").replace(/^\.?\//,"").replace(/\/+/g,"/"),s=r(t),l=r(n);return s===l||s.endsWith(`/${l}`)||l.endsWith(`/${s}`)}const fs=i.lazy(async()=>({default:(await jr(()=>import("./index-B5mUEr6D.js"),__vite__mapDeps([0,1]))).Editor}));function He(t,n){return t instanceof Error?t.message:n}function Es({returnFocusElement:t,maximized:n=!1}={}){var gt,kt;const r=he(),{toggleFilePreview:s,previewWidth:l,setPreviewWidth:a,previewTab:b,setPreviewTab:c,previewTargetPath:w,previewRequestId:m}=yt(),g=Te(o=>o.messages),d=Te(o=>o.currentSessionRef),y=Te(o=>o.sessions),D=Te(o=>o.selectedProjectPath),x=i.useMemo(()=>y.find(o=>$e({sessionId:o.sessionId,projectPath:o.projectPath},d)),[d,y]),j=i.useMemo(()=>er(d,D,x),[x,d,D]),[k,v]=i.useState(b),[L,F]=i.useState(()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(max-width: 1023px)").matches),[C,G]=i.useState(null),[z,pe]=i.useState(!1),[Q,_]=i.useState([]),[me,A]=i.useState({}),[xe,V]=i.useState({}),[se,B]=i.useState(0),[ne,h]=i.useState(!1),[E,$]=i.useState(null),[O,K]=i.useState(""),[ae,ve]=i.useState([]),[R,X]=i.useState(!1),[be,Y]=i.useState(!1),[Z,Je]=i.useState(0),[H,oe]=i.useState(0),[Pe,ge]=i.useState({}),[Qe,ee]=i.useState({}),[J,ze]=i.useState(null),[Xe,Ne]=i.useState(""),[ke,Ie]=i.useState(!1),[De,Fe]=i.useState(null),[We,Ae]=i.useState(!1),_e=i.useRef(j),ie=i.useRef(0),Se=i.useRef(0),de=i.useRef({}),we=i.useRef(0),te=i.useRef(0),u=i.useRef(0),f=i.useRef({}),N=i.useRef({}),P=i.useRef({}),q=i.useRef(null),ue=i.useRef(null),fe=i.useRef(null),ct=i.useRef(null),Ye=i.useRef(l),dt=i.useRef(d),Ze=i.useRef(null);i.useLayoutEffect(()=>{$e(_e.current,j)||(ie.current+=1),_e.current=j},[j]),i.useEffect(()=>{if(typeof window.matchMedia!="function")return;const o=window.matchMedia("(max-width: 1023px)"),p=()=>F(o.matches);return p(),o.addEventListener("change",p),()=>o.removeEventListener("change",p)},[]),i.useEffect(()=>(ct.current=t??(document.activeElement instanceof HTMLElement?document.activeElement:null),()=>{const o=ct.current;requestAnimationFrame(()=>{o!=null&&o.isConnected&&o.focus({preventScroll:!0})})}),[t]),i.useEffect(()=>{var o;L&&((o=fe.current)==null||o.focus({preventScroll:!0}))},[L]);const tr=o=>{var M;if(!L)return;if(o.key==="Escape"){o.preventDefault(),s();return}if(o.key!=="Tab")return;const p=Array.from(((M=ue.current)==null?void 0:M.querySelectorAll('button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'))??[]).filter(I=>!I.closest("[hidden]"));if(p.length===0)return;const T=p[0],S=p[p.length-1];o.shiftKey&&document.activeElement===T?(o.preventDefault(),S==null||S.focus()):!o.shiftKey&&document.activeElement===S&&(o.preventDefault(),T==null||T.focus())},Me=(o,p)=>p===ie.current&&$e(at(),o),ut=async(o,p="")=>{const T=p?`/suggestions/files/tree?path=${encodeURIComponent(p)}`:"/suggestions/files/tree",S=await fetch(T,{headers:nt(o)});if(!S.ok)throw new Error(r("preview.files.treeFailed"));return(await S.json()).map(I=>({...I,children:I.type==="dir"?[]:void 0}))};i.useEffect(()=>{const o=++Se.current;return(async()=>{if(!j){_([]),h(!1),$(null);return}const T={...j},S=ie.current,M=()=>o===Se.current&&Me(T,S);if(M()){_([]),h(!0),$(null);try{const I=await ut(T);M()&&_(I)}catch(I){M()&&$(He(I,r("preview.files.treeFailed")))}finally{M()&&h(!1)}}})(),()=>{Se.current===o&&(Se.current+=1)}},[se,j==null?void 0:j.projectPath,j==null?void 0:j.sessionId]),i.useEffect(()=>{q.current=null,f.current={},N.current={},P.current={},de.current={},we.current+=1,ze(null),Ne(""),Ie(!1),Fe(null),Ae(!1),ge({}),A({}),V({}),K(""),ve([]),X(!1),Y(!1),oe(0),ee({})},[j==null?void 0:j.projectPath,j==null?void 0:j.sessionId]);const rr=i.useMemo(()=>ps(g),[g]),[sr,ft]=i.useState(null),[nr,et]=i.useState(!1),[ht,pt]=i.useState(null),[ar,or]=i.useState(0),tt=(x==null?void 0:x.taskIsolation)==="worktree"&&((gt=x.taskDelivery)==null?void 0:gt.status)==="discarded",mt=(x==null?void 0:x.taskIsolation)==="worktree"&&!!x.taskDiffStat&&!tt,xt=mt&&!!(x!=null&&x.taskDiffStat&&x.taskDiffStat.changedFiles>0),ye=tt?[]:mt?sr??[]:rr,ir=i.useMemo(()=>hs(g),[g]);i.useEffect(()=>{const o=O.trim(),p=++te.current;if(oe(0),Y(!1),!o||k!=="files"||!j){ve([]),X(!1);return}const T={...j},S=ie.current;X(!0);const M=window.setTimeout(()=>{fetch(`/suggestions/files?q=${encodeURIComponent(o)}&limit=100&type=file`,{headers:nt(T)}).then(async I=>{if(!I.ok)throw new Error(r("preview.files.searchFailed"));return await I.json()}).then(I=>{p===te.current&&Me(T,S)&&(ve(I.filter(le=>!le.endsWith("/"))),Y(!1))}).catch(()=>{p===te.current&&Me(T,S)&&(ve([]),Y(!0))}).finally(()=>{p===te.current&&X(!1)})},160);return()=>window.clearTimeout(M)},[k,O,Z,j==null?void 0:j.projectPath,j==null?void 0:j.sessionId]),i.useEffect(()=>{v(yt.getState().previewTab)},[m]),i.useEffect(()=>{const o=dt.current;if(dt.current=d,d||!D){Ze.current=null;return}const p=!!o||Ze.current!==D;Ze.current=D,p&&k==="diff"&&(v("files"),c("files"))},[k,d==null?void 0:d.projectPath,d==null?void 0:d.sessionId,D,c]),i.useEffect(()=>{var T;if(!w||k!=="diff")return;const o=(T=ye.find(S=>S.filePath&&Ut(S.filePath,w)))==null?void 0:T.filePath;if(!o)return;ee(S=>({...S,[o]:!0}));const p=requestAnimationFrame(()=>{var M,I;const S=Array.from(((M=ue.current)==null?void 0:M.querySelectorAll("[data-preview-diff-path]"))??[]).find(le=>Ut(le.dataset.previewDiffPath??"",w));typeof(S==null?void 0:S.scrollIntoView)=="function"&&S.scrollIntoView({block:"nearest",behavior:"smooth"}),(I=S==null?void 0:S.querySelector("button"))==null||I.focus({preventScroll:!0})});return()=>cancelAnimationFrame(p)},[k,ye,m,w]),i.useEffect(()=>{const o=++u.current;if(ft(null),pt(null),et(!1),!d||!xt)return;const p={...d};return et(!0),kr.getTaskDiff(p).then(T=>{o!==u.current||!$e(Te.getState().currentSessionRef,p)||ft(T.files.map(S=>({filePath:S.path,diff:{patch:S.patch},summary:S.binary?"binary":`+${S.additions} -${S.deletions}${S.truncated?" (truncated)":""}`})))}).catch(T=>{o===u.current&&pt(He(T,r("preview.diff.failedTitle")))}).finally(()=>{o===u.current&&et(!1)}),()=>{u.current===o&&(u.current+=1)}},[x==null?void 0:x.taskCompletedAt,(kt=x==null?void 0:x.taskDelivery)==null?void 0:kt.status,x==null?void 0:x.taskDiffStat,x==null?void 0:x.taskIsolation,d,xt,ar]);const lr=o=>{ee(p=>({...p,[o]:!p[o]}))},cr=o=>{ee(Object.fromEntries(ye.map(p=>[p.filePath||"unknown",o])))},Be=async o=>{const p=at();if(!p)return;const T=ie.current,S=++we.current,M=()=>S===we.current&&q.current===o&&Me(p,T);q.current=o,ze(o),Ne(""),Ie(!0),Fe(null),Ae(!1);try{const I=await fetch(`/suggestions/files/content?path=${encodeURIComponent(o)}`,{headers:nt(p)});if(!I.ok)throw new Error(r("preview.files.contentFailed"));const le=await I.json();M()&&(Ne(le.content||""),Ae(!!le.truncated))}catch(I){M()&&Fe(He(I,r("preview.files.contentFailed")))}finally{M()&&Ie(!1)}},dr=o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){o.preventDefault(),oe(p=>as(p,ae.length,o.key==="ArrowDown"?1:-1));return}if(o.key==="Enter"){const p=ae[H];if(!p)return;o.preventDefault(),Be(p);return}o.key==="Escape"&&(o.preventDefault(),K(""))},rt=(o,p)=>{const T={...P.current,[o]:p};P.current=T,V(T)},vt=async o=>{const p=(de.current[o]??0)+1;de.current[o]=p,rt(o,{status:"loading"});const T=at();if(!T)return;const S=ie.current,M=()=>de.current[o]===p&&f.current[o]===!0&&Me(T,S);try{const I=await ut(T,o);if(M()){const le={...N.current,[o]:I};N.current=le,A(le),rt(o,{status:"loaded"})}}catch(I){M()&&rt(o,{status:"error",message:He(I,r("preview.files.treeFailed"))})}},ur=o=>{const p=!f.current[o],T={...f.current,[o]:p};if(f.current=T,ge(T),!p){de.current[o]=(de.current[o]??0)+1;return}N.current[o]||vt(o)},fr=o=>{if(!f.current[o]){const p={...f.current,[o]:!0};f.current=p,ge(p)}vt(o)},hr=o=>{o.preventDefault(),o.currentTarget.setPointerCapture(o.pointerId),Ye.current=l,pe(!0),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},pr=o=>{if(!z)return;const p=Mt(window.innerWidth-o.clientX);Ye.current=p,G(p)},bt=o=>{z&&(o.currentTarget.hasPointerCapture(o.pointerId)&&o.currentTarget.releasePointerCapture(o.pointerId),pe(!1),G(null),a(Ye.current),document.body.style.cursor="",document.body.style.userSelect="")};i.useEffect(()=>()=>{document.body.style.cursor="",document.body.style.userSelect=""},[]);const st=Mt(C??l);return e.jsxs("div",{ref:ue,"data-testid":"file-preview",role:L?"dialog":"complementary","aria-modal":L||void 0,"aria-label":r("preview.title"),onKeyDown:tr,style:n?{width:"100%",maxWidth:"none"}:{width:st,maxWidth:"72vw"},className:U("relative flex h-full flex-col bg-[hsl(var(--deck-canvas))] max-lg:fixed max-lg:inset-0 max-lg:z-[60] max-lg:!h-dvh max-lg:!w-full max-lg:!max-w-full max-lg:min-w-0 max-lg:border-l-0",n?"absolute inset-0 z-20 min-w-0 border-l-0 shadow-none":"border-l shadow-xl min-w-[360px] shrink-0 border-[hsl(var(--deck-border))]"),children:[!n&&e.jsx("div",{role:"separator","aria-label":r("preview.action.resize"),"aria-orientation":"vertical","aria-valuemin":Zt,"aria-valuemax":it,"aria-valuenow":st,"aria-hidden":L||void 0,tabIndex:L?-1:0,onPointerDown:hr,onPointerMove:pr,onPointerUp:bt,onPointerCancel:bt,onDoubleClick:()=>a(us),onKeyDown:o=>{o.key!=="ArrowLeft"&&o.key!=="ArrowRight"||(o.preventDefault(),a(st+(o.key==="ArrowLeft"?24:-24)))},className:U("absolute inset-y-0 -left-1 z-20 w-2 cursor-col-resize touch-none outline-none max-lg:hidden","after:absolute after:inset-y-0 after:left-1/2 after:w-px after:-translate-x-1/2 after:bg-transparent after:transition-colors","hover:after:bg-[hsl(var(--deck-accent)/0.6)] focus-visible:after:bg-[hsl(var(--deck-accent))]",z&&"after:bg-[hsl(var(--deck-accent))]")}),e.jsxs(Ur,{value:k,onValueChange:o=>{const p=o;v(p),c(p)},className:"flex flex-col flex-1 min-h-0",children:[e.jsxs("div",{"data-preview-toolbar":!0,className:"flex shrink-0 items-center gap-2 border-b border-[hsl(var(--deck-border))] px-3 py-3",children:[e.jsxs($r,{className:"grid h-9 min-w-0 flex-1 grid-cols-4 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-1",children:[e.jsx(Oe,{value:"diff",className:"px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]",children:r("preview.tab.diff")}),e.jsx(Oe,{value:"files",className:"px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]",children:r("preview.tab.files")}),e.jsx(Oe,{value:"logs",className:"px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]",children:r("preview.tab.logs")}),e.jsx(Oe,{value:"browser",className:"px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]",children:r("preview.tab.browser")})]}),L&&e.jsx(W,{ref:fe,variant:"ghost",size:"icon",onClick:s,"aria-label":r("preview.action.close"),title:r("preview.action.close"),className:"h-9 w-9 shrink-0 rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))]",children:e.jsx(wr,{className:"w-4 h-4"})})]}),e.jsx(qe,{value:"diff",className:"overflow-hidden flex-1 mt-0",children:e.jsx("div",{className:"overflow-y-auto px-4 py-4 space-y-3 h-full",children:tt?e.jsx(je,{title:r("preview.diff.discardedTitle"),subtitle:r("preview.diff.discardedHint"),role:"status"}):nr&&ye.length===0?e.jsx(je,{title:r("preview.diff.loadingTitle"),subtitle:r("preview.diff.loadingHint")}):ht&&ye.length===0?e.jsx(je,{title:r("preview.diff.failedTitle"),subtitle:ht,actionLabel:r("preview.action.retry"),onAction:()=>or(o=>o+1),role:"alert"}):ye.length===0?e.jsx(je,{title:r("preview.diff.emptyTitle"),subtitle:r("preview.diff.emptyHint")}):e.jsx(os,{diffs:ye,expanded:Qe,targetPath:w,onToggle:lr,onSetAllExpanded:cr})})}),e.jsx(qe,{value:"files",className:"overflow-hidden flex-1 mt-0",children:e.jsxs("div",{className:"px-4 py-4 h-full",children:[ne&&e.jsx(je,{title:r("preview.files.loadingTitle"),subtitle:r("preview.files.loadingHint")}),!ne&&E&&e.jsx(je,{title:r("preview.files.failedTitle"),subtitle:E,actionLabel:r("preview.action.retry"),onAction:()=>B(o=>o+1),role:"alert"}),!ne&&!E&&Q.length===0&&e.jsx(je,{title:r("preview.files.emptyTitle"),subtitle:r("preview.files.emptyHint")}),!ne&&!E&&Q.length>0&&e.jsxs("div",{className:"grid h-full min-h-0 grid-cols-[minmax(170px,220px)_minmax(0,1fr)] gap-3 max-sm:grid-cols-1 max-sm:grid-rows-[180px_minmax(0,1fr)]",children:[e.jsxs("div",{className:"flex min-h-0 flex-col overflow-hidden rounded-lg border border-[hsl(var(--deck-border))]",children:[e.jsx("div",{className:"border-b border-[hsl(var(--deck-border))] p-2",children:e.jsxs("div",{className:"flex h-8 items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 focus-within:border-[hsl(var(--deck-accent)/0.6)]",children:[e.jsx(lt,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]"}),e.jsx("input",{type:"search","aria-label":r("preview.files.searchAria"),placeholder:r("preview.files.searchPlaceholder"),value:O,onChange:o=>K(o.target.value),onKeyDown:dr,className:"min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]"}),R&&e.jsx(Re,{className:"h-3 w-3 shrink-0 animate-spin text-[hsl(var(--deck-accent))]"})]})}),e.jsx("div",{role:O?"listbox":void 0,"aria-label":O?r("preview.files.searchResultsAria"):void 0,className:"overflow-y-auto flex-1 p-2 min-h-0",children:O?be?e.jsxs("div",{role:"alert",className:"px-2 py-5 text-center font-mono text-[10.5px] text-red-700 dark:text-red-300",children:[e.jsx("div",{children:r("preview.files.searchFailed")}),e.jsx("button",{type:"button",onClick:()=>Je(o=>o+1),className:"mt-1 underline underline-offset-2",children:r("preview.action.retry")})]}):ae.length>0?ae.map((o,p)=>e.jsxs("button",{type:"button",role:"option","aria-selected":p===H,"data-preview-file-result":p,onMouseEnter:()=>oe(p),onClick:()=>void Be(o),className:U("mb-0.5 flex w-full min-w-0 flex-col rounded-md px-2 py-1.5 text-left font-mono transition-colors",p===H?"bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-ink))]":"text-[hsl(var(--deck-ink-muted))] hover:bg-[hsl(var(--deck-surface))]"),children:[e.jsx("span",{className:"truncate text-[11.5px]",children:Xt(o)}),e.jsx("span",{className:"truncate text-[9px] text-[hsl(var(--deck-ink-faint))]",children:o})]},o)):!R&&e.jsx("div",{className:"px-2 py-5 text-center font-mono text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:r("preview.files.noMatches")}):e.jsx(ls,{nodes:Q,expandedDirs:Pe,childrenCache:me,directoryStates:xe,selectedPath:J,onToggleDir:ur,onRetryDir:fr,onSelectFile:Be})})]}),e.jsxs("div",{className:"border border-[hsl(var(--deck-border))] rounded-lg overflow-hidden flex flex-col min-h-0",children:[e.jsxs("div",{className:"px-3 py-2 bg-[hsl(var(--deck-surface-2))] border-b border-[hsl(var(--deck-border))] text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono flex items-center justify-between",children:[e.jsx("span",{className:"min-w-0 truncate",children:J||r("preview.files.selectTitle")}),J&&e.jsx("span",{className:"ml-2 shrink-0 text-[11px] text-[hsl(var(--deck-ink-faint))] font-mono",children:r(ke?"preview.files.status.loading":We?"preview.files.status.truncated":"preview.files.status.ready")})]}),We&&!ke&&e.jsx("div",{className:"px-3 py-2 bg-[#FEF3C7] dark:bg-[#111113] border-b border-[hsl(var(--deck-border))] text-[11px] text-[#b45309] dark:text-[#facc15] font-mono",children:r("preview.files.truncatedNotice")}),e.jsxs("div",{className:"flex-1 min-h-0",children:[!J&&e.jsx("div",{className:"h-full flex items-center justify-center text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono",children:r("preview.files.pickHint")}),J&&De&&e.jsxs("div",{role:"alert",className:"flex h-full flex-col items-center justify-center gap-2 px-4 text-center font-mono text-[12px] text-[#DC2626] dark:text-[#fca5a5]",children:[e.jsx("span",{children:De}),e.jsx("button",{type:"button",onClick:()=>void Be(J),className:"underline underline-offset-2",children:r("preview.action.retry")})]}),J&&!De&&e.jsx("div",{className:"h-full",children:ke?e.jsx(_t,{}):e.jsx(i.Suspense,{fallback:e.jsx(_t,{}),children:e.jsx(ms,{content:Xe,filename:J})})})]})]})]})]})}),e.jsx(qe,{value:"logs",className:"overflow-hidden flex-1 mt-0",children:e.jsx(cs,{logs:ir})}),e.jsx(qe,{value:"browser",forceMount:!0,className:"overflow-hidden flex-1 min-h-0",children:e.jsx(rs,{sessionRef:d})})]})]})}function je({title:t,subtitle:n,actionLabel:r,onAction:s,role:l}){return e.jsxs("div",{role:l,className:"border border-dashed border-[hsl(var(--deck-border))] rounded-lg p-6 text-center",children:[e.jsx("div",{className:"text-[13px] text-[hsl(var(--deck-ink))] font-mono",children:t}),e.jsx("div",{className:"text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono mt-1",children:n}),r&&s&&e.jsx("button",{type:"button",onClick:s,className:"mt-3 rounded-md border border-[hsl(var(--deck-border))] px-2.5 py-1 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))]",children:r})]})}function hs(t){return t.flatMap(n=>{var l,a,b;const r=[];if((l=n.agentContent)!=null&&l.toolCalls)for(const c of n.agentContent.toolCalls){const w=Wt(c.arguments),m=c.output,g=m?(a=Le(m))!=null&&a.diff?zt(m):m:void 0;r.push({id:`${n.id}-${c.toolCallId}`,title:c.toolName||"Tool",subtitle:c.summary,status:c.status==="success"?"success":c.status==="error"?"error":"running",content:g||(w?`Arguments:
58
- ${w}`:void 0),timestamp:n.timestamp})}const s=n.metadata;if(s){if(s.kind==="tool_call"){const c=s.toolName||"Tool",w=Wt(s.arguments);r.push({id:n.id,title:`Tool Call · ${c}`,subtitle:s.toolKind?String(s.toolKind):void 0,status:s.status==="success"?"success":s.status==="error"?"error":"running",content:w?`Arguments:
59
- ${w}`:void 0,timestamp:n.timestamp})}if(s.kind==="tool_result"){const c=s.toolName||"Tool",w=s.success,m=s.summary,g=s.output,d=g?(b=Le(g))!=null&&b.diff?zt(g):g:void 0;r.push({id:n.id,title:`Tool Result · ${c}`,subtitle:m,status:w===void 0?"running":w?"success":"error",content:d,timestamp:n.timestamp})}}return r})}function ps(t){var s;const n=[],r=new Set;for(let l=t.length-1;l>=0;l-=1){const a=t[l];if((s=a.agentContent)!=null&&s.toolCalls)for(let g=a.agentContent.toolCalls.length-1;g>=0;g-=1){const d=a.agentContent.toolCalls[g],y=d.metadata;if((y==null?void 0:y.kind)==="patch"&&Array.isArray(y.changes)){$t(n,r,y.changes,d.summary);continue}const D=d.output||"",x=Le(D)||Le((y==null?void 0:y.diff_snippet)||"");if(x!=null&&x.diff){const j=(y==null?void 0:y.file_path)||d.toolName||"unknown";if(!r.has(j)){r.add(j);const k=typeof(y==null?void 0:y.oldContent)=="string"?y.oldContent:void 0,v=typeof(y==null?void 0:y.newContent)=="string"?y.newContent:void 0;n.push({diff:x.diff,filePath:j,summary:d.summary,oldContent:k,newContent:v})}}}const b=a.metadata;if(!b||b.kind!=="tool_result")continue;const c=b.metadata;if((c==null?void 0:c.kind)==="patch"&&Array.isArray(c.changes)){$t(n,r,c.changes,b.summary);continue}const w=b.output||(typeof a.content=="string"?a.content:"")||"",m=Le(w)||Le((c==null?void 0:c.diff_snippet)||"");if(m!=null&&m.diff){const g=(c==null?void 0:c.file_path)||b.toolName||"unknown";if(!r.has(g)){r.add(g);const d=typeof(c==null?void 0:c.oldContent)=="string"?c.oldContent:void 0,y=typeof(c==null?void 0:c.newContent)=="string"?c.newContent:void 0;n.push({diff:m.diff,filePath:g,summary:b.summary,oldContent:d,newContent:y})}}}return n.reverse()}function $t(t,n,r,s){for(let l=r.length-1;l>=0;l--){const a=r[l];!a||typeof a!="object"||!("path"in a)||typeof a.path!="string"||!("diff"in a)||typeof a.diff!="string"||n.has(a.path)||(n.add(a.path),t.push({diff:{patch:a.diff,startLine:1,matchLine:1},filePath:a.path,summary:s,oldContent:"oldContent"in a&&typeof a.oldContent=="string"?a.oldContent:void 0,newContent:"newContent"in a&&typeof a.newContent=="string"?a.newContent:void 0}))}}function Le(t){if(!t)return null;const n=/<<<DIFF>>>\s*([\s\S]*?)\s*<<<\/DIFF>>>/m,r=t.match(n);if(!r)return null;try{return{diff:JSON.parse(r[1])}}catch{return null}}function zt(t){return t?t.replace(/<<<DIFF>>>[\s\S]*?<<<\/DIFF>>>/m,"").trim():""}function Wt(t){if(!t)return"";if(typeof t=="string")try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}return JSON.stringify(t,null,2)}function _t(){const t=he();return e.jsx("div",{className:"h-full flex items-center justify-center text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono",children:t("preview.files.editorLoading")})}function ms({content:t,filename:n}){const{codeTheme:r}=yr(),s=i.useRef(null),[l,a]=i.useState("vs-dark"),b=xs(n),c=w=>{s.current=w;const m=Ct(w,r);a(m)};return i.useEffect(()=>{if(s.current){const w=Ct(s.current,r);a(w)}},[r]),e.jsx(fs,{value:t,language:b,theme:l,height:"100%",beforeMount:c,options:{readOnly:!0,minimap:{enabled:!1},fontSize:12,lineNumbers:"on",wordWrap:"on",scrollBeyondLastLine:!1,automaticLayout:!0}},n)}function xs(t){var s;const n=((s=t.split(".").pop())==null?void 0:s.toLowerCase())||"";return{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",css:"css",scss:"scss",html:"html",yml:"yaml",yaml:"yaml",go:"go",rs:"rust",py:"python",java:"java",c:"c",cpp:"cpp",h:"cpp",hpp:"cpp",sh:"shell",zsh:"shell",toml:"toml",xml:"xml"}[n]||"plaintext"}export{Es as FilePreview,Ss as PreviewControls};
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--sidebar-background: 240 4.8% 95.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 10% 3.9%;--radius: .5rem;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 0%;--info: 217 91% 60%;--info-foreground: 0 0% 100%;--panel: 240 4.8% 95.9%;--panel-foreground: 240 10% 3.9%;--panel-hover: 240 4.8% 90%;--panel-active: 240 4.8% 85%;--subtle: 240 3.8% 46.1%;--subtle-foreground: 240 5.9% 10%;--deck-canvas: 0 0% 99%;--deck-canvas-veil: 220 15% 96%;--deck-surface: 0 0% 100%;--deck-surface-2: 220 20% 98.5%;--deck-border: 220 13% 91%;--deck-border-strong: 220 13% 82%;--deck-hairline: 220 15% 94%;--deck-ink: 222 22% 11%;--deck-ink-muted: 220 9% 46%;--deck-ink-faint: 220 9% 62%;--deck-accent: 152 62% 36%;--deck-accent-soft: 152 55% 92%;--deck-accent-glow: 152 82% 55%}.dark{--background: 0 0% 4.7%;--foreground: 0 0% 98%;--card: 240 10% 3.9%;--card-foreground: 0 0% 98%;--popover: 240 10% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 240 5.9% 10%;--secondary: 240 3.7% 15.9%;--secondary-foreground: 0 0% 98%;--muted: 240 3.7% 15.9%;--muted-foreground: 240 5% 64.9%;--accent: 240 3.7% 15.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 240 3.7% 15.9%;--input: 240 3.7% 15.9%;--ring: 240 4.9% 83.9%;--sidebar-background: 240 10% 3.9%;--success: 142 71% 45%;--success-foreground: 0 0% 0%;--warning: 38 92% 50%;--warning-foreground: 0 0% 0%;--info: 217 91% 60%;--info-foreground: 0 0% 100%;--panel: 240 6% 10%;--panel-foreground: 0 0% 90%;--panel-hover: 240 5% 17%;--panel-active: 220 13% 13%;--subtle: 240 5% 65%;--subtle-foreground: 0 0% 98%;--deck-canvas: 240 8% 5%;--deck-canvas-veil: 240 10% 7%;--deck-surface: 240 8% 8%;--deck-surface-2: 240 7% 10%;--deck-border: 240 5% 16%;--deck-border-strong: 240 5% 24%;--deck-hairline: 240 6% 13%;--deck-ink: 0 0% 96%;--deck-ink-muted: 240 5% 65%;--deck-ink-faint: 240 5% 42%;--deck-accent: 152 68% 48%;--deck-accent-soft: 152 30% 15%;--deck-accent-glow: 152 82% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"cv02","cv03","cv04","cv11","ss01"}.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:2rem!important;padding-left:2rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.\!container{max-width:1400px!important}.container{max-width:1400px}}.\!field{height:2.25rem;width:100%;border-radius:calc(var(--radius) - 2px);border-width:1px;--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.375rem .75rem;font-family:JetBrains Mono,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\!field::-moz-placeholder{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.\!field::placeholder{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.\!field:focus{--tw-border-opacity: 1;border-color:rgb(161 161 170 / var(--tw-border-opacity, 1));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity, 1))}.\!field:disabled{cursor:not-allowed;opacity:.5}.\!field:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.\!field:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.\!field:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.\!field:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 113 122 / var(--tw-border-opacity, 1));--tw-ring-opacity: 1;--tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity, 1))}.field{height:2.25rem;width:100%;border-radius:calc(var(--radius) - 2px);border-width:1px;--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.375rem .75rem;font-family:JetBrains Mono,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.field::-moz-placeholder{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.field::placeholder{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.field:focus{--tw-border-opacity: 1;border-color:rgb(161 161 170 / var(--tw-border-opacity, 1));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity, 1))}.field:disabled{cursor:not-allowed;opacity:.5}.field:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.field:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.field:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.field:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 113 122 / var(--tw-border-opacity, 1));--tw-ring-opacity: 1;--tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity, 1))}select.\!field,select.field{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}select.\!field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right .5rem center!important;background-size:1rem!important;padding-right:2rem!important}select.field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:1rem;padding-right:2rem}.deck-canvas{background-color:hsl(var(--deck-canvas));background-image:radial-gradient(1200px 600px at 12% -10%,hsl(var(--deck-accent) / .06),transparent 60%),radial-gradient(900px 500px at 100% 0%,hsl(var(--deck-accent) / .04),transparent 55%),radial-gradient(circle at 1px 1px,hsl(var(--deck-ink) / .05) 1px,transparent 0);background-size:auto,auto,22px 22px;background-position:0 0,0 0,0 0}.dark .deck-canvas{background-image:radial-gradient(1200px 600px at 12% -10%,hsl(var(--deck-accent) / .12),transparent 60%),radial-gradient(900px 500px at 100% 0%,hsl(var(--deck-accent) / .06),transparent 55%),radial-gradient(circle at 1px 1px,hsl(var(--deck-ink) / .06) 1px,transparent 0)}.deck-eyebrow{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}.deck-pulse-dot{position:relative;display:inline-block;width:6px;height:6px;border-radius:9999px;background-color:hsl(var(--deck-accent));box-shadow:0 0 0 2px hsl(var(--deck-accent) / .18)}.deck-pulse-dot:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:9999px;border:1px solid hsl(var(--deck-accent) / .55);animation:deck-pulse 1.8s ease-out infinite}@keyframes deck-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.9);opacity:0}}.deck-kbd{font-family:JetBrains Mono,monospace;font-size:10px;line-height:1;padding:3px 5px;border-radius:4px;border:1px solid hsl(var(--deck-border));background:hsl(var(--deck-surface));color:hsl(var(--deck-ink-muted));box-shadow:0 1px hsl(var(--deck-border))}[data-preview-maximized=true]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none}[data-preview-maximized=true]>[data-chat-view]{background:transparent}[data-preview-maximized=true] [data-chat-history]{display:none}[data-preview-maximized=true] [data-chat-composer-dock]{position:absolute;bottom:16px;left:50%;z-index:40;display:flex;width:min(760px,calc(100% - 32px));max-height:calc(100% - 32px);transform:translate(-50%);flex-direction:column;overflow:visible;pointer-events:auto;border:1px solid hsl(var(--deck-border));border-radius:8px;background:hsl(var(--deck-canvas) / .96);box-shadow:0 18px 60px -24px hsl(var(--deck-ink) / .38);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}[data-preview-maximized=true] [data-preview-status-disclosure]{display:block}[data-preview-maximized=true] [data-chat-input-shell]{padding:0 8px 8px;border-top:0;background:transparent}[data-preview-maximized=true] [data-chat-input-inner]{padding-right:0;padding-left:0}[data-preview-maximized=true] [data-chat-primary-status]{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-1{left:-.25rem}.-left-2{left:-.5rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-0\.5{right:.125rem}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-\[3px\]{right:3px}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.top-3{top:.75rem}.top-4{top:1rem}.top-\[3px\]{top:3px}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-span-full{grid-column:1 / -1}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-\[2px\]{margin-left:2px;margin-right:2px}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-ml-2{margin-left:-.5rem}.-mr-1{margin-right:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[180px\]{height:180px}.h-\[220px\]{height:220px}.h-\[38\%\]{height:38%}.h-\[calc\(100\%-40px\)\]{height:calc(100% - 40px)}.h-\[min\(18rem\,45dvh\)\]{height:min(18rem,45dvh)}.h-\[min\(44vh\,420px\)\]{height:min(44vh,420px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-10{max-height:2.5rem}.max-h-20{max-height:5rem}.max-h-36{max-height:9rem}.max-h-52{max-height:13rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-\[120px\]{max-height:120px}.max-h-\[160px\]{max-height:160px}.max-h-\[200px\]{max-height:200px}.max-h-\[232px\]{max-height:232px}.max-h-\[240px\]{max-height:240px}.max-h-\[310px\]{max-height:310px}.max-h-\[340px\]{max-height:340px}.max-h-\[440px\]{max-height:440px}.max-h-\[calc\(100dvh-24px\)\]{max-height:calc(100dvh - 24px)}.max-h-\[min\(240px\,30dvh\)\]{max-height:min(240px,30dvh)}.max-h-\[min\(36vh\,320px\)\]{max-height:min(36vh,320px)}.max-h-\[min\(40vh\,360px\)\]{max-height:min(40vh,360px)}.max-h-\[min\(460px\,60vh\)\]{max-height:min(460px,60vh)}.max-h-\[min\(70vh\,520px\)\]{max-height:min(70vh,520px)}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-12{min-height:3rem}.min-h-28{min-height:7rem}.min-h-32{min-height:8rem}.min-h-36{min-height:9rem}.min-h-4{min-height:1rem}.min-h-6{min-height:1.5rem}.min-h-7{min-height:1.75rem}.min-h-8{min-height:2rem}.min-h-9{min-height:2.25rem}.min-h-\[100px\]{min-height:100px}.min-h-\[140px\]{min-height:140px}.min-h-\[148px\]{min-height:148px}.min-h-\[180px\]{min-height:180px}.min-h-\[260px\]{min-height:260px}.min-h-\[54px\]{min-height:54px}.min-h-\[56px\]{min-height:56px}.min-h-\[58px\]{min-height:58px}.min-h-\[68px\]{min-height:68px}.min-h-\[80px\]{min-height:80px}.min-h-\[84px\]{min-height:84px}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[280px\]{width:280px}.w-\[2px\]{width:2px}.w-\[340px\]{width:340px}.w-\[3px\]{width:3px}.w-\[45\%\]{width:45%}.w-\[64px\]{width:64px}.w-\[calc\(100\%_-_2rem\)\]{width:calc(100% - 2rem)}.w-\[calc\(100vw-24px\)\]{width:calc(100vw - 24px)}.w-\[min\(440px\,calc\(100vw-24px\)\)\]{width:min(440px,calc(100vw - 24px))}.w-\[min\(680px\,calc\(100vw-32px\)\)\]{width:min(680px,calc(100vw - 32px))}.w-\[var\(--radix-popover-trigger-width\)\]{width:var(--radix-popover-trigger-width)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-4{min-width:1rem}.min-w-5{min-width:1.25rem}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[28px\]{min-width:28px}.min-w-\[360px\]{min-width:360px}.min-w-\[520px\]{min-width:520px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-3xl{max-width:48rem}.max-w-\[220px\]{max-width:220px}.max-w-\[280px\]{max-width:280px}.max-w-\[400px\]{max-width:400px}.max-w-\[46rem\]{max-width:46rem}.max-w-\[560px\]{max-width:560px}.max-w-\[620px\]{max-width:620px}.max-w-\[85\%\]{max-width:85%}.max-w-\[960px\]{max-width:960px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2\.5{--tw-translate-x: .625rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr_180px_120px\]{grid-template-columns:1fr 180px 120px}.grid-cols-\[40px_40px_1fr\]{grid-template-columns:40px 40px 1fr}.grid-cols-\[minmax\(170px\,220px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(170px,220px) minmax(0,1fr)}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\[1px\]{gap:1px}.gap-\[3px\]{gap:3px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-\[\#E5E7EB\]>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.divide-\[hsl\(var\(--deck-hairline\)\)\]>:not([hidden])~:not([hidden]){border-color:hsl(var(--deck-hairline))}.self-end{align-self:flex-end}.\!overflow-auto{overflow:auto!important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[1px\]{border-radius:1px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[\#16A34A\]\/30{border-color:#16a34a4d}.border-\[\#22C55E\]{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-\[\#D1D5DB\]{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-\[\#DDD6FE\]{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity, 1))}.border-\[\#E5E7EB\]{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-\[hsl\(var\(--deck-accent\)\/0\.28\)\]{border-color:hsl(var(--deck-accent)/.28)}.border-\[hsl\(var\(--deck-accent\)\/0\.42\)\]{border-color:hsl(var(--deck-accent)/.42)}.border-\[hsl\(var\(--deck-accent\)\/0\.45\)\]{border-color:hsl(var(--deck-accent)/.45)}.border-\[hsl\(var\(--deck-accent\)\/0\.5\)\]{border-color:hsl(var(--deck-accent)/.5)}.border-\[hsl\(var\(--deck-accent\)\/0\.55\)\]{border-color:hsl(var(--deck-accent)/.55)}.border-\[hsl\(var\(--deck-accent\)\/0\.7\)\]{border-color:hsl(var(--deck-accent)/.7)}.border-\[hsl\(var\(--deck-border\)\)\]{border-color:hsl(var(--deck-border))}.border-\[hsl\(var\(--deck-border\)\)\]\/60{border-color:hsl(var(--deck-border) / .6)}.border-\[hsl\(var\(--deck-border-strong\)\)\]{border-color:hsl(var(--deck-border-strong))}.border-\[hsl\(var\(--deck-hairline\)\)\]{border-color:hsl(var(--deck-hairline))}.border-\[hsl\(var\(--deck-hairline\)\/0\.55\)\]{border-color:hsl(var(--deck-hairline)/.55)}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-200\/50{border-color:#fde68a80}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-300\/60{border-color:#fcd34d99}.border-amber-300\/70{border-color:#fcd34db3}.border-amber-300\/80{border-color:#fcd34dcc}.border-amber-400\/70{border-color:#fbbf24b3}.border-amber-400\/80{border-color:#fbbf24cc}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-600{--tw-border-opacity: 1;border-color:rgb(217 119 6 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-emerald-200\/40{border-color:#a7f3d066}.border-emerald-300\/50{border-color:#6ee7b780}.border-emerald-300\/70{border-color:#6ee7b7b3}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-emerald-500\/20{border-color:#10b98133}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-200\/60{border-color:#fecaca99}.border-red-300\/70{border-color:#fca5a5b3}.border-red-500\/20{border-color:#ef444433}.border-red-500\/25{border-color:#ef444440}.border-red-500\/30{border-color:#ef44444d}.border-red-500\/70{border-color:#ef4444b3}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sky-200\/50{border-color:#bae6fd80}.border-transparent{border-color:transparent}.border-zinc-200{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}.border-zinc-500\/20{border-color:#71717a33}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#111827\]{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-\[\#16A34A\]{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-\[\#16A34A\]\/10{background-color:#16a34a1a}.bg-\[\#16A34A\]\/20{background-color:#16a34a33}.bg-\[\#22C55E\]{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-\[\#22C55E\]\/10{background-color:#22c55e1a}.bg-\[\#22C55E\]\/20{background-color:#22c55e33}.bg-\[\#2563eb\]{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-\[\#3B82F6\]{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-\[\#3b82f6\]\/20{background-color:#3b82f633}.bg-\[\#6366F1\]{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-\[\#7C3AED\]{--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity, 1))}.bg-\[\#D1D5DB\]{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-\[\#DBEAFE\]{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-\[\#DCFCE7\]{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-\[\#E5E7EB\]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-\[\#EDE9FE\]{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-\[\#EF4444\]{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-\[\#EF4444\]\/10{background-color:#ef44441a}.bg-\[\#F0FDF4\]{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-\[\#F3F4F6\]{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-\[\#F5F3FF\]{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-\[\#F9FAFB\]{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-\[\#FEE2E2\]{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-\[\#FEF3C7\]{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-\[hsl\(var\(--deck-accent\)\)\]{background-color:hsl(var(--deck-accent))}.bg-\[hsl\(var\(--deck-accent\)\/0\.12\)\]{background-color:hsl(var(--deck-accent)/.12)}.bg-\[hsl\(var\(--deck-accent-soft\)\)\]{background-color:hsl(var(--deck-accent-soft))}.bg-\[hsl\(var\(--deck-accent-soft\)\)\]\/55{background-color:hsl(var(--deck-accent-soft) / .55)}.bg-\[hsl\(var\(--deck-accent-soft\)\/0\.42\)\]{background-color:hsl(var(--deck-accent-soft)/.42)}.bg-\[hsl\(var\(--deck-border\)\)\]{background-color:hsl(var(--deck-border))}.bg-\[hsl\(var\(--deck-border-strong\)\)\]\/60{background-color:hsl(var(--deck-border-strong) / .6)}.bg-\[hsl\(var\(--deck-canvas\)\)\]{background-color:hsl(var(--deck-canvas))}.bg-\[hsl\(var\(--deck-canvas\)\)\]\/90{background-color:hsl(var(--deck-canvas) / .9)}.bg-\[hsl\(var\(--deck-canvas\)\/0\.92\)\]{background-color:hsl(var(--deck-canvas)/.92)}.bg-\[hsl\(var\(--deck-canvas-veil\)\)\]{background-color:hsl(var(--deck-canvas-veil))}.bg-\[hsl\(var\(--deck-canvas-veil\)\)\]\/60{background-color:hsl(var(--deck-canvas-veil) / .6)}.bg-\[hsl\(var\(--deck-canvas-veil\)\)\]\/70{background-color:hsl(var(--deck-canvas-veil) / .7)}.bg-\[hsl\(var\(--deck-hairline\)\)\]{background-color:hsl(var(--deck-hairline))}.bg-\[hsl\(var\(--deck-hairline\)\)\]\/70{background-color:hsl(var(--deck-hairline) / .7)}.bg-\[hsl\(var\(--deck-ink\)\)\]{background-color:hsl(var(--deck-ink))}.bg-\[hsl\(var\(--deck-ink-faint\)\)\]{background-color:hsl(var(--deck-ink-faint))}.bg-\[hsl\(var\(--deck-ink-faint\)\)\]\/40{background-color:hsl(var(--deck-ink-faint) / .4)}.bg-\[hsl\(var\(--deck-ink-faint\)\)\]\/60{background-color:hsl(var(--deck-ink-faint) / .6)}.bg-\[hsl\(var\(--deck-surface\)\)\]{background-color:hsl(var(--deck-surface))}.bg-\[hsl\(var\(--deck-surface\)\)\]\/45{background-color:hsl(var(--deck-surface) / .45)}.bg-\[hsl\(var\(--deck-surface\)\)\]\/50{background-color:hsl(var(--deck-surface) / .5)}.bg-\[hsl\(var\(--deck-surface\)\)\]\/55{background-color:hsl(var(--deck-surface) / .55)}.bg-\[hsl\(var\(--deck-surface\)\)\]\/60{background-color:hsl(var(--deck-surface) / .6)}.bg-\[hsl\(var\(--deck-surface\)\)\]\/80{background-color:hsl(var(--deck-surface) / .8)}.bg-\[hsl\(var\(--deck-surface\)\)\]\/95{background-color:hsl(var(--deck-surface) / .95)}.bg-\[hsl\(var\(--deck-surface-2\)\)\]{background-color:hsl(var(--deck-surface-2))}.bg-\[hsl\(var\(--deck-surface-2\)\)\]\/50{background-color:hsl(var(--deck-surface-2) / .5)}.bg-\[hsl\(var\(--deck-surface-2\)\)\]\/60{background-color:hsl(var(--deck-surface-2) / .6)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/60{background-color:#fffbeb99}.bg-amber-50\/70{background-color:#fffbebb3}.bg-amber-50\/80{background-color:#fffbebcc}.bg-amber-50\/95{background-color:#fffbebf2}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/25{background-color:#00000040}.bg-black\/35{background-color:#00000059}.bg-black\/75{background-color:#000000bf}.bg-black\/80{background-color:#000c}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-cyan-400\/70{background-color:#22d3eeb3}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/55{background-color:#ecfdf58c}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-neutral-950{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/70{background-color:#fef2f2b3}.bg-red-50\/80{background-color:#fef2f2cc}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-red-500\/80{background-color:#ef4444cc}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-950\/90{background-color:#450a0ae6}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-50\/60{background-color:#f0f9ff99}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/60{background-color:#fff9}.bg-white\/65{background-color:#ffffffa6}.bg-white\/80{background-color:#fffc}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-zinc-400{--tw-bg-opacity: 1;background-color:rgb(161 161 170 / var(--tw-bg-opacity, 1))}.bg-zinc-50{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.bg-zinc-500\/10{background-color:#71717a1a}.bg-zinc-600{--tw-bg-opacity: 1;background-color:rgb(82 82 91 / var(--tw-bg-opacity, 1))}.fill-current{fill:currentColor}.fill-white{fill:#fff}.stroke-\[2\.5\]{stroke-width:2.5}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.p-\[2px\]{padding:2px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-7{padding-right:1.75rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.82em\]{font-size:.82em}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[8\.5px\]{font-size:8.5px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[clamp\(28px\,3vw\,34px\)\]{font-size:clamp(28px,3vw,34px)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-\[1\.12\]{line-height:1.12}.leading-\[1\.45\]{line-height:1.45}.leading-\[1\.55\]{line-height:1.55}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.028em\]{letter-spacing:-.028em}.tracking-\[0\.02em\]{letter-spacing:.02em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#111827\]{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-\[\#15803D\]{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-\[\#166534\]{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-\[\#16A34A\]{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-\[\#1D4ED8\],.text-\[\#1d4ed8\]{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-\[\#22C55E\]{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-\[\#2563eb\]{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-\[\#374151\]{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-\[\#3b82f6\]{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-\[\#4B5563\]{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-\[\#5B21B6\]{--tw-text-opacity: 1;color:rgb(91 33 182 / var(--tw-text-opacity, 1))}.text-\[\#6B7280\]{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-\[\#6D28D9\]{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-\[\#71717a\]{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-\[\#92400E\]{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-\[\#9CA3AF\]{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-\[\#DC2626\]{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-\[\#b45309\]{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-\[\#b91c1c\]{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-\[\#ef4444\]{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-\[\#f59e0b\]{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-\[\#f87171\]{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-\[hsl\(var\(--deck-accent\)\)\]{color:hsl(var(--deck-accent))}.text-\[hsl\(var\(--deck-canvas\)\)\]{color:hsl(var(--deck-canvas))}.text-\[hsl\(var\(--deck-ink\)\)\]{color:hsl(var(--deck-ink))}.text-\[hsl\(var\(--deck-ink\)\)\]\/85{color:hsl(var(--deck-ink) / .85)}.text-\[hsl\(var\(--deck-ink\)\)\]\/90{color:hsl(var(--deck-ink) / .9)}.text-\[hsl\(var\(--deck-ink-faint\)\)\]{color:hsl(var(--deck-ink-faint))}.text-\[hsl\(var\(--deck-ink-faint\)\)\]\/60{color:hsl(var(--deck-ink-faint) / .6)}.text-\[hsl\(var\(--deck-ink-faint\)\)\]\/70{color:hsl(var(--deck-ink-faint) / .7)}.text-\[hsl\(var\(--deck-ink-muted\)\)\]{color:hsl(var(--deck-ink-muted))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-neutral-950{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-sky-900{--tw-text-opacity: 1;color:rgb(12 74 110 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/80{color:#fffc}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.text-zinc-700{--tw-text-opacity: 1;color:rgb(63 63 70 / var(--tw-text-opacity, 1))}.text-zinc-900{--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-\[\#16A34A\]{accent-color:#16A34A}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_4px_hsl\(var\(--deck-accent\)\/0\.65\)\]{--tw-shadow: 0 0 4px hsl(var(--deck-accent)/.65);--tw-shadow-colored: 0 0 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_5px_hsl\(var\(--deck-accent-glow\)\/0\.75\)\]{--tw-shadow: 0 0 5px hsl(var(--deck-accent-glow)/.75);--tw-shadow-colored: 0 0 5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_5px_hsl\(var\(--deck-accent-glow\)\/0\.9\)\]{--tw-shadow: 0 0 5px hsl(var(--deck-accent-glow)/.9);--tw-shadow-colored: 0 0 5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_5px_rgba\(245\,158\,11\,0\.75\)\]{--tw-shadow: 0 0 5px rgba(245,158,11,.75);--tw-shadow-colored: 0 0 5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_5px_rgba\(59\,130\,246\,0\.7\)\]{--tw-shadow: 0 0 5px rgba(59,130,246,.7);--tw-shadow-colored: 0 0 5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_6px_hsl\(var\(--deck-accent-glow\)\/0\.5\)\]{--tw-shadow: 0 0 6px hsl(var(--deck-accent-glow)/.5);--tw-shadow-colored: 0 0 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_6px_hsl\(var\(--deck-accent-glow\)\/0\.8\)\]{--tw-shadow: 0 0 6px hsl(var(--deck-accent-glow)/.8);--tw-shadow-colored: 0 0 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_6px_hsl\(var\(--deck-accent-glow\)\/0\.9\)\]{--tw-shadow: 0 0 6px hsl(var(--deck-accent-glow)/.9);--tw-shadow-colored: 0 0 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-24px_hsl\(var\(--deck-accent\)\/0\.4\)\]{--tw-shadow: 0 18px 60px -24px hsl(var(--deck-accent)/.4);--tw-shadow-colored: 0 18px 60px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_0_hsl\(var\(--deck-hairline\)\)\]{--tw-shadow: 0 1px 0 hsl(var(--deck-hairline));--tw-shadow-colored: 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_hsl\(var\(--deck-ink\)\/0\.04\)\]{--tw-shadow: 0 1px 2px hsl(var(--deck-ink)/.04);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_28px_80px_-32px_hsl\(var\(--deck-accent\)\/0\.28\)\,0_2px_0_hsl\(var\(--deck-hairline\)\)\]{--tw-shadow: 0 28px 80px -32px hsl(var(--deck-accent)/.28),0 2px 0 hsl(var(--deck-hairline));--tw-shadow-colored: 0 28px 80px -32px var(--tw-shadow-color), 0 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-\[hsl\(var\(--deck-accent\)\/0\.2\)\]{--tw-ring-color: hsl(var(--deck-accent)/.2)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur-xl{--tw-blur: blur(24px);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)}.drop-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.8\)\]{--tw-drop-shadow: drop-shadow(0 1px 2px rgba(0,0,0,.8));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[1px\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[border-color\,box-shadow\,transform\]{transition-property:border-color,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,top\]{transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[opacity\,color\,background-color\]{transition-property:opacity,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.placeholder\:text-\[\#9CA3AF\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-\[\#9CA3AF\]::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-\[hsl\(var\(--deck-ink-faint\)\)\]::-moz-placeholder{color:hsl(var(--deck-ink-faint))}.placeholder\:text-\[hsl\(var\(--deck-ink-faint\)\)\]::placeholder{color:hsl(var(--deck-ink-faint))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-y-1:before{content:var(--tw-content);top:.25rem;bottom:.25rem}.before\:left-0:before{content:var(--tw-content);left:0}.before\:w-0\.5:before{content:var(--tw-content);width:.125rem}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-\[hsl\(var\(--deck-accent\)\)\]:before{content:var(--tw-content);background-color:hsl(var(--deck-accent))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-px:after{content:var(--tw-content);width:1px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:bg-\[hsl\(var\(--deck-accent\)\)\]:after{content:var(--tw-content);background-color:hsl(var(--deck-accent))}.after\:bg-transparent:after{content:var(--tw-content);background-color:transparent}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.last\:border-r-0:last-child{border-right-width:0px}.focus-within\:border-\[hsl\(var\(--deck-accent\)\/0\.6\)\]:focus-within{border-color:hsl(var(--deck-accent)/.6)}.focus-within\:border-\[hsl\(var\(--deck-accent\)\/0\.65\)\]:focus-within{border-color:hsl(var(--deck-accent)/.65)}.focus-within\:border-\[hsl\(var\(--deck-border-strong\)\)\]:focus-within{border-color:hsl(var(--deck-border-strong))}.focus-within\:border-amber-500:focus-within{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-\[hsl\(var\(--deck-accent\)\)\]:focus-within{--tw-ring-color: hsl(var(--deck-accent))}.focus-within\:ring-\[hsl\(var\(--deck-accent\)\/0\.25\)\]:focus-within{--tw-ring-color: hsl(var(--deck-accent)/.25)}.focus-within\:ring-\[hsl\(var\(--deck-border-strong\)\)\]:focus-within{--tw-ring-color: hsl(var(--deck-border-strong))}.focus-within\:ring-amber-400\/25:focus-within{--tw-ring-color: rgb(251 191 36 / .25)}.hover\:-translate-y-\[1px\]:hover,.hover\:-translate-y-px:hover{--tw-translate-y: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[hsl\(var\(--deck-accent\)\/0\.55\)\]:hover{border-color:hsl(var(--deck-accent)/.55)}.hover\:border-\[hsl\(var\(--deck-border\)\)\]:hover{border-color:hsl(var(--deck-border))}.hover\:border-\[hsl\(var\(--deck-border-strong\)\)\]:hover{border-color:hsl(var(--deck-border-strong))}.hover\:bg-\[\#0F172A\]:hover{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#15803D\]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#16A34A\]:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#2563EB\]:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#374151\]:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#4F46E5\]:hover{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#D1D5DB\]:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#DC2626\]:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#E5E7EB\]:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#E5E7EB\]\/60:hover{background-color:#e5e7eb99}.hover\:bg-\[\#F3F4F6\]:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F9FAFB\]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-\[hsl\(var\(--deck-accent\)\)\]\/90:hover{background-color:hsl(var(--deck-accent) / .9)}.hover\:bg-\[hsl\(var\(--deck-accent\)\/0\.08\)\]:hover{background-color:hsl(var(--deck-accent)/.08)}.hover\:bg-\[hsl\(var\(--deck-accent-soft\)\)\]:hover{background-color:hsl(var(--deck-accent-soft))}.hover\:bg-\[hsl\(var\(--deck-canvas\)\)\]:hover{background-color:hsl(var(--deck-canvas))}.hover\:bg-\[hsl\(var\(--deck-hairline\)\)\]\/50:hover{background-color:hsl(var(--deck-hairline) / .5)}.hover\:bg-\[hsl\(var\(--deck-hairline\)\)\]\/60:hover{background-color:hsl(var(--deck-hairline) / .6)}.hover\:bg-\[hsl\(var\(--deck-ink\)\)\]\/85:hover{background-color:hsl(var(--deck-ink) / .85)}.hover\:bg-\[hsl\(var\(--deck-surface\)\)\]:hover{background-color:hsl(var(--deck-surface))}.hover\:bg-\[hsl\(var\(--deck-surface\)\)\]\/40:hover{background-color:hsl(var(--deck-surface) / .4)}.hover\:bg-\[hsl\(var\(--deck-surface\)\)\]\/60:hover{background-color:hsl(var(--deck-surface) / .6)}.hover\:bg-\[hsl\(var\(--deck-surface\)\)\]\/65:hover{background-color:hsl(var(--deck-surface) / .65)}.hover\:bg-\[hsl\(var\(--deck-surface-2\)\)\]:hover{background-color:hsl(var(--deck-surface-2))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-500\/10:hover{background-color:#f59e0b1a}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-100:hover{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-800:hover{--tw-bg-opacity: 1;background-color:rgb(6 95 70 / var(--tw-bg-opacity, 1))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100\/60:hover{background-color:#fee2e299}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-500:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-500\/10:hover{background-color:#f43f5e1a}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-100:hover{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.hover\:text-\[\#111827\]:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-\[\#374151\]:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-\[hsl\(var\(--deck-accent\)\)\]:hover{color:hsl(var(--deck-accent))}.hover\:text-\[hsl\(var\(--deck-ink\)\)\]:hover{color:hsl(var(--deck-ink))}.hover\:text-\[hsl\(var\(--deck-ink-muted\)\)\]:hover{color:hsl(var(--deck-ink-muted))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:text-rose-500:hover{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-85:hover{opacity:.85}.hover\:shadow-\[0_10px_28px_-14px_hsl\(var\(--deck-accent\)\/0\.35\)\]:hover{--tw-shadow: 0 10px 28px -14px hsl(var(--deck-accent)/.35);--tw-shadow-colored: 0 10px 28px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[0_8px_24px_-16px_hsl\(var\(--deck-ink\)\/0\.35\)\]:hover{--tw-shadow: 0 8px 24px -16px hsl(var(--deck-ink)/.35);--tw-shadow-colored: 0 8px 24px -16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-95:hover{--tw-brightness: brightness(.95);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)}.hover\:after\:bg-\[hsl\(var\(--deck-accent\)\/0\.6\)\]:hover:after{content:var(--tw-content);background-color:hsl(var(--deck-accent)/.6)}.focus\:border-\[\#22C55E\]:focus{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.focus\:border-\[\#8B5CF6\]:focus{--tw-border-opacity: 1;border-color:rgb(139 92 246 / var(--tw-border-opacity, 1))}.focus\:border-\[\#D1D5DB\]:focus{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.focus\:border-\[\#E5E7EB\]:focus{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.focus\:border-\[hsl\(var\(--deck-accent\)\)\]:focus{border-color:hsl(var(--deck-accent))}.focus\:border-\[hsl\(var\(--deck-accent\)\/0\.55\)\]:focus{border-color:hsl(var(--deck-accent)/.55)}.focus\:border-\[hsl\(var\(--deck-accent\)\/0\.6\)\]:focus{border-color:hsl(var(--deck-accent)/.6)}.focus\:border-\[hsl\(var\(--deck-accent\)\/0\.65\)\]:focus{border-color:hsl(var(--deck-accent)/.65)}.focus\:border-amber-500:focus{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus\:border-emerald-500:focus{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-\[hsl\(var\(--deck-accent\)\)\]:focus{--tw-ring-color: hsl(var(--deck-accent))}.focus\:ring-\[hsl\(var\(--deck-accent\)\/0\.25\)\]:focus{--tw-ring-color: hsl(var(--deck-accent)/.25)}.focus\:ring-\[hsl\(var\(--deck-accent\)\/0\.35\)\]:focus{--tw-ring-color: hsl(var(--deck-accent)/.35)}.focus\:ring-\[hsl\(var\(--deck-accent-glow\)\)\]:focus{--tw-ring-color: hsl(var(--deck-accent-glow))}.focus\:ring-amber-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:bg-\[hsl\(var\(--deck-surface\)\)\]:focus-visible{background-color:hsl(var(--deck-surface))}.focus-visible\:bg-red-500\/10:focus-visible{background-color:#ef44441a}.focus-visible\:text-\[hsl\(var\(--deck-ink\)\)\]:focus-visible{color:hsl(var(--deck-ink))}.focus-visible\:underline:focus-visible{text-decoration-line:underline}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-\[hsl\(var\(--deck-accent\)\)\]:focus-visible{--tw-ring-color: hsl(var(--deck-accent))}.focus-visible\:ring-\[hsl\(var\(--deck-accent\)\/0\.65\)\]:focus-visible{--tw-ring-color: hsl(var(--deck-accent)/.65)}.focus-visible\:ring-\[hsl\(var\(--deck-accent-glow\)\)\]\/50:focus-visible{--tw-ring-color: hsl(var(--deck-accent-glow) / .5)}.focus-visible\:ring-amber-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-white:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width: 0px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-\[hsl\(var\(--deck-canvas\)\)\]:focus-visible{--tw-ring-offset-color: hsl(var(--deck-canvas))}.focus-visible\:after\:bg-\[hsl\(var\(--deck-accent\)\)\]:focus-visible:after{content:var(--tw-content);background-color:hsl(var(--deck-accent))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:bg-\[\#E5E7EB\]:disabled{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.disabled\:text-\[\#9CA3AF\]:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-55:disabled{opacity:.55}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-65:disabled{opacity:.65}.group[open] .group-open\:rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-within .group-focus-within\:opacity-100{opacity:1}.group:hover .group-hover\:border-\[hsl\(var\(--deck-accent\)\)\]{border-color:hsl(var(--deck-accent))}.group:hover .group-hover\:border-\[hsl\(var\(--deck-accent\)\/0\.5\)\]{border-color:hsl(var(--deck-accent)/.5)}.group:hover .group-hover\:bg-\[hsl\(var\(--deck-accent-soft\)\)\]{background-color:hsl(var(--deck-accent-soft))}.group:hover .group-hover\:text-\[hsl\(var\(--deck-accent\)\)\]{color:hsl(var(--deck-accent))}.group\/proj:hover .group-hover\/proj\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=active\]\:bg-\[hsl\(var\(--deck-canvas-veil\)\)\][data-state=active]{background-color:hsl(var(--deck-canvas-veil))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:text-\[hsl\(var\(--deck-ink\)\)\][data-state=active]{color:hsl(var(--deck-ink))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:divide-\[\#27272a\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(39 39 42 / var(--tw-divide-opacity, 1))}.dark\:border-\[\#1f2937\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.dark\:border-\[\#22C55E\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.dark\:border-\[\#22C55E\]\/30:is(.dark *){border-color:#22c55e4d}.dark\:border-\[\#27272a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3f3f46\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.dark\:border-\[\#4C1D95\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(76 29 149 / var(--tw-border-opacity, 1))}.dark\:border-\[\#52525b\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity, 1))}.dark\:border-amber-400\/15:is(.dark *){border-color:#fbbf2426}.dark\:border-amber-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(180 83 9 / var(--tw-border-opacity, 1))}.dark\:border-amber-800\/60:is(.dark *){border-color:#92400e99}.dark\:border-amber-800\/70:is(.dark *){border-color:#92400eb3}.dark\:border-amber-800\/80:is(.dark *){border-color:#92400ecc}.dark\:border-amber-900\/60:is(.dark *){border-color:#78350f99}.dark\:border-amber-900\/70:is(.dark *){border-color:#78350fb3}.dark\:border-blue-900\/60:is(.dark *){border-color:#1e3a8a99}.dark\:border-emerald-800\/55:is(.dark *){border-color:#065f468c}.dark\:border-emerald-800\/70:is(.dark *){border-color:#065f46b3}.dark\:border-emerald-900\/40:is(.dark *){border-color:#064e3b66}.dark\:border-green-900\/60:is(.dark *){border-color:#14532d99}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:border-red-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(127 29 29 / var(--tw-border-opacity, 1))}.dark\:border-red-900\/50:is(.dark *){border-color:#7f1d1d80}.dark\:border-red-900\/60:is(.dark *){border-color:#7f1d1d99}.dark\:border-red-900\/70:is(.dark *){border-color:#7f1d1db3}.dark\:border-rose-900\/60:is(.dark *){border-color:#88133799}.dark\:border-sky-400\/15:is(.dark *){border-color:#38bdf826}.dark\:border-zinc-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.dark\:border-zinc-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:bg-\[\#052E16\]\/50:is(.dark *){background-color:#052e1680}.dark\:bg-\[\#09090b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0C0C0C\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 12 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0a0a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111113\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 19 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111827\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#18181b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1E1B4B\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 27 75 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e1e1e\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 30 30 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e3a8a\]\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-\[\#1f2937\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#22C55E\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#22C55E\]\/10:is(.dark *){background-color:#22c55e1a}.dark\:bg-\[\#22C55E\]\/20:is(.dark *){background-color:#22c55e33}.dark\:bg-\[\#27272a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2E1065\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(46 16 101 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3B82F6\]\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-\[\#3b82f6\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3f3f46\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#E5E5E5\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#EF4444\]\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-\[\#EF4444\]\/20:is(.dark *){background-color:#ef444433}.dark\:bg-\[\#F59E0B\]\/20:is(.dark *){background-color:#f59e0b33}.dark\:bg-\[\#a1a1aa\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(161 161 170 / var(--tw-bg-opacity, 1))}.dark\:bg-\[hsl\(var\(--deck-surface\)\)\]:is(.dark *){background-color:hsl(var(--deck-surface))}.dark\:bg-amber-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-400\/\[0\.05\]:is(.dark *){background-color:#fbbf240d}.dark\:bg-amber-950\/20:is(.dark *){background-color:#451a0333}.dark\:bg-amber-950\/25:is(.dark *){background-color:#451a0340}.dark\:bg-amber-950\/30:is(.dark *){background-color:#451a034d}.dark\:bg-amber-950\/35:is(.dark *){background-color:#451a0359}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-amber-950\/50:is(.dark *){background-color:#451a0380}.dark\:bg-amber-950\/60:is(.dark *){background-color:#451a0399}.dark\:bg-amber-950\/70:is(.dark *){background-color:#451a03b3}.dark\:bg-amber-950\/90:is(.dark *){background-color:#451a03e6}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-emerald-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.dark\:bg-emerald-950\/20:is(.dark *){background-color:#022c2233}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-green-950\/20:is(.dark *){background-color:#052e1633}.dark\:bg-orange-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.dark\:bg-red-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/35:is(.dark *){background-color:#450a0a59}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-red-950\/45:is(.dark *){background-color:#450a0a73}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-rose-950\/30:is(.dark *){background-color:#4c05194d}.dark\:bg-sky-400\/\[0\.05\]:is(.dark *){background-color:#38bdf80d}.dark\:bg-sky-950\/40:is(.dark *){background-color:#082f4966}.dark\:bg-violet-950\/50:is(.dark *){background-color:#2e106580}.dark\:bg-zinc-100:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-800\/70:is(.dark *){background-color:#27272ab3}.dark\:bg-zinc-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-900\/50:is(.dark *){background-color:#18181b80}.dark\:text-\[\#0C0C0C\]:is(.dark *){--tw-text-opacity: 1;color:rgb(12 12 12 / var(--tw-text-opacity, 1))}.dark\:text-\[\#111827\]:is(.dark *){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.dark\:text-\[\#18181b\]:is(.dark *){--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1))}.dark\:text-\[\#22C55E\]:is(.dark *){--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3b82f6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.dark\:text-\[\#60A5FA\]:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-\[\#60a5fa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-\[\#71717a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.dark\:text-\[\#86efac\]:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-\[\#93c5fd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-\[\#94a3b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#C4B5FD\]:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-\[\#E5E5E5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:text-\[\#FBBF24\]:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a1a1aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d4d4d8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.dark\:text-\[\#f4f4f5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.dark\:text-\[\#facc15\]:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:text-\[\#fca5a5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-amber-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-100:is(.dark *){--tw-text-opacity: 1;color:rgb(224 242 254 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-zinc-100:is(.dark *){--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.dark\:text-zinc-200:is(.dark *){--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.dark\:text-zinc-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.dark\:text-zinc-400:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-zinc-50:is(.dark *){--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity, 1))}.dark\:text-zinc-500:is(.dark *){--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.dark\:text-zinc-600:is(.dark *){--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.dark\:text-zinc-900:is(.dark *){--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#71717a\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#71717a\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-zinc-600:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-zinc-600:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-\[\#18181b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1ea34b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 163 75 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1f1f23\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 31 35 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#27272a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#27272a\]\/50:hover:is(.dark *){background-color:#27272a80}.dark\:hover\:bg-\[\#32323a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(50 50 58 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#3f3f46\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-amber-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-amber-900\/40:hover:is(.dark *){background-color:#78350f66}.dark\:hover\:bg-amber-900\/50:hover:is(.dark *){background-color:#78350f80}.dark\:hover\:bg-emerald-900\/50:hover:is(.dark *){background-color:#064e3b80}.dark\:hover\:bg-red-900\/60:hover:is(.dark *){background-color:#7f1d1d99}.dark\:hover\:bg-red-950:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 10 10 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-950\/30:hover:is(.dark *){background-color:#450a0a4d}.dark\:hover\:bg-red-950\/40:hover:is(.dark *){background-color:#450a0a66}.dark\:hover\:bg-red-950\/60:hover:is(.dark *){background-color:#450a0a99}.dark\:hover\:bg-white:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-zinc-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-zinc-800\/50:hover:is(.dark *){background-color:#27272a80}.dark\:hover\:bg-zinc-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:text-\[\#E5E5E5\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:hover\:text-\[\#d4d4d8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-zinc-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.dark\:hover\:text-zinc-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.dark\:hover\:shadow-\[0_10px_28px_-14px_hsl\(var\(--deck-accent\)\/0\.55\)\]:hover:is(.dark *){--tw-shadow: 0 10px 28px -14px hsl(var(--deck-accent)/.55);--tw-shadow-colored: 0 10px 28px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:focus\:border-\[\#27272a\]:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:focus\:border-\[\#3f3f46\]:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.dark\:disabled\:bg-zinc-800:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:disabled\:text-zinc-600:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}@media not all and (min-width: 1024px){.max-lg\:fixed{position:fixed}.max-lg\:inset-0{top:0;right:0;bottom:0;left:0}.max-lg\:z-\[60\]{z-index:60}.max-lg\:hidden{display:none}.max-lg\:\!h-dvh{height:100dvh!important}.max-lg\:\!w-full{width:100%!important}.max-lg\:min-w-0{min-width:0px}.max-lg\:\!max-w-full{max-width:100%!important}.max-lg\:border-l-0{border-left-width:0px}}@media not all and (min-width: 640px){.max-sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-sm\:grid-rows-\[180px_minmax\(0\,1fr\)\]{grid-template-rows:180px minmax(0,1fr)}}@media (min-width: 640px){.sm\:top-\[18\%\]{top:18%}.sm\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:h-auto{height:auto}.sm\:w-\[220px\]{width:220px}.sm\:max-w-\[320px\]{max-width:320px}.sm\:max-w-\[400px\]{max-width:400px}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-\[540px\]{max-width:540px}.sm\:max-w-xl{max-width:36rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-10{padding:2.5rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pl-4{padding-left:1rem}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:inline-flex{display:inline-flex}.md\:min-h-\[360px\]{min-height:360px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>div\>div\.flex\]\:flex-wrap>div>div.flex{flex-wrap:wrap}.\[\&\>div\>div\.flex\]\:gap-2>div>div.flex{gap:.5rem}.\[\&\>div\]\:\!block>div{display:block!important}.\[\&_h1\]\:text-\[14px\] h1{font-size:14px}.\[\&_h2\]\:text-\[13px\] h2{font-size:13px}.\[\&_h3\]\:text-\[12px\] h3{font-size:12px}.\[\&_select\]\:max-w-full select{max-width:100%}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:h-3\.5 svg{height:.875rem}.\[\&_svg\]\:w-3\.5 svg{width:.875rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAbUAA8AAAAACOgAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABgAAAAcABQABEdQT1MAAAFwAAAAHgAAAB5EdEx1R1NVQgAAAZAAAAAnAAAAKLj8uOpPUy8yAAABuAAAAFEAAABgFwRca1NUQVQAAAIMAAAARgAAAF7mY9MfY21hcAAAAlQAAABRAAAAdAyHCodnYXNwAAACqAAAAAgAAAAIAAAAEGdseWYAAAKwAAAB6QAAAl7g5OpvaGVhZAAABJwAAAA2AAAANhSQ8UNoaGVhAAAE1AAAAB8AAAAkAcoBImhtdHgAAAT0AAAAHgAAADofBAM2bG9jYQAABRQAAAAgAAAAIATcBZ9tYXhwAAAFNAAAABwAAAAgAIcCb25hbWUAAAVQAAABEgAAAoA4pV3kcG9zdAAABmQAAABwAAAAlNdzMTB42mNgZGBg4GGAAEYgZAWTjCAeAAG0ABkAAQAAAAoAHAAcAAFERkxUAAgABAAAAAD//wAAAAAAAHjaY2BkYGDgYlADQiYXN58QBqGcxJI8Bj4GEGABEf//g0gAWkkFVQB42mNgYYpinMDAysDA1MUUwcDA4A2hGeMYjBgdgKIMDJwMUMDEzoAEvJyAxAEGXpaXzH/+XWFgYP7DqKPAwDj//nWgSjWmW0BZBQZWABNDDdYAAAB42kXIIQIBARQFwHl/QQIkWXInUAANXMOBJCcTd+KIGCjMNViq9/H0CM6P/S0j0bOwUqh08iEb8kPTXn3RiMoYhD90Nwc3AAB42lXIRwHCQBAF0JceehWAlTjhjikUgAVQA4mJLbdk5neUqHBVKWSv3XF2VCnt3AyevkVZv+sxBBbbq/6HfFP4hEcYQgEK82v1aHQ5RTs3FRQAAAAAAQAB//8AD3jabZA1tNRAFEDfTGDdfXHI2QQnZJJvK5ngDs13Welwt/78CtcS7xvcrcHKbXCtceh+wgtu437nXRCgC4BY9AGOXOAFYNHR0dzoKCGju8gJ6xiZaF3DWqcPBiSV5i2geaCgAlAJ77ghgjfiLC7KojvOZEmSXS63emXr5W7lsTLtXFMkRmks4ly+cYOEnvO2YLDNANv+9oJwhkpAAJAcHPG/1RC2BERc1ZGGMxYVWDyVSjc0NMaZELUf9e4JhCgNB3b2PiJRctuqZ0WPR8zilxutN/ji97vUBYMAnGjtzxjtK3wrDaMABo+R9KjWwNRUMppwuWS1QdfFZCIlMF2TxDGuJJlYW7OmVlvD+sx86b1hvC/l8yXf2hqZ66xbZ80yWzyD9/fzGaRzA58+nSOzYC+gw9AP+vyNqUAUhoD4lSnputbgUFPJ5O9Y+ReWlxkrc96naX08b3zk/KORb+E+VjYPmH1M6+UHeVlDtCzzGZ9FY8YMA8gPMsQA0jqaGkHT6cYSdVwl7Zs9Wzx+DyWUugPujd03T52ikrUvM26kF9PIcRmycuDBKcd3XRhPDgtnQACINzJ3fVl1tTB++3bc2S7kyD3cCQIQNMcSKaY2YOciE+d0zFbGjps6u0PILTFlRZHNJfAFnfeHtgAAAAABAAAAAjYEro52gl8PPPUAAwPoAAAAANvSppoAAAAA29rQ8vk5/tQEkgP8AAAABgACAAAAAAAAeNpjYGRgYP7z7woDA8uGn5Z/+1kmAUVQAR8Ar8AG6gB42mOKYIgCYiMkrAzCUHEbJJoBikHgCkMPAPDwCFUAAAAAABoAOwBGAFEAbwB3AKkAsQDmAQkBCQEJAQkBFgEveNpjYGRgYOBn3MGQx7CFgQ3MQwBmBiYALRoB+HjajJADbgVQEEXPZ20bQW3bthvXbr8Vp4to1KV0AV1Wb9JvZzJvzhvcB6CQL0wYzHnAj6E/yAYaDeVBNlJsMAfZxCy/QTbTy3eQLdTzGWQr3VwGuZhx2v/ZAIVUB9kc0TSUKJ8f5FIRHGPjnWs+2MKt+MYzt1xwr/jIk3JymR0X0wzIXKo7VbXjFvfLn3lTtCn7qPoB6+yyzb3qy8pdq/6hrj11fMj7OFbtEY+mrlU/516rVFCdVobplw/JEjVaCaqIYlUiUzOaW9aa/Q1idmlPXZHbCagW/B10XwaRi06VuVdMf+9DnIov6rlF8yzhUXxC/4c66Uz48UepqEN9N/Tzt2RwjOljsUUfj581AbaEXsIAAHjaY2BiAIP/qQxGQIqRAR3wA7EKw0lGJgYbRmZGFkZWRjZGdgZmRg5GTkYuRm42x6Si1LJU9tK8TAMTR1cI7WoB5btB+Zas6Ym5uYlgnoGjAZNzEF9icmlJanJ+bpJecmJxKg9IxtjADMwBAKDtHJg=) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA9UABAAAAAALMAAAA7zAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnAbhWocghYGYD9TVEFUXgCDBBEICrBAp3ILgjgAATYCJAOEKAQgBYUAB4xODAcbIiYzo8LGAQCKfn4o/usELQ4rdj22ABHwitFYjZPqB3XSqAbV3C5dFkHYtTehxpeGbU+3+QexdERCkxARw9oNxAyetvXzdhdjl/7aiBiHgcqBjZywaGPSh4mNFccpF3DHlfyO8Jc/OiSe/kb7/iQYRAE23iScpHngiRRBFETNiZzQwc2HOllJ0fqXIjTY8RTYbDsklKc81hGPQcOJojhD/w80ll1aG/qiQErbzqOXjmvOVKd14tuv+Hxrlbarq/5xH7CiMPjaZXlrfNSp7uqaroZXvYAzc8A0kH2zs3MvHQBUORcJ2GG2cdFRgArh+Sgb7yOsjImpmgM0kq1FwhQCQzQ1Mt+j7at5GSAAIQAAKFLk6uMul4pIl4HIpEEUK0dUMiCMmhFWNoSDC+Exghgzi5i3hNhtN9qaINo+EbQj1tEIgJVLj5oebQ6I1/fyLMQYALYgALKS0yEOQCJG89uIiEPKyeRDVCmC0HgZ203jIg7kk6cHxfEKeBSDXtxd6n5yJzqpfSgXs9xMri1fPezlKMAVcCGEIhmwHiDRtJOyKfXkGsAVqI7ohIZs0rsDM/IU4fuQgkppCk2n+VRHy6mFttJ26t16mBjQPyIeYhvZnyXaiDSeaAYYXLiKPIm4uKh1zIq6gSRVU7WNPIV5v1PwBOy07RrrT6skwoEAtYyZeYgpBUABaDEmtPWRGP/UGABFgUUjchFXAghAgAYQpyPkCIBBoRwQgU/g3kQcyqTY9KSDItmjjmmkP+qJHG3C66hjXhtlhzwglI+1+4Be+T77hYQxxeNkCIDaKU+ANXhkMqePOVAQr7uwCjoBlCdtHQE8TNRd17//A/evkhSpkOMDA9VTmwAVAbLNlwMkoAG5qG2bWCYA/h3uEYgEhFqSmJJPpCIFbJHg1Aw5GaAujjqMzIHc8NrIHBEJJjGZP3cuFQZD9PvzLvZIaCIjBcTvEnIzTWiGjqdzlD+VAO2TUERK8smEi8lNNOguiAM9P6Gfo6bX8bD0v7V/cPwA/fDBi0BaGgUllWy5AATy6X9gAZqRVIsMLuVmqQ3QmrBbiFgTiWbxLDj1hBqINGLVYewQwySWWRyeQK1kXVJ0S2UjZ5WgXaIOSTodp42CUzqHXH226ZfJI4tXth45eqnslGdQgSGFhmmMyOdTbEyJcdv56U0pNa3MDJ1JVRZUmldtkcESglQkAOA8AMgAoBeYLQi+wDxAtwAAGlXJUdVLPLmo/TLRystE3SsqO29LUY0hsrtvBoXUw1Fy+XjIhqbj4rEZISsUysW1L68PlGRwyWImjWXjS9LFyUzjC7v7Z5hYsYKRhIH49EyxTJxutwOy2PRxp1R63SVViB+eNFYRywlEzJBIMDIl5Aa4PtbFOno416WTTkfVQwSPgIve66BCbLAuLmpCh59ln5uFECODSuUIJ2CJCCzDwbf+DV2/3yTtan5J1gEVuilcVASHULO9Bt+nWkIEHMMit5gOxaO4JpWjvdzOcySeFek9q4dy3jxi2BxHwsuuo2CzbQ+KJWxyqPUJljVCU3WT8JwlhZyLkKODRhZkQByHu8ERJIcGBexSmdwGPfMPbjnC0SwRUTyCAIwY4Mdr9zxJTKE5yp0mcEe9s3Umm/TZp2s4X/27cQUmhrd4Ow4ibPOTOxxT6w+S8ENc9AGE7meFOlNbuzjngJtzjFKcrMsxtf4G4UIPcNGXbvwNaeDea6+1L7kaYG+M13a455pruOh5Ww0HlhllPy/PsqS9Zr7ZV9cSLODAoItzBt2cI5i1brCxQRIcH6yr9wV5+XjhtlxuziH7LiqGTXVnkfCZntd1doJ5liyIno6X3GqH56fcnGNwE2IXvYhw5a/MJGsMns/TOawd+2HX5kOXxQZFsYkwmMetzGtqKDKSe+h9h7jX77z2Snb98vyL7rjmil1N3B/cCBfsC5rymA/ExpPlni/DL9i7eflmn66oxrSlMRRB/8Dbq/e/3aN95L3BG+dFd1d+uCVzKhQy5/+I77CmWJ/o2Hygaay8yleXU1c1NH2IpqHOYUtriyWHf3iZwxjZvNxm/Ti/O5+22uC3nVFxhu1wvQc08ZZ+nb5/9oBF38ehJXaKPt7K6/v34Ltqai21rbXDXI3BRDa+9XDSGp8gzZZarV2ag9v3RBzSNfFjU/M+uVduNDTsMNY0GCOHDU3O4dazeb3zFXjg0rlPuiV75+m+kzV3v5qc/PHdJ2j6pI+wDP+U7mFPW/uw23ltZemTVTo+3+KNa1yyuwdmfI41j1/yvbG3oaLR3G3Sd1xdrNOUfAou3jYw0z860D9jr+9sqU1IIHve9W56/fIEU2fztvaqHQ213trhKauqjXVmr/kFxP1m7bdCE88Plpb1m840l/VNQz72QvvMPlc5z9fvKPt1xBtXv9yVZ9nGmxscXiDfwGcI4LQ9duBaG7Nxjw2aWMuArp7In2qxObTwKfr40/iy/j34zhqeN59qHuZqDBaysQWiL/PZsk4cyV13mvbwWw7phfEDC/O+fm9/ram+sspcXxs5hm9pHjufSujGRbKXaTPmBAPPfMm45bau15+jR/bbBx80mR7sCth94rfB6Q6sngJcuO1v4a7Lu157ad9GKIlypuEea9GDnXs0IytDmZ2Rka2cVv4jrIHmaFZ3O9OWlWX7gLuRH1mMjsxE8VrEH/XNRrErsh61R6PD3e2d7dDsb3Z38k15W/kFkrwmHk+PhWNKx3nLMhHkSl5ZLMvHWPGPfwRB9AKr2QoSUb4qSlB18X715zkqwRI0G3lvUOptugtcID+tsKQForrC+pqxS4X1dcof21bf4OQcbZ2Le6y53kKao3rxNWE9f1a+S3t2tiIu5yej2d/W12RozBwrLh7LbDT0NkUDi+HBQPj0xIlAoKHFFxAMPB8Vce+KKo28Rq0SHV3LUk6MNLv35DMrCzVNmbxBeCGCKzMtu20y8f+SVD4h31Sosky03Upl9YJxzh+L0ZFANLR4LOpYj452tne145E/wok2e6JX/xBX/vH8WaFQojdWlrhzuOXjs1Zn3cCkT4qWSmZeqX/B4tciE4HBmUBZwGxtMDaqnCpdllPVaIzdNw9ZqfDU30ppYDgw2B+A5JP5L8bj4tgWoy/t6WRRcO2P8uFDakiP2fMWaviyaOYFr94gE0nEsXysWligOuHRC2TiH0XSJ/4WqQcjE4GxmUAocKlG+jECgZHFwGX8vabVzf8f4KQSi8Gp6laIdgV0q8OzbmjyaWdnW1MQXZoJDb7ZaEdzVzMoNQiAGESUwszDAIzTDIqSxGFoxoRZ/vTKM8CfyZ9V/ZAPfzZ/Ds4tMHm0dSxCkOPaNpKlK8/KwGQVCdzqbPDn1HKuiT8WHUnStEQYZB2TC6WJ6spymNIjBV7JK5lSs1C5qDoRSYBUSlgH31LlM7X5O4o8eBxrX3MDwtOG1iZdZ/NjXsu0gBJohRVmlQNfwVfQmsReAdZEAahljqkMaxLHg/gT+BONkwxcgT0CH/5k/pQrcCpMUYiGtPqbDGvVgALfitYyTHyI7iP25WqsSqAlstCbcmZ3k0PcRZlgbs0KCrwb7lImBTqQCCawVEpMWHur0DRm3+9sVAOK6UQiqESr8NaEtY8Vu86AIjK3KRZhXNwqD34Oc38umLZM7/33+38/uOj7///Z9yMAAHqAUtN3Bsa/l9rSiKVxlONqqbKozYWfYMRMRkicEE2FhIs4TuWQJL0RDNwCPy0hP1CbGAVY9Mb6W+DZ2p14CIQoIBjqGKpe6lOONhDJTUFBXMgZYOPct8C7Ffmf2jR2ksQ72U7f6SBu5gywoW8x2Qhy1APl1CZGAQ4ksGGD8loGsjY0UQKXmhdvpBboCNglmiU2XUCieL2dF1bDaTacoykaTjgFAhquyoFkiSk0LZyooeM7gQDVIlmNOwCPlICNKQpatkhBhUQJpdLCVwFqWj3FQ8sWeajTWbJiLeRJQlRmsyh1YLRZtAzVNr0dAoCqYN6wXLhzQGL8LY6mvwSAd1698ly88s2Xfwa7FbVA/wsgBhQAgABfG3dQHs2o/066DhB0wWo68NIlpR8Rtqkj9flbwtMc3oZyWoIn3n+L86o5vA1V8ng6L4C9+Ax3YgMBHN8Er4rV97ZRXgdo2vF244hH35wAzlOM0Y1BABGNnNCZ4UFNPID7U9KeSCgiP5EiDnMizejpExlFzj9RIM2BE2MU8pwgViH7TAQQSqpgnDuJJAk2kHIaYDNnhs+sFsvBuaf5DXMbXT9uwvLIbk49b4mBNm3JsEV+85YtKUHWb5rT5ywap9WpUZtWo6q5Fot8W89a0m4OaXOK2Ywat2KaD3NdRi1S/+eloldCT0fn1K5q61Mpa6eaNrKMB6WMQqn83IfXmTNv1eIRiaKj7aOsikMmoxej+EfqsmjOpFHDLnneylGLQxT66vnHnh/n12VXDN1Hw6/bcNpctWo3vrwApZvfrdEDiP8IzgPkeiYUoQlzDvYWB0cnZ6uLq5t7+aRk5I6TIFGS5IqkSJWWXjqFDEqZVLJky5FrG7W8quQrUEijSLESWtsz0tErVVa9chUqValmUMNoh1omZjxSM4s69Ro0atKspTe1smrLpl2HTl262dg5OLm4eezMw6tHrz79BgzyGarXsBGjxqJtJvhNmjJtxqw58xYsWrJsxS4Bu61aE7THXvvsFxJ2wEERhxx2xFHHrIs6fuE/r+1vm6/8jhhtDCwnASDGR1h4SGhYwEGU1Y/Xffk5G4u9XgIAYtxyGpZ5y9sDdNbyP142W5DgAhoE7i3q0c5x2vm9v24aZuNohdcxqSEAz8up00My03HSwmqPa8bMecG3Tjzb+f9EelEtg2vpzPeiIEEBwSA8IEDBwAE9F5Z6vQIQjAnLGTgWLO+uZTL/qwGEAYOAQpg3TefgwBCQgBDzqukKDBAOoU3KVtqIbBXK9XpEAAujuudkZN724kIGmrtVaS38ZZLrS9/4fsKMQhN3yXK5gvSBvJ2Y9/Nydbcvb0bm58+e3FhmGfGLJ9u7axl1F1LQTbaCeyrbu7wFCsorFgV4qnh+GUrWtaczqkSBB96AEeKRB94k2SyLuyw3qwrxeg3P5FNR1Av1Gsq2/ds6dPPkBAAA) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}