auto-coder-web 0.1.98__tar.gz → 0.1.99__tar.gz

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 (258) hide show
  1. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/PKG-INFO +2 -2
  2. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/file_manager.py +1 -1
  3. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/proxy.py +2 -1
  4. auto_coder_web-0.1.99/src/auto_coder_web/routers/file_command_router.py +315 -0
  5. auto_coder_web-0.1.99/src/auto_coder_web/version.py +1 -0
  6. auto_coder_web-0.1.98/src/auto_coder_web/web/assets/main-BJLO9M6L.css → auto_coder_web-0.1.99/src/auto_coder_web/web/assets/main-D2S0ggFA.css +1 -1
  7. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/main.js +349 -349
  8. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/index.html +1 -1
  9. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web.egg-info/PKG-INFO +2 -2
  10. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web.egg-info/SOURCES.txt +2 -1
  11. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web.egg-info/requires.txt +1 -1
  12. auto_coder_web-0.1.98/src/auto_coder_web/version.py +0 -1
  13. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/README.md +0 -0
  14. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/setup.cfg +0 -0
  15. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/setup.py +0 -0
  16. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/__init__.py +0 -0
  17. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/agentic_message_parser/__init__.py +0 -0
  18. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/agentic_message_parser/message_parser.py +0 -0
  19. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/agentic_message_parser/tool_parsers.py +0 -0
  20. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/auto_coder_runner_wrapper.py +0 -0
  21. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/__init__.py +0 -0
  22. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/active_context_router.py +0 -0
  23. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/auto_coder_conf_router.py +0 -0
  24. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/chat_list_manager.py +0 -0
  25. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/chat_list_router.py +0 -0
  26. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/chat_session_manager.py +0 -0
  27. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/compiler_router.py +0 -0
  28. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/completions_router.py +0 -0
  29. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/file_group_router.py +0 -0
  30. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/file_router.py +0 -0
  31. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/filecacher.py +0 -0
  32. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/common_router/model_router.py +0 -0
  33. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/expert_routers/__init__.py +0 -0
  34. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/expert_routers/history_router.py +0 -0
  35. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/init_project.py +0 -0
  36. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/json_file_storage.py +0 -0
  37. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/lang.py +0 -0
  38. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/__init__.py +0 -0
  39. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/auto_router.py +0 -0
  40. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/chat_panels_router.py +0 -0
  41. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/chat_router.py +0 -0
  42. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/code_editor_tabs_router.py +0 -0
  43. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/coding_router.py +0 -0
  44. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/commit_router.py +0 -0
  45. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/config_router.py +0 -0
  46. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/direct_chat_router.py +0 -0
  47. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/editable_preview_router.py +0 -0
  48. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/index_router.py +0 -0
  49. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/mcp_router.py +0 -0
  50. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/rag_router.py +0 -0
  51. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/rules_router.py +0 -0
  52. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/settings_router.py +0 -0
  53. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/todo_router.py +0 -0
  54. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/routers/upload_router.py +0 -0
  55. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/terminal.py +0 -0
  56. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/types.py +0 -0
  57. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/HistoryPanel-DAeswjWO.js +0 -0
  58. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/abap-BrgZPUOV.js +0 -0
  59. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/apex-DyP6w7ZV.js +0 -0
  60. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/azcli-BaLxmfj-.js +0 -0
  61. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/bat-CFOPXBzS.js +0 -0
  62. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/bicep-BfEKNvv3.js +0 -0
  63. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/cameligo-BFG1Mk7z.js +0 -0
  64. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/clojure-DTECt2xU.js +0 -0
  65. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/codicon-DCmgc-ay.ttf +0 -0
  66. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/coffee-CDGzqUPQ.js +0 -0
  67. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/cpp-CLLBncYj.js +0 -0
  68. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/csharp-dUCx_-0o.js +0 -0
  69. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/csp-5Rap-vPy.js +0 -0
  70. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/css-D3h14YRZ.js +0 -0
  71. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/cssMode-dfzmIRw_.js +0 -0
  72. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/cypher-DrQuvNYM.js +0 -0
  73. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/dart-CFKIUWau.js +0 -0
  74. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/dockerfile-Zznr-cwX.js +0 -0
  75. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/ecl-Ce3n6wWz.js +0 -0
  76. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/elixir-deUWdS0T.js +0 -0
  77. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/flow9-i9-g7ZhI.js +0 -0
  78. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/freemarker2-CD79_SV-.js +0 -0
  79. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/fsharp-CzKuDChf.js +0 -0
  80. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/go-Cphgjts3.js +0 -0
  81. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/graphql-Cg7bfA9N.js +0 -0
  82. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/handlebars-B_inQ7Ga.js +0 -0
  83. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/hcl-0cvrggvQ.js +0 -0
  84. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/html-s8IXsV2v.js +0 -0
  85. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/htmlMode-BNdCO4Um.js +0 -0
  86. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/ini-Drc7WvVn.js +0 -0
  87. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/java-B_fMsGYe.js +0 -0
  88. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/javascript-D_ZBRKl9.js +0 -0
  89. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/jsonMode-lWocgRYn.js +0 -0
  90. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/julia-Bqgm2twL.js +0 -0
  91. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/kotlin-BSkB5QuD.js +0 -0
  92. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/less-BsTHnhdd.js +0 -0
  93. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/lexon-YWi4-JPR.js +0 -0
  94. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/liquid-CPaH0eVF.js +0 -0
  95. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/lua-nf6ki56Z.js +0 -0
  96. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/m3-Cpb6xl2v.js +0 -0
  97. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/markdown-DSZPf7rp.js +0 -0
  98. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/mdx-DRx1b0qs.js +0 -0
  99. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/mips-B_c3zf-v.js +0 -0
  100. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/msdax-rUNN04Wq.js +0 -0
  101. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/mysql-DDwshQtU.js +0 -0
  102. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/objective-c-B5zXfXm9.js +0 -0
  103. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/pascal-CXOwvkN_.js +0 -0
  104. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/pascaligo-Bc-ZgV77.js +0 -0
  105. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/perl-CwNk8-XU.js +0 -0
  106. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/pgsql-tGk8EFnU.js +0 -0
  107. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/php-CpIb_Oan.js +0 -0
  108. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/pla-B03wrqEc.js +0 -0
  109. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/postiats-BKlk5iyT.js +0 -0
  110. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/powerquery-Bhzvs7bI.js +0 -0
  111. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/powershell-Dd3NCNK9.js +0 -0
  112. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/protobuf-COyEY5Pt.js +0 -0
  113. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/pug-BaJupSGV.js +0 -0
  114. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/python-5rTPwuda.js +0 -0
  115. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/qsharp-DXyYeYxl.js +0 -0
  116. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/r-CdQndTaG.js +0 -0
  117. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/razor-zn6WfQ9V.js +0 -0
  118. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/redis-CVwtpugi.js +0 -0
  119. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/redshift-25W9uPmb.js +0 -0
  120. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/restructuredtext-DfzH4Xui.js +0 -0
  121. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/ruby-Cp1zYvxS.js +0 -0
  122. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/rust-D5C2fndG.js +0 -0
  123. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/sb-CDntyWJ8.js +0 -0
  124. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/scala-BoFRg7Ot.js +0 -0
  125. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/scheme-Bio4gycK.js +0 -0
  126. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/scss-4Ik7cdeQ.js +0 -0
  127. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/shell-CX-rkNHf.js +0 -0
  128. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/solidity-Tw7wswEv.js +0 -0
  129. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/sophia-C5WLch3f.js +0 -0
  130. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/sparql-DHaeiCBh.js +0 -0
  131. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/sql-CCSDG5nI.js +0 -0
  132. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/st-pnP8ivHi.js +0 -0
  133. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/swift-DwJ7jVG9.js +0 -0
  134. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/systemverilog-B9Xyijhd.js +0 -0
  135. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/tcl-DnHyzjbg.js +0 -0
  136. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/tsMode-CkhihvQ0.js +0 -0
  137. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/twig-CPajHgWi.js +0 -0
  138. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/typescript-DH2E4fY1.js +0 -0
  139. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/typespec-D-MeaMDU.js +0 -0
  140. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/vb-DgyLZaXg.js +0 -0
  141. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/wgsl-BIv9DU6q.js +0 -0
  142. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/xml-kipCCfsB.js +0 -0
  143. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/assets/yaml-BI9EB_1X.js +0 -0
  144. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/bridge.js +0 -0
  145. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/favicon.ico +0 -0
  146. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/logo192.png +0 -0
  147. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/logo512.png +0 -0
  148. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/manifest.json +0 -0
  149. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  150. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/base/worker/workerMain.js +0 -0
  151. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/abap/abap.js +0 -0
  152. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/apex/apex.js +0 -0
  153. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/azcli/azcli.js +0 -0
  154. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/bat/bat.js +0 -0
  155. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/bicep/bicep.js +0 -0
  156. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cameligo/cameligo.js +0 -0
  157. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/clojure/clojure.js +0 -0
  158. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/coffee/coffee.js +0 -0
  159. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cpp/cpp.js +0 -0
  160. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/csharp/csharp.js +0 -0
  161. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/csp/csp.js +0 -0
  162. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/css/css.js +0 -0
  163. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cypher/cypher.js +0 -0
  164. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/dart/dart.js +0 -0
  165. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js +0 -0
  166. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ecl/ecl.js +0 -0
  167. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/elixir/elixir.js +0 -0
  168. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/flow9/flow9.js +0 -0
  169. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js +0 -0
  170. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js +0 -0
  171. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/go/go.js +0 -0
  172. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/graphql/graphql.js +0 -0
  173. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js +0 -0
  174. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/hcl/hcl.js +0 -0
  175. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/html/html.js +0 -0
  176. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ini/ini.js +0 -0
  177. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/java/java.js +0 -0
  178. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/javascript/javascript.js +0 -0
  179. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/julia/julia.js +0 -0
  180. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js +0 -0
  181. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/less/less.js +0 -0
  182. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/lexon/lexon.js +0 -0
  183. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/liquid/liquid.js +0 -0
  184. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/lua/lua.js +0 -0
  185. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/m3/m3.js +0 -0
  186. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/markdown/markdown.js +0 -0
  187. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mdx/mdx.js +0 -0
  188. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mips/mips.js +0 -0
  189. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/msdax/msdax.js +0 -0
  190. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mysql/mysql.js +0 -0
  191. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js +0 -0
  192. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pascal/pascal.js +0 -0
  193. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pascaligo/pascaligo.js +0 -0
  194. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/perl/perl.js +0 -0
  195. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pgsql/pgsql.js +0 -0
  196. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/php/php.js +0 -0
  197. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pla/pla.js +0 -0
  198. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/postiats/postiats.js +0 -0
  199. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js +0 -0
  200. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/powershell/powershell.js +0 -0
  201. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js +0 -0
  202. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pug/pug.js +0 -0
  203. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/python/python.js +0 -0
  204. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/qsharp/qsharp.js +0 -0
  205. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/r/r.js +0 -0
  206. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/razor/razor.js +0 -0
  207. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/redis/redis.js +0 -0
  208. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/redshift/redshift.js +0 -0
  209. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js +0 -0
  210. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ruby/ruby.js +0 -0
  211. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/rust/rust.js +0 -0
  212. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sb/sb.js +0 -0
  213. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scala/scala.js +0 -0
  214. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scheme/scheme.js +0 -0
  215. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scss/scss.js +0 -0
  216. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/shell/shell.js +0 -0
  217. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/solidity/solidity.js +0 -0
  218. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sophia/sophia.js +0 -0
  219. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sparql/sparql.js +0 -0
  220. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sql/sql.js +0 -0
  221. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/st/st.js +0 -0
  222. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/swift/swift.js +0 -0
  223. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js +0 -0
  224. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/tcl/tcl.js +0 -0
  225. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/twig/twig.js +0 -0
  226. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/typescript/typescript.js +0 -0
  227. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/typespec/typespec.js +0 -0
  228. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/vb/vb.js +0 -0
  229. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/wgsl/wgsl.js +0 -0
  230. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/xml/xml.js +0 -0
  231. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/yaml/yaml.js +0 -0
  232. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/editor/editor.main.css +0 -0
  233. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/editor/editor.main.js +0 -0
  234. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/css/cssMode.js +0 -0
  235. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/css/cssWorker.js +0 -0
  236. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/html/htmlMode.js +0 -0
  237. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/html/htmlWorker.js +0 -0
  238. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/json/jsonMode.js +0 -0
  239. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/json/jsonWorker.js +0 -0
  240. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/typescript/tsMode.js +0 -0
  241. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/language/typescript/tsWorker.js +0 -0
  242. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/loader.js +0 -0
  243. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.de.js +0 -0
  244. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.es.js +0 -0
  245. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.fr.js +0 -0
  246. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.it.js +0 -0
  247. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ja.js +0 -0
  248. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ko.js +0 -0
  249. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ru.js +0 -0
  250. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.zh-cn.js +0 -0
  251. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.zh-tw.js +0 -0
  252. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/robots.txt +0 -0
  253. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/sounds/ding-dong.wav +0 -0
  254. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/sounds/gentle-notification.wav +0 -0
  255. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web/web/sounds/soft-chime.wav +0 -0
  256. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web.egg-info/dependency_links.txt +0 -0
  257. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web.egg-info/entry_points.txt +0 -0
  258. {auto_coder_web-0.1.98 → auto_coder_web-0.1.99}/src/auto_coder_web.egg-info/top_level.txt +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto_coder_web
3
- Version: 0.1.98
3
+ Version: 0.1.99
4
4
  Summary: auto-coder.web: A Python Project
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
7
7
  Classifier: Programming Language :: Python :: 3.11
8
8
  Classifier: Programming Language :: Python :: 3.12
9
9
  Description-Content-Type: text/markdown
10
- Requires-Dist: auto-coder>=0.1.367
10
+ Requires-Dist: auto-coder>=0.1.369
11
11
  Requires-Dist: aiofiles
12
12
  Requires-Dist: psutil
13
13
  Requires-Dist: watchdog
@@ -147,7 +147,7 @@ async def get_directory_tree_async(root_path: str, path: str = None, lazy: bool
147
147
 
148
148
  def should_ignore(name: str) -> bool:
149
149
  """Check if a file or directory should be ignored"""
150
- allowed_hidden_files = {'.autocoderrules', '.gitignore', '.autocoderignore'}
150
+ allowed_hidden_files = {'.autocoderrules', '.gitignore', '.autocoderignore',".autocodercommands"}
151
151
  # Ignore hidden files/directories (starting with '.'), unless explicitly allowed
152
152
  ## and name != ".auto-coder": # Original comment kept for context if needed
153
153
  if name.startswith('.') and name not in allowed_hidden_files:
@@ -19,7 +19,7 @@ import sys
19
19
  from auto_coder_web.terminal import terminal_manager
20
20
  from autocoder.common import AutoCoderArgs
21
21
  from auto_coder_web.auto_coder_runner_wrapper import AutoCoderRunnerWrapper
22
- from auto_coder_web.routers import todo_router, settings_router, auto_router, commit_router, chat_router, coding_router, index_router, config_router, upload_router, rag_router, editable_preview_router, mcp_router, direct_chat_router, rules_router, chat_panels_router, code_editor_tabs_router
22
+ from auto_coder_web.routers import todo_router, settings_router, auto_router, commit_router, chat_router, coding_router, index_router, config_router, upload_router, rag_router, editable_preview_router, mcp_router, direct_chat_router, rules_router, chat_panels_router, code_editor_tabs_router, file_command_router
23
23
  from auto_coder_web.expert_routers import history_router
24
24
  from auto_coder_web.common_router import completions_router, file_router, auto_coder_conf_router, chat_list_router, file_group_router, model_router, compiler_router
25
25
  from auto_coder_web.common_router import active_context_router
@@ -112,6 +112,7 @@ class ProxyServer:
112
112
  self.app.include_router(rules_router.router)
113
113
  self.app.include_router(chat_panels_router.router)
114
114
  self.app.include_router(code_editor_tabs_router.router)
115
+ self.app.include_router(file_command_router.router)
115
116
 
116
117
  @self.app.on_event("shutdown")
117
118
  async def shutdown_event():
@@ -0,0 +1,315 @@
1
+ """
2
+ Document Router for managing and analyzing document files.
3
+
4
+ This router provides endpoints for listing documents and reading document variables
5
+ using the CommandFileManager from the auto-coder project.
6
+ """
7
+
8
+ import os
9
+ import json
10
+ import aiofiles
11
+ from fastapi import APIRouter, HTTPException, Request, Depends
12
+ from pydantic import BaseModel
13
+ from pathlib import Path
14
+ from typing import List, Dict, Optional, Set, Any
15
+ from jinja2 import Template, Environment, meta
16
+
17
+ # Import the CommandFileManager from the auto-coder project
18
+ from autocoder.common.command_file_manager import CommandManager, JinjaVariable
19
+
20
+ router = APIRouter()
21
+
22
+ async def get_project_path(request: Request) -> str:
23
+ """Get the project path from the FastAPI request context."""
24
+ return request.app.state.project_path
25
+
26
+ async def get_documents_path(project_path: str) -> Path:
27
+ """Get the documents directory path."""
28
+ # Default to .autocodercommands directory in the project
29
+ return Path(project_path) / ".autocodercommands"
30
+
31
+ class DocumentFile(BaseModel):
32
+ """Model for document file information."""
33
+ file_name: str
34
+ file_path: str
35
+
36
+ class DocumentVariable(BaseModel):
37
+ """Model for document variable information."""
38
+ name: str
39
+ default_value: Optional[str] = None
40
+ description: Optional[str] = None
41
+
42
+ class DocumentAnalysis(BaseModel):
43
+ """Model for document analysis information."""
44
+ file_name: str
45
+ file_path: str
46
+ variables: List[DocumentVariable]
47
+
48
+ class ListDocumentsResponse(BaseModel):
49
+ """Response model for listing documents."""
50
+ success: bool
51
+ documents: Optional[List[DocumentFile]] = None
52
+ errors: Optional[List[str]] = None
53
+
54
+ class ReadDocumentResponse(BaseModel):
55
+ """Response model for reading a document."""
56
+ success: bool
57
+ document: Optional[DocumentFile] = None
58
+ content: Optional[str] = None
59
+ errors: Optional[List[str]] = None
60
+
61
+ class AnalyzeDocumentResponse(BaseModel):
62
+ """Response model for analyzing a document."""
63
+ success: bool
64
+ analysis: Optional[DocumentAnalysis] = None
65
+ errors: Optional[List[str]] = None
66
+
67
+ class AllVariablesResponse(BaseModel):
68
+ """Response model for getting all variables."""
69
+ success: bool
70
+ variables: Optional[Dict[str, List[str]]] = None
71
+ errors: Optional[List[str]] = None
72
+
73
+ class RenderTemplateRequest(BaseModel):
74
+ """Request model for rendering a template."""
75
+ file_name: str
76
+ variables: Dict[str, str]
77
+
78
+ class RenderTemplateResponse(BaseModel):
79
+ """Response model for rendering a template."""
80
+ success: bool
81
+ rendered_content: Optional[str] = None
82
+ errors: Optional[List[str]] = None
83
+
84
+ @router.get("/api/file_commands", response_model=ListDocumentsResponse)
85
+ async def list_documents(request: Request, recursive: bool = False):
86
+ """
87
+ List all document files in the documents directory.
88
+
89
+ Args:
90
+ recursive: Whether to search recursively.
91
+
92
+ Returns:
93
+ A ListDocumentsResponse object.
94
+ """
95
+ try:
96
+ project_path = await get_project_path(request)
97
+ documents_path = await get_documents_path(project_path)
98
+
99
+ # Initialize the CommandManager
100
+ manager = CommandManager(str(documents_path))
101
+
102
+ # List command files
103
+ result = manager.list_command_files(recursive=recursive)
104
+
105
+ if not result.success:
106
+ return ListDocumentsResponse(
107
+ success=False,
108
+ errors=result.errors
109
+ )
110
+
111
+ # Convert to DocumentFile objects
112
+ documents = []
113
+ for file_path in result.command_files:
114
+ file_name = os.path.basename(file_path)
115
+ documents.append(DocumentFile(
116
+ file_name=file_name,
117
+ file_path=file_path
118
+ ))
119
+
120
+ return ListDocumentsResponse(
121
+ success=True,
122
+ documents=documents
123
+ )
124
+ except Exception as e:
125
+ return ListDocumentsResponse(
126
+ success=False,
127
+ errors=[f"Error listing documents: {str(e)}"]
128
+ )
129
+
130
+ @router.get("/api/file_commands/{file_name}", response_model=ReadDocumentResponse)
131
+ async def read_document(file_name: str, request: Request):
132
+ """
133
+ Read a document file.
134
+
135
+ Args:
136
+ file_name: The name of the file to read.
137
+
138
+ Returns:
139
+ A ReadDocumentResponse object.
140
+ """
141
+ try:
142
+ project_path = await get_project_path(request)
143
+ documents_path = await get_documents_path(project_path)
144
+
145
+ # Initialize the CommandManager
146
+ manager = CommandManager(str(documents_path))
147
+
148
+ # Read command file
149
+ command_file = manager.read_command_file(file_name)
150
+
151
+ if not command_file:
152
+ return ReadDocumentResponse(
153
+ success=False,
154
+ errors=[f"Document '{file_name}' not found."]
155
+ )
156
+
157
+ return ReadDocumentResponse(
158
+ success=True,
159
+ document=DocumentFile(
160
+ file_name=command_file.file_name,
161
+ file_path=command_file.file_path
162
+ ),
163
+ content=command_file.content
164
+ )
165
+ except Exception as e:
166
+ return ReadDocumentResponse(
167
+ success=False,
168
+ errors=[f"Error reading document: {str(e)}"]
169
+ )
170
+
171
+ @router.get("/api/file_commands/{file_name}/variables", response_model=AnalyzeDocumentResponse)
172
+ async def analyze_document(file_name: str, request: Request):
173
+ """
174
+ Analyze a document file to extract variables.
175
+
176
+ Args:
177
+ file_name: The name of the file to analyze.
178
+
179
+ Returns:
180
+ An AnalyzeDocumentResponse object.
181
+ """
182
+ try:
183
+ project_path = await get_project_path(request)
184
+ documents_path = await get_documents_path(project_path)
185
+
186
+ # Initialize the CommandManager
187
+ manager = CommandManager(str(documents_path))
188
+
189
+ # Analyze command file
190
+ analysis = manager.analyze_command_file(file_name)
191
+
192
+ if not analysis:
193
+ return AnalyzeDocumentResponse(
194
+ success=False,
195
+ errors=[f"Document '{file_name}' not found or could not be analyzed."]
196
+ )
197
+
198
+ # Convert to DocumentVariable objects
199
+ variables = []
200
+ for var in analysis.variables:
201
+ variables.append(DocumentVariable(
202
+ name=var.name,
203
+ default_value=var.default_value,
204
+ description=var.description
205
+ ))
206
+
207
+ return AnalyzeDocumentResponse(
208
+ success=True,
209
+ analysis=DocumentAnalysis(
210
+ file_name=analysis.file_name,
211
+ file_path=analysis.file_path,
212
+ variables=variables
213
+ )
214
+ )
215
+ except Exception as e:
216
+ return AnalyzeDocumentResponse(
217
+ success=False,
218
+ errors=[f"Error analyzing document: {str(e)}"]
219
+ )
220
+
221
+ @router.get("/api/file_commands/variables/all", response_model=AllVariablesResponse)
222
+ async def get_all_variables(request: Request, recursive: bool = False):
223
+ """
224
+ Get all variables from all document files.
225
+
226
+ Args:
227
+ recursive: Whether to search recursively.
228
+
229
+ Returns:
230
+ An AllVariablesResponse object.
231
+ """
232
+ try:
233
+ project_path = await get_project_path(request)
234
+ documents_path = await get_documents_path(project_path)
235
+
236
+ # Initialize the CommandManager
237
+ manager = CommandManager(str(documents_path))
238
+
239
+ # Get all variables
240
+ variables = manager.get_all_variables(recursive=recursive)
241
+
242
+ return AllVariablesResponse(
243
+ success=True,
244
+ variables=variables
245
+ )
246
+ except Exception as e:
247
+ return AllVariablesResponse(
248
+ success=False,
249
+ errors=[f"Error getting all variables: {str(e)}"]
250
+ )
251
+
252
+ @router.get("/api/file_commands/path")
253
+ async def get_documents_directory(request: Request):
254
+ """
255
+ Get the documents directory path.
256
+
257
+ Returns:
258
+ The documents directory path.
259
+ """
260
+ try:
261
+ project_path = await get_project_path(request)
262
+ documents_path = await get_documents_path(project_path)
263
+
264
+ return {
265
+ "success": True,
266
+ "path": str(documents_path)
267
+ }
268
+ except Exception as e:
269
+ return {
270
+ "success": False,
271
+ "errors": [f"Error getting documents directory: {str(e)}"]
272
+ }
273
+
274
+ @router.post("/api/file_commands/render", response_model=RenderTemplateResponse)
275
+ async def render_template(request: RenderTemplateRequest, req: Request):
276
+ """
277
+ Render a template with the provided variables.
278
+
279
+ Args:
280
+ request: The request containing the file name and variables.
281
+
282
+ Returns:
283
+ A RenderTemplateResponse object containing the rendered content.
284
+ """
285
+ try:
286
+ project_path = await get_project_path(req)
287
+ documents_path = await get_documents_path(project_path)
288
+
289
+ # Initialize the CommandManager
290
+ manager = CommandManager(str(documents_path))
291
+
292
+ # Read command file
293
+ command_file = manager.read_command_file(request.file_name)
294
+
295
+ if not command_file:
296
+ return RenderTemplateResponse(
297
+ success=False,
298
+ errors=[f"Document '{request.file_name}' not found."]
299
+ )
300
+
301
+ # Create Jinja2 template
302
+ template = Template(command_file.content)
303
+
304
+ # Render template with provided variables
305
+ rendered_content = template.render(**request.variables)
306
+
307
+ return RenderTemplateResponse(
308
+ success=True,
309
+ rendered_content=rendered_content
310
+ )
311
+ except Exception as e:
312
+ return RenderTemplateResponse(
313
+ success=False,
314
+ errors=[f"Error rendering template: {str(e)}"]
315
+ )
@@ -0,0 +1 @@
1
+ __version__ = "0.1.99"
@@ -29,4 +29,4 @@
29
29
  * The original design remains. The terminal itself
30
30
  * has been extended to include xterm CSI codes, among
31
31
  * other features.
32
- */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.split-container{display:flex;width:100%;height:100%}.gutter{background-color:#4b5563;position:relative}.gutter.gutter-horizontal{cursor:col-resize}.gutter:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:20px;background-color:#9ca3af;border-radius:2px}.gutter:hover:after{background-color:#f3f4f6}.split-container>div{height:100%;min-width:0;overflow:hidden}.task-status-card{width:100%;margin-bottom:16px;box-shadow:0 2px 8px #00000026;background-color:#2d2d2d;border:1px solid #374151}.task-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.task-status-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;gap:16px}.task-status-footer{display:flex;justify-content:flex-end;padding-top:8px}.todo-container{background-color:transparent}.todo-column{background-color:#1a1a1a;border:1px solid #2d2d2d;transition:all .2s ease;min-height:200px;transition:all .3s ease-in-out;position:relative;overflow:hidden}.todo-column:hover{border-color:#3d3d3d}.todo-column.is-dragging-over{border-color:#3b82f6;background:#3b82f61a;transition:background .2s ease}.todo-card{background-color:#2d2d2d;border:1px solid #374151;transition:all .2s ease;cursor:move;-webkit-user-select:none;user-select:none}.todo-card:hover{background-color:#374151;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.todo-card.is-dragging{border-color:#3b82f6;box-shadow:0 4px 8px #3b82f633;transform:scale(1.02);opacity:.8}.todo-title{color:#e5e7eb;font-size:14px;line-height:1.4}.todo-due-date{color:#9ca3af;font-size:12px;margin-top:4px}.todo-tags{display:flex;gap:4px;flex-wrap:wrap}.ant-modal-title{color:#e5e7eb!important}.ant-modal-close{color:#9ca3af!important}.ant-modal-close:hover{color:#e5e7eb!important}.custom-input{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.custom-select .ant-select-selector{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#1e293b}.custom-scrollbar::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#475569}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:#4B5563 #374151}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .3s ease-in-out}.loading-spinner{display:inline-block;width:30px;height:30px;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#3b82f6;animation:spin 1s ease-in-out infinite}.bg-gray-750{background-color:#222933}.task-split-result-view{box-shadow:0 4px 12px #00000040;animation:slideDown .3s ease-in-out;border-radius:8px;overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.task-split-result-view .ant-typography{transition:color .3s ease}.task-split-result-view .ant-collapse-item{margin-bottom:8px;border-radius:6px;overflow:hidden}.task-split-result-view .ant-card{transition:all .3s ease}.task-split-result-view .ant-card:hover{transform:translateY(-1px);box-shadow:0 6px 12px #00000026}.task-split-result-view .ant-divider{margin:16px 0}.task-split-result-view .ant-tag{transition:all .3s ease}.task-split-result-view .ant-tag:hover{transform:scale(1.05)}.todo-board{gap:1rem}.todo-column.flex.w-full{animation:scaleUp .3s ease-in-out}@keyframes scaleUp{0%{transform:scale(.98)}to{transform:scale(1)}}.todo-column.flex-1{animation:fadeIn .3s ease-in-out}.todo-column.maximized{flex:1 0 100%}.todo-column .maximize-button{opacity:.7;transition:opacity .2s ease}.todo-column:hover .maximize-button{opacity:1}.todo-column-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.todo-column-header h3{margin:0;font-weight:500}.split-vertical{display:flex!important;flex-direction:column!important;height:100%!important;width:100%!important}.split-vertical>.gutter{height:5px!important;width:100%!important;background-color:#4b5563;cursor:row-resize!important;margin:0!important;z-index:10!important;transition:background-color .2s;position:relative!important;left:0!important;right:0!important}.split-vertical>.gutter:hover,.split-vertical>.gutter.dragging{background-color:#3b82f6}.split-vertical>.gutter:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:2px;background-color:#fff9;border-radius:1px;box-shadow:0 -2px #fff9,0 2px #fff9}.split-horizontal{display:flex!important;height:100%!important}.split-horizontal>.gutter{width:5px!important;background-color:#4b5563;cursor:col-resize!important;margin:0!important;z-index:10!important;transition:background-color .2s}.split-horizontal>.gutter:hover,.split-horizontal>.gutter.dragging{background-color:#3b82f6}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.initialization-page{min-height:100vh;background-color:#111827;color:#fff}.initialization-card{background-color:#1f2937!important;border-color:#374151!important;color:#fff!important;width:100%;max-width:640px}.initialization-title{color:#fff!important;font-size:1.25rem;margin-bottom:1rem}.initialization-description{color:#e5e7eb!important;margin-bottom:1.5rem}.ant-steps-item-title{color:#fff!important}.ant-steps-item-description{color:#e5e7eb!important}.ant-card-body{color:#fff!important}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff3!important;border-color:#fff3!important}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:#fffc!important}.ant-spin-dot-item{background-color:#fff!important}.ant-steps-item-process .ant-steps-item-icon{background-color:#3b82f6!important;border-color:#3b82f6!important}.ant-steps-icon{color:#fff!important}.ant-steps-item-finish .ant-steps-item-icon{border-color:#3b82f6!important}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#3b82f6!important}html,body{margin:0;height:100%;background-color:#1a1a1a}#root{height:100%}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:#2d2d2d}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.custom-select .ant-select-selector{background-color:#374151!important;border-color:#4b5563!important;color:#fff!important;height:24px!important;padding:0 6px!important;font-size:12px!important}.custom-select .ant-select-selection-placeholder{color:#9ca3af!important}.custom-select .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.custom-select.ant-select-multiple .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important;margin-top:2px!important;margin-bottom:2px!important}.custom-select .ant-select-selection-item-content,.custom-select .ant-select-selection-item-remove,.custom-select .ant-select-selection-item .anticon,.custom-select .ant-select-selection-item span{color:#fff!important}.custom-select .ant-select-selection-item .ant-select-selection-item-remove{color:#ffffffa6!important}.custom-select .ant-select-selection-item .ant-select-selection-item-remove:hover{color:#fff!important}.custom-select .ant-select-dropdown{background-color:#374151!important;border:1px solid #4B5563!important}.custom-select .ant-select-item{color:#fff!important}.custom-select .ant-select-item-option-active{background-color:#4b5563!important}.custom-select .ant-select-item-option-selected{background-color:#6b7280!important}.custom-select .ant-select-selection-search input{color:#fff!important}.custom-select .ant-select-clear{background-color:transparent!important;color:#9ca3af!important}.custom-select .ant-select-arrow{color:#9ca3af!important}.dark-theme-modal .ant-modal-title{color:#e5e7eb!important}.dark-theme-modal .ant-modal-close{color:#9ca3af!important}.dark-theme-modal .ant-modal-close:hover{color:#e5e7eb!important}.dark-theme-list .ant-list-item{border-color:#374151!important}.dark-theme-list .ant-list-item:hover{background-color:#374151!important}.dark-theme-input{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.dark-theme-input::placeholder{color:#9ca3af!important}.dark-theme-input:hover,.dark-theme-input:focus{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f133!important}.split{display:flex;flex-direction:row}.gutter{background-color:#4b5563;cursor:col-resize;width:2px!important}.gutter:hover{background-color:#6b7280}.custom-input{background-color:#1f2937!important;border-color:#4b5563!important;color:#e5e7eb!important}.custom-input::placeholder{color:#9ca3af!important;opacity:1!important}.custom-input:hover,.custom-input:focus{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f133!important}.custom-input input{background-color:transparent!important;color:#e5e7eb!important}.custom-input .anticon{color:#9ca3af!important}.dark-mode-table,.dark-mode-table .ant-table{background-color:transparent!important}.dark-mode-table .ant-table-thead>tr>th{background-color:#374151!important;color:#fff!important;border-bottom:1px solid #4B5563!important}.dark-mode-table .ant-table-tbody>tr>td{border-bottom:1px solid #4B5563!important;color:#fff!important}.dark-mode-table .ant-table-tbody>tr:hover>td{background-color:#4b5563!important}.dark-mode-table .ant-table-row-expand-icon{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.dark-mode-table .nested-table{margin:0!important;padding:0!important}.dark-mode-table .nested-table .ant-table-tbody>tr>td{background-color:#1f2937!important}.dark-mode-table .nested-table .ant-table-tbody>tr:hover>td{background-color:#374151!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item-content{color:#fff!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item-remove{color:#ffffffa6!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item-remove:hover{color:#fff!important}.dark-dropdown-menu{background-color:#1f2937!important;border:1px solid #374151!important;color:#e5e7eb!important}.dark-dropdown-menu .ant-select-item{color:#e5e7eb!important;background-color:#1f2937!important}.dark-dropdown-menu .ant-select-item-option-active{background-color:#374151!important}.dark-dropdown-menu .ant-select-item-option-selected{background-color:#3b82f6!important;color:#fff!important}.dark-dropdown-menu .ant-select-item-empty{color:#9ca3af!important}.dark-dropdown-menu .ant-select-item-group{color:#9ca3af!important;font-weight:700;padding:8px 12px}.file-option{transition:background-color .2s}.dark-dropdown-menu .file-option{background-color:transparent!important}.dark-dropdown-menu .file-option:hover{background-color:#374151!important}.dark-table.ant-table-wrapper{background-color:#1e1e1e;color:#e0e0e0;border-radius:6px}.dark-table .ant-table{background-color:#1e1e1e!important;color:#e0e0e0!important}.dark-table .ant-table-container{background-color:#1e1e1e!important;border-radius:6px}.dark-table .ant-table-thead>tr>th{background-color:#2c2c2c!important;color:#e0e0e0!important;border-bottom:1px solid #383838!important}.dark-table .ant-table-tbody>tr>td{background-color:#1e1e1e!important;border-bottom:1px solid #383838!important;color:#e0e0e0!important}.dark-table .ant-table-tbody>tr.ant-table-row:hover>td{background-color:#2c2c2c!important}.dark-table .ant-empty{color:#a0a0a0!important}.dark-table .ant-empty-image svg{fill:#333!important}.dark-table .ant-empty-description,.dark-table .ant-empty-footer{color:#a0a0a0!important}.model-table .ant-table-placeholder .ant-table-cell{background-color:#1e1e1e!important;color:#a0a0a0!important;border-bottom:none!important}.model-table .ant-empty-normal .ant-empty-image{height:40px;margin-bottom:8px}.dark-table .ant-pagination{background-color:transparent!important;color:#e0e0e0!important}.dark-table .ant-pagination-item{background-color:#2c2c2c!important;border-color:#383838!important}.dark-table .ant-pagination-item a{color:#e0e0e0!important}.dark-table .ant-pagination-item-active{background-color:#177ddc!important;border-color:#177ddc!important}.dark-table .ant-pagination-item-active a{color:#fff!important}.dark-table .ant-pagination-prev button,.dark-table .ant-pagination-next button{color:#e0e0e0!important;background-color:#2c2c2c!important;border-color:#383838!important}.dark-modal .ant-modal-content{background-color:#1e1e1e;color:#e0e0e0;border-radius:6px;box-shadow:0 6px 16px -8px #0009}.dark-modal .ant-modal-header{background-color:#1e1e1e;border-bottom:1px solid #383838;border-radius:6px 6px 0 0}.dark-modal .ant-modal-title{color:#e0e0e0}.dark-modal .ant-modal-close{color:#a0a0a0}.dark-modal .ant-modal-footer{border-top:1px solid #383838}.dark-form .ant-form-item-label>label{color:#e0e0e0}.dark-input{background-color:#2c2c2c;border-color:#434343;color:#e0e0e0}.dark-input:hover,.dark-input:focus{border-color:#177ddc}.dark-input::placeholder{color:#6c6c6c}.dark-input[disabled]{background-color:#3a3a3a;color:#a0a0a0}.dark-select .ant-select-selector{background-color:#2c2c2c!important;border-color:#434343!important;color:#e0e0e0!important}.dark-select.ant-select-disabled .ant-select-selector{background-color:#3a3a3a!important;color:#a0a0a0!important}.dark-select .ant-select-arrow{color:#a0a0a0!important}.ant-select-dropdown{background-color:#1e1e1e!important;border:1px solid #383838!important}.ant-select-item{color:#e0e0e0!important}.ant-select-item-option-selected{background-color:#111b26!important}.ant-select-item-option-active{background-color:#2a2a2a!important}.dark-button.ant-btn{border-color:#434343;background-color:#2c2c2c;color:#e0e0e0}.dark-button.ant-btn:hover{border-color:#177ddc;color:#177ddc}.dark-button.ant-btn-primary{background-color:#177ddc;border-color:#177ddc;color:#fff}.dark-button.ant-btn-primary:hover{background-color:#1884e0;border-color:#1884e0}.dark-button.ant-btn-dangerous{color:#ff4d4f;border-color:#ff4d4f}.dark-button.ant-btn-dangerous:hover{background-color:#2c2c2c;color:#ff7875;border-color:#ff7875}.dark-switch.ant-switch{background-color:#434343}.dark-switch.ant-switch-checked{background-color:#177ddc}.dark-popconfirm .ant-popover-inner{background-color:#1e1e1e;border:1px solid #383838}.dark-popconfirm .ant-popover-title,.dark-popconfirm .ant-popover-inner-content{color:#e0e0e0}.dark-popconfirm .ant-popover-arrow-content{background-color:#1e1e1e}.settings-tabs .ant-tabs-nav{margin-bottom:16px!important;background-color:#111827!important;border-bottom:1px solid #1e293b!important}.settings-tabs .ant-tabs-tab{color:#a0a0a0!important;padding:8px 16px!important}.settings-tabs .ant-tabs-tab:hover{color:#3b82f6!important}.settings-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#3b82f6!important;font-weight:500!important}.settings-tabs .ant-tabs-ink-bar{background-color:#3b82f6!important}.settings-tabs .ant-tabs-content{background-color:transparent!important}*,: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;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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::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}*{scrollbar-color:initial;scrollbar-width:initial}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-right-1{right:-.25rem}.-right-2{right:-.5rem}.-right-4{right:-1rem}.-top-1{top:-.25rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-14{bottom:3.5rem}.bottom-24{bottom:6rem}.left-0{left:0}.left-10{left:2.5rem}.left-2{left:.5rem}.left-3\.5{left:.875rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0\.5{margin:.125rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-1{margin-left:-.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-4\/5{height:80%}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[80px\]{height:80px}.h-\[80vh\]{height:80vh}.h-\[calc\(100\%-80px\)\]{height:calc(100% - 80px)}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[120px\]{max-height:120px}.max-h-\[150px\]{max-height:150px}.max-h-\[400px\]{max-height:400px}.max-h-\[60px\]{max-height:60px}.max-h-\[calc\(100vh-220px\)\]{max-height:calc(100vh - 220px)}.max-h-screen{max-height:100vh}.min-h-\[80px\]{min-height:80px}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[50px\]{width:50px}.w-\[80\%\]{width:80%}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[16rem\]{min-width:16rem}.min-w-\[60px\]{min-width:60px}.min-w-\[80px\]{min-width:80px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[150px\]{max-width:150px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[80\%\]{max-width:80%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-\[3\]{flex:3}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-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))}.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-45{--tw-rotate: 45deg;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))}.transform{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 bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[120px_1fr\]{grid-template-columns:120px 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.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-2{gap:.5rem}.gap-4{gap:1rem}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.125rem * var(--tw-space-x-reverse));margin-left:calc(.125rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.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)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * 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-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))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.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}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-none{border-style:none}.border-\[\#374151\]{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-600{--tw-border-opacity: 1;border-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-sky-500{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity, 1))}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.bg-\[\#111827\]{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-\[\#1F2937\]{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-\[\#1e1e1e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 30 / var(--tw-bg-opacity, 1))}.bg-\[\#1f1f1f\]{--tw-bg-opacity: 1;background-color:rgb(31 31 31 / var(--tw-bg-opacity, 1))}.bg-\[\#2d2d2d\]{--tw-bg-opacity: 1;background-color:rgb(45 45 45 / var(--tw-bg-opacity, 1))}.bg-amber-900{--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-700{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.bg-blue-900\/30{background-color:#1e3a8a4d}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-700\/50{background-color:#37415180}.bg-gray-700\/70{background-color:#374151b3}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-800\/90{background-color:#1f2937e6}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / 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-green-600\/30{background-color:#16a34a4d}.bg-green-800{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity, 1))}.bg-green-900{--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-700\/40{background-color:#4338ca66}.bg-indigo-800{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity, 1))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-purple-700{--tw-bg-opacity: 1;background-color:rgb(126 34 206 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-600\/30{background-color:#dc26264d}.bg-red-900{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.bg-red-900\/80{background-color:#7f1d1dcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-opacity-20{--tw-bg-opacity: .2}.bg-opacity-25{--tw-bg-opacity: .25}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-75{--tw-bg-opacity: .75}.bg-opacity-80{--tw-bg-opacity: .8}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-500{--tw-gradient-from: #f59e0b var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-800{--tw-gradient-from: #1f2937 var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-800{--tw-gradient-from: #6b21a8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(107 33 168 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to: #ea580c var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-700{--tw-gradient-to: #7e22ce var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.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-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.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-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}.py-0{padding-top:0;padding-bottom:0}.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-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-16{padding-left:4rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xs{font-size:.625rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[14px\]{font-size:14px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.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-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-100{--tw-text-opacity: 1;color:rgb(220 252 231 / var(--tw-text-opacity, 1))}.text-green-300{--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600\/70{color:#16a34ab3}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.text-purple-300{--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-300{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.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-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 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)}.shadow-blue-500\/20{--tw-shadow-color: rgb(59 130 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.ring-opacity-5{--tw-ring-opacity: .05}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(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,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;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-opacity{transition-property:opacity;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}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar{display:block;width:var(--scrollbar-width, 16px);height:var(--scrollbar-height, 16px)}.scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar-thin::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar-thin::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar-thin::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar-thin::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar-thin::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar-thin::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar-thin::-webkit-scrollbar{display:block;width:8px;height:8px}.scrollbar-track-gray-800{--scrollbar-track: #1f2937 !important}.scrollbar-thumb-gray-600{--scrollbar-thumb: #4b5563 !important}.scrollbar-thumb-gray-700{--scrollbar-thumb: #374151 !important}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-slide-in{animation:slideIn .3s ease-out forwards}.animate-pulse{animation:pulse 2s infinite}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.diff-viewer-tabs .ant-tabs-nav{margin-bottom:0!important}.diff-viewer-tabs .ant-tabs-tab{background-color:#1a2234!important;border:1px solid #374151!important;border-bottom:none!important;padding:0!important;margin-right:2px!important;border-radius:6px 6px 0 0!important;transition:all .3s}.diff-viewer-tabs .ant-tabs-tab-active{background-color:#2d3748!important;border-color:#4b5563!important}.diff-viewer-tabs .ant-tabs-content-holder{border-top:1px solid #374151;background-color:#111827}.diff-viewer-tabs .ant-tabs-content{height:100%;background-color:#111827}.custom-tabs-bar{padding:0!important;margin:0!important}.bg-\[\#111827\]::-webkit-scrollbar-track,.bg-\[#1F2937\]::-webkit-scrollbar-track{background:#1f2937}.bg-\[\#111827\]::-webkit-scrollbar-thumb,.bg-\[#1F2937\]::-webkit-scrollbar-thumb{background:#4b5563}.bg-\[\#111827\]::-webkit-scrollbar-thumb:hover,.bg-\[#1F2937\]::-webkit-scrollbar-thumb:hover{background:#6b7280}.last\:border-b-0:last-child{border-bottom-width:0px}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:opacity-100{opacity:1}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;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\:bg-\[\#2D3748\]:hover{--tw-bg-opacity: 1;background-color:rgb(45 55 72 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700\/50:hover{background-color:#37415180}.hover\:bg-gray-700\/80:hover{background-color:#374151cc}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-800:hover{--tw-bg-opacity: 1;background-color:rgb(107 33 168 / 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\:from-amber-600:hover{--tw-gradient-from: #d97706 var(--tw-gradient-from-position);--tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-blue-600:hover{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-indigo-700:hover{--tw-gradient-to: #4338ca var(--tw-gradient-to-position)}.hover\:to-orange-700:hover{--tw-gradient-to: #c2410c var(--tw-gradient-to-position)}.hover\:text-blue-300:hover{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-green-400:hover{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.hover\:text-orange-400:hover{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-yellow-300:hover{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.hover\:shadow-sm:hover{--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)}.hover\:shadow-xl:hover{--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)}.hover\:shadow-blue-500\/30:hover{--tw-shadow-color: rgb(59 130 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / 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-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-gray-800:focus{--tw-ring-offset-color: #1f2937}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-600:disabled{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width: 640px){.sm\:px-0{padding-left:0;padding-right:0}}
32
+ */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.split-container{display:flex;width:100%;height:100%}.gutter{background-color:#4b5563;position:relative}.gutter.gutter-horizontal{cursor:col-resize}.gutter:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:20px;background-color:#9ca3af;border-radius:2px}.gutter:hover:after{background-color:#f3f4f6}.split-container>div{height:100%;min-width:0;overflow:hidden}.task-status-card{width:100%;margin-bottom:16px;box-shadow:0 2px 8px #00000026;background-color:#2d2d2d;border:1px solid #374151}.task-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.task-status-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;gap:16px}.task-status-footer{display:flex;justify-content:flex-end;padding-top:8px}.todo-container{background-color:transparent}.todo-column{background-color:#1a1a1a;border:1px solid #2d2d2d;transition:all .2s ease;min-height:200px;transition:all .3s ease-in-out;position:relative;overflow:hidden}.todo-column:hover{border-color:#3d3d3d}.todo-column.is-dragging-over{border-color:#3b82f6;background:#3b82f61a;transition:background .2s ease}.todo-card{background-color:#2d2d2d;border:1px solid #374151;transition:all .2s ease;cursor:move;-webkit-user-select:none;user-select:none}.todo-card:hover{background-color:#374151;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.todo-card.is-dragging{border-color:#3b82f6;box-shadow:0 4px 8px #3b82f633;transform:scale(1.02);opacity:.8}.todo-title{color:#e5e7eb;font-size:14px;line-height:1.4}.todo-due-date{color:#9ca3af;font-size:12px;margin-top:4px}.todo-tags{display:flex;gap:4px;flex-wrap:wrap}.ant-modal-title{color:#e5e7eb!important}.ant-modal-close{color:#9ca3af!important}.ant-modal-close:hover{color:#e5e7eb!important}.custom-input{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.custom-select .ant-select-selector{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#1e293b}.custom-scrollbar::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#475569}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:#4B5563 #374151}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .3s ease-in-out}.loading-spinner{display:inline-block;width:30px;height:30px;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#3b82f6;animation:spin 1s ease-in-out infinite}.bg-gray-750{background-color:#222933}.task-split-result-view{box-shadow:0 4px 12px #00000040;animation:slideDown .3s ease-in-out;border-radius:8px;overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.task-split-result-view .ant-typography{transition:color .3s ease}.task-split-result-view .ant-collapse-item{margin-bottom:8px;border-radius:6px;overflow:hidden}.task-split-result-view .ant-card{transition:all .3s ease}.task-split-result-view .ant-card:hover{transform:translateY(-1px);box-shadow:0 6px 12px #00000026}.task-split-result-view .ant-divider{margin:16px 0}.task-split-result-view .ant-tag{transition:all .3s ease}.task-split-result-view .ant-tag:hover{transform:scale(1.05)}.todo-board{gap:1rem}.todo-column.flex.w-full{animation:scaleUp .3s ease-in-out}@keyframes scaleUp{0%{transform:scale(.98)}to{transform:scale(1)}}.todo-column.flex-1{animation:fadeIn .3s ease-in-out}.todo-column.maximized{flex:1 0 100%}.todo-column .maximize-button{opacity:.7;transition:opacity .2s ease}.todo-column:hover .maximize-button{opacity:1}.todo-column-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.todo-column-header h3{margin:0;font-weight:500}.split-vertical{display:flex!important;flex-direction:column!important;height:100%!important;width:100%!important}.split-vertical>.gutter{height:5px!important;width:100%!important;background-color:#4b5563;cursor:row-resize!important;margin:0!important;z-index:10!important;transition:background-color .2s;position:relative!important;left:0!important;right:0!important}.split-vertical>.gutter:hover,.split-vertical>.gutter.dragging{background-color:#3b82f6}.split-vertical>.gutter:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:2px;background-color:#fff9;border-radius:1px;box-shadow:0 -2px #fff9,0 2px #fff9}.split-horizontal{display:flex!important;height:100%!important}.split-horizontal>.gutter{width:5px!important;background-color:#4b5563;cursor:col-resize!important;margin:0!important;z-index:10!important;transition:background-color .2s}.split-horizontal>.gutter:hover,.split-horizontal>.gutter.dragging{background-color:#3b82f6}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.initialization-page{min-height:100vh;background-color:#111827;color:#fff}.initialization-card{background-color:#1f2937!important;border-color:#374151!important;color:#fff!important;width:100%;max-width:640px}.initialization-title{color:#fff!important;font-size:1.25rem;margin-bottom:1rem}.initialization-description{color:#e5e7eb!important;margin-bottom:1.5rem}.ant-steps-item-title{color:#fff!important}.ant-steps-item-description{color:#e5e7eb!important}.ant-card-body{color:#fff!important}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff3!important;border-color:#fff3!important}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:#fffc!important}.ant-spin-dot-item{background-color:#fff!important}.ant-steps-item-process .ant-steps-item-icon{background-color:#3b82f6!important;border-color:#3b82f6!important}.ant-steps-icon{color:#fff!important}.ant-steps-item-finish .ant-steps-item-icon{border-color:#3b82f6!important}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#3b82f6!important}html,body{margin:0;height:100%;background-color:#1a1a1a}#root{height:100%}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:#2d2d2d}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.custom-select .ant-select-selector{background-color:#374151!important;border-color:#4b5563!important;color:#fff!important;height:24px!important;padding:0 6px!important;font-size:12px!important}.custom-select .ant-select-selection-placeholder{color:#9ca3af!important}.custom-select .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.custom-select.ant-select-multiple .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important;margin-top:2px!important;margin-bottom:2px!important}.custom-select .ant-select-selection-item-content,.custom-select .ant-select-selection-item-remove,.custom-select .ant-select-selection-item .anticon,.custom-select .ant-select-selection-item span{color:#fff!important}.custom-select .ant-select-selection-item .ant-select-selection-item-remove{color:#ffffffa6!important}.custom-select .ant-select-selection-item .ant-select-selection-item-remove:hover{color:#fff!important}.custom-select .ant-select-dropdown{background-color:#374151!important;border:1px solid #4B5563!important}.custom-select .ant-select-item{color:#fff!important}.custom-select .ant-select-item-option-active{background-color:#4b5563!important}.custom-select .ant-select-item-option-selected{background-color:#6b7280!important}.custom-select .ant-select-selection-search input{color:#fff!important}.custom-select .ant-select-clear{background-color:transparent!important;color:#9ca3af!important}.custom-select .ant-select-arrow{color:#9ca3af!important}.dark-theme-modal .ant-modal-title{color:#e5e7eb!important}.dark-theme-modal .ant-modal-close{color:#9ca3af!important}.dark-theme-modal .ant-modal-close:hover{color:#e5e7eb!important}.dark-theme-list .ant-list-item{border-color:#374151!important}.dark-theme-list .ant-list-item:hover{background-color:#374151!important}.dark-theme-input{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.dark-theme-input::placeholder{color:#9ca3af!important}.dark-theme-input:hover,.dark-theme-input:focus{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f133!important}.split{display:flex;flex-direction:row}.gutter{background-color:#4b5563;cursor:col-resize;width:2px!important}.gutter:hover{background-color:#6b7280}.custom-input{background-color:#1f2937!important;border-color:#4b5563!important;color:#e5e7eb!important}.custom-input::placeholder{color:#9ca3af!important;opacity:1!important}.custom-input:hover,.custom-input:focus{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f133!important}.custom-input input{background-color:transparent!important;color:#e5e7eb!important}.custom-input .anticon{color:#9ca3af!important}.dark-mode-table,.dark-mode-table .ant-table{background-color:transparent!important}.dark-mode-table .ant-table-thead>tr>th{background-color:#374151!important;color:#fff!important;border-bottom:1px solid #4B5563!important}.dark-mode-table .ant-table-tbody>tr>td{border-bottom:1px solid #4B5563!important;color:#fff!important}.dark-mode-table .ant-table-tbody>tr:hover>td{background-color:#4b5563!important}.dark-mode-table .ant-table-row-expand-icon{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.dark-mode-table .nested-table{margin:0!important;padding:0!important}.dark-mode-table .nested-table .ant-table-tbody>tr>td{background-color:#1f2937!important}.dark-mode-table .nested-table .ant-table-tbody>tr:hover>td{background-color:#374151!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item-content{color:#fff!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item-remove{color:#ffffffa6!important}.custom-select .ant-select-selection-overflow-item .ant-select-selection-item-remove:hover{color:#fff!important}.dark-dropdown-menu{background-color:#1f2937!important;border:1px solid #374151!important;color:#e5e7eb!important}.dark-dropdown-menu .ant-select-item{color:#e5e7eb!important;background-color:#1f2937!important}.dark-dropdown-menu .ant-select-item-option-active{background-color:#374151!important}.dark-dropdown-menu .ant-select-item-option-selected{background-color:#3b82f6!important;color:#fff!important}.dark-dropdown-menu .ant-select-item-empty{color:#9ca3af!important}.dark-dropdown-menu .ant-select-item-group{color:#9ca3af!important;font-weight:700;padding:8px 12px}.file-option{transition:background-color .2s}.dark-dropdown-menu .file-option{background-color:transparent!important}.dark-dropdown-menu .file-option:hover{background-color:#374151!important}.dark-table.ant-table-wrapper{background-color:#1e1e1e;color:#e0e0e0;border-radius:6px}.dark-table .ant-table{background-color:#1e1e1e!important;color:#e0e0e0!important}.dark-table .ant-table-container{background-color:#1e1e1e!important;border-radius:6px}.dark-table .ant-table-thead>tr>th{background-color:#2c2c2c!important;color:#e0e0e0!important;border-bottom:1px solid #383838!important}.dark-table .ant-table-tbody>tr>td{background-color:#1e1e1e!important;border-bottom:1px solid #383838!important;color:#e0e0e0!important}.dark-table .ant-table-tbody>tr.ant-table-row:hover>td{background-color:#2c2c2c!important}.dark-table .ant-empty{color:#a0a0a0!important}.dark-table .ant-empty-image svg{fill:#333!important}.dark-table .ant-empty-description,.dark-table .ant-empty-footer{color:#a0a0a0!important}.model-table .ant-table-placeholder .ant-table-cell{background-color:#1e1e1e!important;color:#a0a0a0!important;border-bottom:none!important}.model-table .ant-empty-normal .ant-empty-image{height:40px;margin-bottom:8px}.dark-table .ant-pagination{background-color:transparent!important;color:#e0e0e0!important}.dark-table .ant-pagination-item{background-color:#2c2c2c!important;border-color:#383838!important}.dark-table .ant-pagination-item a{color:#e0e0e0!important}.dark-table .ant-pagination-item-active{background-color:#177ddc!important;border-color:#177ddc!important}.dark-table .ant-pagination-item-active a{color:#fff!important}.dark-table .ant-pagination-prev button,.dark-table .ant-pagination-next button{color:#e0e0e0!important;background-color:#2c2c2c!important;border-color:#383838!important}.dark-modal .ant-modal-content{background-color:#1e1e1e;color:#e0e0e0;border-radius:6px;box-shadow:0 6px 16px -8px #0009}.dark-modal .ant-modal-header{background-color:#1e1e1e;border-bottom:1px solid #383838;border-radius:6px 6px 0 0}.dark-modal .ant-modal-title{color:#e0e0e0}.dark-modal .ant-modal-close{color:#a0a0a0}.dark-modal .ant-modal-footer{border-top:1px solid #383838}.dark-form .ant-form-item-label>label{color:#e0e0e0}.dark-input{background-color:#2c2c2c;border-color:#434343;color:#e0e0e0}.dark-input:hover,.dark-input:focus{border-color:#177ddc}.dark-input::placeholder{color:#6c6c6c}.dark-input[disabled]{background-color:#3a3a3a;color:#a0a0a0}.dark-select .ant-select-selector{background-color:#2c2c2c!important;border-color:#434343!important;color:#e0e0e0!important}.dark-select.ant-select-disabled .ant-select-selector{background-color:#3a3a3a!important;color:#a0a0a0!important}.dark-select .ant-select-arrow{color:#a0a0a0!important}.ant-select-dropdown{background-color:#1e1e1e!important;border:1px solid #383838!important}.ant-select-item{color:#e0e0e0!important}.ant-select-item-option-selected{background-color:#111b26!important}.ant-select-item-option-active{background-color:#2a2a2a!important}.dark-button.ant-btn{border-color:#434343;background-color:#2c2c2c;color:#e0e0e0}.dark-button.ant-btn:hover{border-color:#177ddc;color:#177ddc}.dark-button.ant-btn-primary{background-color:#177ddc;border-color:#177ddc;color:#fff}.dark-button.ant-btn-primary:hover{background-color:#1884e0;border-color:#1884e0}.dark-button.ant-btn-dangerous{color:#ff4d4f;border-color:#ff4d4f}.dark-button.ant-btn-dangerous:hover{background-color:#2c2c2c;color:#ff7875;border-color:#ff7875}.dark-switch.ant-switch{background-color:#434343}.dark-switch.ant-switch-checked{background-color:#177ddc}.dark-popconfirm .ant-popover-inner{background-color:#1e1e1e;border:1px solid #383838}.dark-popconfirm .ant-popover-title,.dark-popconfirm .ant-popover-inner-content{color:#e0e0e0}.dark-popconfirm .ant-popover-arrow-content{background-color:#1e1e1e}.settings-tabs .ant-tabs-nav{margin-bottom:16px!important;background-color:#111827!important;border-bottom:1px solid #1e293b!important}.settings-tabs .ant-tabs-tab{color:#a0a0a0!important;padding:8px 16px!important}.settings-tabs .ant-tabs-tab:hover{color:#3b82f6!important}.settings-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#3b82f6!important;font-weight:500!important}.settings-tabs .ant-tabs-ink-bar{background-color:#3b82f6!important}.settings-tabs .ant-tabs-content{background-color:transparent!important}*,: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;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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::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}*{scrollbar-color:initial;scrollbar-width:initial}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-right-1{right:-.25rem}.-right-2{right:-.5rem}.-right-4{right:-1rem}.-top-1{top:-.25rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-14{bottom:3.5rem}.bottom-24{bottom:6rem}.left-0{left:0}.left-10{left:2.5rem}.left-2{left:.5rem}.left-3\.5{left:.875rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0\.5{margin:.125rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-1{margin-left:-.25rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-4\/5{height:80%}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[80px\]{height:80px}.h-\[80vh\]{height:80vh}.h-\[calc\(100\%-80px\)\]{height:calc(100% - 80px)}.h-full{height:100%}.h-screen{height:100vh}.max-h-20{max-height:5rem}.max-h-40{max-height:10rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[120px\]{max-height:120px}.max-h-\[150px\]{max-height:150px}.max-h-\[400px\]{max-height:400px}.max-h-\[60px\]{max-height:60px}.max-h-\[calc\(100vh-220px\)\]{max-height:calc(100vh - 220px)}.max-h-screen{max-height:100vh}.min-h-\[80px\]{min-height:80px}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[50px\]{width:50px}.w-\[80\%\]{width:80%}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[16rem\]{min-width:16rem}.min-w-\[60px\]{min-width:60px}.min-w-\[80px\]{min-width:80px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[150px\]{max-width:150px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[80\%\]{max-width:80%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-\[3\]{flex:3}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-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))}.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-45{--tw-rotate: 45deg;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))}.transform{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 bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[120px_1fr\]{grid-template-columns:120px 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.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-2{gap:.5rem}.gap-4{gap:1rem}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.125rem * var(--tw-space-x-reverse));margin-left:calc(.125rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.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)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * 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-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))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.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}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-none{border-style:none}.border-\[\#374151\]{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-600{--tw-border-opacity: 1;border-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-sky-500{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity, 1))}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.bg-\[\#111827\]{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-\[\#1F2937\]{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-\[\#1e1e1e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 30 / var(--tw-bg-opacity, 1))}.bg-\[\#1f1f1f\]{--tw-bg-opacity: 1;background-color:rgb(31 31 31 / var(--tw-bg-opacity, 1))}.bg-\[\#2d2d2d\]{--tw-bg-opacity: 1;background-color:rgb(45 45 45 / var(--tw-bg-opacity, 1))}.bg-amber-900{--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-700{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.bg-blue-900\/30{background-color:#1e3a8a4d}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-700\/50{background-color:#37415180}.bg-gray-700\/70{background-color:#374151b3}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-800\/90{background-color:#1f2937e6}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / 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-green-600\/30{background-color:#16a34a4d}.bg-green-800{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity, 1))}.bg-green-900{--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-700\/40{background-color:#4338ca66}.bg-indigo-800{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity, 1))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-purple-700{--tw-bg-opacity: 1;background-color:rgb(126 34 206 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-600\/30{background-color:#dc26264d}.bg-red-900{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.bg-red-900\/80{background-color:#7f1d1dcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-opacity-20{--tw-bg-opacity: .2}.bg-opacity-25{--tw-bg-opacity: .25}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-75{--tw-bg-opacity: .75}.bg-opacity-80{--tw-bg-opacity: .8}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-500{--tw-gradient-from: #f59e0b var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-800{--tw-gradient-from: #1f2937 var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-800{--tw-gradient-from: #6b21a8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(107 33 168 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to: #ea580c var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-700{--tw-gradient-to: #7e22ce var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.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-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.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-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}.py-0{padding-top:0;padding-bottom:0}.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-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-16{padding-left:4rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xs{font-size:.625rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[14px\]{font-size:14px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.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-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-100{--tw-text-opacity: 1;color:rgb(220 252 231 / var(--tw-text-opacity, 1))}.text-green-300{--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600\/70{color:#16a34ab3}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.text-purple-300{--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-300{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.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-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 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)}.shadow-blue-500\/20{--tw-shadow-color: rgb(59 130 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.ring-opacity-5{--tw-ring-opacity: .05}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(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,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;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-opacity{transition-property:opacity;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}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar{display:block;width:var(--scrollbar-width, 16px);height:var(--scrollbar-height, 16px)}.scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar-thin::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.scrollbar-thin::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.scrollbar-thin::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.scrollbar-thin::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar-thin::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.scrollbar-thin::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar-thin::-webkit-scrollbar{display:block;width:8px;height:8px}.scrollbar-track-gray-800{--scrollbar-track: #1f2937 !important}.scrollbar-thumb-gray-600{--scrollbar-thumb: #4b5563 !important}.scrollbar-thumb-gray-700{--scrollbar-thumb: #374151 !important}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-slide-in{animation:slideIn .3s ease-out forwards}.animate-pulse{animation:pulse 2s infinite}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.diff-viewer-tabs .ant-tabs-nav{margin-bottom:0!important}.diff-viewer-tabs .ant-tabs-tab{background-color:#1a2234!important;border:1px solid #374151!important;border-bottom:none!important;padding:0!important;margin-right:2px!important;border-radius:6px 6px 0 0!important;transition:all .3s}.diff-viewer-tabs .ant-tabs-tab-active{background-color:#2d3748!important;border-color:#4b5563!important}.diff-viewer-tabs .ant-tabs-content-holder{border-top:1px solid #374151;background-color:#111827}.diff-viewer-tabs .ant-tabs-content{height:100%;background-color:#111827}.custom-tabs-bar{padding:0!important;margin:0!important}.bg-\[\#111827\]::-webkit-scrollbar-track,.bg-\[#1F2937\]::-webkit-scrollbar-track{background:#1f2937}.bg-\[\#111827\]::-webkit-scrollbar-thumb,.bg-\[#1F2937\]::-webkit-scrollbar-thumb{background:#4b5563}.bg-\[\#111827\]::-webkit-scrollbar-thumb:hover,.bg-\[#1F2937\]::-webkit-scrollbar-thumb:hover{background:#6b7280}.last\:border-b-0:last-child{border-bottom-width:0px}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:opacity-100{opacity:1}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;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\:bg-\[\#2D3748\]:hover{--tw-bg-opacity: 1;background-color:rgb(45 55 72 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700\/50:hover{background-color:#37415180}.hover\:bg-gray-700\/80:hover{background-color:#374151cc}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-800:hover{--tw-bg-opacity: 1;background-color:rgb(107 33 168 / 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\:from-amber-600:hover{--tw-gradient-from: #d97706 var(--tw-gradient-from-position);--tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-blue-600:hover{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-indigo-700:hover{--tw-gradient-to: #4338ca var(--tw-gradient-to-position)}.hover\:to-orange-700:hover{--tw-gradient-to: #c2410c var(--tw-gradient-to-position)}.hover\:text-blue-300:hover{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-green-400:hover{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.hover\:text-orange-400:hover{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-yellow-300:hover{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.hover\:shadow-sm:hover{--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)}.hover\:shadow-xl:hover{--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)}.hover\:shadow-blue-500\/30:hover{--tw-shadow-color: rgb(59 130 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / 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-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-gray-800:focus{--tw-ring-offset-color: #1f2937}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-600:disabled{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width: 640px){.sm\:px-0{padding-left:0;padding-right:0}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}