hdsp-jupyter-extension 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. agent_server/__init__.py +8 -0
  2. agent_server/core/__init__.py +92 -0
  3. agent_server/core/api_key_manager.py +427 -0
  4. agent_server/core/code_validator.py +1238 -0
  5. agent_server/core/context_condenser.py +308 -0
  6. agent_server/core/embedding_service.py +254 -0
  7. agent_server/core/error_classifier.py +577 -0
  8. agent_server/core/llm_client.py +95 -0
  9. agent_server/core/llm_service.py +649 -0
  10. agent_server/core/notebook_generator.py +274 -0
  11. agent_server/core/prompt_builder.py +35 -0
  12. agent_server/core/rag_manager.py +742 -0
  13. agent_server/core/reflection_engine.py +489 -0
  14. agent_server/core/retriever.py +248 -0
  15. agent_server/core/state_verifier.py +452 -0
  16. agent_server/core/summary_generator.py +484 -0
  17. agent_server/core/task_manager.py +198 -0
  18. agent_server/knowledge/__init__.py +9 -0
  19. agent_server/knowledge/watchdog_service.py +352 -0
  20. agent_server/main.py +160 -0
  21. agent_server/prompts/__init__.py +60 -0
  22. agent_server/prompts/file_action_prompts.py +113 -0
  23. agent_server/routers/__init__.py +9 -0
  24. agent_server/routers/agent.py +591 -0
  25. agent_server/routers/chat.py +188 -0
  26. agent_server/routers/config.py +100 -0
  27. agent_server/routers/file_resolver.py +293 -0
  28. agent_server/routers/health.py +42 -0
  29. agent_server/routers/rag.py +163 -0
  30. agent_server/schemas/__init__.py +60 -0
  31. hdsp_agent_core/__init__.py +158 -0
  32. hdsp_agent_core/factory.py +252 -0
  33. hdsp_agent_core/interfaces.py +203 -0
  34. hdsp_agent_core/knowledge/__init__.py +31 -0
  35. hdsp_agent_core/knowledge/chunking.py +356 -0
  36. hdsp_agent_core/knowledge/libraries/dask.md +188 -0
  37. hdsp_agent_core/knowledge/libraries/matplotlib.md +164 -0
  38. hdsp_agent_core/knowledge/libraries/polars.md +68 -0
  39. hdsp_agent_core/knowledge/loader.py +337 -0
  40. hdsp_agent_core/llm/__init__.py +13 -0
  41. hdsp_agent_core/llm/service.py +556 -0
  42. hdsp_agent_core/managers/__init__.py +22 -0
  43. hdsp_agent_core/managers/config_manager.py +133 -0
  44. hdsp_agent_core/managers/session_manager.py +251 -0
  45. hdsp_agent_core/models/__init__.py +115 -0
  46. hdsp_agent_core/models/agent.py +316 -0
  47. hdsp_agent_core/models/chat.py +41 -0
  48. hdsp_agent_core/models/common.py +95 -0
  49. hdsp_agent_core/models/rag.py +368 -0
  50. hdsp_agent_core/prompts/__init__.py +63 -0
  51. hdsp_agent_core/prompts/auto_agent_prompts.py +1260 -0
  52. hdsp_agent_core/prompts/cell_action_prompts.py +98 -0
  53. hdsp_agent_core/services/__init__.py +18 -0
  54. hdsp_agent_core/services/agent_service.py +438 -0
  55. hdsp_agent_core/services/chat_service.py +205 -0
  56. hdsp_agent_core/services/rag_service.py +262 -0
  57. hdsp_agent_core/tests/__init__.py +1 -0
  58. hdsp_agent_core/tests/conftest.py +102 -0
  59. hdsp_agent_core/tests/test_factory.py +251 -0
  60. hdsp_agent_core/tests/test_services.py +326 -0
  61. hdsp_jupyter_extension-2.0.0.data/data/etc/jupyter/jupyter_server_config.d/hdsp_jupyter_extension.json +7 -0
  62. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/build_log.json +738 -0
  63. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/install.json +5 -0
  64. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/package.json +134 -0
  65. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.2607ff74c74acfa83158.js +4369 -0
  66. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.2607ff74c74acfa83158.js.map +1 -0
  67. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.622c1a5918b3aafb2315.js +12496 -0
  68. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.622c1a5918b3aafb2315.js.map +1 -0
  69. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js +94 -0
  70. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js.map +1 -0
  71. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js +94 -0
  72. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js.map +1 -0
  73. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.dae97cde171e13b8c834.js +623 -0
  74. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.dae97cde171e13b8c834.js.map +1 -0
  75. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/style.js +4 -0
  76. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js +507 -0
  77. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js.map +1 -0
  78. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js-node_modules-782ee5.d9ed8645ef1d311657d8.js +2071 -0
  79. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js-node_modules-782ee5.d9ed8645ef1d311657d8.js.map +1 -0
  80. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.36b49c71871f98d4f549.js +1059 -0
  81. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.36b49c71871f98d4f549.js.map +1 -0
  82. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js +376 -0
  83. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js.map +1 -0
  84. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js +60336 -0
  85. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js.map +1 -0
  86. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.2e13df4ea61496e95d45.js +7132 -0
  87. hdsp_jupyter_extension-2.0.0.data/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.2e13df4ea61496e95d45.js.map +1 -0
  88. hdsp_jupyter_extension-2.0.0.dist-info/METADATA +152 -0
  89. hdsp_jupyter_extension-2.0.0.dist-info/RECORD +121 -0
  90. hdsp_jupyter_extension-2.0.0.dist-info/WHEEL +4 -0
  91. hdsp_jupyter_extension-2.0.0.dist-info/licenses/LICENSE +21 -0
  92. jupyter_ext/__init__.py +233 -0
  93. jupyter_ext/_version.py +4 -0
  94. jupyter_ext/config.py +111 -0
  95. jupyter_ext/etc/jupyter/jupyter_server_config.d/hdsp_jupyter_extension.json +7 -0
  96. jupyter_ext/handlers.py +632 -0
  97. jupyter_ext/labextension/build_log.json +738 -0
  98. jupyter_ext/labextension/package.json +134 -0
  99. jupyter_ext/labextension/static/frontend_styles_index_js.2607ff74c74acfa83158.js +4369 -0
  100. jupyter_ext/labextension/static/frontend_styles_index_js.2607ff74c74acfa83158.js.map +1 -0
  101. jupyter_ext/labextension/static/lib_index_js.622c1a5918b3aafb2315.js +12496 -0
  102. jupyter_ext/labextension/static/lib_index_js.622c1a5918b3aafb2315.js.map +1 -0
  103. jupyter_ext/labextension/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js +94 -0
  104. jupyter_ext/labextension/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js.map +1 -0
  105. jupyter_ext/labextension/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js +94 -0
  106. jupyter_ext/labextension/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js.map +1 -0
  107. jupyter_ext/labextension/static/remoteEntry.dae97cde171e13b8c834.js +623 -0
  108. jupyter_ext/labextension/static/remoteEntry.dae97cde171e13b8c834.js.map +1 -0
  109. jupyter_ext/labextension/static/style.js +4 -0
  110. jupyter_ext/labextension/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js +507 -0
  111. jupyter_ext/labextension/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js.map +1 -0
  112. jupyter_ext/labextension/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js-node_modules-782ee5.d9ed8645ef1d311657d8.js +2071 -0
  113. jupyter_ext/labextension/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js-node_modules-782ee5.d9ed8645ef1d311657d8.js.map +1 -0
  114. jupyter_ext/labextension/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.36b49c71871f98d4f549.js +1059 -0
  115. jupyter_ext/labextension/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.36b49c71871f98d4f549.js.map +1 -0
  116. jupyter_ext/labextension/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js +376 -0
  117. jupyter_ext/labextension/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js.map +1 -0
  118. jupyter_ext/labextension/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js +60336 -0
  119. jupyter_ext/labextension/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js.map +1 -0
  120. jupyter_ext/labextension/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.2e13df4ea61496e95d45.js +7132 -0
  121. jupyter_ext/labextension/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.2e13df4ea61496e95d45.js.map +1 -0
@@ -0,0 +1,4369 @@
1
+ "use strict";
2
+ (self["webpackChunkhdsp_agent"] = self["webpackChunkhdsp_agent"] || []).push([["frontend_styles_index_js"],{
3
+
4
+ /***/ "./frontend/styles/index.css"
5
+ /*!***********************************!*\
6
+ !*** ./frontend/styles/index.css ***!
7
+ \***********************************/
8
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9
+
10
+ __webpack_require__.r(__webpack_exports__);
11
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13
+ /* harmony export */ });
14
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
15
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
16
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
17
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
18
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
19
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
20
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
21
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
22
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
23
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
24
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
25
+ /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
26
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_index_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!./index.css */ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/index.css");
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+ var options = {};
39
+
40
+ options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
41
+ options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
42
+
43
+ options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
44
+
45
+ options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
46
+ options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
47
+
48
+ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_index_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
49
+
50
+
51
+
52
+
53
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_index_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_index_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_index_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
54
+
55
+
56
+ /***/ },
57
+
58
+ /***/ "./frontend/styles/index.js"
59
+ /*!**********************************!*\
60
+ !*** ./frontend/styles/index.js ***!
61
+ \**********************************/
62
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
63
+
64
+ __webpack_require__.r(__webpack_exports__);
65
+ /* harmony import */ var _index_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.css */ "./frontend/styles/index.css");
66
+
67
+
68
+
69
+ /***/ },
70
+
71
+ /***/ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/agent-panel.css"
72
+ /*!*******************************************************************************!*\
73
+ !*** ./node_modules/css-loader/dist/cjs.js!./frontend/styles/agent-panel.css ***!
74
+ \*******************************************************************************/
75
+ (module, __webpack_exports__, __webpack_require__) {
76
+
77
+ __webpack_require__.r(__webpack_exports__);
78
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
79
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
80
+ /* harmony export */ });
81
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
82
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
83
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
84
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
85
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js");
86
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);
87
+ // Imports
88
+
89
+
90
+
91
+ var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNOCAyQzQuNjkgMiAyIDQuNjkgMiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwLjVjLTIuNDggMC00LjUtMi4wMi00LjUtNC41czIuMDItNC41IDQuNS00LjUgNC41IDIuMDIgNC41IDQuNS0yLjAyIDQuNS00LjUgNC41eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjciIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iMSIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTUuNSAxMGMwLjUtMC44IDEuNS0xLjMgMi41LTEuMyAxIDAgMiAwLjUgMi41IDEuMyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg== */ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNOCAyQzQuNjkgMiAyIDQuNjkgMiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwLjVjLTIuNDggMC00LjUtMi4wMi00LjUtNC41czIuMDItNC41IDQuNS00LjUgNC41IDIuMDIgNC41IDQuNS0yLjAyIDQuNS00LjUgNC41eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjciIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iMSIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTUuNSAxMGMwLjUtMC44IDEuNS0xLjMgMi41LTEuMyAxIDAgMiAwLjUgMi41IDEuMyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg=="), __webpack_require__.b);
92
+ var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23666%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E */ "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23666%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E"), __webpack_require__.b);
93
+ var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23999%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E */ "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23999%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E"), __webpack_require__.b);
94
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
95
+ var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);
96
+ var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);
97
+ var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);
98
+ // Module
99
+ ___CSS_LOADER_EXPORT___.push([module.id, `/**
100
+ * Agent Panel Styling - Sidebar Chat Interface
101
+ */
102
+
103
+ /* Panel Container */
104
+ .jp-agent-widget {
105
+ display: flex;
106
+ flex-direction: column;
107
+ min-width: 600px;
108
+ height: 100%;
109
+ background: var(--jp-layout-color1);
110
+ }
111
+
112
+ .jp-agent-panel {
113
+ display: flex;
114
+ flex-direction: column;
115
+ height: 100%;
116
+ padding: 0;
117
+ }
118
+
119
+ /* Header */
120
+ .jp-agent-header {
121
+ display: flex;
122
+ justify-content: space-between;
123
+ align-items: center;
124
+ padding: 12px 16px;
125
+ border-bottom: 1px solid var(--jp-border-color2);
126
+ background: var(--jp-layout-color2);
127
+ }
128
+
129
+ .jp-agent-header h2 {
130
+ margin: 0;
131
+ font-size: 16px;
132
+ font-weight: 600;
133
+ color: var(--jp-ui-font-color1);
134
+ display: flex;
135
+ align-items: center;
136
+ gap: 6px;
137
+ }
138
+
139
+ .jp-agent-logo {
140
+ height: 24px;
141
+ width: auto;
142
+ }
143
+
144
+ /* Header Logo (SVG inline) */
145
+ .jp-agent-header-logo {
146
+ height: 40px;
147
+ width: auto;
148
+ display: flex;
149
+ align-items: center;
150
+ }
151
+
152
+ .jp-agent-header-logo svg {
153
+ height: 40px;
154
+ width: auto;
155
+ }
156
+
157
+ .jp-agent-header-buttons {
158
+ display: flex;
159
+ gap: 8px;
160
+ align-items: center;
161
+ }
162
+
163
+ .jp-agent-settings-button-icon {
164
+ padding: 4px 8px;
165
+ border: 1px solid var(--jp-border-color2);
166
+ border-radius: 4px;
167
+ background: transparent;
168
+ color: var(--jp-ui-font-color2);
169
+ font-size: 16px;
170
+ cursor: pointer;
171
+ transition: all 0.2s ease;
172
+ line-height: 1;
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ }
177
+
178
+ .jp-agent-settings-button-icon svg {
179
+ display: block;
180
+ }
181
+
182
+ .jp-agent-settings-button-icon:hover {
183
+ background: var(--jp-layout-color3);
184
+ color: var(--jp-ui-font-color1);
185
+ }
186
+
187
+ .jp-agent-clear-button {
188
+ padding: 4px 8px;
189
+ border: 1px solid var(--jp-border-color2);
190
+ border-radius: 4px;
191
+ background: transparent;
192
+ color: var(--jp-ui-font-color2);
193
+ font-size: 16px;
194
+ cursor: pointer;
195
+ transition: all 0.2s ease;
196
+ line-height: 1;
197
+ display: flex;
198
+ align-items: center;
199
+ justify-content: center;
200
+ }
201
+
202
+ .jp-agent-clear-button svg {
203
+ display: block;
204
+ }
205
+
206
+ .jp-agent-clear-button:hover {
207
+ background: var(--jp-layout-color3);
208
+ color: var(--jp-ui-font-color1);
209
+ }
210
+
211
+ /* Messages Container */
212
+ .jp-agent-messages {
213
+ flex: 1;
214
+ overflow-y: auto;
215
+ padding: 16px;
216
+ display: flex;
217
+ flex-direction: column;
218
+ gap: 12px;
219
+ }
220
+
221
+ /* Empty State */
222
+ .jp-agent-empty-state {
223
+ display: flex;
224
+ flex-direction: column;
225
+ align-items: center;
226
+ justify-content: center;
227
+ text-align: center;
228
+ padding: 32px 16px;
229
+ color: var(--jp-ui-font-color2);
230
+ }
231
+
232
+ .jp-agent-empty-state p {
233
+ margin: 8px 0;
234
+ font-size: 14px;
235
+ }
236
+
237
+ .jp-agent-suggestions {
238
+ display: flex;
239
+ flex-direction: column;
240
+ gap: 8px;
241
+ margin-top: 16px;
242
+ width: 100%;
243
+ max-width: 240px;
244
+ }
245
+
246
+ .jp-agent-suggestions button {
247
+ padding: 8px 12px;
248
+ border: 1px solid var(--jp-border-color2);
249
+ border-radius: 4px;
250
+ background: var(--jp-layout-color2);
251
+ color: var(--jp-ui-font-color1);
252
+ font-size: 13px;
253
+ cursor: pointer;
254
+ transition: all 0.2s ease;
255
+ text-align: left;
256
+ }
257
+
258
+ .jp-agent-suggestions button:hover {
259
+ background: var(--jp-layout-color3);
260
+ border-color: var(--jp-brand-color1);
261
+ }
262
+
263
+ /* Message */
264
+ .jp-agent-message {
265
+ display: flex;
266
+ flex-direction: column;
267
+ gap: 4px;
268
+ padding: 12px;
269
+ border-radius: 8px;
270
+ max-width: 90%;
271
+ }
272
+
273
+ .jp-agent-message-user {
274
+ align-self: flex-end;
275
+ background: var(--jp-brand-color1);
276
+ color: white;
277
+ }
278
+
279
+ .jp-agent-message-assistant {
280
+ align-self: flex-start;
281
+ background: var(--jp-layout-color2);
282
+ border: 1px solid var(--jp-border-color2);
283
+ }
284
+
285
+ .jp-agent-message-header {
286
+ display: flex;
287
+ justify-content: space-between;
288
+ align-items: center;
289
+ margin-bottom: 4px;
290
+ }
291
+
292
+ .jp-agent-message-role {
293
+ font-size: 11px;
294
+ font-weight: 600;
295
+ opacity: 0.8;
296
+ }
297
+
298
+ .jp-agent-message-time {
299
+ font-size: 10px;
300
+ opacity: 0.6;
301
+ }
302
+
303
+ .jp-agent-message-content {
304
+ font-size: 13px;
305
+ line-height: 1.5;
306
+ white-space: pre-wrap;
307
+ word-wrap: break-word;
308
+ overflow: hidden;
309
+ overflow-x: auto;
310
+ max-width: 100%;
311
+ }
312
+
313
+ .jp-agent-message-user .jp-agent-message-content {
314
+ color: white;
315
+ }
316
+
317
+ /* Loading Animation */
318
+ .jp-agent-loading {
319
+ display: flex;
320
+ gap: 4px;
321
+ padding: 4px 0;
322
+ }
323
+
324
+ .jp-agent-loading-dot {
325
+ animation: jp-agent-loading-bounce 1.4s infinite ease-in-out both;
326
+ font-size: 20px;
327
+ line-height: 1;
328
+ }
329
+
330
+ .jp-agent-loading-dot:nth-child(1) {
331
+ animation-delay: -0.32s;
332
+ }
333
+
334
+ .jp-agent-loading-dot:nth-child(2) {
335
+ animation-delay: -0.16s;
336
+ }
337
+
338
+ @keyframes jp-agent-loading-bounce {
339
+ 0%, 80%, 100% {
340
+ opacity: 0.3;
341
+ transform: translateY(0);
342
+ }
343
+ 40% {
344
+ opacity: 1;
345
+ transform: translateY(-4px);
346
+ }
347
+ }
348
+
349
+ /* Streaming Cursor Animation */
350
+ .jp-agent-message-content.streaming::after {
351
+ content: '|';
352
+ animation: jp-agent-cursor-blink 0.7s infinite;
353
+ font-weight: bold;
354
+ color: var(--jp-brand-color1);
355
+ }
356
+
357
+ @keyframes jp-agent-cursor-blink {
358
+ 0%, 50% {
359
+ opacity: 1;
360
+ }
361
+ 51%, 100% {
362
+ opacity: 0;
363
+ }
364
+ }
365
+
366
+ /* Input Container */
367
+ .jp-agent-input-container {
368
+ padding: 12px 16px;
369
+ border-top: 1px solid var(--jp-border-color2);
370
+ background: var(--jp-layout-color2);
371
+ }
372
+
373
+ .jp-agent-input-wrapper {
374
+ display: flex;
375
+ gap: 8px;
376
+ align-items: flex-end;
377
+ }
378
+
379
+ .jp-agent-input {
380
+ flex: 1;
381
+ min-height: 60px;
382
+ max-height: 150px;
383
+ padding: 8px 12px;
384
+ border: 1px solid var(--jp-border-color2);
385
+ border-radius: 4px;
386
+ background: var(--jp-layout-color1);
387
+ color: var(--jp-ui-font-color1);
388
+ font-family: var(--jp-ui-font-family);
389
+ font-size: 13px;
390
+ resize: vertical;
391
+ outline: none;
392
+ transition: border-color 0.2s ease;
393
+ }
394
+
395
+ .jp-agent-input:focus {
396
+ border-color: var(--jp-brand-color1);
397
+ box-shadow: 0 0 0 1px var(--jp-brand-color1);
398
+ }
399
+
400
+ .jp-agent-input:disabled {
401
+ opacity: 0.5;
402
+ cursor: not-allowed;
403
+ }
404
+
405
+ .jp-agent-input::placeholder {
406
+ color: var(--jp-ui-font-color3);
407
+ }
408
+
409
+ .jp-agent-send-button {
410
+ padding: 10px 24px;
411
+ border: 1px solid var(--jp-border-color1);
412
+ border-radius: 4px;
413
+ background: var(--jp-layout-color1);
414
+ color: var(--jp-ui-font-color1);
415
+ font-size: 13px;
416
+ font-weight: 500;
417
+ cursor: pointer;
418
+ transition: all 0.2s ease;
419
+ white-space: nowrap;
420
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
421
+ }
422
+
423
+ .jp-agent-send-button:hover:not(:disabled) {
424
+ background: var(--jp-layout-color3);
425
+ border-color: var(--jp-border-color1);
426
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
427
+ }
428
+
429
+ .jp-agent-send-button:active:not(:disabled) {
430
+ background: var(--jp-layout-color3);
431
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
432
+ }
433
+
434
+ .jp-agent-send-button:disabled {
435
+ opacity: 0.5;
436
+ cursor: not-allowed;
437
+ box-shadow: none;
438
+ }
439
+
440
+ /* Icon */
441
+ .jp-agent-icon {
442
+ background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});
443
+ background-repeat: no-repeat;
444
+ background-position: center;
445
+ background-size: contain;
446
+ }
447
+
448
+ /* Scrollbar Styling */
449
+ .jp-agent-messages::-webkit-scrollbar {
450
+ width: 8px;
451
+ }
452
+
453
+ .jp-agent-messages::-webkit-scrollbar-track {
454
+ background: var(--jp-layout-color1);
455
+ }
456
+
457
+ .jp-agent-messages::-webkit-scrollbar-thumb {
458
+ background: var(--jp-border-color2);
459
+ border-radius: 4px;
460
+ }
461
+
462
+ .jp-agent-messages::-webkit-scrollbar-thumb:hover {
463
+ background: var(--jp-border-color1);
464
+ }
465
+
466
+ /* Dark Theme Adjustments */
467
+ body[data-jp-theme-light="false"] .jp-agent-message-assistant {
468
+ background: var(--jp-layout-color0);
469
+ }
470
+
471
+ body[data-jp-theme-light="false"] .jp-agent-input {
472
+ background: var(--jp-layout-color0);
473
+ }
474
+
475
+ /* Code Block Styling - Always Dark Theme */
476
+ .jp-agent-message-content .code-block-container,
477
+ .jp-agent-message-content .jp-RenderedHTMLCommon .code-block-container,
478
+ .jp-RenderedHTMLCommon .jp-agent-message-content .code-block-container {
479
+ margin: 12px 0 !important;
480
+ border-radius: 6px !important;
481
+ overflow: hidden !important;
482
+ background: #1e1e1e !important;
483
+ border: 1px solid #333 !important;
484
+ }
485
+
486
+ .jp-agent-message-content .code-block-header,
487
+ .jp-agent-message-content .jp-RenderedHTMLCommon .code-block-header,
488
+ .jp-RenderedHTMLCommon .jp-agent-message-content .code-block-header {
489
+ display: flex !important;
490
+ justify-content: space-between !important;
491
+ align-items: center !important;
492
+ padding: 8px 12px !important;
493
+ background: #2d2d2d !important;
494
+ border-bottom: 1px solid #3d3d3d !important;
495
+ }
496
+
497
+ .jp-agent-message-content .code-block-language,
498
+ .jp-agent-message-content .jp-RenderedHTMLCommon .code-block-language,
499
+ .jp-RenderedHTMLCommon .jp-agent-message-content .code-block-language {
500
+ font-size: 11px !important;
501
+ font-weight: 600 !important;
502
+ color: #9cdcfe !important;
503
+ text-transform: uppercase !important;
504
+ letter-spacing: 0.5px !important;
505
+ }
506
+
507
+ .jp-agent-message-content .code-block-actions {
508
+ display: flex;
509
+ gap: 6px;
510
+ }
511
+
512
+ .jp-agent-message-content .code-block-apply {
513
+ background: #667eea !important;
514
+ color: white !important;
515
+ border: 1px solid #667eea !important;
516
+ border-radius: 3px !important;
517
+ padding: 4px 10px !important;
518
+ font-size: 11px !important;
519
+ cursor: pointer !important;
520
+ transition: all 0.2s ease !important;
521
+ font-weight: 500 !important;
522
+ }
523
+
524
+ .jp-agent-message-content .code-block-apply:hover {
525
+ background: #5568d3 !important;
526
+ border-color: #5568d3 !important;
527
+ }
528
+
529
+ .jp-agent-message-content .code-block-apply:active {
530
+ background: #4a5bbd !important;
531
+ }
532
+
533
+ .jp-agent-message-content .code-block-apply:disabled {
534
+ opacity: 0.5 !important;
535
+ cursor: not-allowed !important;
536
+ }
537
+
538
+ .jp-agent-message-content .code-block-copy {
539
+ background: transparent !important;
540
+ color: #858585 !important;
541
+ border: 1px solid #4d4d4d !important;
542
+ border-radius: 3px !important;
543
+ padding: 4px 10px !important;
544
+ font-size: 11px !important;
545
+ cursor: pointer !important;
546
+ transition: all 0.2s ease !important;
547
+ font-weight: 500 !important;
548
+ }
549
+
550
+ .jp-agent-message-content .code-block-copy:hover {
551
+ background: #3d3d3d !important;
552
+ color: #d4d4d4 !important;
553
+ border-color: #5d5d5d !important;
554
+ }
555
+
556
+ .jp-agent-message-content .code-block-copy:active {
557
+ background: #4d4d4d !important;
558
+ }
559
+
560
+ .jp-agent-message-content .code-block,
561
+ .jp-agent-message-content pre.code-block,
562
+ .jp-agent-message-content .jp-RenderedHTMLCommon .code-block,
563
+ .jp-agent-message-content .jp-RenderedHTMLCommon pre.code-block,
564
+ .jp-RenderedHTMLCommon .jp-agent-message-content .code-block,
565
+ .jp-RenderedHTMLCommon .jp-agent-message-content pre.code-block {
566
+ margin: 0 !important;
567
+ padding: 14px !important;
568
+ background: #1e1e1e !important;
569
+ overflow-x: auto !important;
570
+ font-family: 'Menlo', 'Monaco', 'Courier New', monospace !important;
571
+ font-size: 12px !important;
572
+ line-height: 1.6 !important;
573
+ }
574
+
575
+ .jp-agent-message-content .code-block code,
576
+ .jp-agent-message-content pre.code-block code,
577
+ .jp-agent-message-content .jp-RenderedHTMLCommon .code-block code,
578
+ .jp-agent-message-content .jp-RenderedHTMLCommon pre.code-block code,
579
+ .jp-RenderedHTMLCommon .jp-agent-message-content .code-block code,
580
+ .jp-RenderedHTMLCommon .jp-agent-message-content pre.code-block code {
581
+ color: #d4d4d4 !important;
582
+ background: transparent !important;
583
+ padding: 0 !important;
584
+ border: none !important;
585
+ display: block !important;
586
+ white-space: pre !important;
587
+ }
588
+
589
+ /* Inline Code Styling - High specificity to override JupyterLab defaults */
590
+ .jp-agent-message-content .inline-code,
591
+ .jp-agent-message-content code.inline-code,
592
+ .jp-agent-message-content .jp-RenderedHTMLCommon code.inline-code,
593
+ .jp-RenderedHTMLCommon .jp-agent-message-content code.inline-code {
594
+ background: #e8f4fd !important;
595
+ color: #1e40af !important;
596
+ padding: 2px 6px !important;
597
+ border-radius: 4px !important;
598
+ font-family: 'Menlo', 'Monaco', 'Courier New', monospace !important;
599
+ font-size: 12px !important;
600
+ border: 1px solid #93c5fd !important;
601
+ font-weight: 500 !important;
602
+ }
603
+
604
+ /* Dark Theme Inline Code */
605
+ body[data-jp-theme-light="false"] .jp-agent-message-content .inline-code,
606
+ body[data-jp-theme-light="false"] .jp-agent-message-content code.inline-code,
607
+ body[data-jp-theme-light="false"] .jp-agent-message-content .jp-RenderedHTMLCommon code.inline-code,
608
+ body[data-jp-theme-light="false"] .jp-RenderedHTMLCommon .jp-agent-message-content code.inline-code {
609
+ background: #1e3a5f !important;
610
+ color: #93c5fd !important;
611
+ border-color: #3b82f6 !important;
612
+ }
613
+
614
+ /* Markdown Elements in Message Content */
615
+ .jp-agent-message-content h1 {
616
+ font-size: 16px;
617
+ font-weight: 600;
618
+ color: #1a56db;
619
+ margin: 12px 0 8px 0;
620
+ padding-bottom: 6px;
621
+ border-bottom: 2px solid #e5e7eb;
622
+ }
623
+
624
+ .jp-agent-message-content h2 {
625
+ font-size: 14px;
626
+ font-weight: 600;
627
+ color: #1e40af;
628
+ margin: 10px 0 6px 0;
629
+ padding-bottom: 4px;
630
+ border-bottom: 1px solid #e5e7eb;
631
+ }
632
+
633
+ .jp-agent-message-content h3 {
634
+ font-size: 13px;
635
+ font-weight: 600;
636
+ color: #3730a3;
637
+ margin: 8px 0 4px 0;
638
+ }
639
+
640
+ .jp-agent-message-content strong {
641
+ font-weight: 600;
642
+ color: #111827;
643
+ }
644
+
645
+ .jp-agent-message-content em {
646
+ font-style: italic;
647
+ color: #6b7280;
648
+ }
649
+
650
+ .jp-agent-message-content ul {
651
+ margin: 8px 0;
652
+ padding-left: 20px;
653
+ list-style-position: inside;
654
+ overflow: hidden;
655
+ }
656
+
657
+ .jp-agent-message-content ol {
658
+ margin: 8px 0;
659
+ padding-left: 20px;
660
+ list-style-position: inside;
661
+ overflow: hidden;
662
+ }
663
+
664
+ .jp-agent-message-content li {
665
+ margin: 4px 0;
666
+ line-height: 1.6;
667
+ color: #374151;
668
+ text-indent: -8px;
669
+ padding-left: 8px;
670
+ }
671
+
672
+ .jp-agent-message-content li::marker {
673
+ color: #6366f1;
674
+ }
675
+
676
+ /* Links */
677
+ .jp-agent-message-content a {
678
+ color: #2563eb;
679
+ text-decoration: none;
680
+ border-bottom: 1px solid #93c5fd;
681
+ transition: all 0.15s ease;
682
+ }
683
+
684
+ .jp-agent-message-content a:hover {
685
+ color: #1d4ed8;
686
+ border-bottom-color: #2563eb;
687
+ background: #eff6ff;
688
+ }
689
+
690
+ /* Dark Theme Links */
691
+ body[data-jp-theme-light="false"] .jp-agent-message-content a {
692
+ color: #60a5fa;
693
+ border-bottom-color: #3b82f6;
694
+ }
695
+
696
+ body[data-jp-theme-light="false"] .jp-agent-message-content a:hover {
697
+ color: #93c5fd;
698
+ border-bottom-color: #60a5fa;
699
+ background: rgba(59, 130, 246, 0.1);
700
+ }
701
+
702
+ /* Markdown Table Styling */
703
+ .jp-agent-message-content .markdown-table {
704
+ width: auto;
705
+ min-width: 100%;
706
+ border-collapse: collapse;
707
+ margin: 12px 0;
708
+ font-size: 12px;
709
+ background: #ffffff;
710
+ border: 1px solid #e5e7eb;
711
+ border-radius: 6px;
712
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
713
+ display: table;
714
+ table-layout: auto;
715
+ }
716
+
717
+ /* Table wrapper for horizontal scroll */
718
+ .jp-agent-message-content .markdown-table-wrapper {
719
+ width: 100%;
720
+ overflow-x: auto;
721
+ margin: 12px 0;
722
+ }
723
+
724
+ .jp-agent-message-content .markdown-table thead {
725
+ background: linear-gradient(to bottom, #f8fafc, #f1f5f9);
726
+ }
727
+
728
+ .jp-agent-message-content .markdown-table th {
729
+ padding: 10px 14px;
730
+ font-weight: 600;
731
+ color: #1e40af;
732
+ border-bottom: 2px solid #c7d2fe;
733
+ text-transform: uppercase;
734
+ font-size: 11px;
735
+ letter-spacing: 0.5px;
736
+ white-space: nowrap;
737
+ }
738
+
739
+ .jp-agent-message-content .markdown-table td {
740
+ padding: 10px 14px;
741
+ color: #374151;
742
+ border-bottom: 1px solid #e5e7eb;
743
+ white-space: normal;
744
+ word-break: keep-all;
745
+ min-width: 80px;
746
+ }
747
+
748
+ .jp-agent-message-content .markdown-table tbody tr:last-child td {
749
+ border-bottom: none;
750
+ }
751
+
752
+ .jp-agent-message-content .markdown-table tbody tr:nth-child(even) {
753
+ background: #f9fafb;
754
+ }
755
+
756
+ .jp-agent-message-content .markdown-table tbody tr:hover {
757
+ background: #eef2ff;
758
+ }
759
+
760
+ /* Table inline styles */
761
+ .jp-agent-message-content .markdown-table strong {
762
+ color: #111827;
763
+ font-weight: 600;
764
+ }
765
+
766
+ .jp-agent-message-content .markdown-table code.inline-code {
767
+ background: #f3f4f6;
768
+ color: #374151;
769
+ padding: 1px 4px;
770
+ border-radius: 3px;
771
+ font-size: 11px;
772
+ border: 1px solid #d1d5db;
773
+ }
774
+
775
+ /* Dark Theme Table Adjustments */
776
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table {
777
+ background: #1f2937;
778
+ border-color: #374151;
779
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
780
+ }
781
+
782
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table thead {
783
+ background: linear-gradient(to bottom, #374151, #1f2937);
784
+ }
785
+
786
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table th {
787
+ color: #93c5fd;
788
+ border-bottom-color: #4b5563;
789
+ }
790
+
791
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table td {
792
+ color: #e5e7eb;
793
+ border-bottom-color: #374151;
794
+ }
795
+
796
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table tbody tr:nth-child(even) {
797
+ background: #111827;
798
+ }
799
+
800
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table tbody tr:hover {
801
+ background: #312e81;
802
+ }
803
+
804
+ body[data-jp-theme-light="false"] .jp-agent-message-content .markdown-table code.inline-code {
805
+ background: #374151;
806
+ color: #e5e7eb;
807
+ border-color: #4b5563;
808
+ }
809
+
810
+ /* Dark Theme Markdown Elements */
811
+ body[data-jp-theme-light="false"] .jp-agent-message-content h1 {
812
+ color: #60a5fa;
813
+ border-bottom-color: #374151;
814
+ }
815
+
816
+ body[data-jp-theme-light="false"] .jp-agent-message-content h2 {
817
+ color: #93c5fd;
818
+ border-bottom-color: #374151;
819
+ }
820
+
821
+ body[data-jp-theme-light="false"] .jp-agent-message-content h3 {
822
+ color: #a5b4fc;
823
+ }
824
+
825
+ body[data-jp-theme-light="false"] .jp-agent-message-content strong {
826
+ color: #f9fafb;
827
+ }
828
+
829
+ body[data-jp-theme-light="false"] .jp-agent-message-content em {
830
+ color: #9ca3af;
831
+ }
832
+
833
+ body[data-jp-theme-light="false"] .jp-agent-message-content li {
834
+ color: #e5e7eb;
835
+ }
836
+
837
+ body[data-jp-theme-light="false"] .jp-agent-message-content li::marker {
838
+ color: #818cf8;
839
+ }
840
+
841
+ /* ═══════════════════════════════════════════════════════════════════════════ */
842
+ /* Mode Selector - Cursor/Claude Style (Bottom Left) */
843
+ /* ═══════════════════════════════════════════════════════════════════════════ */
844
+
845
+ .jp-agent-mode-selector {
846
+ display: flex;
847
+ align-items: center;
848
+ margin-bottom: 8px;
849
+ }
850
+
851
+ .jp-agent-mode-select {
852
+ padding: 4px 8px;
853
+ border: 1px solid var(--jp-border-color2);
854
+ border-radius: 4px;
855
+ background: var(--jp-layout-color1);
856
+ color: var(--jp-ui-font-color1);
857
+ font-size: 12px;
858
+ font-weight: 500;
859
+ cursor: pointer;
860
+ outline: none;
861
+ transition: all 0.15s ease;
862
+ appearance: none;
863
+ -webkit-appearance: none;
864
+ -moz-appearance: none;
865
+ background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});
866
+ background-repeat: no-repeat;
867
+ background-position: right 6px center;
868
+ padding-right: 24px;
869
+ }
870
+
871
+ .jp-agent-mode-select:hover {
872
+ border-color: var(--jp-border-color1);
873
+ background-color: var(--jp-layout-color2);
874
+ }
875
+
876
+ .jp-agent-mode-select:focus {
877
+ border-color: var(--jp-brand-color1);
878
+ box-shadow: 0 0 0 1px var(--jp-brand-color1);
879
+ }
880
+
881
+ .jp-agent-mode-select option {
882
+ background: var(--jp-layout-color1);
883
+ color: var(--jp-ui-font-color1);
884
+ padding: 8px;
885
+ }
886
+
887
+ /* Dark Theme */
888
+ body[data-jp-theme-light="false"] .jp-agent-mode-select {
889
+ background-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});
890
+ }
891
+
892
+ /* ═══════════════════════════════════════════════════════════════════════════ */
893
+ /* Cursor AI Style: Unified Chat + Agent Execution */
894
+ /* ═══════════════════════════════════════════════════════════════════════════ */
895
+
896
+ /* Empty State Hint */
897
+ .jp-agent-empty-hint {
898
+ font-size: 12px;
899
+ color: var(--jp-ui-font-color3);
900
+ margin-top: 8px;
901
+ }
902
+
903
+ .jp-agent-empty-hint code {
904
+ background: var(--jp-layout-color2);
905
+ padding: 2px 6px;
906
+ border-radius: 3px;
907
+ font-family: 'Menlo', 'Monaco', monospace;
908
+ font-size: 11px;
909
+ }
910
+
911
+ /* Input Hint */
912
+ .jp-agent-input-hint {
913
+ font-size: 11px;
914
+ color: var(--jp-ui-font-color3);
915
+ margin-top: 6px;
916
+ padding-left: 2px;
917
+ }
918
+
919
+ .jp-agent-input-hint code {
920
+ background: var(--jp-layout-color3);
921
+ padding: 1px 4px;
922
+ border-radius: 2px;
923
+ font-family: 'Menlo', 'Monaco', monospace;
924
+ font-size: 10px;
925
+ margin: 0 2px;
926
+ }
927
+
928
+ /* Agent Execution Message Container */
929
+ .jp-agent-message-agent-execution {
930
+ align-self: stretch !important;
931
+ max-width: 100% !important;
932
+ background: transparent !important;
933
+ border: none !important;
934
+ padding: 0 !important;
935
+ }
936
+
937
+ .jp-agent-execution-message {
938
+ background: var(--jp-layout-color2);
939
+ border: 1px solid var(--jp-border-color2);
940
+ border-radius: 8px;
941
+ padding: 12px;
942
+ width: 100%;
943
+ }
944
+
945
+ /* Agent Execution Header */
946
+ .jp-agent-execution-header {
947
+ display: flex;
948
+ align-items: center;
949
+ gap: 8px;
950
+ margin-bottom: 10px;
951
+ }
952
+
953
+ .jp-agent-execution-badge {
954
+ display: flex;
955
+ align-items: center;
956
+ gap: 4px;
957
+ background: linear-gradient(135deg, #667eea, #764ba2);
958
+ color: white;
959
+ padding: 3px 8px;
960
+ border-radius: 4px;
961
+ font-size: 11px;
962
+ font-weight: 600;
963
+ }
964
+
965
+ .jp-agent-execution-badge svg {
966
+ width: 12px;
967
+ height: 12px;
968
+ }
969
+
970
+ .jp-agent-execution-request {
971
+ font-size: 13px;
972
+ color: var(--jp-ui-font-color1);
973
+ font-weight: 500;
974
+ flex: 1;
975
+ overflow: hidden;
976
+ text-overflow: ellipsis;
977
+ white-space: nowrap;
978
+ }
979
+
980
+ /* Agent Execution Status */
981
+ .jp-agent-execution-status {
982
+ display: flex;
983
+ align-items: center;
984
+ gap: 8px;
985
+ padding: 8px 10px;
986
+ border-radius: 6px;
987
+ margin-bottom: 10px;
988
+ background: var(--jp-layout-color1);
989
+ border: 1px solid var(--jp-border-color2);
990
+ }
991
+
992
+ .jp-agent-execution-status--planning,
993
+ .jp-agent-execution-status--executing,
994
+ .jp-agent-execution-status--tool_calling,
995
+ .jp-agent-execution-status--validating,
996
+ .jp-agent-execution-status--reflecting {
997
+ background: linear-gradient(90deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.05));
998
+ border-color: rgba(102, 126, 234, 0.3);
999
+ }
1000
+
1001
+ .jp-agent-execution-status--completed {
1002
+ background: linear-gradient(90deg, rgba(16, 185, 129, 0.1), rgba(16, 185, 129, 0.05));
1003
+ border-color: rgba(16, 185, 129, 0.3);
1004
+ }
1005
+
1006
+ .jp-agent-execution-status--failed {
1007
+ background: linear-gradient(90deg, rgba(239, 68, 68, 0.1), rgba(239, 68, 68, 0.05));
1008
+ border-color: rgba(239, 68, 68, 0.3);
1009
+ }
1010
+
1011
+ .jp-agent-execution-spinner {
1012
+ width: 14px;
1013
+ height: 14px;
1014
+ border: 2px solid var(--jp-border-color2);
1015
+ border-top-color: #667eea;
1016
+ border-radius: 50%;
1017
+ animation: jp-agent-spin 0.8s linear infinite;
1018
+ }
1019
+
1020
+ @keyframes jp-agent-spin {
1021
+ to { transform: rotate(360deg); }
1022
+ }
1023
+
1024
+ .jp-agent-execution-icon--success {
1025
+ width: 16px;
1026
+ height: 16px;
1027
+ color: #10b981;
1028
+ }
1029
+
1030
+ .jp-agent-execution-icon--error {
1031
+ width: 16px;
1032
+ height: 16px;
1033
+ color: #ef4444;
1034
+ }
1035
+
1036
+ .jp-agent-execution-status-text {
1037
+ font-size: 12px;
1038
+ color: var(--jp-ui-font-color1);
1039
+ flex: 1;
1040
+ }
1041
+
1042
+ .jp-agent-execution-confidence {
1043
+ font-size: 11px;
1044
+ color: var(--jp-ui-font-color2);
1045
+ background: var(--jp-layout-color2);
1046
+ padding: 2px 6px;
1047
+ border-radius: 4px;
1048
+ }
1049
+
1050
+ /* Agent Execution Plan */
1051
+ .jp-agent-execution-plan {
1052
+ background: var(--jp-layout-color1);
1053
+ border: 1px solid var(--jp-border-color2);
1054
+ border-radius: 6px;
1055
+ padding: 10px;
1056
+ margin-bottom: 10px;
1057
+ }
1058
+
1059
+ .jp-agent-execution-plan-header {
1060
+ display: flex;
1061
+ justify-content: space-between;
1062
+ align-items: center;
1063
+ font-size: 12px;
1064
+ font-weight: 500;
1065
+ color: var(--jp-ui-font-color1);
1066
+ margin-bottom: 8px;
1067
+ }
1068
+
1069
+ .jp-agent-execution-plan-progress {
1070
+ font-size: 11px;
1071
+ color: var(--jp-ui-font-color2);
1072
+ background: var(--jp-layout-color2);
1073
+ padding: 2px 6px;
1074
+ border-radius: 4px;
1075
+ }
1076
+
1077
+ /* Progress Bar */
1078
+ .jp-agent-execution-progress-bar {
1079
+ height: 4px;
1080
+ background: var(--jp-layout-color3);
1081
+ border-radius: 2px;
1082
+ margin-bottom: 10px;
1083
+ overflow: hidden;
1084
+ }
1085
+
1086
+ .jp-agent-execution-progress-fill {
1087
+ height: 100%;
1088
+ background: linear-gradient(90deg, #667eea, #764ba2);
1089
+ border-radius: 2px;
1090
+ transition: width 0.3s ease;
1091
+ }
1092
+
1093
+ /* Execution Steps */
1094
+ .jp-agent-execution-steps {
1095
+ display: flex;
1096
+ flex-direction: column;
1097
+ gap: 6px;
1098
+ }
1099
+
1100
+ .jp-agent-execution-step {
1101
+ display: flex;
1102
+ align-items: flex-start;
1103
+ gap: 8px;
1104
+ padding: 6px 8px;
1105
+ border-radius: 4px;
1106
+ background: var(--jp-layout-color2);
1107
+ border: 1px solid var(--jp-border-color3);
1108
+ transition: all 0.2s ease;
1109
+ }
1110
+
1111
+ .jp-agent-execution-step--current {
1112
+ background: linear-gradient(90deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.05));
1113
+ border-color: rgba(102, 126, 234, 0.3);
1114
+ }
1115
+
1116
+ .jp-agent-execution-step--completed {
1117
+ background: rgba(16, 185, 129, 0.05);
1118
+ border-color: rgba(16, 185, 129, 0.2);
1119
+ }
1120
+
1121
+ .jp-agent-execution-step--failed {
1122
+ background: rgba(239, 68, 68, 0.05);
1123
+ border-color: rgba(239, 68, 68, 0.2);
1124
+ }
1125
+
1126
+ .jp-agent-execution-step-indicator {
1127
+ width: 20px;
1128
+ height: 20px;
1129
+ display: flex;
1130
+ align-items: center;
1131
+ justify-content: center;
1132
+ flex-shrink: 0;
1133
+ font-size: 11px;
1134
+ font-weight: 500;
1135
+ color: var(--jp-ui-font-color2);
1136
+ }
1137
+
1138
+ .jp-agent-execution-step--completed .jp-agent-execution-step-indicator {
1139
+ color: #10b981;
1140
+ }
1141
+
1142
+ .jp-agent-execution-step--completed .jp-agent-execution-step-indicator svg {
1143
+ width: 14px;
1144
+ height: 14px;
1145
+ }
1146
+
1147
+ .jp-agent-execution-step--failed .jp-agent-execution-step-indicator {
1148
+ color: #ef4444;
1149
+ }
1150
+
1151
+ .jp-agent-execution-step--failed .jp-agent-execution-step-indicator svg {
1152
+ width: 14px;
1153
+ height: 14px;
1154
+ }
1155
+
1156
+ .jp-agent-execution-step-spinner {
1157
+ width: 12px;
1158
+ height: 12px;
1159
+ border: 2px solid var(--jp-border-color2);
1160
+ border-top-color: #667eea;
1161
+ border-radius: 50%;
1162
+ animation: jp-agent-spin 0.8s linear infinite;
1163
+ }
1164
+
1165
+ .jp-agent-execution-step-content {
1166
+ flex: 1;
1167
+ min-width: 0;
1168
+ }
1169
+
1170
+ .jp-agent-execution-step-desc {
1171
+ font-size: 12px;
1172
+ color: var(--jp-ui-font-color1);
1173
+ display: block;
1174
+ margin-bottom: 4px;
1175
+ }
1176
+
1177
+ .jp-agent-execution-step-desc--done {
1178
+ color: var(--jp-ui-font-color2);
1179
+ }
1180
+
1181
+ .jp-agent-execution-step-tools {
1182
+ display: flex;
1183
+ flex-wrap: wrap;
1184
+ gap: 4px;
1185
+ }
1186
+
1187
+ .jp-agent-execution-tool-tag {
1188
+ font-size: 10px;
1189
+ padding: 1px 5px;
1190
+ border-radius: 3px;
1191
+ background: var(--jp-layout-color3);
1192
+ color: var(--jp-ui-font-color2);
1193
+ }
1194
+
1195
+ /* Execution Result */
1196
+ .jp-agent-execution-result {
1197
+ padding: 10px;
1198
+ border-radius: 6px;
1199
+ border: 1px solid var(--jp-border-color2);
1200
+ }
1201
+
1202
+ .jp-agent-execution-result--success {
1203
+ background: rgba(16, 185, 129, 0.05);
1204
+ border-color: rgba(16, 185, 129, 0.2);
1205
+ }
1206
+
1207
+ .jp-agent-execution-result--error {
1208
+ background: rgba(239, 68, 68, 0.05);
1209
+ border-color: rgba(239, 68, 68, 0.2);
1210
+ }
1211
+
1212
+ .jp-agent-execution-result-message {
1213
+ font-size: 13px;
1214
+ color: var(--jp-ui-font-color1);
1215
+ margin: 0 0 8px 0;
1216
+ line-height: 1.5;
1217
+ }
1218
+
1219
+ .jp-agent-execution-result-message ul,
1220
+ .jp-agent-execution-result-message ol {
1221
+ padding-left: 1.5em;
1222
+ margin: 0.5em 0;
1223
+ }
1224
+
1225
+ .jp-agent-execution-result-message li {
1226
+ margin: 0.25em 0;
1227
+ }
1228
+
1229
+ .jp-agent-execution-result-error {
1230
+ font-size: 12px;
1231
+ color: #ef4444;
1232
+ margin: 0 0 8px 0;
1233
+ }
1234
+
1235
+ .jp-agent-execution-result-stats {
1236
+ display: flex;
1237
+ gap: 12px;
1238
+ font-size: 11px;
1239
+ color: var(--jp-ui-font-color2);
1240
+ }
1241
+
1242
+ .jp-agent-execution-result-stats span {
1243
+ display: flex;
1244
+ align-items: center;
1245
+ gap: 4px;
1246
+ }
1247
+
1248
+ /* Dark Theme Adjustments */
1249
+ body[data-jp-theme-light="false"] .jp-agent-execution-badge {
1250
+ background: linear-gradient(135deg, #5a67d8, #6b46c1);
1251
+ }
1252
+
1253
+ body[data-jp-theme-light="false"] .jp-agent-empty-hint code,
1254
+ body[data-jp-theme-light="false"] .jp-agent-input-hint code {
1255
+ background: var(--jp-layout-color3);
1256
+ }
1257
+
1258
+ /* ═══════════════════════════════════════════════════════════════════════════ */
1259
+ /* Cursor AI Style: Mode Toggle Bar */
1260
+ /* ═══════════════════════════════════════════════════════════════════════════ */
1261
+
1262
+ /* Mode Bar Container */
1263
+ .jp-agent-mode-bar {
1264
+ display: flex;
1265
+ align-items: center;
1266
+ justify-content: space-between;
1267
+ padding: 6px 2px;
1268
+ margin-top: 4px;
1269
+ }
1270
+
1271
+ /* Mode Toggle Container */
1272
+ .jp-agent-mode-toggle-container {
1273
+ position: relative;
1274
+ }
1275
+
1276
+ /* Mode Toggle Button - Cursor AI Style */
1277
+ .jp-agent-mode-toggle {
1278
+ display: flex;
1279
+ align-items: center;
1280
+ gap: 6px;
1281
+ padding: 4px 10px;
1282
+ border: 1px solid var(--jp-border-color2);
1283
+ border-radius: 6px;
1284
+ background: var(--jp-layout-color1);
1285
+ color: var(--jp-ui-font-color2);
1286
+ font-size: 12px;
1287
+ font-weight: 500;
1288
+ cursor: pointer;
1289
+ transition: all 0.15s ease;
1290
+ }
1291
+
1292
+ .jp-agent-mode-toggle:hover {
1293
+ background: var(--jp-layout-color2);
1294
+ border-color: var(--jp-border-color1);
1295
+ color: var(--jp-ui-font-color1);
1296
+ }
1297
+
1298
+ /* Active (Agent Mode) */
1299
+ .jp-agent-mode-toggle--active {
1300
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
1301
+ border-color: #6366f1;
1302
+ color: white;
1303
+ }
1304
+
1305
+ .jp-agent-mode-toggle--active:hover {
1306
+ background: linear-gradient(135deg, #5558e8 0%, #7c4ddb 100%);
1307
+ border-color: #5558e8;
1308
+ color: white;
1309
+ }
1310
+
1311
+ /* Mode Icon */
1312
+ .jp-agent-mode-icon {
1313
+ flex-shrink: 0;
1314
+ }
1315
+
1316
+ /* Mode Label */
1317
+ .jp-agent-mode-label {
1318
+ min-width: 40px;
1319
+ }
1320
+
1321
+ /* Chevron */
1322
+ .jp-agent-mode-chevron {
1323
+ flex-shrink: 0;
1324
+ opacity: 0.6;
1325
+ transition: transform 0.15s ease;
1326
+ }
1327
+
1328
+ .jp-agent-mode-toggle:hover .jp-agent-mode-chevron {
1329
+ opacity: 1;
1330
+ }
1331
+
1332
+ /* Mode Dropdown */
1333
+ .jp-agent-mode-dropdown {
1334
+ position: absolute;
1335
+ bottom: 100%;
1336
+ left: 0;
1337
+ margin-bottom: 4px;
1338
+ background: var(--jp-layout-color1);
1339
+ border: 1px solid var(--jp-border-color2);
1340
+ border-radius: 8px;
1341
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1342
+ overflow: hidden;
1343
+ z-index: 1000;
1344
+ min-width: 180px;
1345
+ }
1346
+
1347
+ /* Mode Option */
1348
+ .jp-agent-mode-option {
1349
+ display: flex;
1350
+ align-items: center;
1351
+ gap: 10px;
1352
+ width: 100%;
1353
+ padding: 10px 12px;
1354
+ border: none;
1355
+ background: transparent;
1356
+ color: var(--jp-ui-font-color1);
1357
+ font-size: 13px;
1358
+ text-align: left;
1359
+ cursor: pointer;
1360
+ transition: background 0.1s ease;
1361
+ }
1362
+
1363
+ .jp-agent-mode-option:hover {
1364
+ background: var(--jp-layout-color2);
1365
+ }
1366
+
1367
+ .jp-agent-mode-option--selected {
1368
+ background: var(--jp-layout-color2);
1369
+ }
1370
+
1371
+ .jp-agent-mode-option svg {
1372
+ flex-shrink: 0;
1373
+ color: var(--jp-ui-font-color2);
1374
+ }
1375
+
1376
+ .jp-agent-mode-option--selected svg {
1377
+ color: #6366f1;
1378
+ }
1379
+
1380
+ /* Mode Shortcut */
1381
+ .jp-agent-mode-shortcut {
1382
+ margin-left: auto;
1383
+ font-size: 11px;
1384
+ color: var(--jp-ui-font-color3);
1385
+ }
1386
+
1387
+ /* Mode Hints */
1388
+ .jp-agent-mode-hints {
1389
+ display: flex;
1390
+ align-items: center;
1391
+ gap: 8px;
1392
+ }
1393
+
1394
+ .jp-agent-mode-hint {
1395
+ font-size: 11px;
1396
+ color: var(--jp-ui-font-color3);
1397
+ padding: 2px 6px;
1398
+ background: var(--jp-layout-color2);
1399
+ border-radius: 4px;
1400
+ }
1401
+
1402
+ /* Agent Mode Input Style */
1403
+ .jp-agent-input--agent-mode {
1404
+ border-color: #6366f1 !important;
1405
+ box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.2) !important;
1406
+ }
1407
+
1408
+ .jp-agent-input--agent-mode:focus {
1409
+ border-color: #6366f1 !important;
1410
+ box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.3) !important;
1411
+ }
1412
+
1413
+ /* Dark Theme */
1414
+ body[data-jp-theme-light="false"] .jp-agent-mode-toggle {
1415
+ background: var(--jp-layout-color2);
1416
+ }
1417
+
1418
+ body[data-jp-theme-light="false"] .jp-agent-mode-toggle--active {
1419
+ background: linear-gradient(135deg, #5a67d8 0%, #7c3aed 100%);
1420
+ }
1421
+
1422
+ body[data-jp-theme-light="false"] .jp-agent-mode-dropdown {
1423
+ background: var(--jp-layout-color2);
1424
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
1425
+ }
1426
+
1427
+ body[data-jp-theme-light="false"] .jp-agent-mode-option:hover {
1428
+ background: var(--jp-layout-color3);
1429
+ }
1430
+
1431
+ body[data-jp-theme-light="false"] .jp-agent-mode-option--selected {
1432
+ background: var(--jp-layout-color3);
1433
+ }
1434
+
1435
+ /* ═══════════════════════════════════════════════════════════════════════════
1436
+ File Fixes UI - Python 파일 수정 적용 버튼
1437
+ ═══════════════════════════════════════════════════════════════════════════ */
1438
+
1439
+ .jp-agent-file-fixes {
1440
+ margin: 12px;
1441
+ padding: 12px;
1442
+ background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
1443
+ border: 1px solid #86efac;
1444
+ border-radius: 8px;
1445
+ box-shadow: 0 2px 4px rgba(34, 197, 94, 0.1);
1446
+ }
1447
+
1448
+ .jp-agent-file-fixes-header {
1449
+ display: flex;
1450
+ align-items: center;
1451
+ gap: 8px;
1452
+ margin-bottom: 12px;
1453
+ color: #166534;
1454
+ font-weight: 600;
1455
+ font-size: 13px;
1456
+ }
1457
+
1458
+ .jp-agent-file-fixes-header svg {
1459
+ color: #22c55e;
1460
+ }
1461
+
1462
+ .jp-agent-file-fixes-list {
1463
+ display: flex;
1464
+ flex-direction: column;
1465
+ gap: 8px;
1466
+ }
1467
+
1468
+ .jp-agent-file-fix-item {
1469
+ display: flex;
1470
+ justify-content: space-between;
1471
+ align-items: center;
1472
+ padding: 10px 12px;
1473
+ background: white;
1474
+ border: 1px solid #bbf7d0;
1475
+ border-radius: 6px;
1476
+ transition: all 0.2s ease;
1477
+ }
1478
+
1479
+ .jp-agent-file-fix-item:hover {
1480
+ border-color: #22c55e;
1481
+ box-shadow: 0 2px 8px rgba(34, 197, 94, 0.15);
1482
+ }
1483
+
1484
+ .jp-agent-file-fix-info {
1485
+ display: flex;
1486
+ align-items: center;
1487
+ gap: 8px;
1488
+ color: #374151;
1489
+ font-size: 13px;
1490
+ }
1491
+
1492
+ .jp-agent-file-fix-info svg {
1493
+ color: #6b7280;
1494
+ flex-shrink: 0;
1495
+ }
1496
+
1497
+ .jp-agent-file-fix-path {
1498
+ font-family: 'Menlo', 'Monaco', 'Courier New', monospace;
1499
+ font-size: 12px;
1500
+ color: #1f2937;
1501
+ word-break: break-all;
1502
+ }
1503
+
1504
+ .jp-agent-file-fix-apply {
1505
+ padding: 6px 14px;
1506
+ background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
1507
+ color: white;
1508
+ border: none;
1509
+ border-radius: 4px;
1510
+ font-size: 12px;
1511
+ font-weight: 600;
1512
+ cursor: pointer;
1513
+ transition: all 0.2s ease;
1514
+ white-space: nowrap;
1515
+ }
1516
+
1517
+ .jp-agent-file-fix-apply:hover {
1518
+ background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
1519
+ transform: translateY(-1px);
1520
+ box-shadow: 0 2px 6px rgba(34, 197, 94, 0.3);
1521
+ }
1522
+
1523
+ .jp-agent-file-fix-apply:active {
1524
+ transform: translateY(0);
1525
+ }
1526
+
1527
+ .jp-agent-file-fixes-dismiss {
1528
+ margin-top: 10px;
1529
+ padding: 6px 12px;
1530
+ background: transparent;
1531
+ color: #6b7280;
1532
+ border: 1px solid #d1d5db;
1533
+ border-radius: 4px;
1534
+ font-size: 12px;
1535
+ cursor: pointer;
1536
+ transition: all 0.2s ease;
1537
+ width: 100%;
1538
+ }
1539
+
1540
+ .jp-agent-file-fixes-dismiss:hover {
1541
+ background: #f3f4f6;
1542
+ color: #374151;
1543
+ border-color: #9ca3af;
1544
+ }
1545
+
1546
+ /* Dark Theme - File Fixes */
1547
+ body[data-jp-theme-light="false"] .jp-agent-file-fixes {
1548
+ background: linear-gradient(135deg, #064e3b 0%, #065f46 100%);
1549
+ border-color: #10b981;
1550
+ }
1551
+
1552
+ body[data-jp-theme-light="false"] .jp-agent-file-fixes-header {
1553
+ color: #a7f3d0;
1554
+ }
1555
+
1556
+ body[data-jp-theme-light="false"] .jp-agent-file-fix-item {
1557
+ background: var(--jp-layout-color2);
1558
+ border-color: #047857;
1559
+ }
1560
+
1561
+ body[data-jp-theme-light="false"] .jp-agent-file-fix-item:hover {
1562
+ border-color: #10b981;
1563
+ }
1564
+
1565
+ body[data-jp-theme-light="false"] .jp-agent-file-fix-info {
1566
+ color: #d1d5db;
1567
+ }
1568
+
1569
+ body[data-jp-theme-light="false"] .jp-agent-file-fix-path {
1570
+ color: #f3f4f6;
1571
+ }
1572
+
1573
+ body[data-jp-theme-light="false"] .jp-agent-file-fixes-dismiss {
1574
+ color: #9ca3af;
1575
+ border-color: #4b5563;
1576
+ }
1577
+
1578
+ body[data-jp-theme-light="false"] .jp-agent-file-fixes-dismiss:hover {
1579
+ background: var(--jp-layout-color3);
1580
+ color: #d1d5db;
1581
+ }
1582
+
1583
+ /* ═══════════════════════════════════════════════════════════════════════════
1584
+ Console Error Notification - 콘솔 에러 자동 감지 알림
1585
+ ═══════════════════════════════════════════════════════════════════════════ */
1586
+
1587
+ .jp-agent-console-error-notification {
1588
+ margin: 12px;
1589
+ padding: 12px;
1590
+ background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);
1591
+ border: 1px solid #f87171;
1592
+ border-radius: 8px;
1593
+ box-shadow: 0 2px 8px rgba(239, 68, 68, 0.2);
1594
+ animation: consoleErrorSlideIn 0.3s ease-out;
1595
+ }
1596
+
1597
+ @keyframes consoleErrorSlideIn {
1598
+ from {
1599
+ opacity: 0;
1600
+ transform: translateY(-10px);
1601
+ }
1602
+ to {
1603
+ opacity: 1;
1604
+ transform: translateY(0);
1605
+ }
1606
+ }
1607
+
1608
+ .jp-agent-console-error-header {
1609
+ display: flex;
1610
+ align-items: center;
1611
+ gap: 8px;
1612
+ margin-bottom: 10px;
1613
+ color: #991b1b;
1614
+ font-weight: 600;
1615
+ font-size: 13px;
1616
+ }
1617
+
1618
+ .jp-agent-console-error-header svg {
1619
+ color: #dc2626;
1620
+ flex-shrink: 0;
1621
+ }
1622
+
1623
+ .jp-agent-console-error-preview {
1624
+ padding: 10px;
1625
+ background: rgba(255, 255, 255, 0.7);
1626
+ border: 1px solid #fca5a5;
1627
+ border-radius: 4px;
1628
+ font-family: 'Menlo', 'Monaco', 'Courier New', monospace;
1629
+ font-size: 11px;
1630
+ color: #7f1d1d;
1631
+ line-height: 1.4;
1632
+ max-height: 100px;
1633
+ overflow-y: auto;
1634
+ white-space: pre-wrap;
1635
+ word-break: break-word;
1636
+ }
1637
+
1638
+ .jp-agent-console-error-actions {
1639
+ display: flex;
1640
+ gap: 8px;
1641
+ margin-top: 12px;
1642
+ }
1643
+
1644
+ .jp-agent-console-error-fix-btn {
1645
+ flex: 1;
1646
+ padding: 8px 16px;
1647
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
1648
+ color: white;
1649
+ border: none;
1650
+ border-radius: 6px;
1651
+ font-size: 13px;
1652
+ font-weight: 600;
1653
+ cursor: pointer;
1654
+ transition: all 0.2s ease;
1655
+ }
1656
+
1657
+ .jp-agent-console-error-fix-btn:hover {
1658
+ background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
1659
+ transform: translateY(-1px);
1660
+ box-shadow: 0 2px 8px rgba(220, 38, 38, 0.3);
1661
+ }
1662
+
1663
+ .jp-agent-console-error-dismiss-btn {
1664
+ padding: 8px 16px;
1665
+ background: transparent;
1666
+ color: #6b7280;
1667
+ border: 1px solid #d1d5db;
1668
+ border-radius: 6px;
1669
+ font-size: 13px;
1670
+ cursor: pointer;
1671
+ transition: all 0.2s ease;
1672
+ }
1673
+
1674
+ .jp-agent-console-error-dismiss-btn:hover {
1675
+ background: #f3f4f6;
1676
+ color: #374151;
1677
+ }
1678
+
1679
+ /* Dark theme for Console Error Notification */
1680
+ body[data-jp-theme-light="false"] .jp-agent-console-error-notification {
1681
+ background: linear-gradient(135deg, #450a0a 0%, #7f1d1d 100%);
1682
+ border-color: #dc2626;
1683
+ }
1684
+
1685
+ body[data-jp-theme-light="false"] .jp-agent-console-error-header {
1686
+ color: #fecaca;
1687
+ }
1688
+
1689
+ body[data-jp-theme-light="false"] .jp-agent-console-error-header svg {
1690
+ color: #f87171;
1691
+ }
1692
+
1693
+ body[data-jp-theme-light="false"] .jp-agent-console-error-preview {
1694
+ background: rgba(0, 0, 0, 0.3);
1695
+ border-color: #991b1b;
1696
+ color: #fca5a5;
1697
+ }
1698
+
1699
+ body[data-jp-theme-light="false"] .jp-agent-console-error-dismiss-btn {
1700
+ color: #9ca3af;
1701
+ border-color: #4b5563;
1702
+ }
1703
+
1704
+ body[data-jp-theme-light="false"] .jp-agent-console-error-dismiss-btn:hover {
1705
+ background: var(--jp-layout-color3);
1706
+ color: #d1d5db;
1707
+ }
1708
+ `, "",{"version":3,"sources":["webpack://./frontend/styles/agent-panel.css"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Panel Styling - Sidebar Chat Interface\n */\n\n/* Panel Container */\n.jp-agent-widget {\n display: flex;\n flex-direction: column;\n min-width: 600px;\n height: 100%;\n background: var(--jp-layout-color1);\n}\n\n.jp-agent-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 0;\n}\n\n/* Header */\n.jp-agent-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid var(--jp-border-color2);\n background: var(--jp-layout-color2);\n}\n\n.jp-agent-header h2 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.jp-agent-logo {\n height: 24px;\n width: auto;\n}\n\n/* Header Logo (SVG inline) */\n.jp-agent-header-logo {\n height: 40px;\n width: auto;\n display: flex;\n align-items: center;\n}\n\n.jp-agent-header-logo svg {\n height: 40px;\n width: auto;\n}\n\n.jp-agent-header-buttons {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.jp-agent-settings-button-icon {\n padding: 4px 8px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: transparent;\n color: var(--jp-ui-font-color2);\n font-size: 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.jp-agent-settings-button-icon svg {\n display: block;\n}\n\n.jp-agent-settings-button-icon:hover {\n background: var(--jp-layout-color3);\n color: var(--jp-ui-font-color1);\n}\n\n.jp-agent-clear-button {\n padding: 4px 8px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: transparent;\n color: var(--jp-ui-font-color2);\n font-size: 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.jp-agent-clear-button svg {\n display: block;\n}\n\n.jp-agent-clear-button:hover {\n background: var(--jp-layout-color3);\n color: var(--jp-ui-font-color1);\n}\n\n/* Messages Container */\n.jp-agent-messages {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Empty State */\n.jp-agent-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 32px 16px;\n color: var(--jp-ui-font-color2);\n}\n\n.jp-agent-empty-state p {\n margin: 8px 0;\n font-size: 14px;\n}\n\n.jp-agent-suggestions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 16px;\n width: 100%;\n max-width: 240px;\n}\n\n.jp-agent-suggestions button {\n padding: 8px 12px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n font-size: 13px;\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: left;\n}\n\n.jp-agent-suggestions button:hover {\n background: var(--jp-layout-color3);\n border-color: var(--jp-brand-color1);\n}\n\n/* Message */\n.jp-agent-message {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 12px;\n border-radius: 8px;\n max-width: 90%;\n}\n\n.jp-agent-message-user {\n align-self: flex-end;\n background: var(--jp-brand-color1);\n color: white;\n}\n\n.jp-agent-message-assistant {\n align-self: flex-start;\n background: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color2);\n}\n\n.jp-agent-message-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n}\n\n.jp-agent-message-role {\n font-size: 11px;\n font-weight: 600;\n opacity: 0.8;\n}\n\n.jp-agent-message-time {\n font-size: 10px;\n opacity: 0.6;\n}\n\n.jp-agent-message-content {\n font-size: 13px;\n line-height: 1.5;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n overflow-x: auto;\n max-width: 100%;\n}\n\n.jp-agent-message-user .jp-agent-message-content {\n color: white;\n}\n\n/* Loading Animation */\n.jp-agent-loading {\n display: flex;\n gap: 4px;\n padding: 4px 0;\n}\n\n.jp-agent-loading-dot {\n animation: jp-agent-loading-bounce 1.4s infinite ease-in-out both;\n font-size: 20px;\n line-height: 1;\n}\n\n.jp-agent-loading-dot:nth-child(1) {\n animation-delay: -0.32s;\n}\n\n.jp-agent-loading-dot:nth-child(2) {\n animation-delay: -0.16s;\n}\n\n@keyframes jp-agent-loading-bounce {\n 0%, 80%, 100% {\n opacity: 0.3;\n transform: translateY(0);\n }\n 40% {\n opacity: 1;\n transform: translateY(-4px);\n }\n}\n\n/* Streaming Cursor Animation */\n.jp-agent-message-content.streaming::after {\n content: '|';\n animation: jp-agent-cursor-blink 0.7s infinite;\n font-weight: bold;\n color: var(--jp-brand-color1);\n}\n\n@keyframes jp-agent-cursor-blink {\n 0%, 50% {\n opacity: 1;\n }\n 51%, 100% {\n opacity: 0;\n }\n}\n\n/* Input Container */\n.jp-agent-input-container {\n padding: 12px 16px;\n border-top: 1px solid var(--jp-border-color2);\n background: var(--jp-layout-color2);\n}\n\n.jp-agent-input-wrapper {\n display: flex;\n gap: 8px;\n align-items: flex-end;\n}\n\n.jp-agent-input {\n flex: 1;\n min-height: 60px;\n max-height: 150px;\n padding: 8px 12px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n font-size: 13px;\n resize: vertical;\n outline: none;\n transition: border-color 0.2s ease;\n}\n\n.jp-agent-input:focus {\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 1px var(--jp-brand-color1);\n}\n\n.jp-agent-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.jp-agent-input::placeholder {\n color: var(--jp-ui-font-color3);\n}\n\n.jp-agent-send-button {\n padding: 10px 24px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.jp-agent-send-button:hover:not(:disabled) {\n background: var(--jp-layout-color3);\n border-color: var(--jp-border-color1);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.jp-agent-send-button:active:not(:disabled) {\n background: var(--jp-layout-color3);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.jp-agent-send-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n box-shadow: none;\n}\n\n/* Icon */\n.jp-agent-icon {\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNOCAyQzQuNjkgMiAyIDQuNjkgMiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwLjVjLTIuNDggMC00LjUtMi4wMi00LjUtNC41czIuMDItNC41IDQuNS00LjUgNC41IDIuMDIgNC41IDQuNS0yLjAyIDQuNS00LjUgNC41eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjciIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iMSIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTUuNSAxMGMwLjUtMC44IDEuNS0xLjMgMi41LTEuMyAxIDAgMiAwLjUgMi41IDEuMyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==');\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n\n/* Scrollbar Styling */\n.jp-agent-messages::-webkit-scrollbar {\n width: 8px;\n}\n\n.jp-agent-messages::-webkit-scrollbar-track {\n background: var(--jp-layout-color1);\n}\n\n.jp-agent-messages::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 4px;\n}\n\n.jp-agent-messages::-webkit-scrollbar-thumb:hover {\n background: var(--jp-border-color1);\n}\n\n/* Dark Theme Adjustments */\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-assistant {\n background: var(--jp-layout-color0);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-input {\n background: var(--jp-layout-color0);\n}\n\n/* Code Block Styling - Always Dark Theme */\n.jp-agent-message-content .code-block-container,\n.jp-agent-message-content .jp-RenderedHTMLCommon .code-block-container,\n.jp-RenderedHTMLCommon .jp-agent-message-content .code-block-container {\n margin: 12px 0 !important;\n border-radius: 6px !important;\n overflow: hidden !important;\n background: #1e1e1e !important;\n border: 1px solid #333 !important;\n}\n\n.jp-agent-message-content .code-block-header,\n.jp-agent-message-content .jp-RenderedHTMLCommon .code-block-header,\n.jp-RenderedHTMLCommon .jp-agent-message-content .code-block-header {\n display: flex !important;\n justify-content: space-between !important;\n align-items: center !important;\n padding: 8px 12px !important;\n background: #2d2d2d !important;\n border-bottom: 1px solid #3d3d3d !important;\n}\n\n.jp-agent-message-content .code-block-language,\n.jp-agent-message-content .jp-RenderedHTMLCommon .code-block-language,\n.jp-RenderedHTMLCommon .jp-agent-message-content .code-block-language {\n font-size: 11px !important;\n font-weight: 600 !important;\n color: #9cdcfe !important;\n text-transform: uppercase !important;\n letter-spacing: 0.5px !important;\n}\n\n.jp-agent-message-content .code-block-actions {\n display: flex;\n gap: 6px;\n}\n\n.jp-agent-message-content .code-block-apply {\n background: #667eea !important;\n color: white !important;\n border: 1px solid #667eea !important;\n border-radius: 3px !important;\n padding: 4px 10px !important;\n font-size: 11px !important;\n cursor: pointer !important;\n transition: all 0.2s ease !important;\n font-weight: 500 !important;\n}\n\n.jp-agent-message-content .code-block-apply:hover {\n background: #5568d3 !important;\n border-color: #5568d3 !important;\n}\n\n.jp-agent-message-content .code-block-apply:active {\n background: #4a5bbd !important;\n}\n\n.jp-agent-message-content .code-block-apply:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n}\n\n.jp-agent-message-content .code-block-copy {\n background: transparent !important;\n color: #858585 !important;\n border: 1px solid #4d4d4d !important;\n border-radius: 3px !important;\n padding: 4px 10px !important;\n font-size: 11px !important;\n cursor: pointer !important;\n transition: all 0.2s ease !important;\n font-weight: 500 !important;\n}\n\n.jp-agent-message-content .code-block-copy:hover {\n background: #3d3d3d !important;\n color: #d4d4d4 !important;\n border-color: #5d5d5d !important;\n}\n\n.jp-agent-message-content .code-block-copy:active {\n background: #4d4d4d !important;\n}\n\n.jp-agent-message-content .code-block,\n.jp-agent-message-content pre.code-block,\n.jp-agent-message-content .jp-RenderedHTMLCommon .code-block,\n.jp-agent-message-content .jp-RenderedHTMLCommon pre.code-block,\n.jp-RenderedHTMLCommon .jp-agent-message-content .code-block,\n.jp-RenderedHTMLCommon .jp-agent-message-content pre.code-block {\n margin: 0 !important;\n padding: 14px !important;\n background: #1e1e1e !important;\n overflow-x: auto !important;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace !important;\n font-size: 12px !important;\n line-height: 1.6 !important;\n}\n\n.jp-agent-message-content .code-block code,\n.jp-agent-message-content pre.code-block code,\n.jp-agent-message-content .jp-RenderedHTMLCommon .code-block code,\n.jp-agent-message-content .jp-RenderedHTMLCommon pre.code-block code,\n.jp-RenderedHTMLCommon .jp-agent-message-content .code-block code,\n.jp-RenderedHTMLCommon .jp-agent-message-content pre.code-block code {\n color: #d4d4d4 !important;\n background: transparent !important;\n padding: 0 !important;\n border: none !important;\n display: block !important;\n white-space: pre !important;\n}\n\n/* Inline Code Styling - High specificity to override JupyterLab defaults */\n.jp-agent-message-content .inline-code,\n.jp-agent-message-content code.inline-code,\n.jp-agent-message-content .jp-RenderedHTMLCommon code.inline-code,\n.jp-RenderedHTMLCommon .jp-agent-message-content code.inline-code {\n background: #e8f4fd !important;\n color: #1e40af !important;\n padding: 2px 6px !important;\n border-radius: 4px !important;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace !important;\n font-size: 12px !important;\n border: 1px solid #93c5fd !important;\n font-weight: 500 !important;\n}\n\n/* Dark Theme Inline Code */\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .inline-code,\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content code.inline-code,\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .jp-RenderedHTMLCommon code.inline-code,\nbody[data-jp-theme-light=\"false\"] .jp-RenderedHTMLCommon .jp-agent-message-content code.inline-code {\n background: #1e3a5f !important;\n color: #93c5fd !important;\n border-color: #3b82f6 !important;\n}\n\n/* Markdown Elements in Message Content */\n.jp-agent-message-content h1 {\n font-size: 16px;\n font-weight: 600;\n color: #1a56db;\n margin: 12px 0 8px 0;\n padding-bottom: 6px;\n border-bottom: 2px solid #e5e7eb;\n}\n\n.jp-agent-message-content h2 {\n font-size: 14px;\n font-weight: 600;\n color: #1e40af;\n margin: 10px 0 6px 0;\n padding-bottom: 4px;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.jp-agent-message-content h3 {\n font-size: 13px;\n font-weight: 600;\n color: #3730a3;\n margin: 8px 0 4px 0;\n}\n\n.jp-agent-message-content strong {\n font-weight: 600;\n color: #111827;\n}\n\n.jp-agent-message-content em {\n font-style: italic;\n color: #6b7280;\n}\n\n.jp-agent-message-content ul {\n margin: 8px 0;\n padding-left: 20px;\n list-style-position: inside;\n overflow: hidden;\n}\n\n.jp-agent-message-content ol {\n margin: 8px 0;\n padding-left: 20px;\n list-style-position: inside;\n overflow: hidden;\n}\n\n.jp-agent-message-content li {\n margin: 4px 0;\n line-height: 1.6;\n color: #374151;\n text-indent: -8px;\n padding-left: 8px;\n}\n\n.jp-agent-message-content li::marker {\n color: #6366f1;\n}\n\n/* Links */\n.jp-agent-message-content a {\n color: #2563eb;\n text-decoration: none;\n border-bottom: 1px solid #93c5fd;\n transition: all 0.15s ease;\n}\n\n.jp-agent-message-content a:hover {\n color: #1d4ed8;\n border-bottom-color: #2563eb;\n background: #eff6ff;\n}\n\n/* Dark Theme Links */\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content a {\n color: #60a5fa;\n border-bottom-color: #3b82f6;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content a:hover {\n color: #93c5fd;\n border-bottom-color: #60a5fa;\n background: rgba(59, 130, 246, 0.1);\n}\n\n/* Markdown Table Styling */\n.jp-agent-message-content .markdown-table {\n width: auto;\n min-width: 100%;\n border-collapse: collapse;\n margin: 12px 0;\n font-size: 12px;\n background: #ffffff;\n border: 1px solid #e5e7eb;\n border-radius: 6px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n display: table;\n table-layout: auto;\n}\n\n/* Table wrapper for horizontal scroll */\n.jp-agent-message-content .markdown-table-wrapper {\n width: 100%;\n overflow-x: auto;\n margin: 12px 0;\n}\n\n.jp-agent-message-content .markdown-table thead {\n background: linear-gradient(to bottom, #f8fafc, #f1f5f9);\n}\n\n.jp-agent-message-content .markdown-table th {\n padding: 10px 14px;\n font-weight: 600;\n color: #1e40af;\n border-bottom: 2px solid #c7d2fe;\n text-transform: uppercase;\n font-size: 11px;\n letter-spacing: 0.5px;\n white-space: nowrap;\n}\n\n.jp-agent-message-content .markdown-table td {\n padding: 10px 14px;\n color: #374151;\n border-bottom: 1px solid #e5e7eb;\n white-space: normal;\n word-break: keep-all;\n min-width: 80px;\n}\n\n.jp-agent-message-content .markdown-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.jp-agent-message-content .markdown-table tbody tr:nth-child(even) {\n background: #f9fafb;\n}\n\n.jp-agent-message-content .markdown-table tbody tr:hover {\n background: #eef2ff;\n}\n\n/* Table inline styles */\n.jp-agent-message-content .markdown-table strong {\n color: #111827;\n font-weight: 600;\n}\n\n.jp-agent-message-content .markdown-table code.inline-code {\n background: #f3f4f6;\n color: #374151;\n padding: 1px 4px;\n border-radius: 3px;\n font-size: 11px;\n border: 1px solid #d1d5db;\n}\n\n/* Dark Theme Table Adjustments */\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table {\n background: #1f2937;\n border-color: #374151;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table thead {\n background: linear-gradient(to bottom, #374151, #1f2937);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table th {\n color: #93c5fd;\n border-bottom-color: #4b5563;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table td {\n color: #e5e7eb;\n border-bottom-color: #374151;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table tbody tr:nth-child(even) {\n background: #111827;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table tbody tr:hover {\n background: #312e81;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content .markdown-table code.inline-code {\n background: #374151;\n color: #e5e7eb;\n border-color: #4b5563;\n}\n\n/* Dark Theme Markdown Elements */\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content h1 {\n color: #60a5fa;\n border-bottom-color: #374151;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content h2 {\n color: #93c5fd;\n border-bottom-color: #374151;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content h3 {\n color: #a5b4fc;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content strong {\n color: #f9fafb;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content em {\n color: #9ca3af;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content li {\n color: #e5e7eb;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-message-content li::marker {\n color: #818cf8;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════ */\n/* Mode Selector - Cursor/Claude Style (Bottom Left) */\n/* ═══════════════════════════════════════════════════════════════════════════ */\n\n.jp-agent-mode-selector {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.jp-agent-mode-select {\n padding: 4px 8px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n outline: none;\n transition: all 0.15s ease;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 6px center;\n padding-right: 24px;\n}\n\n.jp-agent-mode-select:hover {\n border-color: var(--jp-border-color1);\n background-color: var(--jp-layout-color2);\n}\n\n.jp-agent-mode-select:focus {\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 1px var(--jp-brand-color1);\n}\n\n.jp-agent-mode-select option {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n padding: 8px;\n}\n\n/* Dark Theme */\nbody[data-jp-theme-light=\"false\"] .jp-agent-mode-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════ */\n/* Cursor AI Style: Unified Chat + Agent Execution */\n/* ═══════════════════════════════════════════════════════════════════════════ */\n\n/* Empty State Hint */\n.jp-agent-empty-hint {\n font-size: 12px;\n color: var(--jp-ui-font-color3);\n margin-top: 8px;\n}\n\n.jp-agent-empty-hint code {\n background: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 3px;\n font-family: 'Menlo', 'Monaco', monospace;\n font-size: 11px;\n}\n\n/* Input Hint */\n.jp-agent-input-hint {\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n margin-top: 6px;\n padding-left: 2px;\n}\n\n.jp-agent-input-hint code {\n background: var(--jp-layout-color3);\n padding: 1px 4px;\n border-radius: 2px;\n font-family: 'Menlo', 'Monaco', monospace;\n font-size: 10px;\n margin: 0 2px;\n}\n\n/* Agent Execution Message Container */\n.jp-agent-message-agent-execution {\n align-self: stretch !important;\n max-width: 100% !important;\n background: transparent !important;\n border: none !important;\n padding: 0 !important;\n}\n\n.jp-agent-execution-message {\n background: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color2);\n border-radius: 8px;\n padding: 12px;\n width: 100%;\n}\n\n/* Agent Execution Header */\n.jp-agent-execution-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 10px;\n}\n\n.jp-agent-execution-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n background: linear-gradient(135deg, #667eea, #764ba2);\n color: white;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.jp-agent-execution-badge svg {\n width: 12px;\n height: 12px;\n}\n\n.jp-agent-execution-request {\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n font-weight: 500;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Agent Execution Status */\n.jp-agent-execution-status {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 10px;\n border-radius: 6px;\n margin-bottom: 10px;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n}\n\n.jp-agent-execution-status--planning,\n.jp-agent-execution-status--executing,\n.jp-agent-execution-status--tool_calling,\n.jp-agent-execution-status--validating,\n.jp-agent-execution-status--reflecting {\n background: linear-gradient(90deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.05));\n border-color: rgba(102, 126, 234, 0.3);\n}\n\n.jp-agent-execution-status--completed {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.1), rgba(16, 185, 129, 0.05));\n border-color: rgba(16, 185, 129, 0.3);\n}\n\n.jp-agent-execution-status--failed {\n background: linear-gradient(90deg, rgba(239, 68, 68, 0.1), rgba(239, 68, 68, 0.05));\n border-color: rgba(239, 68, 68, 0.3);\n}\n\n.jp-agent-execution-spinner {\n width: 14px;\n height: 14px;\n border: 2px solid var(--jp-border-color2);\n border-top-color: #667eea;\n border-radius: 50%;\n animation: jp-agent-spin 0.8s linear infinite;\n}\n\n@keyframes jp-agent-spin {\n to { transform: rotate(360deg); }\n}\n\n.jp-agent-execution-icon--success {\n width: 16px;\n height: 16px;\n color: #10b981;\n}\n\n.jp-agent-execution-icon--error {\n width: 16px;\n height: 16px;\n color: #ef4444;\n}\n\n.jp-agent-execution-status-text {\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n flex: 1;\n}\n\n.jp-agent-execution-confidence {\n font-size: 11px;\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n/* Agent Execution Plan */\n.jp-agent-execution-plan {\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n padding: 10px;\n margin-bottom: 10px;\n}\n\n.jp-agent-execution-plan-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 12px;\n font-weight: 500;\n color: var(--jp-ui-font-color1);\n margin-bottom: 8px;\n}\n\n.jp-agent-execution-plan-progress {\n font-size: 11px;\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n/* Progress Bar */\n.jp-agent-execution-progress-bar {\n height: 4px;\n background: var(--jp-layout-color3);\n border-radius: 2px;\n margin-bottom: 10px;\n overflow: hidden;\n}\n\n.jp-agent-execution-progress-fill {\n height: 100%;\n background: linear-gradient(90deg, #667eea, #764ba2);\n border-radius: 2px;\n transition: width 0.3s ease;\n}\n\n/* Execution Steps */\n.jp-agent-execution-steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.jp-agent-execution-step {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n background: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color3);\n transition: all 0.2s ease;\n}\n\n.jp-agent-execution-step--current {\n background: linear-gradient(90deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.05));\n border-color: rgba(102, 126, 234, 0.3);\n}\n\n.jp-agent-execution-step--completed {\n background: rgba(16, 185, 129, 0.05);\n border-color: rgba(16, 185, 129, 0.2);\n}\n\n.jp-agent-execution-step--failed {\n background: rgba(239, 68, 68, 0.05);\n border-color: rgba(239, 68, 68, 0.2);\n}\n\n.jp-agent-execution-step-indicator {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 500;\n color: var(--jp-ui-font-color2);\n}\n\n.jp-agent-execution-step--completed .jp-agent-execution-step-indicator {\n color: #10b981;\n}\n\n.jp-agent-execution-step--completed .jp-agent-execution-step-indicator svg {\n width: 14px;\n height: 14px;\n}\n\n.jp-agent-execution-step--failed .jp-agent-execution-step-indicator {\n color: #ef4444;\n}\n\n.jp-agent-execution-step--failed .jp-agent-execution-step-indicator svg {\n width: 14px;\n height: 14px;\n}\n\n.jp-agent-execution-step-spinner {\n width: 12px;\n height: 12px;\n border: 2px solid var(--jp-border-color2);\n border-top-color: #667eea;\n border-radius: 50%;\n animation: jp-agent-spin 0.8s linear infinite;\n}\n\n.jp-agent-execution-step-content {\n flex: 1;\n min-width: 0;\n}\n\n.jp-agent-execution-step-desc {\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n display: block;\n margin-bottom: 4px;\n}\n\n.jp-agent-execution-step-desc--done {\n color: var(--jp-ui-font-color2);\n}\n\n.jp-agent-execution-step-tools {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.jp-agent-execution-tool-tag {\n font-size: 10px;\n padding: 1px 5px;\n border-radius: 3px;\n background: var(--jp-layout-color3);\n color: var(--jp-ui-font-color2);\n}\n\n/* Execution Result */\n.jp-agent-execution-result {\n padding: 10px;\n border-radius: 6px;\n border: 1px solid var(--jp-border-color2);\n}\n\n.jp-agent-execution-result--success {\n background: rgba(16, 185, 129, 0.05);\n border-color: rgba(16, 185, 129, 0.2);\n}\n\n.jp-agent-execution-result--error {\n background: rgba(239, 68, 68, 0.05);\n border-color: rgba(239, 68, 68, 0.2);\n}\n\n.jp-agent-execution-result-message {\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n margin: 0 0 8px 0;\n line-height: 1.5;\n}\n\n.jp-agent-execution-result-message ul,\n.jp-agent-execution-result-message ol {\n padding-left: 1.5em;\n margin: 0.5em 0;\n}\n\n.jp-agent-execution-result-message li {\n margin: 0.25em 0;\n}\n\n.jp-agent-execution-result-error {\n font-size: 12px;\n color: #ef4444;\n margin: 0 0 8px 0;\n}\n\n.jp-agent-execution-result-stats {\n display: flex;\n gap: 12px;\n font-size: 11px;\n color: var(--jp-ui-font-color2);\n}\n\n.jp-agent-execution-result-stats span {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n/* Dark Theme Adjustments */\nbody[data-jp-theme-light=\"false\"] .jp-agent-execution-badge {\n background: linear-gradient(135deg, #5a67d8, #6b46c1);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-empty-hint code,\nbody[data-jp-theme-light=\"false\"] .jp-agent-input-hint code {\n background: var(--jp-layout-color3);\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════ */\n/* Cursor AI Style: Mode Toggle Bar */\n/* ═══════════════════════════════════════════════════════════════════════════ */\n\n/* Mode Bar Container */\n.jp-agent-mode-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 2px;\n margin-top: 4px;\n}\n\n/* Mode Toggle Container */\n.jp-agent-mode-toggle-container {\n position: relative;\n}\n\n/* Mode Toggle Button - Cursor AI Style */\n.jp-agent-mode-toggle {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.jp-agent-mode-toggle:hover {\n background: var(--jp-layout-color2);\n border-color: var(--jp-border-color1);\n color: var(--jp-ui-font-color1);\n}\n\n/* Active (Agent Mode) */\n.jp-agent-mode-toggle--active {\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n border-color: #6366f1;\n color: white;\n}\n\n.jp-agent-mode-toggle--active:hover {\n background: linear-gradient(135deg, #5558e8 0%, #7c4ddb 100%);\n border-color: #5558e8;\n color: white;\n}\n\n/* Mode Icon */\n.jp-agent-mode-icon {\n flex-shrink: 0;\n}\n\n/* Mode Label */\n.jp-agent-mode-label {\n min-width: 40px;\n}\n\n/* Chevron */\n.jp-agent-mode-chevron {\n flex-shrink: 0;\n opacity: 0.6;\n transition: transform 0.15s ease;\n}\n\n.jp-agent-mode-toggle:hover .jp-agent-mode-chevron {\n opacity: 1;\n}\n\n/* Mode Dropdown */\n.jp-agent-mode-dropdown {\n position: absolute;\n bottom: 100%;\n left: 0;\n margin-bottom: 4px;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n z-index: 1000;\n min-width: 180px;\n}\n\n/* Mode Option */\n.jp-agent-mode-option {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 12px;\n border: none;\n background: transparent;\n color: var(--jp-ui-font-color1);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.jp-agent-mode-option:hover {\n background: var(--jp-layout-color2);\n}\n\n.jp-agent-mode-option--selected {\n background: var(--jp-layout-color2);\n}\n\n.jp-agent-mode-option svg {\n flex-shrink: 0;\n color: var(--jp-ui-font-color2);\n}\n\n.jp-agent-mode-option--selected svg {\n color: #6366f1;\n}\n\n/* Mode Shortcut */\n.jp-agent-mode-shortcut {\n margin-left: auto;\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n}\n\n/* Mode Hints */\n.jp-agent-mode-hints {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.jp-agent-mode-hint {\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n padding: 2px 6px;\n background: var(--jp-layout-color2);\n border-radius: 4px;\n}\n\n/* Agent Mode Input Style */\n.jp-agent-input--agent-mode {\n border-color: #6366f1 !important;\n box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.2) !important;\n}\n\n.jp-agent-input--agent-mode:focus {\n border-color: #6366f1 !important;\n box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.3) !important;\n}\n\n/* Dark Theme */\nbody[data-jp-theme-light=\"false\"] .jp-agent-mode-toggle {\n background: var(--jp-layout-color2);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-mode-toggle--active {\n background: linear-gradient(135deg, #5a67d8 0%, #7c3aed 100%);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-mode-dropdown {\n background: var(--jp-layout-color2);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-mode-option:hover {\n background: var(--jp-layout-color3);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-mode-option--selected {\n background: var(--jp-layout-color3);\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n File Fixes UI - Python 파일 수정 적용 버튼\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.jp-agent-file-fixes {\n margin: 12px;\n padding: 12px;\n background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);\n border: 1px solid #86efac;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(34, 197, 94, 0.1);\n}\n\n.jp-agent-file-fixes-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n color: #166534;\n font-weight: 600;\n font-size: 13px;\n}\n\n.jp-agent-file-fixes-header svg {\n color: #22c55e;\n}\n\n.jp-agent-file-fixes-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.jp-agent-file-fix-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 12px;\n background: white;\n border: 1px solid #bbf7d0;\n border-radius: 6px;\n transition: all 0.2s ease;\n}\n\n.jp-agent-file-fix-item:hover {\n border-color: #22c55e;\n box-shadow: 0 2px 8px rgba(34, 197, 94, 0.15);\n}\n\n.jp-agent-file-fix-info {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #374151;\n font-size: 13px;\n}\n\n.jp-agent-file-fix-info svg {\n color: #6b7280;\n flex-shrink: 0;\n}\n\n.jp-agent-file-fix-path {\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n font-size: 12px;\n color: #1f2937;\n word-break: break-all;\n}\n\n.jp-agent-file-fix-apply {\n padding: 6px 14px;\n background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.jp-agent-file-fix-apply:hover {\n background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);\n transform: translateY(-1px);\n box-shadow: 0 2px 6px rgba(34, 197, 94, 0.3);\n}\n\n.jp-agent-file-fix-apply:active {\n transform: translateY(0);\n}\n\n.jp-agent-file-fixes-dismiss {\n margin-top: 10px;\n padding: 6px 12px;\n background: transparent;\n color: #6b7280;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.2s ease;\n width: 100%;\n}\n\n.jp-agent-file-fixes-dismiss:hover {\n background: #f3f4f6;\n color: #374151;\n border-color: #9ca3af;\n}\n\n/* Dark Theme - File Fixes */\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fixes {\n background: linear-gradient(135deg, #064e3b 0%, #065f46 100%);\n border-color: #10b981;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fixes-header {\n color: #a7f3d0;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fix-item {\n background: var(--jp-layout-color2);\n border-color: #047857;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fix-item:hover {\n border-color: #10b981;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fix-info {\n color: #d1d5db;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fix-path {\n color: #f3f4f6;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fixes-dismiss {\n color: #9ca3af;\n border-color: #4b5563;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-file-fixes-dismiss:hover {\n background: var(--jp-layout-color3);\n color: #d1d5db;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Console Error Notification - 콘솔 에러 자동 감지 알림\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.jp-agent-console-error-notification {\n margin: 12px;\n padding: 12px;\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border: 1px solid #f87171;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(239, 68, 68, 0.2);\n animation: consoleErrorSlideIn 0.3s ease-out;\n}\n\n@keyframes consoleErrorSlideIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.jp-agent-console-error-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 10px;\n color: #991b1b;\n font-weight: 600;\n font-size: 13px;\n}\n\n.jp-agent-console-error-header svg {\n color: #dc2626;\n flex-shrink: 0;\n}\n\n.jp-agent-console-error-preview {\n padding: 10px;\n background: rgba(255, 255, 255, 0.7);\n border: 1px solid #fca5a5;\n border-radius: 4px;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n font-size: 11px;\n color: #7f1d1d;\n line-height: 1.4;\n max-height: 100px;\n overflow-y: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.jp-agent-console-error-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n}\n\n.jp-agent-console-error-fix-btn {\n flex: 1;\n padding: 8px 16px;\n background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.jp-agent-console-error-fix-btn:hover {\n background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(220, 38, 38, 0.3);\n}\n\n.jp-agent-console-error-dismiss-btn {\n padding: 8px 16px;\n background: transparent;\n color: #6b7280;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n font-size: 13px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.jp-agent-console-error-dismiss-btn:hover {\n background: #f3f4f6;\n color: #374151;\n}\n\n/* Dark theme for Console Error Notification */\nbody[data-jp-theme-light=\"false\"] .jp-agent-console-error-notification {\n background: linear-gradient(135deg, #450a0a 0%, #7f1d1d 100%);\n border-color: #dc2626;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-console-error-header {\n color: #fecaca;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-console-error-header svg {\n color: #f87171;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-console-error-preview {\n background: rgba(0, 0, 0, 0.3);\n border-color: #991b1b;\n color: #fca5a5;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-console-error-dismiss-btn {\n color: #9ca3af;\n border-color: #4b5563;\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-console-error-dismiss-btn:hover {\n background: var(--jp-layout-color3);\n color: #d1d5db;\n}\n"],"sourceRoot":""}]);
1709
+ // Exports
1710
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
1711
+
1712
+
1713
+ /***/ },
1714
+
1715
+ /***/ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/auto-agent.css"
1716
+ /*!******************************************************************************!*\
1717
+ !*** ./node_modules/css-loader/dist/cjs.js!./frontend/styles/auto-agent.css ***!
1718
+ \******************************************************************************/
1719
+ (module, __webpack_exports__, __webpack_require__) {
1720
+
1721
+ __webpack_require__.r(__webpack_exports__);
1722
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1723
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1724
+ /* harmony export */ });
1725
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
1726
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
1727
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
1728
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
1729
+ // Imports
1730
+
1731
+
1732
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
1733
+ // Module
1734
+ ___CSS_LOADER_EXPORT___.push([module.id, `/**
1735
+ * Auto-Agent Panel - Claude/Cursor Style
1736
+ * Minimal, matte design
1737
+ */
1738
+
1739
+ /* ═══════════════════════════════════════════════════════════════════════════
1740
+ Panel Container
1741
+ ═══════════════════════════════════════════════════════════════════════════ */
1742
+
1743
+ .aa-panel {
1744
+ display: flex;
1745
+ flex-direction: column;
1746
+ gap: 12px;
1747
+ padding: 16px;
1748
+ height: 100%;
1749
+ overflow-y: auto;
1750
+ background: var(--jp-layout-color1);
1751
+ }
1752
+
1753
+ /* ═══════════════════════════════════════════════════════════════════════════
1754
+ Empty State
1755
+ ═══════════════════════════════════════════════════════════════════════════ */
1756
+
1757
+ .aa-empty {
1758
+ display: flex;
1759
+ align-items: center;
1760
+ justify-content: center;
1761
+ padding: 48px 16px;
1762
+ color: var(--jp-ui-font-color3);
1763
+ }
1764
+
1765
+ .aa-empty-text {
1766
+ font-size: 13px;
1767
+ font-weight: 500;
1768
+ }
1769
+
1770
+ /* ═══════════════════════════════════════════════════════════════════════════
1771
+ Input Section
1772
+ ═══════════════════════════════════════════════════════════════════════════ */
1773
+
1774
+ .aa-input-section {
1775
+ display: flex;
1776
+ flex-direction: column;
1777
+ gap: 8px;
1778
+ }
1779
+
1780
+ .aa-textarea {
1781
+ width: 100%;
1782
+ min-height: 72px;
1783
+ max-height: 180px;
1784
+ padding: 12px;
1785
+ border: 1px solid var(--jp-border-color2);
1786
+ border-radius: 6px;
1787
+ background: var(--jp-layout-color0);
1788
+ color: var(--jp-ui-font-color1);
1789
+ font-family: var(--jp-ui-font-family);
1790
+ font-size: 13px;
1791
+ line-height: 1.5;
1792
+ resize: vertical;
1793
+ outline: none;
1794
+ transition: border-color 0.15s ease;
1795
+ }
1796
+
1797
+ .aa-textarea:focus {
1798
+ border-color: var(--jp-brand-color1);
1799
+ }
1800
+
1801
+ .aa-textarea:disabled {
1802
+ opacity: 0.5;
1803
+ cursor: not-allowed;
1804
+ }
1805
+
1806
+ .aa-textarea::placeholder {
1807
+ color: var(--jp-ui-font-color3);
1808
+ }
1809
+
1810
+ /* Actions */
1811
+ .aa-actions {
1812
+ display: flex;
1813
+ gap: 8px;
1814
+ }
1815
+
1816
+ .aa-btn {
1817
+ padding: 8px 16px;
1818
+ border: none;
1819
+ border-radius: 6px;
1820
+ font-size: 13px;
1821
+ font-weight: 500;
1822
+ cursor: pointer;
1823
+ transition: background 0.15s ease, opacity 0.15s ease;
1824
+ }
1825
+
1826
+ .aa-btn:disabled {
1827
+ opacity: 0.4;
1828
+ cursor: not-allowed;
1829
+ }
1830
+
1831
+ .aa-btn--primary {
1832
+ background: var(--jp-brand-color1);
1833
+ color: white;
1834
+ }
1835
+
1836
+ .aa-btn--primary:hover:not(:disabled) {
1837
+ background: var(--jp-brand-color0);
1838
+ }
1839
+
1840
+ .aa-btn--secondary {
1841
+ background: var(--jp-layout-color2);
1842
+ color: var(--jp-ui-font-color1);
1843
+ }
1844
+
1845
+ .aa-btn--secondary:hover:not(:disabled) {
1846
+ background: var(--jp-layout-color3);
1847
+ }
1848
+
1849
+ .aa-btn--cancel {
1850
+ background: transparent;
1851
+ color: var(--jp-error-color1);
1852
+ border: 1px solid var(--jp-error-color1);
1853
+ }
1854
+
1855
+ .aa-btn--cancel:hover {
1856
+ background: var(--jp-error-color1);
1857
+ color: white;
1858
+ }
1859
+
1860
+ /* ═══════════════════════════════════════════════════════════════════════════
1861
+ Status Indicator
1862
+ ═══════════════════════════════════════════════════════════════════════════ */
1863
+
1864
+ .aa-status {
1865
+ display: flex;
1866
+ align-items: center;
1867
+ gap: 10px;
1868
+ padding: 10px 12px;
1869
+ border-radius: 6px;
1870
+ font-size: 13px;
1871
+ background: var(--jp-layout-color2);
1872
+ border-left: 3px solid var(--jp-border-color1);
1873
+ }
1874
+
1875
+ .aa-status--planning,
1876
+ .aa-status--executing,
1877
+ .aa-status--tool_calling {
1878
+ border-left-color: var(--jp-brand-color1);
1879
+ }
1880
+
1881
+ .aa-status--self_healing {
1882
+ border-left-color: var(--jp-warn-color1);
1883
+ }
1884
+
1885
+ .aa-status--replanning {
1886
+ border-left-color: var(--jp-info-color1, #2196f3);
1887
+ background: rgba(33, 150, 243, 0.06);
1888
+ }
1889
+
1890
+ /* Replanning indicator for step */
1891
+ .aa-step--replanning {
1892
+ background: rgba(33, 150, 243, 0.08);
1893
+ border-left: 2px solid var(--jp-info-color1, #2196f3);
1894
+ }
1895
+
1896
+ .aa-step--replanning .aa-step-indicator {
1897
+ color: var(--jp-info-color1, #2196f3);
1898
+ }
1899
+
1900
+ .aa-step-replanning {
1901
+ display: inline-block;
1902
+ font-size: 11px;
1903
+ color: var(--jp-info-color1, #2196f3);
1904
+ margin-left: 8px;
1905
+ animation: aa-pulse 1.5s ease-in-out infinite;
1906
+ }
1907
+
1908
+ /* Spinning icon for replanning */
1909
+ .aa-icon-spin {
1910
+ animation: aa-spin 1s linear infinite;
1911
+ }
1912
+
1913
+ /* Plan replanning state */
1914
+ .aa-plan--replanning {
1915
+ border-color: var(--jp-info-color1, #2196f3);
1916
+ }
1917
+
1918
+ .aa-plan--replanning .aa-plan-header {
1919
+ background: rgba(33, 150, 243, 0.1);
1920
+ }
1921
+
1922
+ .aa-plan--replanning .aa-plan-title {
1923
+ color: var(--jp-info-color1, #2196f3);
1924
+ }
1925
+
1926
+ /* Plan changed indicator */
1927
+ .aa-plan-changed {
1928
+ margin-left: 6px;
1929
+ font-weight: 600;
1930
+ color: var(--jp-info-color1, #2196f3);
1931
+ }
1932
+
1933
+ /* New step styles - 새로 추가된 스텝을 강조 */
1934
+ .aa-step--new {
1935
+ background: linear-gradient(90deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.06) 100%);
1936
+ border-left: 3px solid var(--jp-success-color1, #22c55e);
1937
+ animation: aa-new-step-appear 0.5s ease-out;
1938
+ position: relative;
1939
+ box-shadow: 0 0 8px rgba(34, 197, 94, 0.15);
1940
+ }
1941
+
1942
+ /* 새 스텝에 글로우 애니메이션 (처음 나타날 때) */
1943
+ .aa-step--new::after {
1944
+ content: '';
1945
+ position: absolute;
1946
+ inset: 0;
1947
+ background: linear-gradient(90deg, rgba(34, 197, 94, 0.2) 0%, transparent 100%);
1948
+ animation: aa-new-glow 2s ease-out forwards;
1949
+ pointer-events: none;
1950
+ border-radius: inherit;
1951
+ }
1952
+
1953
+ .aa-step-desc--new {
1954
+ color: var(--jp-ui-font-color1);
1955
+ font-weight: 500;
1956
+ }
1957
+
1958
+ /* NEW 배지 - 더 눈에 띄게 */
1959
+ .aa-new-badge {
1960
+ display: inline-flex;
1961
+ align-items: center;
1962
+ gap: 3px;
1963
+ font-size: 9px;
1964
+ font-weight: 700;
1965
+ color: white;
1966
+ background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
1967
+ padding: 2px 6px;
1968
+ border-radius: 4px;
1969
+ margin-right: 8px;
1970
+ text-transform: uppercase;
1971
+ letter-spacing: 0.5px;
1972
+ box-shadow: 0 1px 3px rgba(34, 197, 94, 0.4);
1973
+ animation: aa-badge-pulse 2s ease-in-out 3;
1974
+ }
1975
+
1976
+ /* NEW 배지 앞에 + 아이콘 */
1977
+ .aa-new-badge::before {
1978
+ content: '+';
1979
+ font-size: 11px;
1980
+ font-weight: 800;
1981
+ }
1982
+
1983
+ /* 새 스텝 나타나는 애니메이션 */
1984
+ @keyframes aa-new-step-appear {
1985
+ 0% {
1986
+ opacity: 0;
1987
+ transform: translateX(-20px) scale(0.95);
1988
+ background: rgba(34, 197, 94, 0.3);
1989
+ }
1990
+ 50% {
1991
+ background: rgba(34, 197, 94, 0.2);
1992
+ }
1993
+ 100% {
1994
+ opacity: 1;
1995
+ transform: translateX(0) scale(1);
1996
+ background: linear-gradient(90deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.06) 100%);
1997
+ }
1998
+ }
1999
+
2000
+ /* 새 스텝 글로우 페이드아웃 */
2001
+ @keyframes aa-new-glow {
2002
+ 0% {
2003
+ opacity: 1;
2004
+ }
2005
+ 100% {
2006
+ opacity: 0;
2007
+ }
2008
+ }
2009
+
2010
+ /* NEW 배지 펄스 애니메이션 */
2011
+ @keyframes aa-badge-pulse {
2012
+ 0%, 100% {
2013
+ transform: scale(1);
2014
+ box-shadow: 0 1px 3px rgba(34, 197, 94, 0.4);
2015
+ }
2016
+ 50% {
2017
+ transform: scale(1.05);
2018
+ box-shadow: 0 2px 8px rgba(34, 197, 94, 0.6);
2019
+ }
2020
+ }
2021
+
2022
+ /* ═══════════════════════════════════════════════════════════════════════════
2023
+ Cell Operation Badges (MODIFIED, INSERTED, REPLACED)
2024
+ ═══════════════════════════════════════════════════════════════════════════ */
2025
+
2026
+ /* Base badge style */
2027
+ .aa-operation-badge {
2028
+ display: inline-block;
2029
+ font-size: 9px;
2030
+ font-weight: 700;
2031
+ color: white;
2032
+ padding: 1px 5px;
2033
+ border-radius: 3px;
2034
+ margin-right: 6px;
2035
+ text-transform: uppercase;
2036
+ letter-spacing: 0.5px;
2037
+ }
2038
+
2039
+ /* MODIFIED badge - amber/yellow */
2040
+ .aa-operation-badge--modify {
2041
+ background: var(--jp-warn-color1, #f59e0b);
2042
+ }
2043
+
2044
+ /* INSERTED badge - blue */
2045
+ .aa-operation-badge--insert {
2046
+ background: var(--jp-info-color1, #2196f3);
2047
+ }
2048
+
2049
+ /* REPLACED badge - purple */
2050
+ .aa-operation-badge--replace {
2051
+ background: var(--jp-accent-color1, #8b5cf6);
2052
+ }
2053
+
2054
+ /* CREATE badge - green (same as NEW) */
2055
+ .aa-operation-badge--create {
2056
+ background: var(--jp-success-color1, #22c55e);
2057
+ }
2058
+
2059
+ /* Step with MODIFY operation */
2060
+ .aa-step--modified {
2061
+ background: rgba(245, 158, 11, 0.06);
2062
+ border-left: 2px solid var(--jp-warn-color1, #f59e0b);
2063
+ }
2064
+
2065
+ .aa-step--modified .aa-step-indicator {
2066
+ color: var(--jp-warn-color1, #f59e0b);
2067
+ }
2068
+
2069
+ /* Step with INSERT operation */
2070
+ .aa-step--inserted {
2071
+ background: rgba(33, 150, 243, 0.06);
2072
+ border-left: 2px solid var(--jp-info-color1, #2196f3);
2073
+ }
2074
+
2075
+ .aa-step--inserted .aa-step-indicator {
2076
+ color: var(--jp-info-color1, #2196f3);
2077
+ }
2078
+
2079
+ /* Step with REPLACE operation */
2080
+ .aa-step--replaced {
2081
+ background: rgba(139, 92, 246, 0.06);
2082
+ border-left: 2px solid var(--jp-accent-color1, #8b5cf6);
2083
+ }
2084
+
2085
+ .aa-step--replaced .aa-step-indicator {
2086
+ color: var(--jp-accent-color1, #8b5cf6);
2087
+ }
2088
+
2089
+ /* Cell index indicator */
2090
+ .aa-cell-index {
2091
+ display: inline-block;
2092
+ font-size: 10px;
2093
+ font-weight: 500;
2094
+ color: var(--jp-ui-font-color2);
2095
+ background: var(--jp-layout-color2);
2096
+ padding: 1px 5px;
2097
+ border-radius: 3px;
2098
+ margin-left: 4px;
2099
+ font-family: var(--jp-code-font-family);
2100
+ }
2101
+
2102
+ /* Highlight for cell index when targeting specific cell */
2103
+ .aa-cell-index--target {
2104
+ background: rgba(99, 102, 241, 0.15);
2105
+ color: var(--jp-brand-color1);
2106
+ border: 1px solid rgba(99, 102, 241, 0.3);
2107
+ }
2108
+
2109
+ @keyframes aa-slide-in {
2110
+ from {
2111
+ opacity: 0;
2112
+ transform: translateX(-10px);
2113
+ }
2114
+ to {
2115
+ opacity: 1;
2116
+ transform: translateX(0);
2117
+ }
2118
+ }
2119
+
2120
+ .aa-status--completed {
2121
+ border-left-color: var(--jp-success-color1);
2122
+ }
2123
+
2124
+ .aa-status--failed {
2125
+ border-left-color: var(--jp-error-color1);
2126
+ }
2127
+
2128
+ .aa-status-spinner {
2129
+ width: 14px;
2130
+ height: 14px;
2131
+ border: 2px solid var(--jp-border-color2);
2132
+ border-top-color: var(--jp-brand-color1);
2133
+ border-radius: 50%;
2134
+ animation: aa-spin 0.8s linear infinite;
2135
+ }
2136
+
2137
+ .aa-status-text {
2138
+ flex: 1;
2139
+ color: var(--jp-ui-font-color1);
2140
+ }
2141
+
2142
+ .aa-status-error {
2143
+ font-size: 12px;
2144
+ color: var(--jp-error-color1);
2145
+ margin-left: auto;
2146
+ }
2147
+
2148
+ @keyframes aa-spin {
2149
+ to { transform: rotate(360deg); }
2150
+ }
2151
+
2152
+ /* ═══════════════════════════════════════════════════════════════════════════
2153
+ Execution Plan
2154
+ ═══════════════════════════════════════════════════════════════════════════ */
2155
+
2156
+ .aa-plan {
2157
+ background: var(--jp-layout-color0);
2158
+ border: 1px solid var(--jp-border-color2);
2159
+ border-radius: 6px;
2160
+ overflow: hidden;
2161
+ }
2162
+
2163
+ .aa-plan-header {
2164
+ display: flex;
2165
+ justify-content: space-between;
2166
+ align-items: center;
2167
+ padding: 10px 12px;
2168
+ background: var(--jp-layout-color2);
2169
+ border-bottom: 1px solid var(--jp-border-color2);
2170
+ }
2171
+
2172
+ .aa-plan-title {
2173
+ font-size: 12px;
2174
+ font-weight: 600;
2175
+ color: var(--jp-ui-font-color2);
2176
+ text-transform: uppercase;
2177
+ letter-spacing: 0.5px;
2178
+ }
2179
+
2180
+ .aa-plan-progress {
2181
+ font-size: 12px;
2182
+ color: var(--jp-ui-font-color3);
2183
+ font-variant-numeric: tabular-nums;
2184
+ }
2185
+
2186
+ /* Progress Bar */
2187
+ .aa-progress-bar {
2188
+ height: 3px;
2189
+ background: var(--jp-border-color2);
2190
+ overflow: hidden;
2191
+ }
2192
+
2193
+ .aa-progress-fill {
2194
+ height: 100%;
2195
+ background: var(--jp-brand-color1);
2196
+ transition: width 0.3s ease;
2197
+ }
2198
+
2199
+ .aa-plan-steps {
2200
+ display: flex;
2201
+ flex-direction: column;
2202
+ }
2203
+
2204
+ .aa-step {
2205
+ display: flex;
2206
+ align-items: flex-start;
2207
+ gap: 12px;
2208
+ padding: 10px 12px;
2209
+ border-bottom: 1px solid var(--jp-border-color3);
2210
+ transition: background 0.15s ease;
2211
+ }
2212
+
2213
+ .aa-step:last-child {
2214
+ border-bottom: none;
2215
+ }
2216
+
2217
+ .aa-step--current {
2218
+ background: rgba(99, 102, 241, 0.06);
2219
+ }
2220
+
2221
+ .aa-step--completed {
2222
+ opacity: 0.7;
2223
+ }
2224
+
2225
+ .aa-step--failed {
2226
+ background: rgba(239, 68, 68, 0.06);
2227
+ }
2228
+
2229
+ .aa-step--pending {
2230
+ opacity: 0.5;
2231
+ }
2232
+
2233
+ .aa-step-indicator {
2234
+ min-width: 42px;
2235
+ height: 20px;
2236
+ display: flex;
2237
+ align-items: center;
2238
+ gap: 4px;
2239
+ flex-shrink: 0;
2240
+ margin-top: 1px;
2241
+ }
2242
+
2243
+ /* 상태 아이콘 */
2244
+ .aa-step-status-icon {
2245
+ width: 14px;
2246
+ height: 14px;
2247
+ flex-shrink: 0;
2248
+ }
2249
+
2250
+ .aa-step-status-icon--completed {
2251
+ color: var(--jp-success-color1);
2252
+ }
2253
+
2254
+ .aa-step-status-icon--failed {
2255
+ color: var(--jp-error-color1);
2256
+ }
2257
+
2258
+ /* 대기 중 점 */
2259
+ .aa-step-pending-dot {
2260
+ width: 8px;
2261
+ height: 8px;
2262
+ border-radius: 50%;
2263
+ background: var(--jp-ui-font-color3);
2264
+ flex-shrink: 0;
2265
+ margin: 0 3px;
2266
+ }
2267
+
2268
+ .aa-step-spinner {
2269
+ width: 14px;
2270
+ height: 14px;
2271
+ border: 2px solid var(--jp-border-color2);
2272
+ border-top-color: var(--jp-brand-color1);
2273
+ border-radius: 50%;
2274
+ animation: aa-spin 0.8s linear infinite;
2275
+ flex-shrink: 0;
2276
+ }
2277
+
2278
+ /* Step 번호 - 항상 표시 */
2279
+ .aa-step-number {
2280
+ font-size: 12px;
2281
+ font-weight: 600;
2282
+ color: var(--jp-ui-font-color2);
2283
+ min-width: 18px;
2284
+ }
2285
+
2286
+ /* 완료된 스텝: 번호를 초록색으로 */
2287
+ .aa-step--completed .aa-step-number {
2288
+ color: var(--jp-success-color1);
2289
+ }
2290
+
2291
+ /* 실패한 스텝: 번호를 빨간색으로 */
2292
+ .aa-step--failed .aa-step-number {
2293
+ color: var(--jp-error-color1);
2294
+ }
2295
+
2296
+ /* 현재 실행 중인 스텝: 번호를 강조 */
2297
+ .aa-step--current .aa-step-number {
2298
+ color: var(--jp-brand-color1);
2299
+ font-weight: 700;
2300
+ }
2301
+
2302
+ /* 오버레이 스피너 */
2303
+ .aa-step-overlay-spinner {
2304
+ position: absolute;
2305
+ right: -2px;
2306
+ bottom: 0;
2307
+ width: 10px;
2308
+ height: 10px;
2309
+ }
2310
+
2311
+ .aa-step-content {
2312
+ flex: 1;
2313
+ min-width: 0;
2314
+ }
2315
+
2316
+ .aa-step-desc {
2317
+ display: block;
2318
+ font-size: 13px;
2319
+ color: var(--jp-ui-font-color1);
2320
+ line-height: 1.4;
2321
+ margin-bottom: 4px;
2322
+ transition: all 0.2s ease;
2323
+ }
2324
+
2325
+ /* Step label (Step 1:, Step 2:, etc.) */
2326
+ .aa-step-label {
2327
+ font-weight: 600;
2328
+ color: var(--jp-brand-color1);
2329
+ margin-right: 4px;
2330
+ }
2331
+
2332
+ .aa-step--completed .aa-step-label {
2333
+ color: var(--jp-success-color1);
2334
+ }
2335
+
2336
+ .aa-step--failed .aa-step-label {
2337
+ color: var(--jp-error-color1);
2338
+ }
2339
+
2340
+ /* Completed step: strikethrough effect */
2341
+ .aa-step-desc--done {
2342
+ text-decoration: line-through;
2343
+ color: var(--jp-ui-font-color3);
2344
+ }
2345
+
2346
+ .aa-step-desc--done .aa-step-label {
2347
+ text-decoration: line-through;
2348
+ }
2349
+
2350
+ /* Currently executing step indicator */
2351
+ .aa-step-executing {
2352
+ display: inline-block;
2353
+ font-size: 11px;
2354
+ color: var(--jp-brand-color1);
2355
+ margin-left: 8px;
2356
+ animation: aa-pulse 1.5s ease-in-out infinite;
2357
+ }
2358
+
2359
+ @keyframes aa-pulse {
2360
+ 0%, 100% { opacity: 1; }
2361
+ 50% { opacity: 0.5; }
2362
+ }
2363
+
2364
+ .aa-step-tools {
2365
+ display: flex;
2366
+ gap: 6px;
2367
+ flex-wrap: wrap;
2368
+ }
2369
+
2370
+ .aa-tool-tag {
2371
+ font-size: 10px;
2372
+ font-weight: 500;
2373
+ color: var(--jp-ui-font-color3);
2374
+ background: var(--jp-layout-color2);
2375
+ padding: 2px 6px;
2376
+ border-radius: 3px;
2377
+ font-family: var(--jp-code-font-family);
2378
+ transition: all 0.2s ease;
2379
+ }
2380
+
2381
+ /* Completed tool tag */
2382
+ .aa-tool-tag--done {
2383
+ text-decoration: line-through;
2384
+ opacity: 0.6;
2385
+ }
2386
+
2387
+ /* ═══════════════════════════════════════════════════════════════════════════
2388
+ Result Section
2389
+ ═══════════════════════════════════════════════════════════════════════════ */
2390
+
2391
+ .aa-result {
2392
+ padding: 12px;
2393
+ border-radius: 6px;
2394
+ border: 1px solid var(--jp-border-color2);
2395
+ }
2396
+
2397
+ .aa-result--success {
2398
+ border-left: 3px solid var(--jp-success-color1);
2399
+ background: var(--jp-layout-color0);
2400
+ }
2401
+
2402
+ .aa-result--error {
2403
+ border-left: 3px solid var(--jp-error-color1);
2404
+ background: var(--jp-layout-color0);
2405
+ }
2406
+
2407
+ .aa-result-header {
2408
+ display: flex;
2409
+ justify-content: space-between;
2410
+ align-items: center;
2411
+ margin-bottom: 8px;
2412
+ }
2413
+
2414
+ .aa-result-title {
2415
+ font-size: 13px;
2416
+ font-weight: 600;
2417
+ color: var(--jp-ui-font-color1);
2418
+ }
2419
+
2420
+ .aa-result--success .aa-result-title {
2421
+ color: var(--jp-success-color1);
2422
+ }
2423
+
2424
+ .aa-result--error .aa-result-title {
2425
+ color: var(--jp-error-color1);
2426
+ }
2427
+
2428
+ .aa-result-time {
2429
+ font-size: 11px;
2430
+ color: var(--jp-ui-font-color3);
2431
+ font-variant-numeric: tabular-nums;
2432
+ }
2433
+
2434
+ .aa-result-message {
2435
+ font-size: 13px;
2436
+ color: var(--jp-ui-font-color1);
2437
+ line-height: 1.5;
2438
+ margin: 0 0 8px 0;
2439
+ overflow: hidden;
2440
+ }
2441
+
2442
+ /* Result message 내 리스트 스타일 - 번호 표시 */
2443
+ .aa-result-message ul,
2444
+ .aa-result-message ol {
2445
+ padding-left: 0;
2446
+ margin: 0.5em 0;
2447
+ list-style: none;
2448
+ overflow: hidden;
2449
+ counter-reset: result-item;
2450
+ }
2451
+
2452
+ .aa-result-message li {
2453
+ margin: 0.25em 0;
2454
+ padding-left: 1.8em;
2455
+ position: relative;
2456
+ counter-increment: result-item;
2457
+ }
2458
+
2459
+ .aa-result-message li::before {
2460
+ content: counter(result-item) ".";
2461
+ position: absolute;
2462
+ left: 0;
2463
+ min-width: 1.5em;
2464
+ color: var(--jp-ui-font-color2);
2465
+ font-weight: 500;
2466
+ font-size: 0.9em;
2467
+ }
2468
+
2469
+ /* 중첩 리스트 */
2470
+ .aa-result-message ul ul,
2471
+ .aa-result-message ol ol,
2472
+ .aa-result-message ul ol,
2473
+ .aa-result-message ol ul {
2474
+ margin: 0.25em 0;
2475
+ counter-reset: result-subitem;
2476
+ }
2477
+
2478
+ .aa-result-message ul ul li,
2479
+ .aa-result-message ol ol li,
2480
+ .aa-result-message ul ol li,
2481
+ .aa-result-message ol ul li {
2482
+ counter-increment: result-subitem;
2483
+ }
2484
+
2485
+ .aa-result-message ul ul li::before,
2486
+ .aa-result-message ol ol li::before,
2487
+ .aa-result-message ul ol li::before,
2488
+ .aa-result-message ol ul li::before {
2489
+ content: counter(result-subitem) ".";
2490
+ }
2491
+
2492
+ .aa-result-error {
2493
+ font-size: 12px;
2494
+ color: var(--jp-error-color1);
2495
+ line-height: 1.4;
2496
+ margin: 0 0 8px 0;
2497
+ word-break: break-word;
2498
+ }
2499
+
2500
+ .aa-result-stats {
2501
+ display: flex;
2502
+ gap: 16px;
2503
+ font-size: 11px;
2504
+ color: var(--jp-ui-font-color3);
2505
+ }
2506
+
2507
+ /* ═══════════════════════════════════════════════════════════════════════════
2508
+ Hint Section
2509
+ ═══════════════════════════════════════════════════════════════════════════ */
2510
+
2511
+ .aa-hint {
2512
+ padding: 16px;
2513
+ text-align: center;
2514
+ }
2515
+
2516
+ .aa-hint p {
2517
+ margin: 0;
2518
+ font-size: 13px;
2519
+ color: var(--jp-ui-font-color2);
2520
+ line-height: 1.5;
2521
+ }
2522
+
2523
+ .aa-hint-sub {
2524
+ margin-top: 4px !important;
2525
+ font-size: 11px !important;
2526
+ color: var(--jp-ui-font-color3) !important;
2527
+ }
2528
+
2529
+ /* ═══════════════════════════════════════════════════════════════════════════
2530
+ Scrollbar
2531
+ ═══════════════════════════════════════════════════════════════════════════ */
2532
+
2533
+ .aa-panel::-webkit-scrollbar {
2534
+ width: 6px;
2535
+ }
2536
+
2537
+ .aa-panel::-webkit-scrollbar-track {
2538
+ background: transparent;
2539
+ }
2540
+
2541
+ .aa-panel::-webkit-scrollbar-thumb {
2542
+ background: var(--jp-border-color2);
2543
+ border-radius: 3px;
2544
+ }
2545
+
2546
+ .aa-panel::-webkit-scrollbar-thumb:hover {
2547
+ background: var(--jp-border-color1);
2548
+ }
2549
+
2550
+ /* ═══════════════════════════════════════════════════════════════════════════
2551
+ Cell Execution Highlight (노트북 내 셀)
2552
+ ═══════════════════════════════════════════════════════════════════════════ */
2553
+
2554
+ /* 현재 실행 중인 셀 하이라이트 */
2555
+ .aa-cell-executing {
2556
+ position: relative;
2557
+ animation: aa-cell-pulse 1.5s ease-in-out infinite;
2558
+ }
2559
+
2560
+ .aa-cell-executing::before {
2561
+ content: '';
2562
+ position: absolute;
2563
+ top: 0;
2564
+ left: -4px;
2565
+ width: 4px;
2566
+ height: 100%;
2567
+ background: var(--jp-brand-color1);
2568
+ border-radius: 2px;
2569
+ animation: aa-glow 1.5s ease-in-out infinite;
2570
+ }
2571
+
2572
+ @keyframes aa-cell-pulse {
2573
+ 0%, 100% {
2574
+ box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
2575
+ }
2576
+ 50% {
2577
+ box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.15);
2578
+ }
2579
+ }
2580
+
2581
+ @keyframes aa-glow {
2582
+ 0%, 100% {
2583
+ opacity: 1;
2584
+ }
2585
+ 50% {
2586
+ opacity: 0.5;
2587
+ }
2588
+ }
2589
+
2590
+ /* ═══════════════════════════════════════════════════════════════════════════
2591
+ Speed Control
2592
+ ═══════════════════════════════════════════════════════════════════════════ */
2593
+
2594
+ .aa-speed-control {
2595
+ display: flex;
2596
+ align-items: center;
2597
+ gap: 8px;
2598
+ padding: 8px 12px;
2599
+ background: var(--jp-layout-color2);
2600
+ border-radius: 6px;
2601
+ font-size: 12px;
2602
+ }
2603
+
2604
+ .aa-speed-label {
2605
+ color: var(--jp-ui-font-color2);
2606
+ font-weight: 500;
2607
+ white-space: nowrap;
2608
+ }
2609
+
2610
+ .aa-speed-select {
2611
+ flex: 1;
2612
+ padding: 4px 8px;
2613
+ border: 1px solid var(--jp-border-color2);
2614
+ border-radius: 4px;
2615
+ background: var(--jp-layout-color0);
2616
+ color: var(--jp-ui-font-color1);
2617
+ font-size: 12px;
2618
+ cursor: pointer;
2619
+ outline: none;
2620
+ }
2621
+
2622
+ .aa-speed-select:focus {
2623
+ border-color: var(--jp-brand-color1);
2624
+ }
2625
+
2626
+ .aa-speed-select:disabled {
2627
+ opacity: 0.5;
2628
+ cursor: not-allowed;
2629
+ }
2630
+
2631
+ /* Step-by-step 모드 다음 버튼 */
2632
+ .aa-btn--next {
2633
+ background: var(--jp-brand-color1);
2634
+ color: white;
2635
+ animation: aa-pulse-btn 1.5s ease-in-out infinite;
2636
+ }
2637
+
2638
+ .aa-btn--next:hover:not(:disabled) {
2639
+ background: var(--jp-brand-color0);
2640
+ }
2641
+
2642
+ @keyframes aa-pulse-btn {
2643
+ 0%, 100% {
2644
+ transform: scale(1);
2645
+ }
2646
+ 50% {
2647
+ transform: scale(1.02);
2648
+ }
2649
+ }
2650
+
2651
+ /* 일시정지 상태 표시 */
2652
+ .aa-paused-indicator {
2653
+ display: flex;
2654
+ align-items: center;
2655
+ gap: 6px;
2656
+ padding: 8px 12px;
2657
+ background: rgba(99, 102, 241, 0.1);
2658
+ border: 1px solid var(--jp-brand-color1);
2659
+ border-radius: 6px;
2660
+ color: var(--jp-brand-color1);
2661
+ font-size: 12px;
2662
+ font-weight: 500;
2663
+ }
2664
+
2665
+ .aa-paused-icon {
2666
+ width: 16px;
2667
+ height: 16px;
2668
+ }
2669
+
2670
+ /* ═══════════════════════════════════════════════════════════════════════════
2671
+ Validation & Reflection Status
2672
+ ═══════════════════════════════════════════════════════════════════════════ */
2673
+
2674
+ /* Validation Phase Styles */
2675
+ .aa-status--validating {
2676
+ border-left-color: var(--jp-info-color1, #2196f3);
2677
+ background: rgba(33, 150, 243, 0.06);
2678
+ }
2679
+
2680
+ .aa-status--validation-passed {
2681
+ border-left-color: var(--jp-success-color1, #22c55e);
2682
+ background: rgba(34, 197, 94, 0.06);
2683
+ }
2684
+
2685
+ .aa-status--validation-warning {
2686
+ border-left-color: var(--jp-warn-color1, #f59e0b);
2687
+ background: rgba(245, 158, 11, 0.06);
2688
+ }
2689
+
2690
+ .aa-status--validation-failed {
2691
+ border-left-color: var(--jp-error-color1, #ef4444);
2692
+ background: rgba(239, 68, 68, 0.06);
2693
+ }
2694
+
2695
+ /* Reflection Phase Styles */
2696
+ .aa-status--reflecting {
2697
+ border-left-color: var(--jp-accent-color1, #8b5cf6);
2698
+ background: rgba(139, 92, 246, 0.06);
2699
+ }
2700
+
2701
+ .aa-status--reflection-passed {
2702
+ border-left-color: var(--jp-success-color1, #22c55e);
2703
+ background: rgba(34, 197, 94, 0.06);
2704
+ }
2705
+
2706
+ .aa-status--reflection-adjusting {
2707
+ border-left-color: var(--jp-warn-color1, #f59e0b);
2708
+ background: rgba(245, 158, 11, 0.06);
2709
+ }
2710
+
2711
+ /* Status Icons */
2712
+ .aa-status-icon {
2713
+ width: 16px;
2714
+ height: 16px;
2715
+ flex-shrink: 0;
2716
+ }
2717
+
2718
+ .aa-status-icon--success {
2719
+ color: var(--jp-success-color1, #22c55e);
2720
+ }
2721
+
2722
+ .aa-status-icon--warning {
2723
+ color: var(--jp-warn-color1, #f59e0b);
2724
+ }
2725
+
2726
+ .aa-status-icon--error {
2727
+ color: var(--jp-error-color1, #ef4444);
2728
+ }
2729
+
2730
+ /* Confidence Score Bar */
2731
+ .aa-status-confidence {
2732
+ display: flex;
2733
+ align-items: center;
2734
+ gap: 6px;
2735
+ margin-left: auto;
2736
+ flex-shrink: 0;
2737
+ }
2738
+
2739
+ .aa-confidence-bar {
2740
+ width: 60px;
2741
+ height: 6px;
2742
+ background: var(--jp-border-color2);
2743
+ border-radius: 3px;
2744
+ overflow: hidden;
2745
+ }
2746
+
2747
+ .aa-confidence-fill {
2748
+ height: 100%;
2749
+ background: linear-gradient(90deg,
2750
+ var(--jp-error-color1, #ef4444) 0%,
2751
+ var(--jp-warn-color1, #f59e0b) 50%,
2752
+ var(--jp-success-color1, #22c55e) 100%
2753
+ );
2754
+ background-size: 200% 100%;
2755
+ border-radius: 3px;
2756
+ transition: width 0.3s ease;
2757
+ }
2758
+
2759
+ .aa-confidence-value {
2760
+ font-size: 11px;
2761
+ font-weight: 600;
2762
+ color: var(--jp-ui-font-color2);
2763
+ min-width: 32px;
2764
+ text-align: right;
2765
+ font-variant-numeric: tabular-nums;
2766
+ }
2767
+
2768
+ /* High confidence (>70%) - green */
2769
+ .aa-confidence-fill[style*="width: 7"],
2770
+ .aa-confidence-fill[style*="width: 8"],
2771
+ .aa-confidence-fill[style*="width: 9"],
2772
+ .aa-confidence-fill[style*="width: 100"] {
2773
+ background: var(--jp-success-color1, #22c55e);
2774
+ }
2775
+
2776
+ /* Medium confidence (50-70%) - yellow */
2777
+ .aa-confidence-fill[style*="width: 5"],
2778
+ .aa-confidence-fill[style*="width: 6"] {
2779
+ background: var(--jp-warn-color1, #f59e0b);
2780
+ }
2781
+
2782
+ /* Low confidence (<50%) - red */
2783
+ .aa-confidence-fill[style*="width: 1"],
2784
+ .aa-confidence-fill[style*="width: 2"],
2785
+ .aa-confidence-fill[style*="width: 3"],
2786
+ .aa-confidence-fill[style*="width: 4"] {
2787
+ background: var(--jp-error-color1, #ef4444);
2788
+ }
2789
+
2790
+ /* Quality Badge Indicators */
2791
+ .aa-quality-badge {
2792
+ display: inline-flex;
2793
+ align-items: center;
2794
+ gap: 4px;
2795
+ padding: 2px 8px;
2796
+ border-radius: 4px;
2797
+ font-size: 10px;
2798
+ font-weight: 600;
2799
+ text-transform: uppercase;
2800
+ letter-spacing: 0.5px;
2801
+ }
2802
+
2803
+ .aa-quality-badge--validated {
2804
+ background: rgba(34, 197, 94, 0.15);
2805
+ color: var(--jp-success-color1, #22c55e);
2806
+ border: 1px solid rgba(34, 197, 94, 0.3);
2807
+ }
2808
+
2809
+ .aa-quality-badge--warning {
2810
+ background: rgba(245, 158, 11, 0.15);
2811
+ color: var(--jp-warn-color1, #f59e0b);
2812
+ border: 1px solid rgba(245, 158, 11, 0.3);
2813
+ }
2814
+
2815
+ .aa-quality-badge--reflected {
2816
+ background: rgba(139, 92, 246, 0.15);
2817
+ color: var(--jp-accent-color1, #8b5cf6);
2818
+ border: 1px solid rgba(139, 92, 246, 0.3);
2819
+ }
2820
+
2821
+ /* Step Quality Indicators */
2822
+ .aa-step-quality {
2823
+ display: flex;
2824
+ gap: 4px;
2825
+ margin-top: 4px;
2826
+ }
2827
+
2828
+ .aa-step-quality-item {
2829
+ display: inline-flex;
2830
+ align-items: center;
2831
+ gap: 3px;
2832
+ font-size: 10px;
2833
+ color: var(--jp-ui-font-color3);
2834
+ }
2835
+
2836
+ .aa-step-quality-item svg {
2837
+ width: 12px;
2838
+ height: 12px;
2839
+ }
2840
+
2841
+ .aa-step-quality-item--pass {
2842
+ color: var(--jp-success-color1, #22c55e);
2843
+ }
2844
+
2845
+ .aa-step-quality-item--warn {
2846
+ color: var(--jp-warn-color1, #f59e0b);
2847
+ }
2848
+
2849
+ .aa-step-quality-item--fail {
2850
+ color: var(--jp-error-color1, #ef4444);
2851
+ }
2852
+
2853
+ /* Shimmer Animation for Active States */
2854
+ .aa-status--validating .aa-status-text,
2855
+ .aa-status--reflecting .aa-status-text {
2856
+ background: linear-gradient(
2857
+ 90deg,
2858
+ var(--jp-ui-font-color1) 0%,
2859
+ var(--jp-ui-font-color3) 50%,
2860
+ var(--jp-ui-font-color1) 100%
2861
+ );
2862
+ background-size: 200% 100%;
2863
+ -webkit-background-clip: text;
2864
+ -webkit-text-fill-color: transparent;
2865
+ animation: aa-shimmer 2s linear infinite;
2866
+ }
2867
+
2868
+ @keyframes aa-shimmer {
2869
+ 0% {
2870
+ background-position: 200% 0;
2871
+ }
2872
+ 100% {
2873
+ background-position: -200% 0;
2874
+ }
2875
+ }
2876
+
2877
+ /* ═══════════════════════════════════════════════════════════════════════════
2878
+ Rollback UI Styles (Phase 3 - Checkpoint/Rollback System)
2879
+ ═══════════════════════════════════════════════════════════════════════════ */
2880
+
2881
+ /* Rollback Button */
2882
+ .aa-btn--rollback {
2883
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
2884
+ color: white;
2885
+ border: none;
2886
+ padding: 6px 12px;
2887
+ border-radius: 4px;
2888
+ font-size: 12px;
2889
+ font-weight: 500;
2890
+ cursor: pointer;
2891
+ display: inline-flex;
2892
+ align-items: center;
2893
+ gap: 6px;
2894
+ transition: all 0.2s ease;
2895
+ }
2896
+
2897
+ .aa-btn--rollback:hover {
2898
+ background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
2899
+ transform: translateY(-1px);
2900
+ box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
2901
+ }
2902
+
2903
+ .aa-btn--rollback:disabled {
2904
+ opacity: 0.5;
2905
+ cursor: not-allowed;
2906
+ transform: none;
2907
+ box-shadow: none;
2908
+ }
2909
+
2910
+ /* Rollback Panel */
2911
+ .aa-rollback-panel {
2912
+ background: var(--jp-layout-color1);
2913
+ border: 1px solid var(--jp-border-color1);
2914
+ border-radius: 8px;
2915
+ margin-top: 12px;
2916
+ overflow: hidden;
2917
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
2918
+ }
2919
+
2920
+ /* Rollback Header */
2921
+ .aa-rollback-header {
2922
+ display: flex;
2923
+ align-items: center;
2924
+ justify-content: space-between;
2925
+ padding: 12px 16px;
2926
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
2927
+ color: white;
2928
+ }
2929
+
2930
+ .aa-rollback-title {
2931
+ font-size: 14px;
2932
+ font-weight: 600;
2933
+ display: flex;
2934
+ align-items: center;
2935
+ gap: 8px;
2936
+ }
2937
+
2938
+ .aa-rollback-close {
2939
+ background: rgba(255, 255, 255, 0.2);
2940
+ border: none;
2941
+ color: white;
2942
+ width: 24px;
2943
+ height: 24px;
2944
+ border-radius: 4px;
2945
+ cursor: pointer;
2946
+ display: flex;
2947
+ align-items: center;
2948
+ justify-content: center;
2949
+ font-size: 16px;
2950
+ line-height: 1;
2951
+ transition: background 0.2s ease;
2952
+ }
2953
+
2954
+ .aa-rollback-close:hover {
2955
+ background: rgba(255, 255, 255, 0.3);
2956
+ }
2957
+
2958
+ /* Rollback Result Message */
2959
+ .aa-rollback-result {
2960
+ padding: 10px 16px;
2961
+ font-size: 13px;
2962
+ display: flex;
2963
+ align-items: center;
2964
+ gap: 8px;
2965
+ }
2966
+
2967
+ .aa-rollback-result--success {
2968
+ background: rgba(34, 197, 94, 0.1);
2969
+ color: var(--jp-success-color1, #22c55e);
2970
+ border-bottom: 1px solid rgba(34, 197, 94, 0.2);
2971
+ }
2972
+
2973
+ .aa-rollback-result--error {
2974
+ background: rgba(239, 68, 68, 0.1);
2975
+ color: var(--jp-error-color1, #ef4444);
2976
+ border-bottom: 1px solid rgba(239, 68, 68, 0.2);
2977
+ }
2978
+
2979
+ /* Checkpoint List */
2980
+ .aa-checkpoint-list {
2981
+ max-height: 250px;
2982
+ overflow-y: auto;
2983
+ padding: 8px;
2984
+ }
2985
+
2986
+ .aa-checkpoint-list::-webkit-scrollbar {
2987
+ width: 6px;
2988
+ }
2989
+
2990
+ .aa-checkpoint-list::-webkit-scrollbar-track {
2991
+ background: var(--jp-layout-color2);
2992
+ }
2993
+
2994
+ .aa-checkpoint-list::-webkit-scrollbar-thumb {
2995
+ background: var(--jp-border-color2);
2996
+ border-radius: 3px;
2997
+ }
2998
+
2999
+ /* Checkpoint Item */
3000
+ .aa-checkpoint-item {
3001
+ display: flex;
3002
+ align-items: center;
3003
+ justify-content: space-between;
3004
+ padding: 10px 12px;
3005
+ margin-bottom: 6px;
3006
+ background: var(--jp-layout-color2);
3007
+ border: 1px solid var(--jp-border-color1);
3008
+ border-radius: 6px;
3009
+ transition: all 0.2s ease;
3010
+ }
3011
+
3012
+ .aa-checkpoint-item:hover {
3013
+ border-color: var(--jp-brand-color1);
3014
+ background: var(--jp-layout-color3);
3015
+ }
3016
+
3017
+ .aa-checkpoint-item:last-child {
3018
+ margin-bottom: 0;
3019
+ }
3020
+
3021
+ /* Checkpoint Info */
3022
+ .aa-checkpoint-info {
3023
+ display: flex;
3024
+ flex-direction: column;
3025
+ gap: 2px;
3026
+ flex: 1;
3027
+ min-width: 0;
3028
+ }
3029
+
3030
+ .aa-checkpoint-step {
3031
+ font-size: 13px;
3032
+ font-weight: 600;
3033
+ color: var(--jp-ui-font-color1);
3034
+ }
3035
+
3036
+ .aa-checkpoint-desc {
3037
+ font-size: 12px;
3038
+ color: var(--jp-ui-font-color2);
3039
+ white-space: nowrap;
3040
+ overflow: hidden;
3041
+ text-overflow: ellipsis;
3042
+ }
3043
+
3044
+ .aa-checkpoint-time {
3045
+ font-size: 11px;
3046
+ color: var(--jp-ui-font-color3);
3047
+ }
3048
+
3049
+ /* Checkpoint Empty State */
3050
+ .aa-checkpoint-empty {
3051
+ padding: 24px 16px;
3052
+ text-align: center;
3053
+ color: var(--jp-ui-font-color3);
3054
+ font-size: 13px;
3055
+ }
3056
+
3057
+ /* Rollback Actions */
3058
+ .aa-rollback-actions {
3059
+ display: flex;
3060
+ gap: 8px;
3061
+ padding: 12px 16px;
3062
+ border-top: 1px solid var(--jp-border-color1);
3063
+ background: var(--jp-layout-color2);
3064
+ }
3065
+
3066
+ .aa-rollback-actions .aa-btn {
3067
+ flex: 1;
3068
+ }
3069
+
3070
+ /* Small Rollback Button for Checkpoint Items */
3071
+ .aa-checkpoint-item .aa-btn--rollback {
3072
+ padding: 4px 10px;
3073
+ font-size: 11px;
3074
+ flex-shrink: 0;
3075
+ }
3076
+
3077
+ /* Rolling Back State */
3078
+ .aa-rollback-panel--rolling-back {
3079
+ pointer-events: none;
3080
+ opacity: 0.7;
3081
+ }
3082
+
3083
+ .aa-rollback-panel--rolling-back::after {
3084
+ content: '';
3085
+ position: absolute;
3086
+ top: 0;
3087
+ left: 0;
3088
+ right: 0;
3089
+ bottom: 0;
3090
+ background: rgba(255, 255, 255, 0.1);
3091
+ }
3092
+ `, "",{"version":3,"sources":["webpack://./frontend/styles/auto-agent.css"],"names":[],"mappings":"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","sourcesContent":["/**\n * Auto-Agent Panel - Claude/Cursor Style\n * Minimal, matte design\n */\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Panel Container\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n height: 100%;\n overflow-y: auto;\n background: var(--jp-layout-color1);\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Empty State\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 48px 16px;\n color: var(--jp-ui-font-color3);\n}\n\n.aa-empty-text {\n font-size: 13px;\n font-weight: 500;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Input Section\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-input-section {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.aa-textarea {\n width: 100%;\n min-height: 72px;\n max-height: 180px;\n padding: 12px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n font-size: 13px;\n line-height: 1.5;\n resize: vertical;\n outline: none;\n transition: border-color 0.15s ease;\n}\n\n.aa-textarea:focus {\n border-color: var(--jp-brand-color1);\n}\n\n.aa-textarea:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.aa-textarea::placeholder {\n color: var(--jp-ui-font-color3);\n}\n\n/* Actions */\n.aa-actions {\n display: flex;\n gap: 8px;\n}\n\n.aa-btn {\n padding: 8px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s ease, opacity 0.15s ease;\n}\n\n.aa-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.aa-btn--primary {\n background: var(--jp-brand-color1);\n color: white;\n}\n\n.aa-btn--primary:hover:not(:disabled) {\n background: var(--jp-brand-color0);\n}\n\n.aa-btn--secondary {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n}\n\n.aa-btn--secondary:hover:not(:disabled) {\n background: var(--jp-layout-color3);\n}\n\n.aa-btn--cancel {\n background: transparent;\n color: var(--jp-error-color1);\n border: 1px solid var(--jp-error-color1);\n}\n\n.aa-btn--cancel:hover {\n background: var(--jp-error-color1);\n color: white;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Status Indicator\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-status {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 6px;\n font-size: 13px;\n background: var(--jp-layout-color2);\n border-left: 3px solid var(--jp-border-color1);\n}\n\n.aa-status--planning,\n.aa-status--executing,\n.aa-status--tool_calling {\n border-left-color: var(--jp-brand-color1);\n}\n\n.aa-status--self_healing {\n border-left-color: var(--jp-warn-color1);\n}\n\n.aa-status--replanning {\n border-left-color: var(--jp-info-color1, #2196f3);\n background: rgba(33, 150, 243, 0.06);\n}\n\n/* Replanning indicator for step */\n.aa-step--replanning {\n background: rgba(33, 150, 243, 0.08);\n border-left: 2px solid var(--jp-info-color1, #2196f3);\n}\n\n.aa-step--replanning .aa-step-indicator {\n color: var(--jp-info-color1, #2196f3);\n}\n\n.aa-step-replanning {\n display: inline-block;\n font-size: 11px;\n color: var(--jp-info-color1, #2196f3);\n margin-left: 8px;\n animation: aa-pulse 1.5s ease-in-out infinite;\n}\n\n/* Spinning icon for replanning */\n.aa-icon-spin {\n animation: aa-spin 1s linear infinite;\n}\n\n/* Plan replanning state */\n.aa-plan--replanning {\n border-color: var(--jp-info-color1, #2196f3);\n}\n\n.aa-plan--replanning .aa-plan-header {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.aa-plan--replanning .aa-plan-title {\n color: var(--jp-info-color1, #2196f3);\n}\n\n/* Plan changed indicator */\n.aa-plan-changed {\n margin-left: 6px;\n font-weight: 600;\n color: var(--jp-info-color1, #2196f3);\n}\n\n/* New step styles - 새로 추가된 스텝을 강조 */\n.aa-step--new {\n background: linear-gradient(90deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.06) 100%);\n border-left: 3px solid var(--jp-success-color1, #22c55e);\n animation: aa-new-step-appear 0.5s ease-out;\n position: relative;\n box-shadow: 0 0 8px rgba(34, 197, 94, 0.15);\n}\n\n/* 새 스텝에 글로우 애니메이션 (처음 나타날 때) */\n.aa-step--new::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(90deg, rgba(34, 197, 94, 0.2) 0%, transparent 100%);\n animation: aa-new-glow 2s ease-out forwards;\n pointer-events: none;\n border-radius: inherit;\n}\n\n.aa-step-desc--new {\n color: var(--jp-ui-font-color1);\n font-weight: 500;\n}\n\n/* NEW 배지 - 더 눈에 띄게 */\n.aa-new-badge {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n font-size: 9px;\n font-weight: 700;\n color: white;\n background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);\n padding: 2px 6px;\n border-radius: 4px;\n margin-right: 8px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 1px 3px rgba(34, 197, 94, 0.4);\n animation: aa-badge-pulse 2s ease-in-out 3;\n}\n\n/* NEW 배지 앞에 + 아이콘 */\n.aa-new-badge::before {\n content: '+';\n font-size: 11px;\n font-weight: 800;\n}\n\n/* 새 스텝 나타나는 애니메이션 */\n@keyframes aa-new-step-appear {\n 0% {\n opacity: 0;\n transform: translateX(-20px) scale(0.95);\n background: rgba(34, 197, 94, 0.3);\n }\n 50% {\n background: rgba(34, 197, 94, 0.2);\n }\n 100% {\n opacity: 1;\n transform: translateX(0) scale(1);\n background: linear-gradient(90deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.06) 100%);\n }\n}\n\n/* 새 스텝 글로우 페이드아웃 */\n@keyframes aa-new-glow {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/* NEW 배지 펄스 애니메이션 */\n@keyframes aa-badge-pulse {\n 0%, 100% {\n transform: scale(1);\n box-shadow: 0 1px 3px rgba(34, 197, 94, 0.4);\n }\n 50% {\n transform: scale(1.05);\n box-shadow: 0 2px 8px rgba(34, 197, 94, 0.6);\n }\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Cell Operation Badges (MODIFIED, INSERTED, REPLACED)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n/* Base badge style */\n.aa-operation-badge {\n display: inline-block;\n font-size: 9px;\n font-weight: 700;\n color: white;\n padding: 1px 5px;\n border-radius: 3px;\n margin-right: 6px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* MODIFIED badge - amber/yellow */\n.aa-operation-badge--modify {\n background: var(--jp-warn-color1, #f59e0b);\n}\n\n/* INSERTED badge - blue */\n.aa-operation-badge--insert {\n background: var(--jp-info-color1, #2196f3);\n}\n\n/* REPLACED badge - purple */\n.aa-operation-badge--replace {\n background: var(--jp-accent-color1, #8b5cf6);\n}\n\n/* CREATE badge - green (same as NEW) */\n.aa-operation-badge--create {\n background: var(--jp-success-color1, #22c55e);\n}\n\n/* Step with MODIFY operation */\n.aa-step--modified {\n background: rgba(245, 158, 11, 0.06);\n border-left: 2px solid var(--jp-warn-color1, #f59e0b);\n}\n\n.aa-step--modified .aa-step-indicator {\n color: var(--jp-warn-color1, #f59e0b);\n}\n\n/* Step with INSERT operation */\n.aa-step--inserted {\n background: rgba(33, 150, 243, 0.06);\n border-left: 2px solid var(--jp-info-color1, #2196f3);\n}\n\n.aa-step--inserted .aa-step-indicator {\n color: var(--jp-info-color1, #2196f3);\n}\n\n/* Step with REPLACE operation */\n.aa-step--replaced {\n background: rgba(139, 92, 246, 0.06);\n border-left: 2px solid var(--jp-accent-color1, #8b5cf6);\n}\n\n.aa-step--replaced .aa-step-indicator {\n color: var(--jp-accent-color1, #8b5cf6);\n}\n\n/* Cell index indicator */\n.aa-cell-index {\n display: inline-block;\n font-size: 10px;\n font-weight: 500;\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color2);\n padding: 1px 5px;\n border-radius: 3px;\n margin-left: 4px;\n font-family: var(--jp-code-font-family);\n}\n\n/* Highlight for cell index when targeting specific cell */\n.aa-cell-index--target {\n background: rgba(99, 102, 241, 0.15);\n color: var(--jp-brand-color1);\n border: 1px solid rgba(99, 102, 241, 0.3);\n}\n\n@keyframes aa-slide-in {\n from {\n opacity: 0;\n transform: translateX(-10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.aa-status--completed {\n border-left-color: var(--jp-success-color1);\n}\n\n.aa-status--failed {\n border-left-color: var(--jp-error-color1);\n}\n\n.aa-status-spinner {\n width: 14px;\n height: 14px;\n border: 2px solid var(--jp-border-color2);\n border-top-color: var(--jp-brand-color1);\n border-radius: 50%;\n animation: aa-spin 0.8s linear infinite;\n}\n\n.aa-status-text {\n flex: 1;\n color: var(--jp-ui-font-color1);\n}\n\n.aa-status-error {\n font-size: 12px;\n color: var(--jp-error-color1);\n margin-left: auto;\n}\n\n@keyframes aa-spin {\n to { transform: rotate(360deg); }\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Execution Plan\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-plan {\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.aa-plan-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 12px;\n background: var(--jp-layout-color2);\n border-bottom: 1px solid var(--jp-border-color2);\n}\n\n.aa-plan-title {\n font-size: 12px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.aa-plan-progress {\n font-size: 12px;\n color: var(--jp-ui-font-color3);\n font-variant-numeric: tabular-nums;\n}\n\n/* Progress Bar */\n.aa-progress-bar {\n height: 3px;\n background: var(--jp-border-color2);\n overflow: hidden;\n}\n\n.aa-progress-fill {\n height: 100%;\n background: var(--jp-brand-color1);\n transition: width 0.3s ease;\n}\n\n.aa-plan-steps {\n display: flex;\n flex-direction: column;\n}\n\n.aa-step {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 10px 12px;\n border-bottom: 1px solid var(--jp-border-color3);\n transition: background 0.15s ease;\n}\n\n.aa-step:last-child {\n border-bottom: none;\n}\n\n.aa-step--current {\n background: rgba(99, 102, 241, 0.06);\n}\n\n.aa-step--completed {\n opacity: 0.7;\n}\n\n.aa-step--failed {\n background: rgba(239, 68, 68, 0.06);\n}\n\n.aa-step--pending {\n opacity: 0.5;\n}\n\n.aa-step-indicator {\n min-width: 42px;\n height: 20px;\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n margin-top: 1px;\n}\n\n/* 상태 아이콘 */\n.aa-step-status-icon {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n}\n\n.aa-step-status-icon--completed {\n color: var(--jp-success-color1);\n}\n\n.aa-step-status-icon--failed {\n color: var(--jp-error-color1);\n}\n\n/* 대기 중 점 */\n.aa-step-pending-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--jp-ui-font-color3);\n flex-shrink: 0;\n margin: 0 3px;\n}\n\n.aa-step-spinner {\n width: 14px;\n height: 14px;\n border: 2px solid var(--jp-border-color2);\n border-top-color: var(--jp-brand-color1);\n border-radius: 50%;\n animation: aa-spin 0.8s linear infinite;\n flex-shrink: 0;\n}\n\n/* Step 번호 - 항상 표시 */\n.aa-step-number {\n font-size: 12px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n min-width: 18px;\n}\n\n/* 완료된 스텝: 번호를 초록색으로 */\n.aa-step--completed .aa-step-number {\n color: var(--jp-success-color1);\n}\n\n/* 실패한 스텝: 번호를 빨간색으로 */\n.aa-step--failed .aa-step-number {\n color: var(--jp-error-color1);\n}\n\n/* 현재 실행 중인 스텝: 번호를 강조 */\n.aa-step--current .aa-step-number {\n color: var(--jp-brand-color1);\n font-weight: 700;\n}\n\n/* 오버레이 스피너 */\n.aa-step-overlay-spinner {\n position: absolute;\n right: -2px;\n bottom: 0;\n width: 10px;\n height: 10px;\n}\n\n.aa-step-content {\n flex: 1;\n min-width: 0;\n}\n\n.aa-step-desc {\n display: block;\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n line-height: 1.4;\n margin-bottom: 4px;\n transition: all 0.2s ease;\n}\n\n/* Step label (Step 1:, Step 2:, etc.) */\n.aa-step-label {\n font-weight: 600;\n color: var(--jp-brand-color1);\n margin-right: 4px;\n}\n\n.aa-step--completed .aa-step-label {\n color: var(--jp-success-color1);\n}\n\n.aa-step--failed .aa-step-label {\n color: var(--jp-error-color1);\n}\n\n/* Completed step: strikethrough effect */\n.aa-step-desc--done {\n text-decoration: line-through;\n color: var(--jp-ui-font-color3);\n}\n\n.aa-step-desc--done .aa-step-label {\n text-decoration: line-through;\n}\n\n/* Currently executing step indicator */\n.aa-step-executing {\n display: inline-block;\n font-size: 11px;\n color: var(--jp-brand-color1);\n margin-left: 8px;\n animation: aa-pulse 1.5s ease-in-out infinite;\n}\n\n@keyframes aa-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.aa-step-tools {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.aa-tool-tag {\n font-size: 10px;\n font-weight: 500;\n color: var(--jp-ui-font-color3);\n background: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 3px;\n font-family: var(--jp-code-font-family);\n transition: all 0.2s ease;\n}\n\n/* Completed tool tag */\n.aa-tool-tag--done {\n text-decoration: line-through;\n opacity: 0.6;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Result Section\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-result {\n padding: 12px;\n border-radius: 6px;\n border: 1px solid var(--jp-border-color2);\n}\n\n.aa-result--success {\n border-left: 3px solid var(--jp-success-color1);\n background: var(--jp-layout-color0);\n}\n\n.aa-result--error {\n border-left: 3px solid var(--jp-error-color1);\n background: var(--jp-layout-color0);\n}\n\n.aa-result-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.aa-result-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.aa-result--success .aa-result-title {\n color: var(--jp-success-color1);\n}\n\n.aa-result--error .aa-result-title {\n color: var(--jp-error-color1);\n}\n\n.aa-result-time {\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n font-variant-numeric: tabular-nums;\n}\n\n.aa-result-message {\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n line-height: 1.5;\n margin: 0 0 8px 0;\n overflow: hidden;\n}\n\n/* Result message 내 리스트 스타일 - 번호 표시 */\n.aa-result-message ul,\n.aa-result-message ol {\n padding-left: 0;\n margin: 0.5em 0;\n list-style: none;\n overflow: hidden;\n counter-reset: result-item;\n}\n\n.aa-result-message li {\n margin: 0.25em 0;\n padding-left: 1.8em;\n position: relative;\n counter-increment: result-item;\n}\n\n.aa-result-message li::before {\n content: counter(result-item) \".\";\n position: absolute;\n left: 0;\n min-width: 1.5em;\n color: var(--jp-ui-font-color2);\n font-weight: 500;\n font-size: 0.9em;\n}\n\n/* 중첩 리스트 */\n.aa-result-message ul ul,\n.aa-result-message ol ol,\n.aa-result-message ul ol,\n.aa-result-message ol ul {\n margin: 0.25em 0;\n counter-reset: result-subitem;\n}\n\n.aa-result-message ul ul li,\n.aa-result-message ol ol li,\n.aa-result-message ul ol li,\n.aa-result-message ol ul li {\n counter-increment: result-subitem;\n}\n\n.aa-result-message ul ul li::before,\n.aa-result-message ol ol li::before,\n.aa-result-message ul ol li::before,\n.aa-result-message ol ul li::before {\n content: counter(result-subitem) \".\";\n}\n\n.aa-result-error {\n font-size: 12px;\n color: var(--jp-error-color1);\n line-height: 1.4;\n margin: 0 0 8px 0;\n word-break: break-word;\n}\n\n.aa-result-stats {\n display: flex;\n gap: 16px;\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Hint Section\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-hint {\n padding: 16px;\n text-align: center;\n}\n\n.aa-hint p {\n margin: 0;\n font-size: 13px;\n color: var(--jp-ui-font-color2);\n line-height: 1.5;\n}\n\n.aa-hint-sub {\n margin-top: 4px !important;\n font-size: 11px !important;\n color: var(--jp-ui-font-color3) !important;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Scrollbar\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-panel::-webkit-scrollbar {\n width: 6px;\n}\n\n.aa-panel::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.aa-panel::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 3px;\n}\n\n.aa-panel::-webkit-scrollbar-thumb:hover {\n background: var(--jp-border-color1);\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Cell Execution Highlight (노트북 내 셀)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n/* 현재 실행 중인 셀 하이라이트 */\n.aa-cell-executing {\n position: relative;\n animation: aa-cell-pulse 1.5s ease-in-out infinite;\n}\n\n.aa-cell-executing::before {\n content: '';\n position: absolute;\n top: 0;\n left: -4px;\n width: 4px;\n height: 100%;\n background: var(--jp-brand-color1);\n border-radius: 2px;\n animation: aa-glow 1.5s ease-in-out infinite;\n}\n\n@keyframes aa-cell-pulse {\n 0%, 100% {\n box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);\n }\n 50% {\n box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.15);\n }\n}\n\n@keyframes aa-glow {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Speed Control\n ═══════════════════════════════════════════════════════════════════════════ */\n\n.aa-speed-control {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: var(--jp-layout-color2);\n border-radius: 6px;\n font-size: 12px;\n}\n\n.aa-speed-label {\n color: var(--jp-ui-font-color2);\n font-weight: 500;\n white-space: nowrap;\n}\n\n.aa-speed-select {\n flex: 1;\n padding: 4px 8px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n font-size: 12px;\n cursor: pointer;\n outline: none;\n}\n\n.aa-speed-select:focus {\n border-color: var(--jp-brand-color1);\n}\n\n.aa-speed-select:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Step-by-step 모드 다음 버튼 */\n.aa-btn--next {\n background: var(--jp-brand-color1);\n color: white;\n animation: aa-pulse-btn 1.5s ease-in-out infinite;\n}\n\n.aa-btn--next:hover:not(:disabled) {\n background: var(--jp-brand-color0);\n}\n\n@keyframes aa-pulse-btn {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.02);\n }\n}\n\n/* 일시정지 상태 표시 */\n.aa-paused-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: rgba(99, 102, 241, 0.1);\n border: 1px solid var(--jp-brand-color1);\n border-radius: 6px;\n color: var(--jp-brand-color1);\n font-size: 12px;\n font-weight: 500;\n}\n\n.aa-paused-icon {\n width: 16px;\n height: 16px;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Validation & Reflection Status\n ═══════════════════════════════════════════════════════════════════════════ */\n\n/* Validation Phase Styles */\n.aa-status--validating {\n border-left-color: var(--jp-info-color1, #2196f3);\n background: rgba(33, 150, 243, 0.06);\n}\n\n.aa-status--validation-passed {\n border-left-color: var(--jp-success-color1, #22c55e);\n background: rgba(34, 197, 94, 0.06);\n}\n\n.aa-status--validation-warning {\n border-left-color: var(--jp-warn-color1, #f59e0b);\n background: rgba(245, 158, 11, 0.06);\n}\n\n.aa-status--validation-failed {\n border-left-color: var(--jp-error-color1, #ef4444);\n background: rgba(239, 68, 68, 0.06);\n}\n\n/* Reflection Phase Styles */\n.aa-status--reflecting {\n border-left-color: var(--jp-accent-color1, #8b5cf6);\n background: rgba(139, 92, 246, 0.06);\n}\n\n.aa-status--reflection-passed {\n border-left-color: var(--jp-success-color1, #22c55e);\n background: rgba(34, 197, 94, 0.06);\n}\n\n.aa-status--reflection-adjusting {\n border-left-color: var(--jp-warn-color1, #f59e0b);\n background: rgba(245, 158, 11, 0.06);\n}\n\n/* Status Icons */\n.aa-status-icon {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.aa-status-icon--success {\n color: var(--jp-success-color1, #22c55e);\n}\n\n.aa-status-icon--warning {\n color: var(--jp-warn-color1, #f59e0b);\n}\n\n.aa-status-icon--error {\n color: var(--jp-error-color1, #ef4444);\n}\n\n/* Confidence Score Bar */\n.aa-status-confidence {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n flex-shrink: 0;\n}\n\n.aa-confidence-bar {\n width: 60px;\n height: 6px;\n background: var(--jp-border-color2);\n border-radius: 3px;\n overflow: hidden;\n}\n\n.aa-confidence-fill {\n height: 100%;\n background: linear-gradient(90deg,\n var(--jp-error-color1, #ef4444) 0%,\n var(--jp-warn-color1, #f59e0b) 50%,\n var(--jp-success-color1, #22c55e) 100%\n );\n background-size: 200% 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.aa-confidence-value {\n font-size: 11px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n min-width: 32px;\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n/* High confidence (>70%) - green */\n.aa-confidence-fill[style*=\"width: 7\"],\n.aa-confidence-fill[style*=\"width: 8\"],\n.aa-confidence-fill[style*=\"width: 9\"],\n.aa-confidence-fill[style*=\"width: 100\"] {\n background: var(--jp-success-color1, #22c55e);\n}\n\n/* Medium confidence (50-70%) - yellow */\n.aa-confidence-fill[style*=\"width: 5\"],\n.aa-confidence-fill[style*=\"width: 6\"] {\n background: var(--jp-warn-color1, #f59e0b);\n}\n\n/* Low confidence (<50%) - red */\n.aa-confidence-fill[style*=\"width: 1\"],\n.aa-confidence-fill[style*=\"width: 2\"],\n.aa-confidence-fill[style*=\"width: 3\"],\n.aa-confidence-fill[style*=\"width: 4\"] {\n background: var(--jp-error-color1, #ef4444);\n}\n\n/* Quality Badge Indicators */\n.aa-quality-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.aa-quality-badge--validated {\n background: rgba(34, 197, 94, 0.15);\n color: var(--jp-success-color1, #22c55e);\n border: 1px solid rgba(34, 197, 94, 0.3);\n}\n\n.aa-quality-badge--warning {\n background: rgba(245, 158, 11, 0.15);\n color: var(--jp-warn-color1, #f59e0b);\n border: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.aa-quality-badge--reflected {\n background: rgba(139, 92, 246, 0.15);\n color: var(--jp-accent-color1, #8b5cf6);\n border: 1px solid rgba(139, 92, 246, 0.3);\n}\n\n/* Step Quality Indicators */\n.aa-step-quality {\n display: flex;\n gap: 4px;\n margin-top: 4px;\n}\n\n.aa-step-quality-item {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n font-size: 10px;\n color: var(--jp-ui-font-color3);\n}\n\n.aa-step-quality-item svg {\n width: 12px;\n height: 12px;\n}\n\n.aa-step-quality-item--pass {\n color: var(--jp-success-color1, #22c55e);\n}\n\n.aa-step-quality-item--warn {\n color: var(--jp-warn-color1, #f59e0b);\n}\n\n.aa-step-quality-item--fail {\n color: var(--jp-error-color1, #ef4444);\n}\n\n/* Shimmer Animation for Active States */\n.aa-status--validating .aa-status-text,\n.aa-status--reflecting .aa-status-text {\n background: linear-gradient(\n 90deg,\n var(--jp-ui-font-color1) 0%,\n var(--jp-ui-font-color3) 50%,\n var(--jp-ui-font-color1) 100%\n );\n background-size: 200% 100%;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n animation: aa-shimmer 2s linear infinite;\n}\n\n@keyframes aa-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n Rollback UI Styles (Phase 3 - Checkpoint/Rollback System)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n/* Rollback Button */\n.aa-btn--rollback {\n background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.aa-btn--rollback:hover {\n background: linear-gradient(135deg, #d97706 0%, #b45309 100%);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);\n}\n\n.aa-btn--rollback:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n\n/* Rollback Panel */\n.aa-rollback-panel {\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n margin-top: 12px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n/* Rollback Header */\n.aa-rollback-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);\n color: white;\n}\n\n.aa-rollback-title {\n font-size: 14px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.aa-rollback-close {\n background: rgba(255, 255, 255, 0.2);\n border: none;\n color: white;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n line-height: 1;\n transition: background 0.2s ease;\n}\n\n.aa-rollback-close:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n/* Rollback Result Message */\n.aa-rollback-result {\n padding: 10px 16px;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.aa-rollback-result--success {\n background: rgba(34, 197, 94, 0.1);\n color: var(--jp-success-color1, #22c55e);\n border-bottom: 1px solid rgba(34, 197, 94, 0.2);\n}\n\n.aa-rollback-result--error {\n background: rgba(239, 68, 68, 0.1);\n color: var(--jp-error-color1, #ef4444);\n border-bottom: 1px solid rgba(239, 68, 68, 0.2);\n}\n\n/* Checkpoint List */\n.aa-checkpoint-list {\n max-height: 250px;\n overflow-y: auto;\n padding: 8px;\n}\n\n.aa-checkpoint-list::-webkit-scrollbar {\n width: 6px;\n}\n\n.aa-checkpoint-list::-webkit-scrollbar-track {\n background: var(--jp-layout-color2);\n}\n\n.aa-checkpoint-list::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 3px;\n}\n\n/* Checkpoint Item */\n.aa-checkpoint-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n margin-bottom: 6px;\n background: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color1);\n border-radius: 6px;\n transition: all 0.2s ease;\n}\n\n.aa-checkpoint-item:hover {\n border-color: var(--jp-brand-color1);\n background: var(--jp-layout-color3);\n}\n\n.aa-checkpoint-item:last-child {\n margin-bottom: 0;\n}\n\n/* Checkpoint Info */\n.aa-checkpoint-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n}\n\n.aa-checkpoint-step {\n font-size: 13px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.aa-checkpoint-desc {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.aa-checkpoint-time {\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n}\n\n/* Checkpoint Empty State */\n.aa-checkpoint-empty {\n padding: 24px 16px;\n text-align: center;\n color: var(--jp-ui-font-color3);\n font-size: 13px;\n}\n\n/* Rollback Actions */\n.aa-rollback-actions {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--jp-border-color1);\n background: var(--jp-layout-color2);\n}\n\n.aa-rollback-actions .aa-btn {\n flex: 1;\n}\n\n/* Small Rollback Button for Checkpoint Items */\n.aa-checkpoint-item .aa-btn--rollback {\n padding: 4px 10px;\n font-size: 11px;\n flex-shrink: 0;\n}\n\n/* Rolling Back State */\n.aa-rollback-panel--rolling-back {\n pointer-events: none;\n opacity: 0.7;\n}\n\n.aa-rollback-panel--rolling-back::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.1);\n}\n"],"sourceRoot":""}]);
3093
+ // Exports
3094
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3095
+
3096
+
3097
+ /***/ },
3098
+
3099
+ /***/ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/cell-buttons.css"
3100
+ /*!********************************************************************************!*\
3101
+ !*** ./node_modules/css-loader/dist/cjs.js!./frontend/styles/cell-buttons.css ***!
3102
+ \********************************************************************************/
3103
+ (module, __webpack_exports__, __webpack_require__) {
3104
+
3105
+ __webpack_require__.r(__webpack_exports__);
3106
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3107
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3108
+ /* harmony export */ });
3109
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
3110
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3111
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
3112
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3113
+ // Imports
3114
+
3115
+
3116
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3117
+ // Module
3118
+ ___CSS_LOADER_EXPORT___.push([module.id, `/**
3119
+ * Cell Action Buttons Styling
3120
+ * Based on Chrome Agent button patterns
3121
+ */
3122
+
3123
+ /* Button Container - Horizontal layout at top of cell, aligned with code */
3124
+ .jp-agent-cell-buttons {
3125
+ display: flex !important;
3126
+ flex-direction: row !important;
3127
+ gap: 4px !important;
3128
+ align-items: center !important;
3129
+ justify-content: flex-start !important;
3130
+ padding: 4px 8px !important;
3131
+ background: rgba(255, 255, 255, 0.05) !important;
3132
+ border-bottom: 1px solid var(--jp-border-color2) !important;
3133
+ /* padding-left will be set dynamically via inline style to match prompt width */
3134
+ }
3135
+
3136
+ /* Base Button Style */
3137
+ .jp-agent-button {
3138
+ width: 24px !important;
3139
+ height: 24px !important;
3140
+ border: 1px solid var(--jp-border-color2) !important;
3141
+ border-radius: 4px !important;
3142
+ background: var(--jp-layout-color1) !important;
3143
+ cursor: pointer !important;
3144
+ display: inline-flex !important;
3145
+ align-items: center !important;
3146
+ justify-content: center !important;
3147
+ font-size: 12px !important;
3148
+ font-weight: bold !important;
3149
+ color: var(--jp-ui-font-color1) !important;
3150
+ transition: all 0.2s ease;
3151
+ padding: 0 !important;
3152
+ margin: 0 2px !important;
3153
+ outline: none;
3154
+ opacity: 1 !important;
3155
+ visibility: visible !important;
3156
+ }
3157
+
3158
+ .jp-agent-button:hover {
3159
+ background: var(--jp-layout-color2);
3160
+ border-color: var(--jp-brand-color1);
3161
+ transform: scale(1.05);
3162
+ }
3163
+
3164
+ .jp-agent-button:active {
3165
+ transform: scale(0.95);
3166
+ }
3167
+
3168
+ .jp-agent-button:disabled {
3169
+ opacity: 0.5;
3170
+ cursor: not-allowed;
3171
+ }
3172
+
3173
+ .jp-agent-button:disabled:hover {
3174
+ transform: none;
3175
+ background: transparent;
3176
+ border-color: var(--jp-border-color2);
3177
+ }
3178
+
3179
+ /* Button Variants */
3180
+ .jp-agent-button-explain {
3181
+ color: var(--jp-info-color1);
3182
+ }
3183
+
3184
+ .jp-agent-button-explain:hover {
3185
+ background: var(--jp-info-color3);
3186
+ border-color: var(--jp-info-color1);
3187
+ }
3188
+
3189
+ .jp-agent-button-fix {
3190
+ color: var(--jp-error-color1);
3191
+ }
3192
+
3193
+ .jp-agent-button-fix:hover {
3194
+ background: var(--jp-error-color3);
3195
+ border-color: var(--jp-error-color1);
3196
+ }
3197
+
3198
+ .jp-agent-button-custom {
3199
+ color: var(--jp-warn-color1);
3200
+ }
3201
+
3202
+ .jp-agent-button-custom:hover {
3203
+ background: var(--jp-warn-color3);
3204
+ border-color: var(--jp-warn-color1);
3205
+ }
3206
+
3207
+ /* Custom Prompt Dialog Overlay */
3208
+ .jp-agent-dialog-overlay {
3209
+ position: fixed;
3210
+ top: 0;
3211
+ left: 0;
3212
+ right: 0;
3213
+ bottom: 0;
3214
+ background: rgba(0, 0, 0, 0.5);
3215
+ display: flex;
3216
+ align-items: center;
3217
+ justify-content: center;
3218
+ z-index: 10000;
3219
+ backdrop-filter: blur(2px);
3220
+ }
3221
+
3222
+ /* Dialog Container */
3223
+ .jp-agent-dialog {
3224
+ background: var(--jp-layout-color1);
3225
+ border: 1px solid var(--jp-border-color1);
3226
+ border-radius: 8px;
3227
+ padding: 24px;
3228
+ max-width: 600px;
3229
+ width: 90%;
3230
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
3231
+ display: flex;
3232
+ flex-direction: column;
3233
+ gap: 16px;
3234
+ }
3235
+
3236
+ .jp-agent-dialog h2 {
3237
+ margin: 0;
3238
+ font-size: 20px;
3239
+ font-weight: 600;
3240
+ color: var(--jp-ui-font-color1);
3241
+ }
3242
+
3243
+ /* Dialog Labels */
3244
+ .jp-agent-dialog-label {
3245
+ display: block;
3246
+ font-size: 12px;
3247
+ font-weight: 500;
3248
+ color: var(--jp-ui-font-color2);
3249
+ margin-bottom: 4px;
3250
+ }
3251
+
3252
+ /* Cell Preview */
3253
+ .jp-agent-dialog-preview {
3254
+ background: var(--jp-layout-color0);
3255
+ border: 1px solid var(--jp-border-color2);
3256
+ border-radius: 4px;
3257
+ padding: 12px;
3258
+ max-height: 100px;
3259
+ overflow: auto;
3260
+ font-family: var(--jp-code-font-family);
3261
+ font-size: 12px;
3262
+ color: var(--jp-ui-font-color1);
3263
+ margin: 0;
3264
+ white-space: pre-wrap;
3265
+ word-break: break-word;
3266
+ }
3267
+
3268
+ /* Prompt Input */
3269
+ .jp-agent-dialog-input {
3270
+ width: 100%;
3271
+ min-height: 100px;
3272
+ padding: 12px;
3273
+ border: 1px solid var(--jp-border-color2);
3274
+ border-radius: 4px;
3275
+ background: var(--jp-layout-color1);
3276
+ color: var(--jp-ui-font-color1);
3277
+ font-family: var(--jp-ui-font-family);
3278
+ font-size: 14px;
3279
+ resize: vertical;
3280
+ outline: none;
3281
+ box-sizing: border-box;
3282
+ }
3283
+
3284
+ .jp-agent-dialog-input:focus {
3285
+ border-color: var(--jp-brand-color1);
3286
+ box-shadow: 0 0 0 2px var(--jp-brand-color3);
3287
+ }
3288
+
3289
+ .jp-agent-dialog-input::placeholder {
3290
+ color: var(--jp-ui-font-color3);
3291
+ }
3292
+
3293
+ /* Helper Text */
3294
+ .jp-agent-dialog-helper {
3295
+ font-size: 11px;
3296
+ color: var(--jp-ui-font-color3);
3297
+ margin-top: -8px;
3298
+ }
3299
+
3300
+ /* Dialog Buttons */
3301
+ .jp-agent-dialog-buttons {
3302
+ display: flex;
3303
+ justify-content: flex-end;
3304
+ gap: 8px;
3305
+ margin-top: 8px;
3306
+ }
3307
+
3308
+ .jp-agent-dialog-button {
3309
+ padding: 8px 16px;
3310
+ border: 1px solid var(--jp-border-color2);
3311
+ border-radius: 4px;
3312
+ background: var(--jp-layout-color2);
3313
+ color: var(--jp-ui-font-color1);
3314
+ font-size: 13px;
3315
+ font-weight: 500;
3316
+ cursor: pointer;
3317
+ transition: all 0.2s ease;
3318
+ outline: none;
3319
+ }
3320
+
3321
+ .jp-agent-dialog-button:hover {
3322
+ background: var(--jp-layout-color3);
3323
+ border-color: var(--jp-border-color1);
3324
+ }
3325
+
3326
+ .jp-agent-dialog-button:active {
3327
+ transform: scale(0.98);
3328
+ }
3329
+
3330
+ .jp-agent-dialog-button-primary {
3331
+ background: var(--jp-brand-color1);
3332
+ color: white;
3333
+ border-color: var(--jp-brand-color1);
3334
+ }
3335
+
3336
+ .jp-agent-dialog-button-primary:hover {
3337
+ background: var(--jp-brand-color2);
3338
+ border-color: var(--jp-brand-color2);
3339
+ }
3340
+
3341
+ .jp-agent-dialog-button-primary:disabled {
3342
+ opacity: 0.5;
3343
+ cursor: not-allowed;
3344
+ }
3345
+
3346
+ /* Dark Theme Adjustments */
3347
+ body[data-jp-theme-light="false"] .jp-agent-dialog {
3348
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);
3349
+ }
3350
+
3351
+ body[data-jp-theme-light="false"] .jp-agent-dialog-preview {
3352
+ background: var(--jp-layout-color2);
3353
+ }
3354
+
3355
+ /* Accessibility: Focus Visible */
3356
+ .jp-agent-button:focus-visible {
3357
+ outline: 2px solid var(--jp-brand-color1);
3358
+ outline-offset: 2px;
3359
+ }
3360
+
3361
+ .jp-agent-dialog-button:focus-visible {
3362
+ outline: 2px solid var(--jp-brand-color1);
3363
+ outline-offset: 2px;
3364
+ }
3365
+
3366
+ .jp-agent-dialog-input:focus-visible {
3367
+ outline: none;
3368
+ }
3369
+ `, "",{"version":3,"sources":["webpack://./frontend/styles/cell-buttons.css"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cell Action Buttons Styling\n * Based on Chrome Agent button patterns\n */\n\n/* Button Container - Horizontal layout at top of cell, aligned with code */\n.jp-agent-cell-buttons {\n display: flex !important;\n flex-direction: row !important;\n gap: 4px !important;\n align-items: center !important;\n justify-content: flex-start !important;\n padding: 4px 8px !important;\n background: rgba(255, 255, 255, 0.05) !important;\n border-bottom: 1px solid var(--jp-border-color2) !important;\n /* padding-left will be set dynamically via inline style to match prompt width */\n}\n\n/* Base Button Style */\n.jp-agent-button {\n width: 24px !important;\n height: 24px !important;\n border: 1px solid var(--jp-border-color2) !important;\n border-radius: 4px !important;\n background: var(--jp-layout-color1) !important;\n cursor: pointer !important;\n display: inline-flex !important;\n align-items: center !important;\n justify-content: center !important;\n font-size: 12px !important;\n font-weight: bold !important;\n color: var(--jp-ui-font-color1) !important;\n transition: all 0.2s ease;\n padding: 0 !important;\n margin: 0 2px !important;\n outline: none;\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n.jp-agent-button:hover {\n background: var(--jp-layout-color2);\n border-color: var(--jp-brand-color1);\n transform: scale(1.05);\n}\n\n.jp-agent-button:active {\n transform: scale(0.95);\n}\n\n.jp-agent-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.jp-agent-button:disabled:hover {\n transform: none;\n background: transparent;\n border-color: var(--jp-border-color2);\n}\n\n/* Button Variants */\n.jp-agent-button-explain {\n color: var(--jp-info-color1);\n}\n\n.jp-agent-button-explain:hover {\n background: var(--jp-info-color3);\n border-color: var(--jp-info-color1);\n}\n\n.jp-agent-button-fix {\n color: var(--jp-error-color1);\n}\n\n.jp-agent-button-fix:hover {\n background: var(--jp-error-color3);\n border-color: var(--jp-error-color1);\n}\n\n.jp-agent-button-custom {\n color: var(--jp-warn-color1);\n}\n\n.jp-agent-button-custom:hover {\n background: var(--jp-warn-color3);\n border-color: var(--jp-warn-color1);\n}\n\n/* Custom Prompt Dialog Overlay */\n.jp-agent-dialog-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n backdrop-filter: blur(2px);\n}\n\n/* Dialog Container */\n.jp-agent-dialog {\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n padding: 24px;\n max-width: 600px;\n width: 90%;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.jp-agent-dialog h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n/* Dialog Labels */\n.jp-agent-dialog-label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: var(--jp-ui-font-color2);\n margin-bottom: 4px;\n}\n\n/* Cell Preview */\n.jp-agent-dialog-preview {\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n padding: 12px;\n max-height: 100px;\n overflow: auto;\n font-family: var(--jp-code-font-family);\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n margin: 0;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Prompt Input */\n.jp-agent-dialog-input {\n width: 100%;\n min-height: 100px;\n padding: 12px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n font-size: 14px;\n resize: vertical;\n outline: none;\n box-sizing: border-box;\n}\n\n.jp-agent-dialog-input:focus {\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 2px var(--jp-brand-color3);\n}\n\n.jp-agent-dialog-input::placeholder {\n color: var(--jp-ui-font-color3);\n}\n\n/* Helper Text */\n.jp-agent-dialog-helper {\n font-size: 11px;\n color: var(--jp-ui-font-color3);\n margin-top: -8px;\n}\n\n/* Dialog Buttons */\n.jp-agent-dialog-buttons {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 8px;\n}\n\n.jp-agent-dialog-button {\n padding: 8px 16px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n outline: none;\n}\n\n.jp-agent-dialog-button:hover {\n background: var(--jp-layout-color3);\n border-color: var(--jp-border-color1);\n}\n\n.jp-agent-dialog-button:active {\n transform: scale(0.98);\n}\n\n.jp-agent-dialog-button-primary {\n background: var(--jp-brand-color1);\n color: white;\n border-color: var(--jp-brand-color1);\n}\n\n.jp-agent-dialog-button-primary:hover {\n background: var(--jp-brand-color2);\n border-color: var(--jp-brand-color2);\n}\n\n.jp-agent-dialog-button-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Dark Theme Adjustments */\nbody[data-jp-theme-light=\"false\"] .jp-agent-dialog {\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);\n}\n\nbody[data-jp-theme-light=\"false\"] .jp-agent-dialog-preview {\n background: var(--jp-layout-color2);\n}\n\n/* Accessibility: Focus Visible */\n.jp-agent-button:focus-visible {\n outline: 2px solid var(--jp-brand-color1);\n outline-offset: 2px;\n}\n\n.jp-agent-dialog-button:focus-visible {\n outline: 2px solid var(--jp-brand-color1);\n outline-offset: 2px;\n}\n\n.jp-agent-dialog-input:focus-visible {\n outline: none;\n}\n"],"sourceRoot":""}]);
3370
+ // Exports
3371
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3372
+
3373
+
3374
+ /***/ },
3375
+
3376
+ /***/ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/index.css"
3377
+ /*!*************************************************************************!*\
3378
+ !*** ./node_modules/css-loader/dist/cjs.js!./frontend/styles/index.css ***!
3379
+ \*************************************************************************/
3380
+ (module, __webpack_exports__, __webpack_require__) {
3381
+
3382
+ __webpack_require__.r(__webpack_exports__);
3383
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3384
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3385
+ /* harmony export */ });
3386
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
3387
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3388
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
3389
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3390
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_cell_buttons_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!./cell-buttons.css */ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/cell-buttons.css");
3391
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_agent_panel_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!./agent-panel.css */ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/agent-panel.css");
3392
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_settings_panel_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!./settings-panel.css */ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/settings-panel.css");
3393
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_launcher_icon_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!./launcher-icon.css */ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/launcher-icon.css");
3394
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_auto_agent_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!./auto-agent.css */ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/auto-agent.css");
3395
+ // Imports
3396
+
3397
+
3398
+
3399
+
3400
+
3401
+
3402
+
3403
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3404
+ ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_cell_buttons_css__WEBPACK_IMPORTED_MODULE_2__["default"]);
3405
+ ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_agent_panel_css__WEBPACK_IMPORTED_MODULE_3__["default"]);
3406
+ ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_settings_panel_css__WEBPACK_IMPORTED_MODULE_4__["default"]);
3407
+ ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_launcher_icon_css__WEBPACK_IMPORTED_MODULE_5__["default"]);
3408
+ ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_auto_agent_css__WEBPACK_IMPORTED_MODULE_6__["default"]);
3409
+ // Module
3410
+ ___CSS_LOADER_EXPORT___.push([module.id, `/**
3411
+ * Main Stylesheet for Jupyter Agent Extension
3412
+ * Imports all component styles
3413
+ */
3414
+
3415
+ /* Global Variables */
3416
+ :root {
3417
+ --jp-agent-spacing-sm: 4px;
3418
+ --jp-agent-spacing-md: 8px;
3419
+ --jp-agent-spacing-lg: 16px;
3420
+ --jp-agent-border-radius: 4px;
3421
+ --jp-agent-transition: all 0.2s ease;
3422
+ }
3423
+
3424
+ /* Extension Root */
3425
+ .jp-agent-root {
3426
+ height: 100%;
3427
+ display: flex;
3428
+ flex-direction: column;
3429
+ }
3430
+ `, "",{"version":3,"sources":["webpack://./frontend/styles/index.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAQF,qBAAqB;AACrB;EACE,0BAA0B;EAC1B,0BAA0B;EAC1B,2BAA2B;EAC3B,6BAA6B;EAC7B,oCAAoC;AACtC;;AAEA,mBAAmB;AACnB;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;AACxB","sourcesContent":["/**\n * Main Stylesheet for Jupyter Agent Extension\n * Imports all component styles\n */\n\n@import './cell-buttons.css';\n@import './agent-panel.css';\n@import './settings-panel.css';\n@import './launcher-icon.css';\n@import './auto-agent.css';\n\n/* Global Variables */\n:root {\n --jp-agent-spacing-sm: 4px;\n --jp-agent-spacing-md: 8px;\n --jp-agent-spacing-lg: 16px;\n --jp-agent-border-radius: 4px;\n --jp-agent-transition: all 0.2s ease;\n}\n\n/* Extension Root */\n.jp-agent-root {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n"],"sourceRoot":""}]);
3431
+ // Exports
3432
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3433
+
3434
+
3435
+ /***/ },
3436
+
3437
+ /***/ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/launcher-icon.css"
3438
+ /*!*********************************************************************************!*\
3439
+ !*** ./node_modules/css-loader/dist/cjs.js!./frontend/styles/launcher-icon.css ***!
3440
+ \*********************************************************************************/
3441
+ (module, __webpack_exports__, __webpack_require__) {
3442
+
3443
+ __webpack_require__.r(__webpack_exports__);
3444
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3445
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3446
+ /* harmony export */ });
3447
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
3448
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3449
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
3450
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3451
+ // Imports
3452
+
3453
+
3454
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3455
+ // Module
3456
+ ___CSS_LOADER_EXPORT___.push([module.id, `/**
3457
+ * Launcher Icon Styles
3458
+ * Override default launcher icon styles for HDSP
3459
+ */
3460
+
3461
+ /* Target HDSP launcher card icon specifically */
3462
+ .jp-LauncherCard[data-category="Notebook"][title="HDSP"] .jp-LauncherCard-icon {
3463
+ background-color: white !important;
3464
+ border-radius: 8px;
3465
+ padding: 8px;
3466
+ }
3467
+
3468
+ /* If the above doesn't work, try targeting by the icon class */
3469
+ .jp-icon-hdsp-agent\\:hdsp-icon {
3470
+ background-color: white !important;
3471
+ border-radius: 8px;
3472
+ padding: 4px;
3473
+ }
3474
+
3475
+ /* Override any svg fill colors within the HDSP icon */
3476
+ .jp-LauncherCard[data-category="Notebook"][title="HDSP"] .jp-LauncherCard-icon svg rect[fill="#1976d2"] {
3477
+ fill: white !important;
3478
+ }
3479
+
3480
+ .jp-LauncherCard[data-category="Notebook"][title="HDSP"] .jp-LauncherCard-icon svg path {
3481
+ stroke: #6b7280 !important;
3482
+ }
3483
+ `, "",{"version":3,"sources":["webpack://./frontend/styles/launcher-icon.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF,gDAAgD;AAChD;EACE,kCAAkC;EAClC,kBAAkB;EAClB,YAAY;AACd;;AAEA,+DAA+D;AAC/D;EACE,kCAAkC;EAClC,kBAAkB;EAClB,YAAY;AACd;;AAEA,sDAAsD;AACtD;EACE,sBAAsB;AACxB;;AAEA;EACE,0BAA0B;AAC5B","sourcesContent":["/**\n * Launcher Icon Styles\n * Override default launcher icon styles for HDSP\n */\n\n/* Target HDSP launcher card icon specifically */\n.jp-LauncherCard[data-category=\"Notebook\"][title=\"HDSP\"] .jp-LauncherCard-icon {\n background-color: white !important;\n border-radius: 8px;\n padding: 8px;\n}\n\n/* If the above doesn't work, try targeting by the icon class */\n.jp-icon-hdsp-agent\\:hdsp-icon {\n background-color: white !important;\n border-radius: 8px;\n padding: 4px;\n}\n\n/* Override any svg fill colors within the HDSP icon */\n.jp-LauncherCard[data-category=\"Notebook\"][title=\"HDSP\"] .jp-LauncherCard-icon svg rect[fill=\"#1976d2\"] {\n fill: white !important;\n}\n\n.jp-LauncherCard[data-category=\"Notebook\"][title=\"HDSP\"] .jp-LauncherCard-icon svg path {\n stroke: #6b7280 !important;\n}\n"],"sourceRoot":""}]);
3484
+ // Exports
3485
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3486
+
3487
+
3488
+ /***/ },
3489
+
3490
+ /***/ "./node_modules/css-loader/dist/cjs.js!./frontend/styles/settings-panel.css"
3491
+ /*!**********************************************************************************!*\
3492
+ !*** ./node_modules/css-loader/dist/cjs.js!./frontend/styles/settings-panel.css ***!
3493
+ \**********************************************************************************/
3494
+ (module, __webpack_exports__, __webpack_require__) {
3495
+
3496
+ __webpack_require__.r(__webpack_exports__);
3497
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3498
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3499
+ /* harmony export */ });
3500
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
3501
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3502
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
3503
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3504
+ // Imports
3505
+
3506
+
3507
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3508
+ // Module
3509
+ ___CSS_LOADER_EXPORT___.push([module.id, `/**
3510
+ * Settings Panel Styles
3511
+ */
3512
+
3513
+ /* Overlay */
3514
+ .jp-agent-settings-overlay {
3515
+ position: fixed;
3516
+ top: 0;
3517
+ left: 0;
3518
+ right: 0;
3519
+ bottom: 0;
3520
+ background-color: rgba(0, 0, 0, 0.5);
3521
+ display: flex;
3522
+ align-items: center;
3523
+ justify-content: center;
3524
+ z-index: 10000;
3525
+ }
3526
+
3527
+ /* Dialog */
3528
+ .jp-agent-settings-dialog {
3529
+ background-color: var(--jp-layout-color1);
3530
+ border-radius: 8px;
3531
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
3532
+ width: 90%;
3533
+ max-width: 500px;
3534
+ max-height: 80vh;
3535
+ display: flex;
3536
+ flex-direction: column;
3537
+ }
3538
+
3539
+ /* Header */
3540
+ .jp-agent-settings-header {
3541
+ display: flex;
3542
+ justify-content: space-between;
3543
+ align-items: center;
3544
+ padding: 16px 20px;
3545
+ border-bottom: 1px solid var(--jp-border-color1);
3546
+ }
3547
+
3548
+ .jp-agent-settings-header h2 {
3549
+ margin: 0;
3550
+ font-size: 18px;
3551
+ font-weight: 600;
3552
+ color: var(--jp-ui-font-color1);
3553
+ }
3554
+
3555
+ .jp-agent-settings-close {
3556
+ background: none;
3557
+ border: none;
3558
+ font-size: 24px;
3559
+ color: var(--jp-ui-font-color2);
3560
+ cursor: pointer;
3561
+ padding: 0;
3562
+ width: 32px;
3563
+ height: 32px;
3564
+ display: flex;
3565
+ align-items: center;
3566
+ justify-content: center;
3567
+ border-radius: 4px;
3568
+ transition: background-color 0.2s;
3569
+ }
3570
+
3571
+ .jp-agent-settings-close:hover {
3572
+ background-color: var(--jp-layout-color2);
3573
+ color: var(--jp-ui-font-color1);
3574
+ }
3575
+
3576
+ /* Content */
3577
+ .jp-agent-settings-content {
3578
+ padding: 20px;
3579
+ overflow-y: auto;
3580
+ flex: 1;
3581
+ }
3582
+
3583
+ .jp-agent-settings-group {
3584
+ margin-bottom: 16px;
3585
+ }
3586
+
3587
+ .jp-agent-settings-label {
3588
+ display: block;
3589
+ margin-bottom: 6px;
3590
+ font-size: 13px;
3591
+ font-weight: 500;
3592
+ color: var(--jp-ui-font-color1);
3593
+ }
3594
+
3595
+ .jp-agent-settings-input,
3596
+ .jp-agent-settings-select {
3597
+ width: 100%;
3598
+ padding: 8px 12px;
3599
+ font-size: 13px;
3600
+ border: 1px solid var(--jp-border-color2);
3601
+ border-radius: 4px;
3602
+ background-color: var(--jp-layout-color1);
3603
+ color: var(--jp-ui-font-color1);
3604
+ font-family: var(--jp-ui-font-family);
3605
+ }
3606
+
3607
+ .jp-agent-settings-input:focus,
3608
+ .jp-agent-settings-select:focus {
3609
+ outline: none;
3610
+ border-color: var(--jp-brand-color1);
3611
+ box-shadow: 0 0 0 1px var(--jp-brand-color1);
3612
+ }
3613
+
3614
+ .jp-agent-settings-input::placeholder {
3615
+ color: var(--jp-ui-font-color3);
3616
+ }
3617
+
3618
+ .jp-agent-settings-provider {
3619
+ margin-top: 20px;
3620
+ }
3621
+
3622
+ .jp-agent-settings-provider h3 {
3623
+ margin: 0 0 16px 0;
3624
+ font-size: 15px;
3625
+ font-weight: 600;
3626
+ color: var(--jp-ui-font-color1);
3627
+ }
3628
+
3629
+ /* Test Result */
3630
+ .jp-agent-settings-test-result {
3631
+ margin: 16px 20px 0;
3632
+ padding: 12px;
3633
+ border-radius: 4px;
3634
+ font-size: 13px;
3635
+ background-color: var(--jp-layout-color2);
3636
+ border: 1px solid var(--jp-border-color2);
3637
+ color: var(--jp-ui-font-color1);
3638
+ font-family: var(--jp-code-font-family);
3639
+ }
3640
+
3641
+ /* Footer */
3642
+ .jp-agent-settings-footer {
3643
+ display: flex;
3644
+ justify-content: flex-end;
3645
+ gap: 8px;
3646
+ padding: 16px 20px;
3647
+ border-top: 1px solid var(--jp-border-color1);
3648
+ }
3649
+
3650
+ .jp-agent-settings-button {
3651
+ padding: 8px 16px;
3652
+ font-size: 13px;
3653
+ font-weight: 500;
3654
+ border-radius: 4px;
3655
+ border: none;
3656
+ cursor: pointer;
3657
+ transition: all 0.2s;
3658
+ font-family: var(--jp-ui-font-family);
3659
+ }
3660
+
3661
+ .jp-agent-settings-button-secondary {
3662
+ background-color: var(--jp-layout-color2);
3663
+ color: var(--jp-ui-font-color1);
3664
+ }
3665
+
3666
+ .jp-agent-settings-button-secondary:hover {
3667
+ background-color: var(--jp-layout-color3);
3668
+ }
3669
+
3670
+ .jp-agent-settings-button-test {
3671
+ background-color: var(--jp-warn-color1);
3672
+ color: white;
3673
+ }
3674
+
3675
+ .jp-agent-settings-button-test:hover:not(:disabled) {
3676
+ background-color: var(--jp-warn-color0);
3677
+ }
3678
+
3679
+ .jp-agent-settings-button-test:disabled {
3680
+ opacity: 0.5;
3681
+ cursor: not-allowed;
3682
+ }
3683
+
3684
+ .jp-agent-settings-button-primary {
3685
+ background-color: var(--jp-brand-color1);
3686
+ color: white;
3687
+ }
3688
+
3689
+ .jp-agent-settings-button-primary:hover {
3690
+ background-color: var(--jp-brand-color0);
3691
+ }
3692
+
3693
+ .jp-agent-settings-button:active {
3694
+ transform: translateY(1px);
3695
+ }
3696
+
3697
+ .jp-agent-settings-button-primary:disabled {
3698
+ opacity: 0.5;
3699
+ cursor: not-allowed;
3700
+ }
3701
+
3702
+ /* Small Button Variant */
3703
+ .jp-agent-settings-button-small {
3704
+ padding: 4px 10px;
3705
+ font-size: 11px;
3706
+ }
3707
+
3708
+ /* Danger Button (Delete) */
3709
+ .jp-agent-settings-button-danger {
3710
+ background-color: var(--jp-error-color1);
3711
+ color: white;
3712
+ }
3713
+
3714
+ .jp-agent-settings-button-danger:hover:not(:disabled) {
3715
+ background-color: var(--jp-error-color0);
3716
+ }
3717
+
3718
+ .jp-agent-settings-button-danger:disabled {
3719
+ opacity: 0.5;
3720
+ cursor: not-allowed;
3721
+ }
3722
+
3723
+ /* Outline Button (Inactive state) */
3724
+ .jp-agent-settings-button-outline {
3725
+ background-color: transparent;
3726
+ border: 1px solid var(--jp-brand-color1);
3727
+ color: var(--jp-brand-color1);
3728
+ }
3729
+
3730
+ .jp-agent-settings-button-outline:hover {
3731
+ background-color: var(--jp-brand-color3);
3732
+ }
3733
+
3734
+ /* ========== API Keys Panel Styles ========== */
3735
+
3736
+ .jp-agent-keys-panel {
3737
+ margin-top: 20px;
3738
+ padding: 16px;
3739
+ border: 1px solid var(--jp-border-color2);
3740
+ border-radius: 6px;
3741
+ background-color: var(--jp-layout-color0);
3742
+ }
3743
+
3744
+ .jp-agent-keys-header {
3745
+ display: flex;
3746
+ justify-content: space-between;
3747
+ align-items: center;
3748
+ margin-bottom: 12px;
3749
+ }
3750
+
3751
+ .jp-agent-keys-header h4 {
3752
+ margin: 0;
3753
+ font-size: 14px;
3754
+ font-weight: 600;
3755
+ color: var(--jp-ui-font-color1);
3756
+ }
3757
+
3758
+ .jp-agent-keys-count {
3759
+ font-size: 12px;
3760
+ color: var(--jp-ui-font-color2);
3761
+ background-color: var(--jp-layout-color2);
3762
+ padding: 2px 8px;
3763
+ border-radius: 10px;
3764
+ }
3765
+
3766
+ .jp-agent-keys-error {
3767
+ display: flex;
3768
+ justify-content: space-between;
3769
+ align-items: center;
3770
+ padding: 8px 12px;
3771
+ margin-bottom: 12px;
3772
+ background-color: var(--jp-error-color3);
3773
+ border-radius: 4px;
3774
+ color: var(--jp-error-color1);
3775
+ font-size: 13px;
3776
+ }
3777
+
3778
+ .jp-agent-keys-error button {
3779
+ background: none;
3780
+ border: none;
3781
+ cursor: pointer;
3782
+ font-size: 16px;
3783
+ color: var(--jp-error-color1);
3784
+ padding: 0 4px;
3785
+ }
3786
+
3787
+ .jp-agent-keys-error button:hover {
3788
+ opacity: 0.8;
3789
+ }
3790
+
3791
+ .jp-agent-keys-list {
3792
+ max-height: 200px;
3793
+ overflow-y: auto;
3794
+ margin-bottom: 12px;
3795
+ }
3796
+
3797
+ .jp-agent-keys-empty {
3798
+ padding: 24px 20px;
3799
+ text-align: center;
3800
+ color: var(--jp-ui-font-color2);
3801
+ font-size: 13px;
3802
+ background-color: var(--jp-layout-color1);
3803
+ border-radius: 4px;
3804
+ border: 1px dashed var(--jp-border-color2);
3805
+ }
3806
+
3807
+ .jp-agent-key-item {
3808
+ display: flex;
3809
+ justify-content: space-between;
3810
+ align-items: center;
3811
+ padding: 10px 12px;
3812
+ margin-bottom: 6px;
3813
+ border-radius: 4px;
3814
+ background-color: var(--jp-layout-color1);
3815
+ border: 1px solid var(--jp-border-color2);
3816
+ transition: border-color 0.2s, background-color 0.2s;
3817
+ }
3818
+
3819
+ .jp-agent-key-item:last-child {
3820
+ margin-bottom: 0;
3821
+ }
3822
+
3823
+ .jp-agent-key-item:hover {
3824
+ border-color: var(--jp-border-color1);
3825
+ }
3826
+
3827
+ .jp-agent-key-item-active {
3828
+ border-color: var(--jp-brand-color1);
3829
+ background-color: var(--jp-brand-color3);
3830
+ }
3831
+
3832
+ .jp-agent-key-info {
3833
+ display: flex;
3834
+ align-items: center;
3835
+ gap: 8px;
3836
+ flex-wrap: wrap;
3837
+ }
3838
+
3839
+ .jp-agent-key-masked {
3840
+ font-family: var(--jp-code-font-family);
3841
+ font-size: 12px;
3842
+ color: var(--jp-ui-font-color1);
3843
+ background-color: var(--jp-layout-color2);
3844
+ padding: 2px 6px;
3845
+ border-radius: 3px;
3846
+ }
3847
+
3848
+ .jp-agent-key-status {
3849
+ padding: 2px 8px;
3850
+ border-radius: 10px;
3851
+ font-size: 11px;
3852
+ font-weight: 500;
3853
+ }
3854
+
3855
+ .jp-agent-key-status-active {
3856
+ background-color: var(--jp-success-color3);
3857
+ color: var(--jp-success-color1);
3858
+ }
3859
+
3860
+ .jp-agent-key-status-cooldown {
3861
+ background-color: var(--jp-warn-color3);
3862
+ color: var(--jp-warn-color1);
3863
+ }
3864
+
3865
+ .jp-agent-key-status-disabled {
3866
+ background-color: var(--jp-layout-color2);
3867
+ color: var(--jp-ui-font-color2);
3868
+ }
3869
+
3870
+ .jp-agent-key-current {
3871
+ padding: 2px 8px;
3872
+ border-radius: 10px;
3873
+ font-size: 10px;
3874
+ font-weight: 600;
3875
+ background-color: var(--jp-brand-color1);
3876
+ color: white;
3877
+ text-transform: uppercase;
3878
+ letter-spacing: 0.5px;
3879
+ }
3880
+
3881
+ .jp-agent-key-actions {
3882
+ display: flex;
3883
+ gap: 6px;
3884
+ }
3885
+
3886
+ .jp-agent-keys-add {
3887
+ display: flex;
3888
+ gap: 8px;
3889
+ margin-bottom: 12px;
3890
+ }
3891
+
3892
+ .jp-agent-keys-add input {
3893
+ flex: 1;
3894
+ min-width: 0;
3895
+ }
3896
+
3897
+ .jp-agent-keys-add button {
3898
+ flex-shrink: 0;
3899
+ white-space: nowrap;
3900
+ }
3901
+
3902
+ .jp-agent-keys-info-text {
3903
+ color: var(--jp-ui-font-color2);
3904
+ font-size: 11px;
3905
+ text-align: center;
3906
+ line-height: 1.5;
3907
+ padding-top: 8px;
3908
+ border-top: 1px solid var(--jp-border-color2);
3909
+ }
3910
+ `, "",{"version":3,"sources":["webpack://./frontend/styles/settings-panel.css"],"names":[],"mappings":"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","sourcesContent":["/**\n * Settings Panel Styles\n */\n\n/* Overlay */\n.jp-agent-settings-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n}\n\n/* Dialog */\n.jp-agent-settings-dialog {\n background-color: var(--jp-layout-color1);\n border-radius: 8px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n width: 90%;\n max-width: 500px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n}\n\n/* Header */\n.jp-agent-settings-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid var(--jp-border-color1);\n}\n\n.jp-agent-settings-header h2 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-agent-settings-close {\n background: none;\n border: none;\n font-size: 24px;\n color: var(--jp-ui-font-color2);\n cursor: pointer;\n padding: 0;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: background-color 0.2s;\n}\n\n.jp-agent-settings-close:hover {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n}\n\n/* Content */\n.jp-agent-settings-content {\n padding: 20px;\n overflow-y: auto;\n flex: 1;\n}\n\n.jp-agent-settings-group {\n margin-bottom: 16px;\n}\n\n.jp-agent-settings-label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-agent-settings-input,\n.jp-agent-settings-select {\n width: 100%;\n padding: 8px 12px;\n font-size: 13px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n}\n\n.jp-agent-settings-input:focus,\n.jp-agent-settings-select:focus {\n outline: none;\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 1px var(--jp-brand-color1);\n}\n\n.jp-agent-settings-input::placeholder {\n color: var(--jp-ui-font-color3);\n}\n\n.jp-agent-settings-provider {\n margin-top: 20px;\n}\n\n.jp-agent-settings-provider h3 {\n margin: 0 0 16px 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n/* Test Result */\n.jp-agent-settings-test-result {\n margin: 16px 20px 0;\n padding: 12px;\n border-radius: 4px;\n font-size: 13px;\n background-color: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color2);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-code-font-family);\n}\n\n/* Footer */\n.jp-agent-settings-footer {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--jp-border-color1);\n}\n\n.jp-agent-settings-button {\n padding: 8px 16px;\n font-size: 13px;\n font-weight: 500;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n font-family: var(--jp-ui-font-family);\n}\n\n.jp-agent-settings-button-secondary {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n}\n\n.jp-agent-settings-button-secondary:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-agent-settings-button-test {\n background-color: var(--jp-warn-color1);\n color: white;\n}\n\n.jp-agent-settings-button-test:hover:not(:disabled) {\n background-color: var(--jp-warn-color0);\n}\n\n.jp-agent-settings-button-test:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.jp-agent-settings-button-primary {\n background-color: var(--jp-brand-color1);\n color: white;\n}\n\n.jp-agent-settings-button-primary:hover {\n background-color: var(--jp-brand-color0);\n}\n\n.jp-agent-settings-button:active {\n transform: translateY(1px);\n}\n\n.jp-agent-settings-button-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Small Button Variant */\n.jp-agent-settings-button-small {\n padding: 4px 10px;\n font-size: 11px;\n}\n\n/* Danger Button (Delete) */\n.jp-agent-settings-button-danger {\n background-color: var(--jp-error-color1);\n color: white;\n}\n\n.jp-agent-settings-button-danger:hover:not(:disabled) {\n background-color: var(--jp-error-color0);\n}\n\n.jp-agent-settings-button-danger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Outline Button (Inactive state) */\n.jp-agent-settings-button-outline {\n background-color: transparent;\n border: 1px solid var(--jp-brand-color1);\n color: var(--jp-brand-color1);\n}\n\n.jp-agent-settings-button-outline:hover {\n background-color: var(--jp-brand-color3);\n}\n\n/* ========== API Keys Panel Styles ========== */\n\n.jp-agent-keys-panel {\n margin-top: 20px;\n padding: 16px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n background-color: var(--jp-layout-color0);\n}\n\n.jp-agent-keys-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.jp-agent-keys-header h4 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-agent-keys-count {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n background-color: var(--jp-layout-color2);\n padding: 2px 8px;\n border-radius: 10px;\n}\n\n.jp-agent-keys-error {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n margin-bottom: 12px;\n background-color: var(--jp-error-color3);\n border-radius: 4px;\n color: var(--jp-error-color1);\n font-size: 13px;\n}\n\n.jp-agent-keys-error button {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 16px;\n color: var(--jp-error-color1);\n padding: 0 4px;\n}\n\n.jp-agent-keys-error button:hover {\n opacity: 0.8;\n}\n\n.jp-agent-keys-list {\n max-height: 200px;\n overflow-y: auto;\n margin-bottom: 12px;\n}\n\n.jp-agent-keys-empty {\n padding: 24px 20px;\n text-align: center;\n color: var(--jp-ui-font-color2);\n font-size: 13px;\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n border: 1px dashed var(--jp-border-color2);\n}\n\n.jp-agent-key-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 12px;\n margin-bottom: 6px;\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n transition: border-color 0.2s, background-color 0.2s;\n}\n\n.jp-agent-key-item:last-child {\n margin-bottom: 0;\n}\n\n.jp-agent-key-item:hover {\n border-color: var(--jp-border-color1);\n}\n\n.jp-agent-key-item-active {\n border-color: var(--jp-brand-color1);\n background-color: var(--jp-brand-color3);\n}\n\n.jp-agent-key-info {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.jp-agent-key-masked {\n font-family: var(--jp-code-font-family);\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.jp-agent-key-status {\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.jp-agent-key-status-active {\n background-color: var(--jp-success-color3);\n color: var(--jp-success-color1);\n}\n\n.jp-agent-key-status-cooldown {\n background-color: var(--jp-warn-color3);\n color: var(--jp-warn-color1);\n}\n\n.jp-agent-key-status-disabled {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color2);\n}\n\n.jp-agent-key-current {\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n background-color: var(--jp-brand-color1);\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.jp-agent-key-actions {\n display: flex;\n gap: 6px;\n}\n\n.jp-agent-keys-add {\n display: flex;\n gap: 8px;\n margin-bottom: 12px;\n}\n\n.jp-agent-keys-add input {\n flex: 1;\n min-width: 0;\n}\n\n.jp-agent-keys-add button {\n flex-shrink: 0;\n white-space: nowrap;\n}\n\n.jp-agent-keys-info-text {\n color: var(--jp-ui-font-color2);\n font-size: 11px;\n text-align: center;\n line-height: 1.5;\n padding-top: 8px;\n border-top: 1px solid var(--jp-border-color2);\n}\n"],"sourceRoot":""}]);
3911
+ // Exports
3912
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3913
+
3914
+
3915
+ /***/ },
3916
+
3917
+ /***/ "./node_modules/css-loader/dist/runtime/api.js"
3918
+ /*!*****************************************************!*\
3919
+ !*** ./node_modules/css-loader/dist/runtime/api.js ***!
3920
+ \*****************************************************/
3921
+ (module) {
3922
+
3923
+
3924
+
3925
+ /*
3926
+ MIT License http://www.opensource.org/licenses/mit-license.php
3927
+ Author Tobias Koppers @sokra
3928
+ */
3929
+ module.exports = function (cssWithMappingToString) {
3930
+ var list = [];
3931
+
3932
+ // return the list of modules as css string
3933
+ list.toString = function toString() {
3934
+ return this.map(function (item) {
3935
+ var content = "";
3936
+ var needLayer = typeof item[5] !== "undefined";
3937
+ if (item[4]) {
3938
+ content += "@supports (".concat(item[4], ") {");
3939
+ }
3940
+ if (item[2]) {
3941
+ content += "@media ".concat(item[2], " {");
3942
+ }
3943
+ if (needLayer) {
3944
+ content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
3945
+ }
3946
+ content += cssWithMappingToString(item);
3947
+ if (needLayer) {
3948
+ content += "}";
3949
+ }
3950
+ if (item[2]) {
3951
+ content += "}";
3952
+ }
3953
+ if (item[4]) {
3954
+ content += "}";
3955
+ }
3956
+ return content;
3957
+ }).join("");
3958
+ };
3959
+
3960
+ // import a list of modules into the list
3961
+ list.i = function i(modules, media, dedupe, supports, layer) {
3962
+ if (typeof modules === "string") {
3963
+ modules = [[null, modules, undefined]];
3964
+ }
3965
+ var alreadyImportedModules = {};
3966
+ if (dedupe) {
3967
+ for (var k = 0; k < this.length; k++) {
3968
+ var id = this[k][0];
3969
+ if (id != null) {
3970
+ alreadyImportedModules[id] = true;
3971
+ }
3972
+ }
3973
+ }
3974
+ for (var _k = 0; _k < modules.length; _k++) {
3975
+ var item = [].concat(modules[_k]);
3976
+ if (dedupe && alreadyImportedModules[item[0]]) {
3977
+ continue;
3978
+ }
3979
+ if (typeof layer !== "undefined") {
3980
+ if (typeof item[5] === "undefined") {
3981
+ item[5] = layer;
3982
+ } else {
3983
+ item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
3984
+ item[5] = layer;
3985
+ }
3986
+ }
3987
+ if (media) {
3988
+ if (!item[2]) {
3989
+ item[2] = media;
3990
+ } else {
3991
+ item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
3992
+ item[2] = media;
3993
+ }
3994
+ }
3995
+ if (supports) {
3996
+ if (!item[4]) {
3997
+ item[4] = "".concat(supports);
3998
+ } else {
3999
+ item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
4000
+ item[4] = supports;
4001
+ }
4002
+ }
4003
+ list.push(item);
4004
+ }
4005
+ };
4006
+ return list;
4007
+ };
4008
+
4009
+ /***/ },
4010
+
4011
+ /***/ "./node_modules/css-loader/dist/runtime/getUrl.js"
4012
+ /*!********************************************************!*\
4013
+ !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
4014
+ \********************************************************/
4015
+ (module) {
4016
+
4017
+
4018
+
4019
+ module.exports = function (url, options) {
4020
+ if (!options) {
4021
+ options = {};
4022
+ }
4023
+ if (!url) {
4024
+ return url;
4025
+ }
4026
+ url = String(url.__esModule ? url.default : url);
4027
+
4028
+ // If url is already wrapped in quotes, remove them
4029
+ if (/^['"].*['"]$/.test(url)) {
4030
+ url = url.slice(1, -1);
4031
+ }
4032
+ if (options.hash) {
4033
+ url += options.hash;
4034
+ }
4035
+
4036
+ // Should url be wrapped?
4037
+ // See https://drafts.csswg.org/css-values-3/#urls
4038
+ if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) {
4039
+ return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\"");
4040
+ }
4041
+ return url;
4042
+ };
4043
+
4044
+ /***/ },
4045
+
4046
+ /***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js"
4047
+ /*!************************************************************!*\
4048
+ !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***!
4049
+ \************************************************************/
4050
+ (module) {
4051
+
4052
+
4053
+
4054
+ module.exports = function (item) {
4055
+ var content = item[1];
4056
+ var cssMapping = item[3];
4057
+ if (!cssMapping) {
4058
+ return content;
4059
+ }
4060
+ if (typeof btoa === "function") {
4061
+ var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
4062
+ var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
4063
+ var sourceMapping = "/*# ".concat(data, " */");
4064
+ return [content].concat([sourceMapping]).join("\n");
4065
+ }
4066
+ return [content].join("\n");
4067
+ };
4068
+
4069
+ /***/ },
4070
+
4071
+ /***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"
4072
+ /*!****************************************************************************!*\
4073
+ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
4074
+ \****************************************************************************/
4075
+ (module) {
4076
+
4077
+
4078
+
4079
+ var stylesInDOM = [];
4080
+ function getIndexByIdentifier(identifier) {
4081
+ var result = -1;
4082
+ for (var i = 0; i < stylesInDOM.length; i++) {
4083
+ if (stylesInDOM[i].identifier === identifier) {
4084
+ result = i;
4085
+ break;
4086
+ }
4087
+ }
4088
+ return result;
4089
+ }
4090
+ function modulesToDom(list, options) {
4091
+ var idCountMap = {};
4092
+ var identifiers = [];
4093
+ for (var i = 0; i < list.length; i++) {
4094
+ var item = list[i];
4095
+ var id = options.base ? item[0] + options.base : item[0];
4096
+ var count = idCountMap[id] || 0;
4097
+ var identifier = "".concat(id, " ").concat(count);
4098
+ idCountMap[id] = count + 1;
4099
+ var indexByIdentifier = getIndexByIdentifier(identifier);
4100
+ var obj = {
4101
+ css: item[1],
4102
+ media: item[2],
4103
+ sourceMap: item[3],
4104
+ supports: item[4],
4105
+ layer: item[5]
4106
+ };
4107
+ if (indexByIdentifier !== -1) {
4108
+ stylesInDOM[indexByIdentifier].references++;
4109
+ stylesInDOM[indexByIdentifier].updater(obj);
4110
+ } else {
4111
+ var updater = addElementStyle(obj, options);
4112
+ options.byIndex = i;
4113
+ stylesInDOM.splice(i, 0, {
4114
+ identifier: identifier,
4115
+ updater: updater,
4116
+ references: 1
4117
+ });
4118
+ }
4119
+ identifiers.push(identifier);
4120
+ }
4121
+ return identifiers;
4122
+ }
4123
+ function addElementStyle(obj, options) {
4124
+ var api = options.domAPI(options);
4125
+ api.update(obj);
4126
+ var updater = function updater(newObj) {
4127
+ if (newObj) {
4128
+ if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
4129
+ return;
4130
+ }
4131
+ api.update(obj = newObj);
4132
+ } else {
4133
+ api.remove();
4134
+ }
4135
+ };
4136
+ return updater;
4137
+ }
4138
+ module.exports = function (list, options) {
4139
+ options = options || {};
4140
+ list = list || [];
4141
+ var lastIdentifiers = modulesToDom(list, options);
4142
+ return function update(newList) {
4143
+ newList = newList || [];
4144
+ for (var i = 0; i < lastIdentifiers.length; i++) {
4145
+ var identifier = lastIdentifiers[i];
4146
+ var index = getIndexByIdentifier(identifier);
4147
+ stylesInDOM[index].references--;
4148
+ }
4149
+ var newLastIdentifiers = modulesToDom(newList, options);
4150
+ for (var _i = 0; _i < lastIdentifiers.length; _i++) {
4151
+ var _identifier = lastIdentifiers[_i];
4152
+ var _index = getIndexByIdentifier(_identifier);
4153
+ if (stylesInDOM[_index].references === 0) {
4154
+ stylesInDOM[_index].updater();
4155
+ stylesInDOM.splice(_index, 1);
4156
+ }
4157
+ }
4158
+ lastIdentifiers = newLastIdentifiers;
4159
+ };
4160
+ };
4161
+
4162
+ /***/ },
4163
+
4164
+ /***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js"
4165
+ /*!********************************************************************!*\
4166
+ !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
4167
+ \********************************************************************/
4168
+ (module) {
4169
+
4170
+
4171
+
4172
+ var memo = {};
4173
+
4174
+ /* istanbul ignore next */
4175
+ function getTarget(target) {
4176
+ if (typeof memo[target] === "undefined") {
4177
+ var styleTarget = document.querySelector(target);
4178
+
4179
+ // Special case to return head of iframe instead of iframe itself
4180
+ if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
4181
+ try {
4182
+ // This will throw an exception if access to iframe is blocked
4183
+ // due to cross-origin restrictions
4184
+ styleTarget = styleTarget.contentDocument.head;
4185
+ } catch (e) {
4186
+ // istanbul ignore next
4187
+ styleTarget = null;
4188
+ }
4189
+ }
4190
+ memo[target] = styleTarget;
4191
+ }
4192
+ return memo[target];
4193
+ }
4194
+
4195
+ /* istanbul ignore next */
4196
+ function insertBySelector(insert, style) {
4197
+ var target = getTarget(insert);
4198
+ if (!target) {
4199
+ throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
4200
+ }
4201
+ target.appendChild(style);
4202
+ }
4203
+ module.exports = insertBySelector;
4204
+
4205
+ /***/ },
4206
+
4207
+ /***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"
4208
+ /*!**********************************************************************!*\
4209
+ !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
4210
+ \**********************************************************************/
4211
+ (module) {
4212
+
4213
+
4214
+
4215
+ /* istanbul ignore next */
4216
+ function insertStyleElement(options) {
4217
+ var element = document.createElement("style");
4218
+ options.setAttributes(element, options.attributes);
4219
+ options.insert(element, options.options);
4220
+ return element;
4221
+ }
4222
+ module.exports = insertStyleElement;
4223
+
4224
+ /***/ },
4225
+
4226
+ /***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"
4227
+ /*!**********************************************************************************!*\
4228
+ !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
4229
+ \**********************************************************************************/
4230
+ (module, __unused_webpack_exports, __webpack_require__) {
4231
+
4232
+
4233
+
4234
+ /* istanbul ignore next */
4235
+ function setAttributesWithoutAttributes(styleElement) {
4236
+ var nonce = true ? __webpack_require__.nc : 0;
4237
+ if (nonce) {
4238
+ styleElement.setAttribute("nonce", nonce);
4239
+ }
4240
+ }
4241
+ module.exports = setAttributesWithoutAttributes;
4242
+
4243
+ /***/ },
4244
+
4245
+ /***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"
4246
+ /*!***************************************************************!*\
4247
+ !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
4248
+ \***************************************************************/
4249
+ (module) {
4250
+
4251
+
4252
+
4253
+ /* istanbul ignore next */
4254
+ function apply(styleElement, options, obj) {
4255
+ var css = "";
4256
+ if (obj.supports) {
4257
+ css += "@supports (".concat(obj.supports, ") {");
4258
+ }
4259
+ if (obj.media) {
4260
+ css += "@media ".concat(obj.media, " {");
4261
+ }
4262
+ var needLayer = typeof obj.layer !== "undefined";
4263
+ if (needLayer) {
4264
+ css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
4265
+ }
4266
+ css += obj.css;
4267
+ if (needLayer) {
4268
+ css += "}";
4269
+ }
4270
+ if (obj.media) {
4271
+ css += "}";
4272
+ }
4273
+ if (obj.supports) {
4274
+ css += "}";
4275
+ }
4276
+ var sourceMap = obj.sourceMap;
4277
+ if (sourceMap && typeof btoa !== "undefined") {
4278
+ css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
4279
+ }
4280
+
4281
+ // For old IE
4282
+ /* istanbul ignore if */
4283
+ options.styleTagTransform(css, styleElement, options.options);
4284
+ }
4285
+ function removeStyleElement(styleElement) {
4286
+ // istanbul ignore if
4287
+ if (styleElement.parentNode === null) {
4288
+ return false;
4289
+ }
4290
+ styleElement.parentNode.removeChild(styleElement);
4291
+ }
4292
+
4293
+ /* istanbul ignore next */
4294
+ function domAPI(options) {
4295
+ if (typeof document === "undefined") {
4296
+ return {
4297
+ update: function update() {},
4298
+ remove: function remove() {}
4299
+ };
4300
+ }
4301
+ var styleElement = options.insertStyleElement(options);
4302
+ return {
4303
+ update: function update(obj) {
4304
+ apply(styleElement, options, obj);
4305
+ },
4306
+ remove: function remove() {
4307
+ removeStyleElement(styleElement);
4308
+ }
4309
+ };
4310
+ }
4311
+ module.exports = domAPI;
4312
+
4313
+ /***/ },
4314
+
4315
+ /***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"
4316
+ /*!*********************************************************************!*\
4317
+ !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
4318
+ \*********************************************************************/
4319
+ (module) {
4320
+
4321
+
4322
+
4323
+ /* istanbul ignore next */
4324
+ function styleTagTransform(css, styleElement) {
4325
+ if (styleElement.styleSheet) {
4326
+ styleElement.styleSheet.cssText = css;
4327
+ } else {
4328
+ while (styleElement.firstChild) {
4329
+ styleElement.removeChild(styleElement.firstChild);
4330
+ }
4331
+ styleElement.appendChild(document.createTextNode(css));
4332
+ }
4333
+ }
4334
+ module.exports = styleTagTransform;
4335
+
4336
+ /***/ },
4337
+
4338
+ /***/ "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23666%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E"
4339
+ /*!*************************************************************************************************************************************************************************************************************************************!*\
4340
+ !*** data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23666%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E ***!
4341
+ \*************************************************************************************************************************************************************************************************************************************/
4342
+ (module) {
4343
+
4344
+ module.exports = "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23666%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E";
4345
+
4346
+ /***/ },
4347
+
4348
+ /***/ "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23999%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E"
4349
+ /*!*************************************************************************************************************************************************************************************************************************************!*\
4350
+ !*** data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23999%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E ***!
4351
+ \*************************************************************************************************************************************************************************************************************************************/
4352
+ (module) {
4353
+
4354
+ module.exports = "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23999%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E";
4355
+
4356
+ /***/ },
4357
+
4358
+ /***/ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNOCAyQzQuNjkgMiAyIDQuNjkgMiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwLjVjLTIuNDggMC00LjUtMi4wMi00LjUtNC41czIuMDItNC41IDQuNS00LjUgNC41IDIuMDIgNC41IDQuNS0yLjAyIDQuNS00LjUgNC41eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjciIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iMSIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTUuNSAxMGMwLjUtMC44IDEuNS0xLjMgMi41LTEuMyAxIDAgMiAwLjUgMi41IDEuMyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg=="
4359
+ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
4360
+ !*** data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNOCAyQzQuNjkgMiAyIDQuNjkgMiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwLjVjLTIuNDggMC00LjUtMi4wMi00LjUtNC41czIuMDItNC41IDQuNS00LjUgNC41IDIuMDIgNC41IDQuNS0yLjAyIDQuNS00LjUgNC41eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjciIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iMSIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTUuNSAxMGMwLjUtMC44IDEuNS0xLjMgMi41LTEuMyAxIDAgMiAwLjUgMi41IDEuMyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg== ***!
4361
+ \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
4362
+ (module) {
4363
+
4364
+ module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNOCAyQzQuNjkgMiAyIDQuNjkgMiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwLjVjLTIuNDggMC00LjUtMi4wMi00LjUtNC41czIuMDItNC41IDQuNS00LjUgNC41IDIuMDIgNC41IDQuNS0yLjAyIDQuNS00LjUgNC41eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjciIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iMSIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTUuNSAxMGMwLjUtMC44IDEuNS0xLjMgMi41LTEuMyAxIDAgMiAwLjUgMi41IDEuMyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==";
4365
+
4366
+ /***/ }
4367
+
4368
+ }]);
4369
+ //# sourceMappingURL=frontend_styles_index_js.2607ff74c74acfa83158.js.map