@memberjunction/ng-dashboards 5.34.1 → 5.35.0

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 (346) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.js +773 -783
  235. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  236. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  237. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  239. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  241. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.js +420 -393
  243. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  244. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  245. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  249. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  251. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  252. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  253. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  255. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  256. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  257. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.js +587 -608
  259. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  260. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  261. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  263. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  264. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  265. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  266. package/dist/Testing/components/testing-review.component.js +310 -274
  267. package/dist/Testing/components/testing-review.component.js.map +1 -1
  268. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  269. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  271. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  272. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  273. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.js +307 -273
  275. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  276. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  277. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.js +107 -93
  279. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  280. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  281. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  282. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  283. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  285. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  287. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  288. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  289. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  290. package/dist/actions-dashboards.module.d.ts +15 -16
  291. package/dist/actions-dashboards.module.d.ts.map +1 -1
  292. package/dist/actions-dashboards.module.js +34 -11
  293. package/dist/actions-dashboards.module.js.map +1 -1
  294. package/dist/ai-dashboards.module.d.ts +45 -48
  295. package/dist/ai-dashboards.module.d.ts.map +1 -1
  296. package/dist/ai-dashboards.module.js +36 -10
  297. package/dist/ai-dashboards.module.js.map +1 -1
  298. package/dist/archiving-dashboards.module.d.ts +2 -1
  299. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  300. package/dist/archiving-dashboards.module.js +12 -2
  301. package/dist/archiving-dashboards.module.js.map +1 -1
  302. package/dist/communication-dashboards.module.d.ts +2 -1
  303. package/dist/communication-dashboards.module.d.ts.map +1 -1
  304. package/dist/communication-dashboards.module.js +24 -3
  305. package/dist/communication-dashboards.module.js.map +1 -1
  306. package/dist/core-dashboards.module.d.ts +1 -1
  307. package/dist/core-dashboards.module.d.ts.map +1 -1
  308. package/dist/core-dashboards.module.js +31 -1
  309. package/dist/core-dashboards.module.js.map +1 -1
  310. package/dist/credentials-dashboards.module.d.ts +1 -1
  311. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  312. package/dist/credentials-dashboards.module.js +28 -1
  313. package/dist/credentials-dashboards.module.js.map +1 -1
  314. package/dist/lists-dashboards.module.d.ts +1 -1
  315. package/dist/lists-dashboards.module.d.ts.map +1 -1
  316. package/dist/lists-dashboards.module.js +28 -1
  317. package/dist/lists-dashboards.module.js.map +1 -1
  318. package/dist/public-api.d.ts +2 -2
  319. package/dist/public-api.d.ts.map +1 -1
  320. package/dist/public-api.js +3 -3
  321. package/dist/public-api.js.map +1 -1
  322. package/dist/scheduling-dashboards.module.d.ts +1 -1
  323. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  324. package/dist/scheduling-dashboards.module.js +31 -1
  325. package/dist/scheduling-dashboards.module.js.map +1 -1
  326. package/dist/testing-dashboards.module.d.ts +8 -7
  327. package/dist/testing-dashboards.module.d.ts.map +1 -1
  328. package/dist/testing-dashboards.module.js +30 -0
  329. package/dist/testing-dashboards.module.js.map +1 -1
  330. package/package.json +52 -52
  331. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  332. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  333. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  334. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  335. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  336. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  339. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  340. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  342. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  343. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  344. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  346. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -17,7 +17,8 @@ import * as d3 from 'd3';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "@angular/router";
19
19
  import * as i2 from "@angular/forms";
20
- import * as i3 from "@angular/common";
20
+ import * as i3 from "@memberjunction/ng-ui-components";
21
+ import * as i4 from "@angular/common";
21
22
  const _c0 = ["perfChart"];
22
23
  const _forTrack0 = ($index, $item) => $item.className;
23
24
  const _forTrack1 = ($index, $item) => $item.entityName;
@@ -27,57 +28,54 @@ const _forTrack4 = ($index, $item) => $item.label;
27
28
  const _forTrack5 = ($index, $item) => $item.fingerprint;
28
29
  const _forTrack6 = ($index, $item) => $item.key;
29
30
  const _forTrack7 = ($index, $item) => $item.propertyName;
30
- function SystemDiagnosticsComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "span", 8);
32
- i0.ɵɵelement(1, "i", 36);
33
- i0.ɵɵtext(2, " Every 5s ");
34
- i0.ɵɵelementEnd();
31
+ function SystemDiagnosticsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelement(0, "mj-stat-badge", 4);
35
33
  } }
36
- function SystemDiagnosticsComponent_Conditional_18_Conditional_30_Template(rf, ctx) { if (rf & 1) {
34
+ function SystemDiagnosticsComponent_Conditional_13_Conditional_30_Template(rf, ctx) { if (rf & 1) {
37
35
  i0.ɵɵtext(0, " No redundant loading detected ");
38
36
  } }
39
- function SystemDiagnosticsComponent_Conditional_18_Conditional_31_Template(rf, ctx) { if (rf & 1) {
37
+ function SystemDiagnosticsComponent_Conditional_13_Conditional_31_Template(rf, ctx) { if (rf & 1) {
40
38
  i0.ɵɵtext(0);
41
39
  } if (rf & 2) {
42
40
  const ctx_r0 = i0.ɵɵnextContext(2);
43
41
  i0.ɵɵtextInterpolate1(" ", ctx_r0.redundantLoads.length, " entities loaded by multiple engines ");
44
42
  } }
45
- function SystemDiagnosticsComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 37)(2, "div", 38);
47
- i0.ɵɵelement(3, "i", 21);
43
+ function SystemDiagnosticsComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "div", 13)(1, "div", 35)(2, "div", 36);
45
+ i0.ɵɵelement(3, "i", 20);
48
46
  i0.ɵɵelementEnd();
49
- i0.ɵɵelementStart(4, "div", 39)(5, "div", 40);
47
+ i0.ɵɵelementStart(4, "div", 37)(5, "div", 38);
50
48
  i0.ɵɵtext(6);
51
49
  i0.ɵɵelementEnd();
52
- i0.ɵɵelementStart(7, "div", 41);
50
+ i0.ɵɵelementStart(7, "div", 39);
53
51
  i0.ɵɵtext(8, "Registered Engines");
54
52
  i0.ɵɵelementEnd();
55
- i0.ɵɵelementStart(9, "div", 42);
53
+ i0.ɵɵelementStart(9, "div", 40);
56
54
  i0.ɵɵtext(10);
57
55
  i0.ɵɵelementEnd()()();
58
- i0.ɵɵelementStart(11, "div", 37)(12, "div", 43);
59
- i0.ɵɵelement(13, "i", 44);
56
+ i0.ɵɵelementStart(11, "div", 35)(12, "div", 41);
57
+ i0.ɵɵelement(13, "i", 42);
60
58
  i0.ɵɵelementEnd();
61
- i0.ɵɵelementStart(14, "div", 39)(15, "div", 40);
59
+ i0.ɵɵelementStart(14, "div", 37)(15, "div", 38);
62
60
  i0.ɵɵtext(16);
63
61
  i0.ɵɵelementEnd();
64
- i0.ɵɵelementStart(17, "div", 41);
62
+ i0.ɵɵelementStart(17, "div", 39);
65
63
  i0.ɵɵtext(18, "Engine Memory");
66
64
  i0.ɵɵelementEnd();
67
- i0.ɵɵelementStart(19, "div", 42);
65
+ i0.ɵɵelementStart(19, "div", 40);
68
66
  i0.ɵɵtext(20, "Estimated total");
69
67
  i0.ɵɵelementEnd()()();
70
- i0.ɵɵelementStart(21, "div", 37)(22, "div", 45);
71
- i0.ɵɵelement(23, "i", 23);
68
+ i0.ɵɵelementStart(21, "div", 35)(22, "div", 43);
69
+ i0.ɵɵelement(23, "i", 22);
72
70
  i0.ɵɵelementEnd();
73
- i0.ɵɵelementStart(24, "div", 39)(25, "div", 40);
71
+ i0.ɵɵelementStart(24, "div", 37)(25, "div", 38);
74
72
  i0.ɵɵtext(26);
75
73
  i0.ɵɵelementEnd();
76
- i0.ɵɵelementStart(27, "div", 41);
74
+ i0.ɵɵelementStart(27, "div", 39);
77
75
  i0.ɵɵtext(28, "Redundant Loads");
78
76
  i0.ɵɵelementEnd();
79
- i0.ɵɵelementStart(29, "div", 42);
80
- i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_18_Conditional_30_Template, 1, 0)(31, SystemDiagnosticsComponent_Conditional_18_Conditional_31_Template, 1, 1);
77
+ i0.ɵɵelementStart(29, "div", 40);
78
+ i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_13_Conditional_30_Template, 1, 0)(31, SystemDiagnosticsComponent_Conditional_13_Conditional_31_Template, 1, 1);
81
79
  i0.ɵɵelementEnd()()()();
82
80
  } if (rf & 2) {
83
81
  const ctx_r0 = i0.ɵɵnextContext();
@@ -94,31 +92,31 @@ function SystemDiagnosticsComponent_Conditional_18_Template(rf, ctx) { if (rf &
94
92
  i0.ɵɵadvance(4);
95
93
  i0.ɵɵconditional(ctx_r0.redundantLoads.length === 0 ? 30 : 31);
96
94
  } }
97
- function SystemDiagnosticsComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
98
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 46);
99
- i0.ɵɵelement(2, "i", 21);
100
- i0.ɵɵelementStart(3, "span", 47);
95
+ function SystemDiagnosticsComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementStart(0, "div", 14)(1, "div", 44);
97
+ i0.ɵɵelement(2, "i", 20);
98
+ i0.ɵɵelementStart(3, "span", 45);
101
99
  i0.ɵɵtext(4);
102
100
  i0.ɵɵelementEnd();
103
- i0.ɵɵelementStart(5, "span", 48);
101
+ i0.ɵɵelementStart(5, "span", 46);
104
102
  i0.ɵɵtext(6, "Engines");
105
103
  i0.ɵɵelementEnd()();
106
- i0.ɵɵelement(7, "div", 49);
107
- i0.ɵɵelementStart(8, "div", 50);
108
- i0.ɵɵelement(9, "i", 44);
109
- i0.ɵɵelementStart(10, "span", 47);
104
+ i0.ɵɵelement(7, "div", 47);
105
+ i0.ɵɵelementStart(8, "div", 48);
106
+ i0.ɵɵelement(9, "i", 42);
107
+ i0.ɵɵelementStart(10, "span", 45);
110
108
  i0.ɵɵtext(11);
111
109
  i0.ɵɵelementEnd();
112
- i0.ɵɵelementStart(12, "span", 48);
110
+ i0.ɵɵelementStart(12, "span", 46);
113
111
  i0.ɵɵtext(13, "Memory");
114
112
  i0.ɵɵelementEnd()();
115
- i0.ɵɵelement(14, "div", 49);
116
- i0.ɵɵelementStart(15, "div", 51);
117
- i0.ɵɵelement(16, "i", 23);
118
- i0.ɵɵelementStart(17, "span", 47);
113
+ i0.ɵɵelement(14, "div", 47);
114
+ i0.ɵɵelementStart(15, "div", 49);
115
+ i0.ɵɵelement(16, "i", 22);
116
+ i0.ɵɵelementStart(17, "span", 45);
119
117
  i0.ɵɵtext(18);
120
118
  i0.ɵɵelementEnd();
121
- i0.ɵɵelementStart(19, "span", 48);
119
+ i0.ɵɵelementStart(19, "span", 46);
122
120
  i0.ɵɵtext(20, "Redundant");
123
121
  i0.ɵɵelementEnd()()();
124
122
  } if (rf & 2) {
@@ -132,8 +130,8 @@ function SystemDiagnosticsComponent_Conditional_19_Template(rf, ctx) { if (rf &
132
130
  i0.ɵɵadvance(3);
133
131
  i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
134
132
  } }
135
- function SystemDiagnosticsComponent_Conditional_35_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "span", 24);
133
+ function SystemDiagnosticsComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵelementStart(0, "span", 23);
137
135
  i0.ɵɵtext(1);
138
136
  i0.ɵɵelementEnd();
139
137
  } if (rf & 2) {
@@ -141,28 +139,28 @@ function SystemDiagnosticsComponent_Conditional_35_Template(rf, ctx) { if (rf &
141
139
  i0.ɵɵadvance();
142
140
  i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
143
141
  } }
144
- function SystemDiagnosticsComponent_Conditional_36_Template(rf, ctx) { if (rf & 1) {
145
- i0.ɵɵelementStart(0, "span", 25);
142
+ function SystemDiagnosticsComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
143
+ i0.ɵɵelementStart(0, "span", 24);
146
144
  i0.ɵɵtext(1, "0");
147
145
  i0.ɵɵelementEnd();
148
146
  } }
149
- function SystemDiagnosticsComponent_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementStart(0, "div", 57);
151
- i0.ɵɵelement(1, "i", 59);
147
+ function SystemDiagnosticsComponent_Conditional_45_Conditional_10_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "div", 55);
149
+ i0.ɵɵelement(1, "i", 57);
152
150
  i0.ɵɵelementStart(2, "p");
153
151
  i0.ɵɵtext(3, "No engines registered yet");
154
152
  i0.ɵɵelementEnd();
155
- i0.ɵɵelementStart(4, "span", 60);
153
+ i0.ɵɵelementStart(4, "span", 58);
156
154
  i0.ɵɵtext(5, "Engines register themselves when they are first configured");
157
155
  i0.ɵɵelementEnd()();
158
156
  } }
159
- function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
160
- i0.ɵɵelementStart(0, "div", 67);
161
- i0.ɵɵelement(1, "i", 33);
162
- i0.ɵɵelementStart(2, "span", 68);
157
+ function SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "div", 65);
159
+ i0.ɵɵelement(1, "i", 32);
160
+ i0.ɵɵelementStart(2, "span", 66);
163
161
  i0.ɵɵtext(3, "Loaded:");
164
162
  i0.ɵɵelementEnd();
165
- i0.ɵɵelementStart(4, "span", 69);
163
+ i0.ɵɵelementStart(4, "span", 67);
166
164
  i0.ɵɵtext(5);
167
165
  i0.ɵɵelementEnd()();
168
166
  } if (rf & 2) {
@@ -171,39 +169,39 @@ function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Conditio
171
169
  i0.ɵɵadvance(5);
172
170
  i0.ɵɵtextInterpolate(ctx_r0.formatTime(engine_r4.lastLoadedAt));
173
171
  } }
174
- function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
172
+ function SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
175
173
  const _r3 = i0.ɵɵgetCurrentView();
176
- i0.ɵɵelementStart(0, "div", 62)(1, "div", 63)(2, "div", 64);
174
+ i0.ɵɵelementStart(0, "div", 60)(1, "div", 61)(2, "div", 62);
177
175
  i0.ɵɵtext(3);
178
176
  i0.ɵɵelementEnd();
179
- i0.ɵɵelementStart(4, "div", 65);
177
+ i0.ɵɵelementStart(4, "div", 63);
180
178
  i0.ɵɵtext(5);
181
179
  i0.ɵɵelementEnd()();
182
- i0.ɵɵelementStart(6, "div", 66)(7, "div", 67);
183
- i0.ɵɵelement(8, "i", 44);
184
- i0.ɵɵelementStart(9, "span", 68);
180
+ i0.ɵɵelementStart(6, "div", 64)(7, "div", 65);
181
+ i0.ɵɵelement(8, "i", 42);
182
+ i0.ɵɵelementStart(9, "span", 66);
185
183
  i0.ɵɵtext(10, "Memory:");
186
184
  i0.ɵɵelementEnd();
187
- i0.ɵɵelementStart(11, "span", 69);
185
+ i0.ɵɵelementStart(11, "span", 67);
188
186
  i0.ɵɵtext(12);
189
187
  i0.ɵɵelementEnd()();
190
- i0.ɵɵelementStart(13, "div", 67);
191
- i0.ɵɵelement(14, "i", 70);
192
- i0.ɵɵelementStart(15, "span", 68);
188
+ i0.ɵɵelementStart(13, "div", 65);
189
+ i0.ɵɵelement(14, "i", 68);
190
+ i0.ɵɵelementStart(15, "span", 66);
193
191
  i0.ɵɵtext(16, "Items:");
194
192
  i0.ɵɵelementEnd();
195
- i0.ɵɵelementStart(17, "span", 69);
193
+ i0.ɵɵelementStart(17, "span", 67);
196
194
  i0.ɵɵtext(18);
197
195
  i0.ɵɵelementEnd()();
198
- i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Conditional_19_Template, 6, 1, "div", 67);
196
+ i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Conditional_19_Template, 6, 1, "div", 65);
199
197
  i0.ɵɵelementEnd();
200
- i0.ɵɵelementStart(20, "div", 71)(21, "button", 72);
201
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template_button_click_21_listener($event) { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.refreshSingleEngine(engine_r4, $event)); });
202
- i0.ɵɵelement(22, "i", 55);
198
+ i0.ɵɵelementStart(20, "div", 69)(21, "button", 70);
199
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Template_button_click_21_listener($event) { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.refreshSingleEngine(engine_r4, $event)); });
200
+ i0.ɵɵelement(22, "i", 53);
203
201
  i0.ɵɵelementEnd();
204
- i0.ɵɵelementStart(23, "button", 73);
205
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template_button_click_23_listener() { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEngineDetailPanel(engine_r4)); });
206
- i0.ɵɵelement(24, "i", 74);
202
+ i0.ɵɵelementStart(23, "button", 71);
203
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Template_button_click_23_listener() { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEngineDetailPanel(engine_r4)); });
204
+ i0.ɵɵelement(24, "i", 72);
207
205
  i0.ɵɵelementEnd()()();
208
206
  } if (rf & 2) {
209
207
  const engine_r4 = ctx.$implicit;
@@ -230,28 +228,28 @@ function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template
230
228
  i0.ɵɵadvance();
231
229
  i0.ɵɵproperty("disabled", !engine_r4.isLoaded);
232
230
  } }
233
- function SystemDiagnosticsComponent_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
234
- i0.ɵɵelementStart(0, "div", 58);
235
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template, 25, 16, "div", 61, _forTrack0);
231
+ function SystemDiagnosticsComponent_Conditional_45_Conditional_11_Template(rf, ctx) { if (rf & 1) {
232
+ i0.ɵɵelementStart(0, "div", 56);
233
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Template, 25, 16, "div", 59, _forTrack0);
236
234
  i0.ɵɵelementEnd();
237
235
  } if (rf & 2) {
238
236
  const ctx_r0 = i0.ɵɵnextContext(2);
239
237
  i0.ɵɵadvance();
240
238
  i0.ɵɵrepeater(ctx_r0.engines);
241
239
  } }
242
- function SystemDiagnosticsComponent_Conditional_50_Template(rf, ctx) { if (rf & 1) {
240
+ function SystemDiagnosticsComponent_Conditional_45_Template(rf, ctx) { if (rf & 1) {
243
241
  const _r2 = i0.ɵɵgetCurrentView();
244
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 52)(2, "h3");
245
- i0.ɵɵelement(3, "i", 21);
242
+ i0.ɵɵelementStart(0, "div", 28)(1, "div", 50)(2, "h3");
243
+ i0.ɵɵelement(3, "i", 20);
246
244
  i0.ɵɵtext(4, " Registered Engines ");
247
245
  i0.ɵɵelementEnd();
248
- i0.ɵɵelementStart(5, "div", 53)(6, "button", 54);
249
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.refreshAllEngines()); });
250
- i0.ɵɵelement(7, "i", 55);
246
+ i0.ɵɵelementStart(5, "div", 51)(6, "button", 52);
247
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_45_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.refreshAllEngines()); });
248
+ i0.ɵɵelement(7, "i", 53);
251
249
  i0.ɵɵtext(8, " Refresh All Engines ");
252
250
  i0.ɵɵelementEnd()()();
253
- i0.ɵɵelementStart(9, "div", 56);
254
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_50_Conditional_10_Template, 6, 0, "div", 57)(11, SystemDiagnosticsComponent_Conditional_50_Conditional_11_Template, 3, 0, "div", 58);
251
+ i0.ɵɵelementStart(9, "div", 54);
252
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_45_Conditional_10_Template, 6, 0, "div", 55)(11, SystemDiagnosticsComponent_Conditional_45_Conditional_11_Template, 3, 0, "div", 56);
255
253
  i0.ɵɵelementEnd()();
256
254
  } if (rf & 2) {
257
255
  const ctx_r0 = i0.ɵɵnextContext();
@@ -262,18 +260,18 @@ function SystemDiagnosticsComponent_Conditional_50_Template(rf, ctx) { if (rf &
262
260
  i0.ɵɵadvance(3);
263
261
  i0.ɵɵconditional(ctx_r0.engines.length === 0 ? 10 : 11);
264
262
  } }
265
- function SystemDiagnosticsComponent_Conditional_51_Conditional_12_Template(rf, ctx) { if (rf & 1) {
266
- i0.ɵɵelementStart(0, "div", 77);
267
- i0.ɵɵelement(1, "i", 78);
263
+ function SystemDiagnosticsComponent_Conditional_46_Conditional_12_Template(rf, ctx) { if (rf & 1) {
264
+ i0.ɵɵelementStart(0, "div", 75);
265
+ i0.ɵɵelement(1, "i", 76);
268
266
  i0.ɵɵelementStart(2, "p");
269
267
  i0.ɵɵtext(3, "No redundant entity loading detected");
270
268
  i0.ɵɵelementEnd();
271
- i0.ɵɵelementStart(4, "span", 60);
269
+ i0.ɵɵelementStart(4, "span", 58);
272
270
  i0.ɵɵtext(5, "Each entity is being loaded by only one engine");
273
271
  i0.ɵɵelementEnd()();
274
272
  } }
275
- function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_For_6_Template(rf, ctx) { if (rf & 1) {
276
- i0.ɵɵelementStart(0, "span", 87);
273
+ function SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_For_6_Template(rf, ctx) { if (rf & 1) {
274
+ i0.ɵɵelementStart(0, "span", 85);
277
275
  i0.ɵɵtext(1);
278
276
  i0.ɵɵelementEnd();
279
277
  } if (rf & 2) {
@@ -281,14 +279,14 @@ function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_For_6_T
281
279
  i0.ɵɵadvance();
282
280
  i0.ɵɵtextInterpolate(engine_r5);
283
281
  } }
284
- function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_Template(rf, ctx) { if (rf & 1) {
285
- i0.ɵɵelementStart(0, "tr")(1, "td", 84);
282
+ function SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_Template(rf, ctx) { if (rf & 1) {
283
+ i0.ɵɵelementStart(0, "tr")(1, "td", 82);
286
284
  i0.ɵɵtext(2);
287
285
  i0.ɵɵelementEnd();
288
- i0.ɵɵelementStart(3, "td", 85)(4, "div", 86);
289
- i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_For_6_Template, 2, 1, "span", 87, i0.ɵɵrepeaterTrackByIdentity);
286
+ i0.ɵɵelementStart(3, "td", 83)(4, "div", 84);
287
+ i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_For_6_Template, 2, 1, "span", 85, i0.ɵɵrepeaterTrackByIdentity);
290
288
  i0.ɵɵelementEnd()();
291
- i0.ɵɵelementStart(7, "td", 88)(8, "span", 89);
289
+ i0.ɵɵelementStart(7, "td", 86)(8, "span", 87);
292
290
  i0.ɵɵtext(9);
293
291
  i0.ɵɵelementEnd()()();
294
292
  } if (rf & 2) {
@@ -300,21 +298,21 @@ function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_Templat
300
298
  i0.ɵɵadvance(4);
301
299
  i0.ɵɵtextInterpolate(load_r6.engines.length);
302
300
  } }
303
- function SystemDiagnosticsComponent_Conditional_51_Conditional_13_Template(rf, ctx) { if (rf & 1) {
304
- i0.ɵɵelementStart(0, "div", 79)(1, "table", 80)(2, "thead")(3, "tr")(4, "th");
301
+ function SystemDiagnosticsComponent_Conditional_46_Conditional_13_Template(rf, ctx) { if (rf & 1) {
302
+ i0.ɵɵelementStart(0, "div", 77)(1, "table", 78)(2, "thead")(3, "tr")(4, "th");
305
303
  i0.ɵɵtext(5, "Entity Name");
306
304
  i0.ɵɵelementEnd();
307
305
  i0.ɵɵelementStart(6, "th");
308
306
  i0.ɵɵtext(7, "Loaded By Engines");
309
307
  i0.ɵɵelementEnd();
310
- i0.ɵɵelementStart(8, "th", 81);
308
+ i0.ɵɵelementStart(8, "th", 79);
311
309
  i0.ɵɵtext(9, "Engine Count");
312
310
  i0.ɵɵelementEnd()()();
313
311
  i0.ɵɵelementStart(10, "tbody");
314
- i0.ɵɵrepeaterCreate(11, SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_Template, 10, 2, "tr", null, _forTrack1);
312
+ i0.ɵɵrepeaterCreate(11, SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_Template, 10, 2, "tr", null, _forTrack1);
315
313
  i0.ɵɵelementEnd()()();
316
- i0.ɵɵelementStart(13, "div", 82);
317
- i0.ɵɵelement(14, "i", 83);
314
+ i0.ɵɵelementStart(13, "div", 80);
315
+ i0.ɵɵelement(14, "i", 81);
318
316
  i0.ɵɵelementStart(15, "div")(16, "strong");
319
317
  i0.ɵɵtext(17, "Recommendation:");
320
318
  i0.ɵɵelementEnd();
@@ -325,35 +323,35 @@ function SystemDiagnosticsComponent_Conditional_51_Conditional_13_Template(rf, c
325
323
  i0.ɵɵadvance(11);
326
324
  i0.ɵɵrepeater(ctx_r0.redundantLoads);
327
325
  } }
328
- function SystemDiagnosticsComponent_Conditional_51_Template(rf, ctx) { if (rf & 1) {
329
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 52)(2, "h3");
330
- i0.ɵɵelement(3, "i", 23);
326
+ function SystemDiagnosticsComponent_Conditional_46_Template(rf, ctx) { if (rf & 1) {
327
+ i0.ɵɵelementStart(0, "div", 28)(1, "div", 50)(2, "h3");
328
+ i0.ɵɵelement(3, "i", 22);
331
329
  i0.ɵɵtext(4, " Redundant Entity Loading ");
332
330
  i0.ɵɵelementEnd()();
333
- i0.ɵɵelementStart(5, "div", 56)(6, "div", 75);
334
- i0.ɵɵelement(7, "i", 76);
331
+ i0.ɵɵelementStart(5, "div", 54)(6, "div", 73);
332
+ i0.ɵɵelement(7, "i", 74);
335
333
  i0.ɵɵelementStart(8, "div")(9, "strong");
336
334
  i0.ɵɵtext(10, "What is this?");
337
335
  i0.ɵɵelementEnd();
338
336
  i0.ɵɵtext(11, " This section shows entities that are loaded by multiple engines. Redundant loading indicates potential optimization opportunities where engines could share data or consolidate their loading logic. ");
339
337
  i0.ɵɵelementEnd()();
340
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_51_Conditional_12_Template, 6, 0, "div", 77)(13, SystemDiagnosticsComponent_Conditional_51_Conditional_13_Template, 19, 0);
338
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_46_Conditional_12_Template, 6, 0, "div", 75)(13, SystemDiagnosticsComponent_Conditional_46_Conditional_13_Template, 19, 0);
341
339
  i0.ɵɵelementEnd()();
342
340
  } if (rf & 2) {
343
341
  const ctx_r0 = i0.ɵɵnextContext();
344
342
  i0.ɵɵadvance(12);
345
343
  i0.ɵɵconditional(ctx_r0.redundantLoads.length === 0 ? 12 : 13);
346
344
  } }
347
- function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template(rf, ctx) { if (rf & 1) {
345
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_14_Template(rf, ctx) { if (rf & 1) {
348
346
  const _r8 = i0.ɵɵgetCurrentView();
349
- i0.ɵɵelementStart(0, "button", 109);
350
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.toggleTelemetry()); });
351
- i0.ɵɵelement(1, "i", 13);
347
+ i0.ɵɵelementStart(0, "button", 107);
348
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.toggleTelemetry()); });
349
+ i0.ɵɵelement(1, "i", 12);
352
350
  i0.ɵɵtext(2);
353
351
  i0.ɵɵelementEnd();
354
- i0.ɵɵelementStart(3, "button", 54);
355
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.clearTelemetry()); });
356
- i0.ɵɵelement(4, "i", 110);
352
+ i0.ɵɵelementStart(3, "button", 52);
353
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_14_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.clearTelemetry()); });
354
+ i0.ɵɵelement(4, "i", 108);
357
355
  i0.ɵɵtext(5, " Clear ");
358
356
  i0.ɵɵelementEnd();
359
357
  } if (rf & 2) {
@@ -366,11 +364,11 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template(rf, c
366
364
  i0.ɵɵadvance();
367
365
  i0.ɵɵproperty("disabled", !ctx_r0.telemetryEnabled);
368
366
  } }
369
- function SystemDiagnosticsComponent_Conditional_52_Conditional_15_Template(rf, ctx) { if (rf & 1) {
370
- i0.ɵɵelementStart(0, "span", 111);
371
- i0.ɵɵelement(1, "i", 13);
367
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_15_Template(rf, ctx) { if (rf & 1) {
368
+ i0.ɵɵelementStart(0, "span", 109);
369
+ i0.ɵɵelement(1, "i", 12);
372
370
  i0.ɵɵtext(2);
373
- i0.ɵɵelementStart(3, "span", 112);
371
+ i0.ɵɵelementStart(3, "span", 110);
374
372
  i0.ɵɵtext(4, "(config)");
375
373
  i0.ɵɵelementEnd()();
376
374
  } if (rf & 2) {
@@ -381,27 +379,27 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_15_Template(rf, c
381
379
  i0.ɵɵadvance();
382
380
  i0.ɵɵtextInterpolate1(" ", ctx_r0.serverTelemetryEnabled ? "Enabled" : "Disabled", " ");
383
381
  } }
384
- function SystemDiagnosticsComponent_Conditional_52_Conditional_16_Template(rf, ctx) { if (rf & 1) {
385
- i0.ɵɵelementStart(0, "span", 96);
386
- i0.ɵɵelement(1, "i", 113);
382
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_16_Template(rf, ctx) { if (rf & 1) {
383
+ i0.ɵɵelementStart(0, "span", 94);
384
+ i0.ɵɵelement(1, "i", 111);
387
385
  i0.ɵɵelementEnd();
388
386
  } }
389
- function SystemDiagnosticsComponent_Conditional_52_Conditional_17_Template(rf, ctx) { if (rf & 1) {
387
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_17_Template(rf, ctx) { if (rf & 1) {
390
388
  const _r9 = i0.ɵɵgetCurrentView();
391
- i0.ɵɵelementStart(0, "div", 97);
392
- i0.ɵɵelement(1, "i", 114);
389
+ i0.ɵɵelementStart(0, "div", 95);
390
+ i0.ɵɵelement(1, "i", 112);
393
391
  i0.ɵɵtext(2);
394
- i0.ɵɵelementStart(3, "button", 115);
395
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.serverTelemetryError = null); });
396
- i0.ɵɵelement(4, "i", 116);
392
+ i0.ɵɵelementStart(3, "button", 113);
393
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.serverTelemetryError = null); });
394
+ i0.ɵɵelement(4, "i", 114);
397
395
  i0.ɵɵelementEnd()();
398
396
  } if (rf & 2) {
399
397
  const ctx_r0 = i0.ɵɵnextContext(2);
400
398
  i0.ɵɵadvance(2);
401
399
  i0.ɵɵtextInterpolate1(" ", ctx_r0.serverTelemetryError, " ");
402
400
  } }
403
- function SystemDiagnosticsComponent_Conditional_52_Conditional_27_Template(rf, ctx) { if (rf & 1) {
404
- i0.ɵɵelementStart(0, "span", 102);
401
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_27_Template(rf, ctx) { if (rf & 1) {
402
+ i0.ɵɵelementStart(0, "span", 100);
405
403
  i0.ɵɵtext(1);
406
404
  i0.ɵɵelementEnd();
407
405
  } if (rf & 2) {
@@ -409,8 +407,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_27_Template(rf, c
409
407
  i0.ɵɵadvance();
410
408
  i0.ɵɵtextInterpolate(ctx_r0.slowQueries.length);
411
409
  } }
412
- function SystemDiagnosticsComponent_Conditional_52_Conditional_44_Template(rf, ctx) { if (rf & 1) {
413
- i0.ɵɵelementStart(0, "span", 106);
410
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
411
+ i0.ɵɵelementStart(0, "span", 104);
414
412
  i0.ɵɵtext(1);
415
413
  i0.ɵɵelementEnd();
416
414
  } if (rf & 2) {
@@ -418,38 +416,38 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_44_Template(rf, c
418
416
  i0.ɵɵadvance();
419
417
  i0.ɵɵtextInterpolate(ctx_r0.telemetryInsights.length);
420
418
  } }
421
- function SystemDiagnosticsComponent_Conditional_52_Conditional_46_Template(rf, ctx) { if (rf & 1) {
422
- i0.ɵɵelementStart(0, "div", 107);
423
- i0.ɵɵelement(1, "i", 114);
419
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
420
+ i0.ɵɵelementStart(0, "div", 105);
421
+ i0.ɵɵelement(1, "i", 112);
424
422
  i0.ɵɵelementStart(2, "div")(3, "strong");
425
423
  i0.ɵɵtext(4, "Telemetry is disabled.");
426
424
  i0.ɵɵelementEnd();
427
425
  i0.ɵɵtext(5, " Enable telemetry to track RunView, RunQuery, and Engine loading performance. ");
428
426
  i0.ɵɵelementEnd()();
429
427
  } }
430
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
428
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
431
429
  i0.ɵɵtext(0);
432
430
  } if (rf & 2) {
433
431
  const ctx_r0 = i0.ɵɵnextContext(3);
434
432
  i0.ɵɵtextInterpolate2(" Viewing ", ctx_r0.formatRelativeTime(ctx_r0.chartTimeRangeStart), " - ", ctx_r0.formatRelativeTime(ctx_r0.chartTimeRangeEnd), ". Click Reset to show all. ");
435
433
  } }
436
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_45_Template(rf, ctx) { if (rf & 1) {
434
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_45_Template(rf, ctx) { if (rf & 1) {
437
435
  i0.ɵɵtext(0, " Drag to select a time range. Gaps >5s compressed. ");
438
436
  } }
439
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
437
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
440
438
  i0.ɵɵtext(0, " Drag to select a time range. Hover over points for details. ");
441
439
  } }
442
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
440
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
443
441
  i0.ɵɵtext(0);
444
442
  i0.ɵɵpipe(1, "number");
445
443
  } if (rf & 2) {
446
444
  const ctx_r0 = i0.ɵɵnextContext(4);
447
445
  i0.ɵɵtextInterpolate1(" \u2022 ", i0.ɵɵpipeBind2(1, 1, ctx_r0.chartZoomLevel * 100, "1.0-0"), "% zoom ");
448
446
  } }
449
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
450
- i0.ɵɵelementStart(0, "span", 146);
447
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
448
+ i0.ɵɵelementStart(0, "span", 144);
451
449
  i0.ɵɵtext(1);
452
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Conditional_2_Template, 2, 4);
450
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Conditional_2_Template, 2, 4);
453
451
  i0.ɵɵelementEnd();
454
452
  } if (rf & 2) {
455
453
  const ctx_r0 = i0.ɵɵnextContext(3);
@@ -458,67 +456,67 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47
458
456
  i0.ɵɵadvance();
459
457
  i0.ɵɵconditional(ctx_r0.chartZoomLevel !== 1 ? 2 : -1);
460
458
  } }
461
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template(rf, ctx) { if (rf & 1) {
459
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
462
460
  const _r10 = i0.ɵɵgetCurrentView();
463
- i0.ɵɵelementStart(0, "div", 108)(1, "div", 117)(2, "div", 118)(3, "span", 119);
464
- i0.ɵɵelement(4, "span", 120);
461
+ i0.ɵɵelementStart(0, "div", 106)(1, "div", 115)(2, "div", 116)(3, "span", 117);
462
+ i0.ɵɵelement(4, "span", 118);
465
463
  i0.ɵɵtext(5, " RunView");
466
464
  i0.ɵɵelementEnd();
467
- i0.ɵɵelementStart(6, "span", 121);
468
- i0.ɵɵelement(7, "span", 120);
465
+ i0.ɵɵelementStart(6, "span", 119);
466
+ i0.ɵɵelement(7, "span", 118);
469
467
  i0.ɵɵtext(8, " RunQuery");
470
468
  i0.ɵɵelementEnd();
471
- i0.ɵɵelementStart(9, "span", 122);
472
- i0.ɵɵelement(10, "span", 120);
469
+ i0.ɵɵelementStart(9, "span", 120);
470
+ i0.ɵɵelement(10, "span", 118);
473
471
  i0.ɵɵtext(11, " Engine");
474
472
  i0.ɵɵelementEnd();
475
- i0.ɵɵelementStart(12, "span", 123);
476
- i0.ɵɵelement(13, "span", 120);
473
+ i0.ɵɵelementStart(12, "span", 121);
474
+ i0.ɵɵelement(13, "span", 118);
477
475
  i0.ɵɵtext(14, " AI");
478
476
  i0.ɵɵelementEnd()();
479
- i0.ɵɵelementStart(15, "div", 124)(16, "div", 125)(17, "button", 126);
480
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("pointer")); });
481
- i0.ɵɵelement(18, "i", 127);
477
+ i0.ɵɵelementStart(15, "div", 122)(16, "div", 123)(17, "button", 124);
478
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("pointer")); });
479
+ i0.ɵɵelement(18, "i", 125);
482
480
  i0.ɵɵelementEnd();
483
- i0.ɵɵelementStart(19, "button", 128);
484
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("select")); });
485
- i0.ɵɵelement(20, "i", 129);
481
+ i0.ɵɵelementStart(19, "button", 126);
482
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("select")); });
483
+ i0.ɵɵelement(20, "i", 127);
486
484
  i0.ɵɵelementEnd();
487
- i0.ɵɵelementStart(21, "button", 130);
488
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("pan")); });
489
- i0.ɵɵelement(22, "i", 131);
485
+ i0.ɵɵelementStart(21, "button", 128);
486
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("pan")); });
487
+ i0.ɵɵelement(22, "i", 129);
490
488
  i0.ɵɵelementEnd()();
491
- i0.ɵɵelement(23, "span", 132);
492
- i0.ɵɵelementStart(24, "button", 133);
493
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.zoomPerfChart("in")); });
494
- i0.ɵɵelement(25, "i", 134);
489
+ i0.ɵɵelement(23, "span", 130);
490
+ i0.ɵɵelementStart(24, "button", 131);
491
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.zoomPerfChart("in")); });
492
+ i0.ɵɵelement(25, "i", 132);
495
493
  i0.ɵɵelementEnd();
496
- i0.ɵɵelementStart(26, "button", 135);
497
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.zoomPerfChart("out")); });
498
- i0.ɵɵelement(27, "i", 136);
494
+ i0.ɵɵelementStart(26, "button", 133);
495
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.zoomPerfChart("out")); });
496
+ i0.ɵɵelement(27, "i", 134);
499
497
  i0.ɵɵelementEnd();
500
- i0.ɵɵelementStart(28, "button", 137);
501
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.resetPerfChartZoom()); });
502
- i0.ɵɵelement(29, "i", 138);
498
+ i0.ɵɵelementStart(28, "button", 135);
499
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.resetPerfChartZoom()); });
500
+ i0.ɵɵelement(29, "i", 136);
503
501
  i0.ɵɵelementEnd();
504
- i0.ɵɵelement(30, "span", 132);
505
- i0.ɵɵelementStart(31, "label", 139)(32, "input", 7);
506
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_input_ngModelChange_32_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.chartGapCompression, $event) || (ctx_r0.chartGapCompression = $event); return i0.ɵɵresetView($event); });
507
- i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_input_change_32_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onGapCompressionChange()); });
502
+ i0.ɵɵelement(30, "span", 130);
503
+ i0.ɵɵelementStart(31, "label", 137)(32, "input", 6);
504
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_input_ngModelChange_32_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.chartGapCompression, $event) || (ctx_r0.chartGapCompression = $event); return i0.ɵɵresetView($event); });
505
+ i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template_input_change_32_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onGapCompressionChange()); });
508
506
  i0.ɵɵelementEnd();
509
507
  i0.ɵɵelementStart(33, "span");
510
508
  i0.ɵɵtext(34, "Compress Gaps");
511
509
  i0.ɵɵelementEnd()()()();
512
- i0.ɵɵelementStart(35, "div", 140)(36, "div", 141)(37, "span", 142);
510
+ i0.ɵɵelementStart(35, "div", 138)(36, "div", 139)(37, "span", 140);
513
511
  i0.ɵɵtext(38, "Duration (ms)");
514
512
  i0.ɵɵelementEnd()();
515
- i0.ɵɵelement(39, "div", 143, 0);
513
+ i0.ɵɵelement(39, "div", 141, 0);
516
514
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(41, "div", 144)(42, "span", 145);
518
- i0.ɵɵelement(43, "i", 76);
519
- i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_44_Template, 1, 2)(45, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_45_Template, 1, 0)(46, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_46_Template, 1, 0);
515
+ i0.ɵɵelementStart(41, "div", 142)(42, "span", 143);
516
+ i0.ɵɵelement(43, "i", 74);
517
+ i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_44_Template, 1, 2)(45, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_45_Template, 1, 0)(46, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_46_Template, 1, 0);
520
518
  i0.ɵɵelementEnd();
521
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Template, 3, 2, "span", 146);
519
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Template, 3, 2, "span", 144);
522
520
  i0.ɵɵelementEnd()();
523
521
  } if (rf & 2) {
524
522
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -535,17 +533,17 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template(rf, c
535
533
  i0.ɵɵadvance(3);
536
534
  i0.ɵɵconditional(ctx_r0.telemetrySummary ? 47 : -1);
537
535
  } }
538
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_For_5_Template(rf, ctx) { if (rf & 1) {
536
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_For_5_Template(rf, ctx) { if (rf & 1) {
539
537
  const _r11 = i0.ɵɵgetCurrentView();
540
- i0.ɵɵelementStart(0, "div", 156);
541
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_For_5_Template_div_click_0_listener() { const cat_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.jumpToPatternsByCategory(cat_r12.name)); });
542
- i0.ɵɵelementStart(1, "span", 157);
538
+ i0.ɵɵelementStart(0, "div", 154);
539
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_For_5_Template_div_click_0_listener() { const cat_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.jumpToPatternsByCategory(cat_r12.name)); });
540
+ i0.ɵɵelementStart(1, "span", 155);
543
541
  i0.ɵɵtext(2);
544
542
  i0.ɵɵelementEnd();
545
- i0.ɵɵelementStart(3, "span", 158);
543
+ i0.ɵɵelementStart(3, "span", 156);
546
544
  i0.ɵɵtext(4);
547
545
  i0.ɵɵelementEnd();
548
- i0.ɵɵelementStart(5, "span", 159);
546
+ i0.ɵɵelementStart(5, "span", 157);
549
547
  i0.ɵɵtext(6);
550
548
  i0.ɵɵpipe(7, "number");
551
549
  i0.ɵɵelementEnd()();
@@ -558,26 +556,26 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21
558
556
  i0.ɵɵadvance(2);
559
557
  i0.ɵɵtextInterpolate1("avg ", i0.ɵɵpipeBind2(7, 3, cat_r12.avgMs, "1.0-0"), "ms");
560
558
  } }
561
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_Template(rf, ctx) { if (rf & 1) {
562
- i0.ɵɵelementStart(0, "div", 151)(1, "h4");
559
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_Template(rf, ctx) { if (rf & 1) {
560
+ i0.ɵɵelementStart(0, "div", 149)(1, "h4");
563
561
  i0.ɵɵtext(2, "By Category");
564
562
  i0.ɵɵelementEnd();
565
- i0.ɵɵelementStart(3, "div", 154);
566
- i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_For_5_Template, 8, 6, "div", 155, _forTrack2);
563
+ i0.ɵɵelementStart(3, "div", 152);
564
+ i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_For_5_Template, 8, 6, "div", 153, _forTrack2);
567
565
  i0.ɵɵelementEnd()();
568
566
  } if (rf & 2) {
569
567
  const ctx_r0 = i0.ɵɵnextContext(3);
570
568
  i0.ɵɵadvance(4);
571
569
  i0.ɵɵrepeater(ctx_r0.categoriesWithData);
572
570
  } }
573
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
574
- i0.ɵɵelementStart(0, "span", 167);
575
- i0.ɵɵelement(1, "i", 173);
571
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
572
+ i0.ɵɵelementStart(0, "span", 165);
573
+ i0.ɵɵelement(1, "i", 171);
576
574
  i0.ɵɵtext(2, " CACHED ");
577
575
  i0.ɵɵelementEnd();
578
576
  } }
579
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
580
- i0.ɵɵelementStart(0, "span", 174);
577
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
578
+ i0.ɵɵelementStart(0, "span", 172);
581
579
  i0.ɵɵtext(1);
582
580
  i0.ɵɵelementEnd();
583
581
  } if (rf & 2) {
@@ -585,8 +583,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
585
583
  i0.ɵɵadvance();
586
584
  i0.ɵɵtextInterpolate(entity_r15);
587
585
  } }
588
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
589
- i0.ɵɵelementStart(0, "span", 175);
586
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
587
+ i0.ɵɵelementStart(0, "span", 173);
590
588
  i0.ɵɵtext(1);
591
589
  i0.ɵɵelementEnd();
592
590
  } if (rf & 2) {
@@ -595,10 +593,10 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
595
593
  i0.ɵɵadvance();
596
594
  i0.ɵɵtextInterpolate1("+", ctx_r0.getRunViewsEntityCount(query_r14) - 4, " more");
597
595
  } }
598
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
599
- i0.ɵɵelementStart(0, "div", 169);
600
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template, 2, 1, "span", 174, i0.ɵɵrepeaterTrackByIdentity);
601
- i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template, 2, 1, "span", 175);
596
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
597
+ i0.ɵɵelementStart(0, "div", 167);
598
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template, 2, 1, "span", 172, i0.ɵɵrepeaterTrackByIdentity);
599
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template, 2, 1, "span", 173);
602
600
  i0.ɵɵelementEnd();
603
601
  } if (rf & 2) {
604
602
  const query_r14 = i0.ɵɵnextContext().$implicit;
@@ -608,11 +606,11 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
608
606
  i0.ɵɵadvance(2);
609
607
  i0.ɵɵconditional(ctx_r0.hasMoreEntities(query_r14, 4) ? 3 : -1);
610
608
  } }
611
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
612
- i0.ɵɵelementStart(0, "span", 177)(1, "span", 178);
609
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
610
+ i0.ɵɵelementStart(0, "span", 175)(1, "span", 176);
613
611
  i0.ɵɵtext(2);
614
612
  i0.ɵɵelementEnd();
615
- i0.ɵɵelementStart(3, "span", 179);
613
+ i0.ɵɵelementStart(3, "span", 177);
616
614
  i0.ɵɵtext(4);
617
615
  i0.ɵɵelementEnd()();
618
616
  } if (rf & 2) {
@@ -624,9 +622,9 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
624
622
  i0.ɵɵadvance(2);
625
623
  i0.ɵɵtextInterpolate(pill_r16.value);
626
624
  } }
627
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
628
- i0.ɵɵelementStart(0, "div", 170);
629
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template, 5, 5, "span", 176, _forTrack4);
625
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
626
+ i0.ɵɵelementStart(0, "div", 168);
627
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template, 5, 5, "span", 174, _forTrack4);
630
628
  i0.ɵɵelementEnd();
631
629
  } if (rf & 2) {
632
630
  const query_r14 = i0.ɵɵnextContext().$implicit;
@@ -634,8 +632,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
634
632
  i0.ɵɵadvance();
635
633
  i0.ɵɵrepeater(ctx_r0.getRunViewPills(query_r14));
636
634
  } }
637
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
638
- i0.ɵɵelementStart(0, "div", 171);
635
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
636
+ i0.ɵɵelementStart(0, "div", 169);
639
637
  i0.ɵɵtext(1);
640
638
  i0.ɵɵelementEnd();
641
639
  } if (rf & 2) {
@@ -644,25 +642,25 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
644
642
  i0.ɵɵadvance();
645
643
  i0.ɵɵtextInterpolate(ctx_r0.truncateString(query_r14.filter, 60));
646
644
  } }
647
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Template(rf, ctx) { if (rf & 1) {
645
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Template(rf, ctx) { if (rf & 1) {
648
646
  const _r13 = i0.ɵɵgetCurrentView();
649
- i0.ɵɵelementStart(0, "div", 163);
650
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Template_div_click_0_listener() { const query_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.openEventDetailPanel(query_r14)); });
651
- i0.ɵɵelementStart(1, "div", 164)(2, "span", 165);
647
+ i0.ɵɵelementStart(0, "div", 161);
648
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Template_div_click_0_listener() { const query_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.openEventDetailPanel(query_r14)); });
649
+ i0.ɵɵelementStart(1, "div", 162)(2, "span", 163);
652
650
  i0.ɵɵtext(3);
653
651
  i0.ɵɵelementEnd();
654
- i0.ɵɵelementStart(4, "span", 166);
652
+ i0.ɵɵelementStart(4, "span", 164);
655
653
  i0.ɵɵtext(5);
656
654
  i0.ɵɵelementEnd();
657
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_6_Template, 3, 0, "span", 167);
658
- i0.ɵɵelementStart(7, "span", 168);
655
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_6_Template, 3, 0, "span", 165);
656
+ i0.ɵɵelementStart(7, "span", 166);
659
657
  i0.ɵɵtext(8);
660
658
  i0.ɵɵpipe(9, "number");
661
659
  i0.ɵɵelementEnd()();
662
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Template, 4, 1, "div", 169);
663
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_Template, 3, 0, "div", 170);
664
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_12_Template, 2, 1, "div", 171);
665
- i0.ɵɵelementStart(13, "div", 172);
660
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_10_Template, 4, 1, "div", 167);
661
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_11_Template, 3, 0, "div", 168);
662
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Conditional_12_Template, 2, 1, "div", 169);
663
+ i0.ɵɵelementStart(13, "div", 170);
666
664
  i0.ɵɵtext(14);
667
665
  i0.ɵɵelementEnd()();
668
666
  } if (rf & 2) {
@@ -688,13 +686,13 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
688
686
  i0.ɵɵadvance(2);
689
687
  i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(query_r14.timestamp));
690
688
  } }
691
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_Template(rf, ctx) { if (rf & 1) {
692
- i0.ɵɵelementStart(0, "div", 152)(1, "h4");
693
- i0.ɵɵelement(2, "i", 160);
689
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_Template(rf, ctx) { if (rf & 1) {
690
+ i0.ɵɵelementStart(0, "div", 150)(1, "h4");
691
+ i0.ɵɵelement(2, "i", 158);
694
692
  i0.ɵɵtext(3);
695
693
  i0.ɵɵelementEnd();
696
- i0.ɵɵelementStart(4, "div", 161);
697
- i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Template, 15, 15, "div", 162, _forTrack3);
694
+ i0.ɵɵelementStart(4, "div", 159);
695
+ i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Template, 15, 15, "div", 160, _forTrack3);
698
696
  i0.ɵɵelementEnd()();
699
697
  } if (rf & 2) {
700
698
  const ctx_r0 = i0.ɵɵnextContext(3);
@@ -703,9 +701,9 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
703
701
  i0.ɵɵadvance(2);
704
702
  i0.ɵɵrepeater(ctx_r0.slowQueries.slice(0, 10));
705
703
  } }
706
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_23_Template(rf, ctx) { if (rf & 1) {
707
- i0.ɵɵelementStart(0, "div", 153);
708
- i0.ɵɵelement(1, "i", 78);
704
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_23_Template(rf, ctx) { if (rf & 1) {
705
+ i0.ɵɵelementStart(0, "div", 151);
706
+ i0.ɵɵelement(1, "i", 76);
709
707
  i0.ɵɵelementStart(2, "span");
710
708
  i0.ɵɵtext(3);
711
709
  i0.ɵɵelementEnd()();
@@ -714,33 +712,33 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_23
714
712
  i0.ɵɵadvance(3);
715
713
  i0.ɵɵtextInterpolate1("No slow operations detected. All operations completed under ", ctx_r0.slowQueryThresholdMs, "ms.");
716
714
  } }
717
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Template(rf, ctx) { if (rf & 1) {
718
- i0.ɵɵelementStart(0, "div", 147)(1, "div", 148)(2, "div", 149);
715
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Template(rf, ctx) { if (rf & 1) {
716
+ i0.ɵɵelementStart(0, "div", 145)(1, "div", 146)(2, "div", 147);
719
717
  i0.ɵɵtext(3);
720
718
  i0.ɵɵelementEnd();
721
- i0.ɵɵelementStart(4, "div", 150);
719
+ i0.ɵɵelementStart(4, "div", 148);
722
720
  i0.ɵɵtext(5, "Total Events");
723
721
  i0.ɵɵelementEnd()();
724
- i0.ɵɵelementStart(6, "div", 148)(7, "div", 149);
722
+ i0.ɵɵelementStart(6, "div", 146)(7, "div", 147);
725
723
  i0.ɵɵtext(8);
726
724
  i0.ɵɵelementEnd();
727
- i0.ɵɵelementStart(9, "div", 150);
725
+ i0.ɵɵelementStart(9, "div", 148);
728
726
  i0.ɵɵtext(10, "Unique Patterns");
729
727
  i0.ɵɵelementEnd()();
730
- i0.ɵɵelementStart(11, "div", 148)(12, "div", 149);
728
+ i0.ɵɵelementStart(11, "div", 146)(12, "div", 147);
731
729
  i0.ɵɵtext(13);
732
730
  i0.ɵɵelementEnd();
733
- i0.ɵɵelementStart(14, "div", 150);
731
+ i0.ɵɵelementStart(14, "div", 148);
734
732
  i0.ɵɵtext(15, "Insights");
735
733
  i0.ɵɵelementEnd()();
736
- i0.ɵɵelementStart(16, "div", 148)(17, "div", 149);
734
+ i0.ɵɵelementStart(16, "div", 146)(17, "div", 147);
737
735
  i0.ɵɵtext(18);
738
736
  i0.ɵɵelementEnd();
739
- i0.ɵɵelementStart(19, "div", 150);
737
+ i0.ɵɵelementStart(19, "div", 148);
740
738
  i0.ɵɵtext(20, "Active");
741
739
  i0.ɵɵelementEnd()()();
742
- i0.ɵɵconditionalCreate(21, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_Template, 6, 0, "div", 151);
743
- i0.ɵɵconditionalCreate(22, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_Template, 7, 1, "div", 152)(23, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_23_Template, 4, 1, "div", 153);
740
+ i0.ɵɵconditionalCreate(21, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_Template, 6, 0, "div", 149);
741
+ i0.ɵɵconditionalCreate(22, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_Template, 7, 1, "div", 150)(23, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_23_Template, 4, 1, "div", 151);
744
742
  } if (rf & 2) {
745
743
  const ctx_r0 = i0.ɵɵnextContext(2);
746
744
  i0.ɵɵadvance(3);
@@ -756,17 +754,17 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Template(rf, c
756
754
  i0.ɵɵadvance();
757
755
  i0.ɵɵconditional(ctx_r0.slowQueries.length > 0 ? 22 : ctx_r0.telemetryEnabled && ctx_r0.telemetrySummary && ctx_r0.telemetrySummary.totalEvents > 0 ? 23 : -1);
758
756
  } }
759
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_4_Template(rf, ctx) { if (rf & 1) {
757
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_4_Template(rf, ctx) { if (rf & 1) {
760
758
  const _r18 = i0.ɵɵgetCurrentView();
761
- i0.ɵɵelementStart(0, "button", 191);
762
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearSearch()); });
763
- i0.ɵɵelement(1, "i", 116);
759
+ i0.ɵɵelementStart(0, "button", 189);
760
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearSearch()); });
761
+ i0.ɵɵelement(1, "i", 114);
764
762
  i0.ɵɵelementEnd();
765
763
  } }
766
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template(rf, ctx) { if (rf & 1) {
764
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_For_9_Template(rf, ctx) { if (rf & 1) {
767
765
  const _r19 = i0.ɵɵgetCurrentView();
768
- i0.ɵɵelementStart(0, "button", 186);
769
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template_button_click_0_listener() { const cat_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCategoryFilterByName(cat_r20.name)); });
766
+ i0.ɵɵelementStart(0, "button", 184);
767
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_49_For_9_Template_button_click_0_listener() { const cat_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCategoryFilterByName(cat_r20.name)); });
770
768
  i0.ɵɵtext(1);
771
769
  i0.ɵɵelementEnd();
772
770
  } if (rf & 2) {
@@ -776,22 +774,22 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template
776
774
  i0.ɵɵadvance();
777
775
  i0.ɵɵtextInterpolate1(" ", cat_r20.name, " ");
778
776
  } }
779
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
780
- i0.ɵɵelementStart(0, "div", 195);
781
- i0.ɵɵelement(1, "i", 173);
777
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
778
+ i0.ɵɵelementStart(0, "div", 193);
779
+ i0.ɵɵelement(1, "i", 171);
782
780
  i0.ɵɵelementEnd();
783
781
  } }
784
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
785
- i0.ɵɵelement(0, "div", 196);
782
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
783
+ i0.ɵɵelement(0, "div", 194);
786
784
  } }
787
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
788
- i0.ɵɵelementStart(0, "span", 201);
789
- i0.ɵɵelement(1, "i", 173);
785
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
786
+ i0.ɵɵelementStart(0, "span", 199);
787
+ i0.ɵɵelement(1, "i", 171);
790
788
  i0.ɵɵtext(2, " CACHED ");
791
789
  i0.ɵɵelementEnd();
792
790
  } }
793
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
794
- i0.ɵɵelementStart(0, "span", 209);
791
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
792
+ i0.ɵɵelementStart(0, "span", 207);
795
793
  i0.ɵɵtext(1);
796
794
  i0.ɵɵpipe(2, "number");
797
795
  i0.ɵɵelementEnd();
@@ -802,8 +800,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
802
800
  i0.ɵɵadvance();
803
801
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 3, event_r22.elapsedMs, "1.0-0"), "ms ");
804
802
  } }
805
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
806
- i0.ɵɵelementStart(0, "span", 205);
803
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
804
+ i0.ɵɵelementStart(0, "span", 203);
807
805
  i0.ɵɵtext(1);
808
806
  i0.ɵɵelementEnd();
809
807
  } if (rf & 2) {
@@ -811,8 +809,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
811
809
  i0.ɵɵadvance();
812
810
  i0.ɵɵtextInterpolate(event_r22.entityName);
813
811
  } }
814
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
815
- i0.ɵɵelementStart(0, "span", 210);
812
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
813
+ i0.ɵɵelementStart(0, "span", 208);
816
814
  i0.ɵɵtext(1);
817
815
  i0.ɵɵelementEnd();
818
816
  } if (rf & 2) {
@@ -820,8 +818,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
820
818
  i0.ɵɵadvance();
821
819
  i0.ɵɵtextInterpolate(entity_r23);
822
820
  } }
823
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
824
- i0.ɵɵelementStart(0, "span", 211);
821
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
822
+ i0.ɵɵelementStart(0, "span", 209);
825
823
  i0.ɵɵtext(1);
826
824
  i0.ɵɵelementEnd();
827
825
  } if (rf & 2) {
@@ -830,10 +828,10 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
830
828
  i0.ɵɵadvance();
831
829
  i0.ɵɵtextInterpolate1("+", ctx_r0.getRunViewsEntityCount(event_r22) - 3, " more");
832
830
  } }
833
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
834
- i0.ɵɵelementStart(0, "div", 206);
835
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template, 2, 1, "span", 210, i0.ɵɵrepeaterTrackByIdentity);
836
- i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template, 2, 1, "span", 211);
831
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
832
+ i0.ɵɵelementStart(0, "div", 204);
833
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template, 2, 1, "span", 208, i0.ɵɵrepeaterTrackByIdentity);
834
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template, 2, 1, "span", 209);
837
835
  i0.ɵɵelementEnd();
838
836
  } if (rf & 2) {
839
837
  const event_r22 = i0.ɵɵnextContext().$implicit;
@@ -843,11 +841,11 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
843
841
  i0.ɵɵadvance(2);
844
842
  i0.ɵɵconditional(ctx_r0.hasMoreEntities(event_r22, 3) ? 3 : -1);
845
843
  } }
846
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
847
- i0.ɵɵelementStart(0, "span", 213)(1, "span", 178);
844
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
845
+ i0.ɵɵelementStart(0, "span", 211)(1, "span", 176);
848
846
  i0.ɵɵtext(2);
849
847
  i0.ɵɵelementEnd();
850
- i0.ɵɵelementStart(3, "span", 179);
848
+ i0.ɵɵelementStart(3, "span", 177);
851
849
  i0.ɵɵtext(4);
852
850
  i0.ɵɵelementEnd()();
853
851
  } if (rf & 2) {
@@ -859,9 +857,9 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
859
857
  i0.ɵɵadvance(2);
860
858
  i0.ɵɵtextInterpolate(pill_r24.value);
861
859
  } }
862
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
863
- i0.ɵɵelementStart(0, "div", 207);
864
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template, 5, 5, "span", 212, _forTrack4);
860
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
861
+ i0.ɵɵelementStart(0, "div", 205);
862
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template, 5, 5, "span", 210, _forTrack4);
865
863
  i0.ɵɵelementEnd();
866
864
  } if (rf & 2) {
867
865
  const event_r22 = i0.ɵɵnextContext().$implicit;
@@ -869,8 +867,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
869
867
  i0.ɵɵadvance();
870
868
  i0.ɵɵrepeater(ctx_r0.getRunViewPills(event_r22));
871
869
  } }
872
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_19_Template(rf, ctx) { if (rf & 1) {
873
- i0.ɵɵelementStart(0, "div", 208);
870
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_19_Template(rf, ctx) { if (rf & 1) {
871
+ i0.ɵɵelementStart(0, "div", 206);
874
872
  i0.ɵɵtext(1);
875
873
  i0.ɵɵelementEnd();
876
874
  } if (rf & 2) {
@@ -879,31 +877,31 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
879
877
  i0.ɵɵadvance();
880
878
  i0.ɵɵtextInterpolate(ctx_r0.truncateString(event_r22.filter, 80));
881
879
  } }
882
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Template(rf, ctx) { if (rf & 1) {
880
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Template(rf, ctx) { if (rf & 1) {
883
881
  const _r21 = i0.ɵɵgetCurrentView();
884
- i0.ɵɵelementStart(0, "div", 193);
885
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Template_div_click_0_listener() { const event_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.openEventDetailPanel(event_r22)); });
886
- i0.ɵɵelementStart(1, "div", 194);
887
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_2_Template, 2, 0, "div", 195)(3, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_3_Template, 1, 0, "div", 196);
888
- i0.ɵɵelement(4, "div", 197);
882
+ i0.ɵɵelementStart(0, "div", 191);
883
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Template_div_click_0_listener() { const event_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.openEventDetailPanel(event_r22)); });
884
+ i0.ɵɵelementStart(1, "div", 192);
885
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_2_Template, 2, 0, "div", 193)(3, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_3_Template, 1, 0, "div", 194);
886
+ i0.ɵɵelement(4, "div", 195);
889
887
  i0.ɵɵelementEnd();
890
- i0.ɵɵelementStart(5, "div", 198)(6, "div", 199)(7, "span", 200);
888
+ i0.ɵɵelementStart(5, "div", 196)(6, "div", 197)(7, "span", 198);
891
889
  i0.ɵɵtext(8);
892
890
  i0.ɵɵelementEnd();
893
- i0.ɵɵelementStart(9, "span", 165);
891
+ i0.ɵɵelementStart(9, "span", 163);
894
892
  i0.ɵɵtext(10);
895
893
  i0.ɵɵelementEnd();
896
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_11_Template, 3, 0, "span", 201);
897
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_12_Template, 3, 6, "span", 202);
894
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_11_Template, 3, 0, "span", 199);
895
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_12_Template, 3, 6, "span", 200);
898
896
  i0.ɵɵelementEnd();
899
- i0.ɵɵelementStart(13, "div", 203)(14, "span", 204);
897
+ i0.ɵɵelementStart(13, "div", 201)(14, "span", 202);
900
898
  i0.ɵɵtext(15);
901
899
  i0.ɵɵelementEnd();
902
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_16_Template, 2, 1, "span", 205);
903
- i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Template, 4, 1, "div", 206);
900
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_16_Template, 2, 1, "span", 203);
901
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_17_Template, 4, 1, "div", 204);
904
902
  i0.ɵɵelementEnd();
905
- i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_Template, 3, 0, "div", 207);
906
- i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_19_Template, 2, 1, "div", 208);
903
+ i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_18_Template, 3, 0, "div", 205);
904
+ i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Conditional_19_Template, 2, 1, "div", 206);
907
905
  i0.ɵɵelementEnd()();
908
906
  } if (rf & 2) {
909
907
  const event_r22 = ctx.$implicit;
@@ -933,37 +931,37 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
933
931
  i0.ɵɵadvance();
934
932
  i0.ɵɵconditional(event_r22.filter ? 19 : -1);
935
933
  } }
936
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_Template(rf, ctx) { if (rf & 1) {
937
- i0.ɵɵrepeaterCreate(0, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Template, 20, 16, "div", 192, _forTrack3);
934
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_Template(rf, ctx) { if (rf & 1) {
935
+ i0.ɵɵrepeaterCreate(0, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Template, 20, 16, "div", 190, _forTrack3);
938
936
  } if (rf & 2) {
939
937
  const ctx_r0 = i0.ɵɵnextContext(3);
940
938
  i0.ɵɵrepeater(ctx_r0.filteredEvents.slice(0, 50));
941
939
  } }
942
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_13_Template(rf, ctx) { if (rf & 1) {
943
- i0.ɵɵelementStart(0, "div", 190);
944
- i0.ɵɵelement(1, "i", 214);
940
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_13_Template(rf, ctx) { if (rf & 1) {
941
+ i0.ɵɵelementStart(0, "div", 188);
942
+ i0.ɵɵelement(1, "i", 212);
945
943
  i0.ɵɵelementStart(2, "p");
946
944
  i0.ɵɵtext(3, "No events recorded yet");
947
945
  i0.ɵɵelementEnd()();
948
946
  } }
949
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template(rf, ctx) { if (rf & 1) {
947
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Template(rf, ctx) { if (rf & 1) {
950
948
  const _r17 = i0.ɵɵgetCurrentView();
951
- i0.ɵɵelementStart(0, "div", 180)(1, "div", 181);
952
- i0.ɵɵelement(2, "i", 182);
953
- i0.ɵɵelementStart(3, "input", 183);
954
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.searchQuery, $event) || (ctx_r0.searchQuery = $event); return i0.ɵɵresetView($event); });
955
- i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSearchChange()); });
949
+ i0.ɵɵelementStart(0, "div", 178)(1, "div", 179);
950
+ i0.ɵɵelement(2, "i", 180);
951
+ i0.ɵɵelementStart(3, "input", 181);
952
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.searchQuery, $event) || (ctx_r0.searchQuery = $event); return i0.ɵɵresetView($event); });
953
+ i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSearchChange()); });
956
954
  i0.ɵɵelementEnd();
957
- i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_4_Template, 2, 0, "button", 184);
955
+ i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_4_Template, 2, 0, "button", 182);
958
956
  i0.ɵɵelementEnd();
959
- i0.ɵɵelementStart(5, "div", 185)(6, "button", 186);
960
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCategoryFilter("all")); });
957
+ i0.ɵɵelementStart(5, "div", 183)(6, "button", 184);
958
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCategoryFilter("all")); });
961
959
  i0.ɵɵtext(7, " All ");
962
960
  i0.ɵɵelementEnd();
963
- i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template, 2, 3, "button", 187, _forTrack2);
961
+ i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_47_Conditional_49_For_9_Template, 2, 3, "button", 185, _forTrack2);
964
962
  i0.ɵɵelementEnd()();
965
- i0.ɵɵelementStart(10, "div", 188)(11, "div", 189);
966
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_Template, 2, 0)(13, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_13_Template, 4, 0, "div", 190);
963
+ i0.ɵɵelementStart(10, "div", 186)(11, "div", 187);
964
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_Template, 2, 0)(13, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_13_Template, 4, 0, "div", 188);
967
965
  i0.ɵɵelementEnd()();
968
966
  } if (rf & 2) {
969
967
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -978,17 +976,17 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template(rf, c
978
976
  i0.ɵɵadvance(4);
979
977
  i0.ɵɵconditional(ctx_r0.filteredEvents.length > 0 ? 12 : 13);
980
978
  } }
981
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
979
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
982
980
  const _r26 = i0.ɵɵgetCurrentView();
983
- i0.ɵɵelementStart(0, "button", 191);
984
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearSearch()); });
985
- i0.ɵɵelement(1, "i", 116);
981
+ i0.ɵɵelementStart(0, "button", 189);
982
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearSearch()); });
983
+ i0.ɵɵelement(1, "i", 114);
986
984
  i0.ɵɵelementEnd();
987
985
  } }
988
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template(rf, ctx) { if (rf & 1) {
986
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_For_9_Template(rf, ctx) { if (rf & 1) {
989
987
  const _r27 = i0.ɵɵgetCurrentView();
990
- i0.ɵɵelementStart(0, "button", 186);
991
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template_button_click_0_listener() { const cat_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCategoryFilterByName(cat_r28.name)); });
988
+ i0.ɵɵelementStart(0, "button", 184);
989
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_For_9_Template_button_click_0_listener() { const cat_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCategoryFilterByName(cat_r28.name)); });
992
990
  i0.ɵɵtext(1);
993
991
  i0.ɵɵelementEnd();
994
992
  } if (rf & 2) {
@@ -998,8 +996,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template
998
996
  i0.ɵɵadvance();
999
997
  i0.ɵɵtextInterpolate1(" ", cat_r28.name, " ");
1000
998
  } }
1001
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1002
- i0.ɵɵelementStart(0, "span", 226);
999
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1000
+ i0.ɵɵelementStart(0, "span", 224);
1003
1001
  i0.ɵɵtext(1);
1004
1002
  i0.ɵɵelementEnd();
1005
1003
  } if (rf & 2) {
@@ -1007,33 +1005,33 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10
1007
1005
  i0.ɵɵadvance();
1008
1006
  i0.ɵɵtextInterpolate(pattern_r30.count);
1009
1007
  } }
1010
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1008
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1011
1009
  i0.ɵɵtext(0);
1012
1010
  } if (rf & 2) {
1013
1011
  const pattern_r30 = i0.ɵɵnextContext().$implicit;
1014
1012
  i0.ɵɵtextInterpolate1(" ", pattern_r30.count, " ");
1015
1013
  } }
1016
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Template(rf, ctx) { if (rf & 1) {
1017
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 222);
1014
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Template(rf, ctx) { if (rf & 1) {
1015
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 220);
1018
1016
  i0.ɵɵtext(3);
1019
1017
  i0.ɵɵelementEnd()();
1020
- i0.ɵɵelementStart(4, "td", 223);
1018
+ i0.ɵɵelementStart(4, "td", 221);
1021
1019
  i0.ɵɵtext(5);
1022
1020
  i0.ɵɵelementEnd();
1023
- i0.ɵɵelementStart(6, "td", 224);
1021
+ i0.ɵɵelementStart(6, "td", 222);
1024
1022
  i0.ɵɵtext(7);
1025
1023
  i0.ɵɵelementEnd();
1026
- i0.ɵɵelementStart(8, "td", 225);
1024
+ i0.ɵɵelementStart(8, "td", 223);
1027
1025
  i0.ɵɵtext(9);
1028
1026
  i0.ɵɵelementEnd();
1029
- i0.ɵɵelementStart(10, "td", 81);
1030
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_11_Template, 2, 1, "span", 226)(12, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_12_Template, 1, 1);
1027
+ i0.ɵɵelementStart(10, "td", 79);
1028
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Conditional_11_Template, 2, 1, "span", 224)(12, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Conditional_12_Template, 1, 1);
1031
1029
  i0.ɵɵelementEnd();
1032
- i0.ɵɵelementStart(13, "td", 81);
1030
+ i0.ɵɵelementStart(13, "td", 79);
1033
1031
  i0.ɵɵtext(14);
1034
1032
  i0.ɵɵpipe(15, "number");
1035
1033
  i0.ɵɵelementEnd();
1036
- i0.ɵɵelementStart(16, "td", 81);
1034
+ i0.ɵɵelementStart(16, "td", 79);
1037
1035
  i0.ɵɵtext(17);
1038
1036
  i0.ɵɵpipe(18, "number");
1039
1037
  i0.ɵɵelementEnd()();
@@ -1062,43 +1060,43 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10
1062
1060
  i0.ɵɵadvance(3);
1063
1061
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(18, 19, pattern_r30.totalElapsedMs, "1.0-0"));
1064
1062
  } }
1065
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1063
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1066
1064
  const _r29 = i0.ɵɵgetCurrentView();
1067
- i0.ɵɵelementStart(0, "div", 216)(1, "div", 217)(2, "table", 218)(3, "thead")(4, "tr")(5, "th", 219);
1068
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("category")); });
1065
+ i0.ɵɵelementStart(0, "div", 214)(1, "div", 215)(2, "table", 216)(3, "thead")(4, "tr")(5, "th", 217);
1066
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("category")); });
1069
1067
  i0.ɵɵtext(6, " Category ");
1070
- i0.ɵɵelement(7, "i", 13);
1068
+ i0.ɵɵelement(7, "i", 12);
1071
1069
  i0.ɵɵelementEnd();
1072
- i0.ɵɵelementStart(8, "th", 219);
1073
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_8_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("operation")); });
1070
+ i0.ɵɵelementStart(8, "th", 217);
1071
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template_th_click_8_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("operation")); });
1074
1072
  i0.ɵɵtext(9, " Operation ");
1075
- i0.ɵɵelement(10, "i", 13);
1073
+ i0.ɵɵelement(10, "i", 12);
1076
1074
  i0.ɵɵelementEnd();
1077
- i0.ɵɵelementStart(11, "th", 219);
1078
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("entity")); });
1075
+ i0.ɵɵelementStart(11, "th", 217);
1076
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template_th_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("entity")); });
1079
1077
  i0.ɵɵtext(12, " Entity/Query ");
1080
- i0.ɵɵelement(13, "i", 13);
1078
+ i0.ɵɵelement(13, "i", 12);
1081
1079
  i0.ɵɵelementEnd();
1082
1080
  i0.ɵɵelementStart(14, "th");
1083
1081
  i0.ɵɵtext(15, "Filter");
1084
1082
  i0.ɵɵelementEnd();
1085
- i0.ɵɵelementStart(16, "th", 220);
1086
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_16_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("count")); });
1083
+ i0.ɵɵelementStart(16, "th", 218);
1084
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template_th_click_16_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("count")); });
1087
1085
  i0.ɵɵtext(17, " Count ");
1088
- i0.ɵɵelement(18, "i", 13);
1086
+ i0.ɵɵelement(18, "i", 12);
1089
1087
  i0.ɵɵelementEnd();
1090
- i0.ɵɵelementStart(19, "th", 220);
1091
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_19_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("avgMs")); });
1088
+ i0.ɵɵelementStart(19, "th", 218);
1089
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template_th_click_19_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("avgMs")); });
1092
1090
  i0.ɵɵtext(20, " Avg (ms) ");
1093
- i0.ɵɵelement(21, "i", 13);
1091
+ i0.ɵɵelement(21, "i", 12);
1094
1092
  i0.ɵɵelementEnd();
1095
- i0.ɵɵelementStart(22, "th", 220);
1096
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_22_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("totalMs")); });
1093
+ i0.ɵɵelementStart(22, "th", 218);
1094
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template_th_click_22_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("totalMs")); });
1097
1095
  i0.ɵɵtext(23, " Total (ms) ");
1098
- i0.ɵɵelement(24, "i", 13);
1096
+ i0.ɵɵelement(24, "i", 12);
1099
1097
  i0.ɵɵelementEnd()()();
1100
1098
  i0.ɵɵelementStart(25, "tbody");
1101
- i0.ɵɵrepeaterCreate(26, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Template, 19, 22, "tr", 221, _forTrack5);
1099
+ i0.ɵɵrepeaterCreate(26, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Template, 19, 22, "tr", 219, _forTrack5);
1102
1100
  i0.ɵɵelementEnd()()()();
1103
1101
  } if (rf & 2) {
1104
1102
  const ctx_r0 = i0.ɵɵnextContext(3);
@@ -1117,40 +1115,40 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10
1117
1115
  i0.ɵɵadvance(2);
1118
1116
  i0.ɵɵrepeater(ctx_r0.filteredPatterns);
1119
1117
  } }
1120
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1121
- i0.ɵɵelementStart(0, "div", 57);
1122
- i0.ɵɵelement(1, "i", 214);
1118
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1119
+ i0.ɵɵelementStart(0, "div", 55);
1120
+ i0.ɵɵelement(1, "i", 212);
1123
1121
  i0.ɵɵelementStart(2, "p");
1124
1122
  i0.ɵɵtext(3, "No telemetry data yet");
1125
1123
  i0.ɵɵelementEnd();
1126
- i0.ɵɵelementStart(4, "span", 60);
1124
+ i0.ɵɵelementStart(4, "span", 58);
1127
1125
  i0.ɵɵtext(5, "Navigate around the app to generate performance data");
1128
1126
  i0.ɵɵelementEnd()();
1129
1127
  } }
1130
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1131
- i0.ɵɵelementStart(0, "div", 190);
1132
- i0.ɵɵelement(1, "i", 227);
1128
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1129
+ i0.ɵɵelementStart(0, "div", 188);
1130
+ i0.ɵɵelement(1, "i", 225);
1133
1131
  i0.ɵɵelementStart(2, "p");
1134
1132
  i0.ɵɵtext(3, "No patterns match your filter");
1135
1133
  i0.ɵɵelementEnd()();
1136
1134
  } }
1137
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template(rf, ctx) { if (rf & 1) {
1135
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Template(rf, ctx) { if (rf & 1) {
1138
1136
  const _r25 = i0.ɵɵgetCurrentView();
1139
- i0.ɵɵelementStart(0, "div", 180)(1, "div", 181);
1140
- i0.ɵɵelement(2, "i", 182);
1141
- i0.ɵɵelementStart(3, "input", 215);
1142
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.searchQuery, $event) || (ctx_r0.searchQuery = $event); return i0.ɵɵresetView($event); });
1143
- i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSearchChange()); });
1137
+ i0.ɵɵelementStart(0, "div", 178)(1, "div", 179);
1138
+ i0.ɵɵelement(2, "i", 180);
1139
+ i0.ɵɵelementStart(3, "input", 213);
1140
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.searchQuery, $event) || (ctx_r0.searchQuery = $event); return i0.ɵɵresetView($event); });
1141
+ i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSearchChange()); });
1144
1142
  i0.ɵɵelementEnd();
1145
- i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_4_Template, 2, 0, "button", 184);
1143
+ i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_4_Template, 2, 0, "button", 182);
1146
1144
  i0.ɵɵelementEnd();
1147
- i0.ɵɵelementStart(5, "div", 185)(6, "button", 186);
1148
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCategoryFilter("all")); });
1145
+ i0.ɵɵelementStart(5, "div", 183)(6, "button", 184);
1146
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCategoryFilter("all")); });
1149
1147
  i0.ɵɵtext(7, " All ");
1150
1148
  i0.ɵɵelementEnd();
1151
- i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template, 2, 3, "button", 187, _forTrack2);
1149
+ i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_47_Conditional_50_For_9_Template, 2, 3, "button", 185, _forTrack2);
1152
1150
  i0.ɵɵelementEnd()();
1153
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template, 28, 12, "div", 216)(11, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_11_Template, 6, 0, "div", 57)(12, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_12_Template, 4, 0, "div", 190);
1151
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template, 28, 12, "div", 214)(11, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_11_Template, 6, 0, "div", 55)(12, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_12_Template, 4, 0, "div", 188);
1154
1152
  } if (rf & 2) {
1155
1153
  const ctx_r0 = i0.ɵɵnextContext(2);
1156
1154
  i0.ɵɵadvance(3);
@@ -1164,11 +1162,11 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template(rf, c
1164
1162
  i0.ɵɵadvance(2);
1165
1163
  i0.ɵɵconditional(ctx_r0.filteredPatterns.length > 0 ? 10 : ctx_r0.telemetryEnabled && ctx_r0.telemetryPatterns.length === 0 ? 11 : ctx_r0.searchQuery || ctx_r0.categoryFilter !== "all" ? 12 : -1);
1166
1164
  } }
1167
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1168
- i0.ɵɵelementStart(0, "div", 237)(1, "span", 241);
1165
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1166
+ i0.ɵɵelementStart(0, "div", 235)(1, "span", 239);
1169
1167
  i0.ɵɵtext(2, "Entity:");
1170
1168
  i0.ɵɵelementEnd();
1171
- i0.ɵɵelementStart(3, "span", 242);
1169
+ i0.ɵɵelementStart(3, "span", 240);
1172
1170
  i0.ɵɵtext(4);
1173
1171
  i0.ɵɵelementEnd()();
1174
1172
  } if (rf & 2) {
@@ -1176,11 +1174,11 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1176
1174
  i0.ɵɵadvance(4);
1177
1175
  i0.ɵɵtextInterpolate(insight_r32.entityName);
1178
1176
  } }
1179
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1180
- i0.ɵɵelementStart(0, "div", 237)(1, "span", 241);
1177
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1178
+ i0.ɵɵelementStart(0, "div", 235)(1, "span", 239);
1181
1179
  i0.ɵɵtext(2, "Filter:");
1182
1180
  i0.ɵɵelementEnd();
1183
- i0.ɵɵelementStart(3, "code", 243);
1181
+ i0.ɵɵelementStart(3, "code", 241);
1184
1182
  i0.ɵɵtext(4);
1185
1183
  i0.ɵɵelementEnd()();
1186
1184
  } if (rf & 2) {
@@ -1189,11 +1187,11 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1189
1187
  i0.ɵɵadvance(4);
1190
1188
  i0.ɵɵtextInterpolate(ctx_r0.getInsightFilter(insight_r32));
1191
1189
  } }
1192
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template(rf, ctx) { if (rf & 1) {
1193
- i0.ɵɵelementStart(0, "div", 247)(1, "span", 250);
1190
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template(rf, ctx) { if (rf & 1) {
1191
+ i0.ɵɵelementStart(0, "div", 245)(1, "span", 248);
1194
1192
  i0.ɵɵtext(2);
1195
1193
  i0.ɵɵelementEnd();
1196
- i0.ɵɵelementStart(3, "span", 251);
1194
+ i0.ɵɵelementStart(3, "span", 249);
1197
1195
  i0.ɵɵtext(4);
1198
1196
  i0.ɵɵelementEnd()();
1199
1197
  } if (rf & 2) {
@@ -1203,8 +1201,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1203
1201
  i0.ɵɵadvance(2);
1204
1202
  i0.ɵɵtextInterpolate(param_r33.value);
1205
1203
  } }
1206
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1207
- i0.ɵɵelementStart(0, "span", 254);
1204
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1205
+ i0.ɵɵelementStart(0, "span", 252);
1208
1206
  i0.ɵɵtext(1);
1209
1207
  i0.ɵɵelementEnd();
1210
1208
  } if (rf & 2) {
@@ -1212,8 +1210,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1212
1210
  i0.ɵɵadvance();
1213
1211
  i0.ɵɵtextInterpolate(event_r34.entityName);
1214
1212
  } }
1215
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1216
- i0.ɵɵelementStart(0, "span", 255);
1213
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1214
+ i0.ɵɵelementStart(0, "span", 253);
1217
1215
  i0.ɵɵtext(1);
1218
1216
  i0.ɵɵelementEnd();
1219
1217
  } if (rf & 2) {
@@ -1222,16 +1220,16 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1222
1220
  i0.ɵɵadvance();
1223
1221
  i0.ɵɵtextInterpolate(ctx_r0.truncateString(event_r34.filter, 40));
1224
1222
  } }
1225
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
1226
- i0.ɵɵelementStart(0, "div", 249)(1, "span", 252);
1223
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
1224
+ i0.ɵɵelementStart(0, "div", 247)(1, "span", 250);
1227
1225
  i0.ɵɵtext(2);
1228
1226
  i0.ɵɵelementEnd();
1229
- i0.ɵɵelementStart(3, "span", 253);
1227
+ i0.ɵɵelementStart(3, "span", 251);
1230
1228
  i0.ɵɵtext(4);
1231
1229
  i0.ɵɵpipe(5, "number");
1232
1230
  i0.ɵɵelementEnd();
1233
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template, 2, 1, "span", 254);
1234
- i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template, 2, 1, "span", 255);
1231
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template, 2, 1, "span", 252);
1232
+ i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template, 2, 1, "span", 253);
1235
1233
  i0.ɵɵelementEnd();
1236
1234
  } if (rf & 2) {
1237
1235
  const event_r34 = ctx.$implicit;
@@ -1245,18 +1243,18 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1245
1243
  i0.ɵɵadvance();
1246
1244
  i0.ɵɵconditional(event_r34.filter ? 7 : -1);
1247
1245
  } }
1248
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1249
- i0.ɵɵelementStart(0, "div", 244)(1, "div", 245);
1246
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1247
+ i0.ɵɵelementStart(0, "div", 242)(1, "div", 243);
1250
1248
  i0.ɵɵtext(2, "Full Parameters");
1251
1249
  i0.ɵɵelementEnd();
1252
- i0.ɵɵelementStart(3, "div", 246);
1253
- i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template, 5, 2, "div", 247, _forTrack6);
1250
+ i0.ɵɵelementStart(3, "div", 244);
1251
+ i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template, 5, 2, "div", 245, _forTrack6);
1254
1252
  i0.ɵɵelementEnd()();
1255
- i0.ɵɵelementStart(6, "div", 244)(7, "div", 245);
1253
+ i0.ɵɵelementStart(6, "div", 242)(7, "div", 243);
1256
1254
  i0.ɵɵtext(8);
1257
1255
  i0.ɵɵelementEnd();
1258
- i0.ɵɵelementStart(9, "div", 248);
1259
- i0.ɵɵrepeaterCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template, 8, 7, "div", 249, _forTrack3);
1256
+ i0.ɵɵelementStart(9, "div", 246);
1257
+ i0.ɵɵrepeaterCreate(10, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template, 8, 7, "div", 247, _forTrack3);
1260
1258
  i0.ɵɵelementEnd()();
1261
1259
  } if (rf & 2) {
1262
1260
  const insight_r32 = i0.ɵɵnextContext(2).$implicit;
@@ -1268,40 +1266,40 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1268
1266
  i0.ɵɵadvance(2);
1269
1267
  i0.ɵɵrepeater(insight_r32.relatedEvents);
1270
1268
  } }
1271
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1272
- i0.ɵɵelementStart(0, "div", 240);
1273
- i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template, 12, 1);
1269
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1270
+ i0.ɵɵelementStart(0, "div", 238);
1271
+ i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template, 12, 1);
1274
1272
  i0.ɵɵelementEnd();
1275
1273
  } if (rf & 2) {
1276
1274
  const insight_r32 = i0.ɵɵnextContext().$implicit;
1277
1275
  i0.ɵɵadvance();
1278
1276
  i0.ɵɵconditional(insight_r32.relatedEvents.length > 0 ? 1 : -1);
1279
1277
  } }
1280
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
1278
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
1281
1279
  const _r31 = i0.ɵɵgetCurrentView();
1282
- i0.ɵɵelementStart(0, "div", 231)(1, "div", 232);
1283
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Template_div_click_1_listener() { const insight_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.toggleInsightExpanded(insight_r32)); });
1284
- i0.ɵɵelement(2, "i", 13);
1285
- i0.ɵɵelementStart(3, "span", 233);
1280
+ i0.ɵɵelementStart(0, "div", 229)(1, "div", 230);
1281
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Template_div_click_1_listener() { const insight_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.toggleInsightExpanded(insight_r32)); });
1282
+ i0.ɵɵelement(2, "i", 12);
1283
+ i0.ɵɵelementStart(3, "span", 231);
1286
1284
  i0.ɵɵtext(4);
1287
1285
  i0.ɵɵelementEnd();
1288
- i0.ɵɵelementStart(5, "span", 234);
1286
+ i0.ɵɵelementStart(5, "span", 232);
1289
1287
  i0.ɵɵtext(6);
1290
1288
  i0.ɵɵelementEnd();
1291
- i0.ɵɵelement(7, "i", 235);
1289
+ i0.ɵɵelement(7, "i", 233);
1292
1290
  i0.ɵɵelementEnd();
1293
- i0.ɵɵelementStart(8, "div", 236);
1294
- i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_9_Template, 5, 1, "div", 237);
1295
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_10_Template, 5, 1, "div", 237);
1291
+ i0.ɵɵelementStart(8, "div", 234);
1292
+ i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_9_Template, 5, 1, "div", 235);
1293
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_10_Template, 5, 1, "div", 235);
1296
1294
  i0.ɵɵelementEnd();
1297
- i0.ɵɵelementStart(11, "div", 238);
1295
+ i0.ɵɵelementStart(11, "div", 236);
1298
1296
  i0.ɵɵtext(12);
1299
1297
  i0.ɵɵelementEnd();
1300
- i0.ɵɵelementStart(13, "div", 239);
1301
- i0.ɵɵelement(14, "i", 74);
1298
+ i0.ɵɵelementStart(13, "div", 237);
1299
+ i0.ɵɵelement(14, "i", 72);
1302
1300
  i0.ɵɵtext(15);
1303
1301
  i0.ɵɵelementEnd();
1304
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Template, 2, 1, "div", 240);
1302
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Template, 2, 1, "div", 238);
1305
1303
  i0.ɵɵelementEnd();
1306
1304
  } if (rf & 2) {
1307
1305
  const insight_r32 = ctx.$implicit;
@@ -1327,99 +1325,99 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1327
1325
  i0.ɵɵadvance();
1328
1326
  i0.ɵɵconditional(insight_r32.expanded ? 16 : -1);
1329
1327
  } }
1330
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1331
- i0.ɵɵelementStart(0, "div", 228)(1, "div", 229);
1332
- i0.ɵɵrepeaterCreate(2, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Template, 17, 17, "div", 230, _forTrack3);
1328
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1329
+ i0.ɵɵelementStart(0, "div", 226)(1, "div", 227);
1330
+ i0.ɵɵrepeaterCreate(2, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Template, 17, 17, "div", 228, _forTrack3);
1333
1331
  i0.ɵɵelementEnd()();
1334
1332
  } if (rf & 2) {
1335
1333
  const ctx_r0 = i0.ɵɵnextContext(3);
1336
1334
  i0.ɵɵadvance(2);
1337
1335
  i0.ɵɵrepeater(ctx_r0.telemetryInsights);
1338
1336
  } }
1339
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1340
- i0.ɵɵelementStart(0, "div", 57);
1341
- i0.ɵɵelement(1, "i", 256);
1337
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1338
+ i0.ɵɵelementStart(0, "div", 55);
1339
+ i0.ɵɵelement(1, "i", 254);
1342
1340
  i0.ɵɵelementStart(2, "p");
1343
1341
  i0.ɵɵtext(3, "No optimization insights");
1344
1342
  i0.ɵɵelementEnd();
1345
- i0.ɵɵelementStart(4, "span", 60);
1343
+ i0.ɵɵelementStart(4, "span", 58);
1346
1344
  i0.ɵɵtext(5, "Insights will appear when potential optimizations are detected");
1347
1345
  i0.ɵɵelementEnd()();
1348
1346
  } }
1349
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Template(rf, ctx) { if (rf & 1) {
1350
- i0.ɵɵconditionalCreate(0, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_Template, 4, 0, "div", 228)(1, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_1_Template, 6, 0, "div", 57);
1347
+ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Template(rf, ctx) { if (rf & 1) {
1348
+ i0.ɵɵconditionalCreate(0, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_Template, 4, 0, "div", 226)(1, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_1_Template, 6, 0, "div", 55);
1351
1349
  } if (rf & 2) {
1352
1350
  const ctx_r0 = i0.ɵɵnextContext(2);
1353
1351
  i0.ɵɵconditional(ctx_r0.telemetryInsights.length > 0 ? 0 : 1);
1354
1352
  } }
1355
- function SystemDiagnosticsComponent_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1353
+ function SystemDiagnosticsComponent_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1356
1354
  const _r7 = i0.ɵɵgetCurrentView();
1357
- i0.ɵɵelementStart(0, "div", 30)(1, "div", 52)(2, "h3");
1358
- i0.ɵɵelement(3, "i", 26);
1355
+ i0.ɵɵelementStart(0, "div", 29)(1, "div", 50)(2, "h3");
1356
+ i0.ɵɵelement(3, "i", 25);
1359
1357
  i0.ɵɵtext(4, " Performance Telemetry ");
1360
1358
  i0.ɵɵelementEnd();
1361
- i0.ɵɵelementStart(5, "div", 53)(6, "div", 90)(7, "button", 91);
1362
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTelemetrySource("client")); });
1363
- i0.ɵɵelement(8, "i", 92);
1359
+ i0.ɵɵelementStart(5, "div", 51)(6, "div", 88)(7, "button", 89);
1360
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTelemetrySource("client")); });
1361
+ i0.ɵɵelement(8, "i", 90);
1364
1362
  i0.ɵɵtext(9, " Client ");
1365
1363
  i0.ɵɵelementEnd();
1366
- i0.ɵɵelementStart(10, "button", 91);
1367
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTelemetrySource("server")); });
1368
- i0.ɵɵelement(11, "i", 93);
1364
+ i0.ɵɵelementStart(10, "button", 89);
1365
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTelemetrySource("server")); });
1366
+ i0.ɵɵelement(11, "i", 91);
1369
1367
  i0.ɵɵtext(12, " Server ");
1370
1368
  i0.ɵɵelementEnd()();
1371
- i0.ɵɵelement(13, "span", 94);
1372
- i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template, 6, 8)(15, SystemDiagnosticsComponent_Conditional_52_Conditional_15_Template, 5, 9, "span", 95);
1373
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_52_Conditional_16_Template, 2, 0, "span", 96);
1369
+ i0.ɵɵelement(13, "span", 92);
1370
+ i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_47_Conditional_14_Template, 6, 8)(15, SystemDiagnosticsComponent_Conditional_47_Conditional_15_Template, 5, 9, "span", 93);
1371
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_47_Conditional_16_Template, 2, 0, "span", 94);
1374
1372
  i0.ɵɵelementEnd()();
1375
- i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_52_Conditional_17_Template, 5, 1, "div", 97);
1376
- i0.ɵɵelementStart(18, "div", 98)(19, "button", 99);
1377
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("monitor")); });
1378
- i0.ɵɵelement(20, "i", 100);
1373
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_47_Conditional_17_Template, 5, 1, "div", 95);
1374
+ i0.ɵɵelementStart(18, "div", 96)(19, "button", 97);
1375
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("monitor")); });
1376
+ i0.ɵɵelement(20, "i", 98);
1379
1377
  i0.ɵɵelementStart(21, "span");
1380
1378
  i0.ɵɵtext(22, "Monitor");
1381
1379
  i0.ɵɵelementEnd()();
1382
- i0.ɵɵelementStart(23, "button", 99);
1383
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("overview")); });
1384
- i0.ɵɵelement(24, "i", 101);
1380
+ i0.ɵɵelementStart(23, "button", 97);
1381
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("overview")); });
1382
+ i0.ɵɵelement(24, "i", 99);
1385
1383
  i0.ɵɵelementStart(25, "span");
1386
1384
  i0.ɵɵtext(26, "Overview");
1387
1385
  i0.ɵɵelementEnd();
1388
- i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_52_Conditional_27_Template, 2, 1, "span", 102);
1386
+ i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_47_Conditional_27_Template, 2, 1, "span", 100);
1389
1387
  i0.ɵɵelementEnd();
1390
- i0.ɵɵelementStart(28, "button", 99);
1391
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("events")); });
1392
- i0.ɵɵelement(29, "i", 103);
1388
+ i0.ɵɵelementStart(28, "button", 97);
1389
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("events")); });
1390
+ i0.ɵɵelement(29, "i", 101);
1393
1391
  i0.ɵɵelementStart(30, "span");
1394
1392
  i0.ɵɵtext(31, "Events");
1395
1393
  i0.ɵɵelementEnd();
1396
- i0.ɵɵelementStart(32, "span", 104);
1394
+ i0.ɵɵelementStart(32, "span", 102);
1397
1395
  i0.ɵɵtext(33);
1398
1396
  i0.ɵɵelementEnd()();
1399
- i0.ɵɵelementStart(34, "button", 99);
1400
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("patterns")); });
1401
- i0.ɵɵelement(35, "i", 105);
1397
+ i0.ɵɵelementStart(34, "button", 97);
1398
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("patterns")); });
1399
+ i0.ɵɵelement(35, "i", 103);
1402
1400
  i0.ɵɵelementStart(36, "span");
1403
1401
  i0.ɵɵtext(37, "Patterns");
1404
1402
  i0.ɵɵelementEnd();
1405
- i0.ɵɵelementStart(38, "span", 104);
1403
+ i0.ɵɵelementStart(38, "span", 102);
1406
1404
  i0.ɵɵtext(39);
1407
1405
  i0.ɵɵelementEnd()();
1408
- i0.ɵɵelementStart(40, "button", 99);
1409
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("insights")); });
1410
- i0.ɵɵelement(41, "i", 83);
1406
+ i0.ɵɵelementStart(40, "button", 97);
1407
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_47_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("insights")); });
1408
+ i0.ɵɵelement(41, "i", 81);
1411
1409
  i0.ɵɵelementStart(42, "span");
1412
1410
  i0.ɵɵtext(43, "Insights");
1413
1411
  i0.ɵɵelementEnd();
1414
- i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_52_Conditional_44_Template, 2, 1, "span", 106);
1412
+ i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_47_Conditional_44_Template, 2, 1, "span", 104);
1415
1413
  i0.ɵɵelementEnd()();
1416
- i0.ɵɵelementStart(45, "div", 56);
1417
- i0.ɵɵconditionalCreate(46, SystemDiagnosticsComponent_Conditional_52_Conditional_46_Template, 6, 0, "div", 107);
1418
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template, 48, 9, "div", 108);
1419
- i0.ɵɵconditionalCreate(48, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Template, 24, 6);
1420
- i0.ɵɵconditionalCreate(49, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template, 14, 5);
1421
- i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template, 13, 5);
1422
- i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Template, 2, 1);
1414
+ i0.ɵɵelementStart(45, "div", 54);
1415
+ i0.ɵɵconditionalCreate(46, SystemDiagnosticsComponent_Conditional_47_Conditional_46_Template, 6, 0, "div", 105);
1416
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template, 48, 9, "div", 106);
1417
+ i0.ɵɵconditionalCreate(48, SystemDiagnosticsComponent_Conditional_47_Conditional_48_Template, 24, 6);
1418
+ i0.ɵɵconditionalCreate(49, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Template, 14, 5);
1419
+ i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Template, 13, 5);
1420
+ i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Template, 2, 1);
1423
1421
  i0.ɵɵelementEnd()();
1424
1422
  } if (rf & 2) {
1425
1423
  const ctx_r0 = i0.ɵɵnextContext();
@@ -1464,17 +1462,17 @@ function SystemDiagnosticsComponent_Conditional_52_Template(rf, ctx) { if (rf &
1464
1462
  i0.ɵɵadvance();
1465
1463
  i0.ɵɵconditional(ctx_r0.perfTab === "insights" ? 51 : -1);
1466
1464
  } }
1467
- function SystemDiagnosticsComponent_Conditional_53_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1468
- i0.ɵɵelementStart(0, "div", 107);
1469
- i0.ɵɵelement(1, "i", 114);
1465
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1466
+ i0.ɵɵelementStart(0, "div", 105);
1467
+ i0.ɵɵelement(1, "i", 112);
1470
1468
  i0.ɵɵelementStart(2, "div")(3, "strong");
1471
1469
  i0.ɵɵtext(4, "Cache not initialized.");
1472
1470
  i0.ɵɵelementEnd();
1473
1471
  i0.ɵɵtext(5, " The LocalCacheManager requires initialization with a storage provider during app startup. ");
1474
1472
  i0.ɵɵelementEnd()();
1475
1473
  } }
1476
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1477
- i0.ɵɵelementStart(0, "code", 275);
1474
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1475
+ i0.ɵɵelementStart(0, "code", 273);
1478
1476
  i0.ɵɵtext(1);
1479
1477
  i0.ɵɵelementEnd();
1480
1478
  } if (rf & 2) {
@@ -1483,19 +1481,19 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1483
1481
  i0.ɵɵadvance();
1484
1482
  i0.ɵɵtextInterpolate(ctx_r0.truncateString(entry_r39.fingerprint, 20));
1485
1483
  } }
1486
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Template(rf, ctx) { if (rf & 1) {
1484
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Template(rf, ctx) { if (rf & 1) {
1487
1485
  const _r38 = i0.ɵɵgetCurrentView();
1488
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 273);
1486
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 271);
1489
1487
  i0.ɵɵtext(3);
1490
1488
  i0.ɵɵelementEnd()();
1491
- i0.ɵɵelementStart(4, "td", 274);
1489
+ i0.ɵɵelementStart(4, "td", 272);
1492
1490
  i0.ɵɵtext(5);
1493
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Conditional_6_Template, 2, 1, "code", 275);
1491
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Conditional_6_Template, 2, 1, "code", 273);
1494
1492
  i0.ɵɵelementEnd();
1495
- i0.ɵɵelementStart(7, "td", 81);
1493
+ i0.ɵɵelementStart(7, "td", 79);
1496
1494
  i0.ɵɵtext(8);
1497
1495
  i0.ɵɵelementEnd();
1498
- i0.ɵɵelementStart(9, "td", 81);
1496
+ i0.ɵɵelementStart(9, "td", 79);
1499
1497
  i0.ɵɵtext(10);
1500
1498
  i0.ɵɵelementEnd();
1501
1499
  i0.ɵɵelementStart(11, "td");
@@ -1504,9 +1502,9 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1504
1502
  i0.ɵɵelementStart(13, "td");
1505
1503
  i0.ɵɵtext(14);
1506
1504
  i0.ɵɵelementEnd();
1507
- i0.ɵɵelementStart(15, "td")(16, "button", 276);
1508
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Template_button_click_16_listener() { const entry_r39 = i0.ɵɵrestoreView(_r38).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.invalidateCacheEntry(entry_r39)); });
1509
- i0.ɵɵelement(17, "i", 116);
1505
+ i0.ɵɵelementStart(15, "td")(16, "button", 274);
1506
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Template_button_click_16_listener() { const entry_r39 = i0.ɵɵrestoreView(_r38).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.invalidateCacheEntry(entry_r39)); });
1507
+ i0.ɵɵelement(17, "i", 114);
1510
1508
  i0.ɵɵelementEnd()()();
1511
1509
  } if (rf & 2) {
1512
1510
  const entry_r39 = ctx.$implicit;
@@ -1528,8 +1526,8 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1528
1526
  i0.ɵɵadvance(2);
1529
1527
  i0.ɵɵtextInterpolate(ctx_r0.formatCacheTimestamp(entry_r39.lastAccessedAt));
1530
1528
  } }
1531
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1532
- i0.ɵɵelementStart(0, "div", 272);
1529
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1530
+ i0.ɵɵelementStart(0, "div", 270);
1533
1531
  i0.ɵɵtext(1);
1534
1532
  i0.ɵɵelementEnd();
1535
1533
  } if (rf & 2) {
@@ -1537,37 +1535,37 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1537
1535
  i0.ɵɵadvance();
1538
1536
  i0.ɵɵtextInterpolate1(" Showing 50 of ", ctx_r0.filteredCacheEntries.length, " entries ");
1539
1537
  } }
1540
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template(rf, ctx) { if (rf & 1) {
1538
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template(rf, ctx) { if (rf & 1) {
1541
1539
  const _r37 = i0.ɵɵgetCurrentView();
1542
- i0.ɵɵelementStart(0, "div", 267)(1, "div", 268)(2, "h4");
1540
+ i0.ɵɵelementStart(0, "div", 265)(1, "div", 266)(2, "h4");
1543
1541
  i0.ɵɵtext(3, "Cache Entries");
1544
1542
  i0.ɵɵelementEnd();
1545
- i0.ɵɵelementStart(4, "div", 269)(5, "button", 186);
1546
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("all")); });
1543
+ i0.ɵɵelementStart(4, "div", 267)(5, "button", 184);
1544
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("all")); });
1547
1545
  i0.ɵɵtext(6, "All");
1548
1546
  i0.ɵɵelementEnd();
1549
- i0.ɵɵelementStart(7, "button", 186);
1550
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("dataset")); });
1547
+ i0.ɵɵelementStart(7, "button", 184);
1548
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("dataset")); });
1551
1549
  i0.ɵɵtext(8, "Datasets");
1552
1550
  i0.ɵɵelementEnd();
1553
- i0.ɵɵelementStart(9, "button", 186);
1554
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runview")); });
1551
+ i0.ɵɵelementStart(9, "button", 184);
1552
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runview")); });
1555
1553
  i0.ɵɵtext(10, "RunViews");
1556
1554
  i0.ɵɵelementEnd();
1557
- i0.ɵɵelementStart(11, "button", 186);
1558
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runquery")); });
1555
+ i0.ɵɵelementStart(11, "button", 184);
1556
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runquery")); });
1559
1557
  i0.ɵɵtext(12, "RunQueries");
1560
1558
  i0.ɵɵelementEnd()()();
1561
- i0.ɵɵelementStart(13, "div", 270)(14, "table", 271)(15, "thead")(16, "tr")(17, "th");
1559
+ i0.ɵɵelementStart(13, "div", 268)(14, "table", 269)(15, "thead")(16, "tr")(17, "th");
1562
1560
  i0.ɵɵtext(18, "Type");
1563
1561
  i0.ɵɵelementEnd();
1564
1562
  i0.ɵɵelementStart(19, "th");
1565
1563
  i0.ɵɵtext(20, "Name");
1566
1564
  i0.ɵɵelementEnd();
1567
- i0.ɵɵelementStart(21, "th", 81);
1565
+ i0.ɵɵelementStart(21, "th", 79);
1568
1566
  i0.ɵɵtext(22, "Size");
1569
1567
  i0.ɵɵelementEnd();
1570
- i0.ɵɵelementStart(23, "th", 81);
1568
+ i0.ɵɵelementStart(23, "th", 79);
1571
1569
  i0.ɵɵtext(24, "Hits");
1572
1570
  i0.ɵɵelementEnd();
1573
1571
  i0.ɵɵelementStart(25, "th");
@@ -1579,9 +1577,9 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1579
1577
  i0.ɵɵelement(29, "th");
1580
1578
  i0.ɵɵelementEnd()();
1581
1579
  i0.ɵɵelementStart(30, "tbody");
1582
- i0.ɵɵrepeaterCreate(31, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Template, 18, 9, "tr", null, _forTrack6);
1580
+ i0.ɵɵrepeaterCreate(31, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Template, 18, 9, "tr", null, _forTrack6);
1583
1581
  i0.ɵɵelementEnd()()();
1584
- i0.ɵɵconditionalCreate(33, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Conditional_33_Template, 2, 1, "div", 272);
1582
+ i0.ɵɵconditionalCreate(33, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Conditional_33_Template, 2, 1, "div", 270);
1585
1583
  i0.ɵɵelementEnd();
1586
1584
  } if (rf & 2) {
1587
1585
  const ctx_r0 = i0.ɵɵnextContext(3);
@@ -1598,95 +1596,95 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1598
1596
  i0.ɵɵadvance(2);
1599
1597
  i0.ɵɵconditional(ctx_r0.filteredCacheEntries.length > 50 ? 33 : -1);
1600
1598
  } }
1601
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1602
- i0.ɵɵelementStart(0, "div", 57);
1603
- i0.ɵɵelement(1, "i", 27);
1599
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1600
+ i0.ɵɵelementStart(0, "div", 55);
1601
+ i0.ɵɵelement(1, "i", 26);
1604
1602
  i0.ɵɵelementStart(2, "p");
1605
1603
  i0.ɵɵtext(3, "No cached data");
1606
1604
  i0.ɵɵelementEnd();
1607
- i0.ɵɵelementStart(4, "span", 60);
1605
+ i0.ɵɵelementStart(4, "span", 58);
1608
1606
  i0.ɵɵtext(5, "Data will be cached as you use the application");
1609
1607
  i0.ɵɵelementEnd()();
1610
1608
  } }
1611
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1609
+ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1612
1610
  const _r36 = i0.ɵɵgetCurrentView();
1613
- i0.ɵɵelementStart(0, "div", 257)(1, "div", 148)(2, "div", 149);
1611
+ i0.ɵɵelementStart(0, "div", 255)(1, "div", 146)(2, "div", 147);
1614
1612
  i0.ɵɵtext(3);
1615
1613
  i0.ɵɵelementEnd();
1616
- i0.ɵɵelementStart(4, "div", 150);
1614
+ i0.ɵɵelementStart(4, "div", 148);
1617
1615
  i0.ɵɵtext(5, "Total Entries");
1618
1616
  i0.ɵɵelementEnd()();
1619
- i0.ɵɵelementStart(6, "div", 148)(7, "div", 149);
1617
+ i0.ɵɵelementStart(6, "div", 146)(7, "div", 147);
1620
1618
  i0.ɵɵtext(8);
1621
1619
  i0.ɵɵelementEnd();
1622
- i0.ɵɵelementStart(9, "div", 150);
1620
+ i0.ɵɵelementStart(9, "div", 148);
1623
1621
  i0.ɵɵtext(10, "Total Size");
1624
1622
  i0.ɵɵelementEnd()();
1625
- i0.ɵɵelementStart(11, "div", 148)(12, "div", 149);
1623
+ i0.ɵɵelementStart(11, "div", 146)(12, "div", 147);
1626
1624
  i0.ɵɵtext(13);
1627
1625
  i0.ɵɵelementEnd();
1628
- i0.ɵɵelementStart(14, "div", 150);
1626
+ i0.ɵɵelementStart(14, "div", 148);
1629
1627
  i0.ɵɵtext(15, "Cache Hits");
1630
1628
  i0.ɵɵelementEnd()();
1631
- i0.ɵɵelementStart(16, "div", 148)(17, "div", 149);
1629
+ i0.ɵɵelementStart(16, "div", 146)(17, "div", 147);
1632
1630
  i0.ɵɵtext(18);
1633
1631
  i0.ɵɵelementEnd();
1634
- i0.ɵɵelementStart(19, "div", 150);
1632
+ i0.ɵɵelementStart(19, "div", 148);
1635
1633
  i0.ɵɵtext(20, "Cache Misses");
1636
1634
  i0.ɵɵelementEnd()();
1637
- i0.ɵɵelementStart(21, "div", 148)(22, "div", 149);
1635
+ i0.ɵɵelementStart(21, "div", 146)(22, "div", 147);
1638
1636
  i0.ɵɵtext(23);
1639
1637
  i0.ɵɵpipe(24, "number");
1640
1638
  i0.ɵɵelementEnd();
1641
- i0.ɵɵelementStart(25, "div", 150);
1639
+ i0.ɵɵelementStart(25, "div", 148);
1642
1640
  i0.ɵɵtext(26, "Hit Rate");
1643
1641
  i0.ɵɵelementEnd()()();
1644
- i0.ɵɵelementStart(27, "div", 258)(28, "h4");
1642
+ i0.ɵɵelementStart(27, "div", 256)(28, "h4");
1645
1643
  i0.ɵɵtext(29, "By Type");
1646
1644
  i0.ɵɵelementEnd();
1647
- i0.ɵɵelementStart(30, "div", 259)(31, "div", 260);
1648
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template_div_click_31_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("dataset")); });
1649
- i0.ɵɵelementStart(32, "span", 261);
1650
- i0.ɵɵelement(33, "i", 70);
1645
+ i0.ɵɵelementStart(30, "div", 257)(31, "div", 258);
1646
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Template_div_click_31_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("dataset")); });
1647
+ i0.ɵɵelementStart(32, "span", 259);
1648
+ i0.ɵɵelement(33, "i", 68);
1651
1649
  i0.ɵɵelementEnd();
1652
- i0.ɵɵelementStart(34, "span", 262);
1650
+ i0.ɵɵelementStart(34, "span", 260);
1653
1651
  i0.ɵɵtext(35, "Datasets");
1654
1652
  i0.ɵɵelementEnd();
1655
- i0.ɵɵelementStart(36, "span", 263);
1653
+ i0.ɵɵelementStart(36, "span", 261);
1656
1654
  i0.ɵɵtext(37);
1657
1655
  i0.ɵɵelementEnd();
1658
- i0.ɵɵelementStart(38, "span", 264);
1656
+ i0.ɵɵelementStart(38, "span", 262);
1659
1657
  i0.ɵɵtext(39);
1660
1658
  i0.ɵɵelementEnd()();
1661
- i0.ɵɵelementStart(40, "div", 260);
1662
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template_div_click_40_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runview")); });
1663
- i0.ɵɵelementStart(41, "span", 261);
1664
- i0.ɵɵelement(42, "i", 265);
1659
+ i0.ɵɵelementStart(40, "div", 258);
1660
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Template_div_click_40_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runview")); });
1661
+ i0.ɵɵelementStart(41, "span", 259);
1662
+ i0.ɵɵelement(42, "i", 263);
1665
1663
  i0.ɵɵelementEnd();
1666
- i0.ɵɵelementStart(43, "span", 262);
1664
+ i0.ɵɵelementStart(43, "span", 260);
1667
1665
  i0.ɵɵtext(44, "RunViews");
1668
1666
  i0.ɵɵelementEnd();
1669
- i0.ɵɵelementStart(45, "span", 263);
1667
+ i0.ɵɵelementStart(45, "span", 261);
1670
1668
  i0.ɵɵtext(46);
1671
1669
  i0.ɵɵelementEnd();
1672
- i0.ɵɵelementStart(47, "span", 264);
1670
+ i0.ɵɵelementStart(47, "span", 262);
1673
1671
  i0.ɵɵtext(48);
1674
1672
  i0.ɵɵelementEnd()();
1675
- i0.ɵɵelementStart(49, "div", 260);
1676
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template_div_click_49_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runquery")); });
1677
- i0.ɵɵelementStart(50, "span", 261);
1678
- i0.ɵɵelement(51, "i", 266);
1673
+ i0.ɵɵelementStart(49, "div", 258);
1674
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Template_div_click_49_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runquery")); });
1675
+ i0.ɵɵelementStart(50, "span", 259);
1676
+ i0.ɵɵelement(51, "i", 264);
1679
1677
  i0.ɵɵelementEnd();
1680
- i0.ɵɵelementStart(52, "span", 262);
1678
+ i0.ɵɵelementStart(52, "span", 260);
1681
1679
  i0.ɵɵtext(53, "RunQueries");
1682
1680
  i0.ɵɵelementEnd();
1683
- i0.ɵɵelementStart(54, "span", 263);
1681
+ i0.ɵɵelementStart(54, "span", 261);
1684
1682
  i0.ɵɵtext(55);
1685
1683
  i0.ɵɵelementEnd();
1686
- i0.ɵɵelementStart(56, "span", 264);
1684
+ i0.ɵɵelementStart(56, "span", 262);
1687
1685
  i0.ɵɵtext(57);
1688
1686
  i0.ɵɵelementEnd()()()();
1689
- i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template, 34, 9, "div", 267)(59, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_59_Template, 6, 0, "div", 57);
1687
+ i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template, 34, 9, "div", 265)(59, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_59_Template, 6, 0, "div", 55);
1690
1688
  } if (rf & 2) {
1691
1689
  const ctx_r0 = i0.ɵɵnextContext(2);
1692
1690
  i0.ɵɵadvance(3);
@@ -1714,19 +1712,19 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template(rf, c
1714
1712
  i0.ɵɵadvance();
1715
1713
  i0.ɵɵconditional(ctx_r0.filteredCacheEntries.length > 0 ? 58 : ctx_r0.cacheStats && ctx_r0.cacheStats.totalEntries === 0 ? 59 : -1);
1716
1714
  } }
1717
- function SystemDiagnosticsComponent_Conditional_53_Template(rf, ctx) { if (rf & 1) {
1715
+ function SystemDiagnosticsComponent_Conditional_48_Template(rf, ctx) { if (rf & 1) {
1718
1716
  const _r35 = i0.ɵɵgetCurrentView();
1719
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 52)(2, "h3");
1720
- i0.ɵɵelement(3, "i", 27);
1717
+ i0.ɵɵelementStart(0, "div", 28)(1, "div", 50)(2, "h3");
1718
+ i0.ɵɵelement(3, "i", 26);
1721
1719
  i0.ɵɵtext(4, " Local Cache ");
1722
1720
  i0.ɵɵelementEnd();
1723
- i0.ɵɵelementStart(5, "div", 53)(6, "button", 54);
1724
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r35); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.clearAllCache()); });
1725
- i0.ɵɵelement(7, "i", 110);
1721
+ i0.ɵɵelementStart(5, "div", 51)(6, "button", 52);
1722
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_48_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r35); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.clearAllCache()); });
1723
+ i0.ɵɵelement(7, "i", 108);
1726
1724
  i0.ɵɵtext(8, " Clear All ");
1727
1725
  i0.ɵɵelementEnd()()();
1728
- i0.ɵɵelementStart(9, "div", 56);
1729
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_53_Conditional_10_Template, 6, 0, "div", 107)(11, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template, 60, 15);
1726
+ i0.ɵɵelementStart(9, "div", 54);
1727
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_48_Conditional_10_Template, 6, 0, "div", 105)(11, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Template, 60, 15);
1730
1728
  i0.ɵɵelementEnd()();
1731
1729
  } if (rf & 2) {
1732
1730
  const ctx_r0 = i0.ɵɵnextContext();
@@ -1735,11 +1733,11 @@ function SystemDiagnosticsComponent_Conditional_53_Template(rf, ctx) { if (rf &
1735
1733
  i0.ɵɵadvance(4);
1736
1734
  i0.ɵɵconditional(!ctx_r0.cacheInitialized ? 10 : 11);
1737
1735
  } }
1738
- function SystemDiagnosticsComponent_Conditional_62_Conditional_38_Template(rf, ctx) { if (rf & 1) {
1739
- i0.ɵɵelementStart(0, "div", 287)(1, "span", 288);
1736
+ function SystemDiagnosticsComponent_Conditional_57_Conditional_38_Template(rf, ctx) { if (rf & 1) {
1737
+ i0.ɵɵelementStart(0, "div", 285)(1, "span", 286);
1740
1738
  i0.ɵɵtext(2, "Entity:");
1741
1739
  i0.ɵɵelementEnd();
1742
- i0.ɵɵelementStart(3, "span", 296);
1740
+ i0.ɵɵelementStart(3, "span", 294);
1743
1741
  i0.ɵɵtext(4);
1744
1742
  i0.ɵɵelementEnd()();
1745
1743
  } if (rf & 2) {
@@ -1747,11 +1745,11 @@ function SystemDiagnosticsComponent_Conditional_62_Conditional_38_Template(rf, c
1747
1745
  i0.ɵɵadvance(4);
1748
1746
  i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.entityName);
1749
1747
  } }
1750
- function SystemDiagnosticsComponent_Conditional_62_Conditional_39_Template(rf, ctx) { if (rf & 1) {
1751
- i0.ɵɵelementStart(0, "div", 287)(1, "span", 288);
1748
+ function SystemDiagnosticsComponent_Conditional_57_Conditional_39_Template(rf, ctx) { if (rf & 1) {
1749
+ i0.ɵɵelementStart(0, "div", 285)(1, "span", 286);
1752
1750
  i0.ɵɵtext(2, "Filter:");
1753
1751
  i0.ɵɵelementEnd();
1754
- i0.ɵɵelementStart(3, "code", 297);
1752
+ i0.ɵɵelementStart(3, "code", 295);
1755
1753
  i0.ɵɵtext(4);
1756
1754
  i0.ɵɵelementEnd()();
1757
1755
  } if (rf & 2) {
@@ -1759,11 +1757,11 @@ function SystemDiagnosticsComponent_Conditional_62_Conditional_39_Template(rf, c
1759
1757
  i0.ɵɵadvance(4);
1760
1758
  i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.filter);
1761
1759
  } }
1762
- function SystemDiagnosticsComponent_Conditional_62_For_46_Template(rf, ctx) { if (rf & 1) {
1763
- i0.ɵɵelementStart(0, "div", 292)(1, "span", 298);
1760
+ function SystemDiagnosticsComponent_Conditional_57_For_46_Template(rf, ctx) { if (rf & 1) {
1761
+ i0.ɵɵelementStart(0, "div", 290)(1, "span", 296);
1764
1762
  i0.ɵɵtext(2);
1765
1763
  i0.ɵɵelementEnd();
1766
- i0.ɵɵelementStart(3, "span", 299);
1764
+ i0.ɵɵelementStart(3, "span", 297);
1767
1765
  i0.ɵɵtext(4);
1768
1766
  i0.ɵɵelementEnd()();
1769
1767
  } if (rf & 2) {
@@ -1773,9 +1771,9 @@ function SystemDiagnosticsComponent_Conditional_62_For_46_Template(rf, ctx) { if
1773
1771
  i0.ɵɵadvance(2);
1774
1772
  i0.ɵɵtextInterpolate(param_r41.value);
1775
1773
  } }
1776
- function SystemDiagnosticsComponent_Conditional_62_Conditional_47_Conditional_23_Template(rf, ctx) { if (rf & 1) {
1777
- i0.ɵɵelementStart(0, "div", 303);
1778
- i0.ɵɵelement(1, "i", 114);
1774
+ function SystemDiagnosticsComponent_Conditional_57_Conditional_47_Conditional_23_Template(rf, ctx) { if (rf & 1) {
1775
+ i0.ɵɵelementStart(0, "div", 301);
1776
+ i0.ɵɵelement(1, "i", 112);
1779
1777
  i0.ɵɵtext(2);
1780
1778
  i0.ɵɵelementEnd();
1781
1779
  } if (rf & 2) {
@@ -1783,33 +1781,33 @@ function SystemDiagnosticsComponent_Conditional_62_Conditional_47_Conditional_23
1783
1781
  i0.ɵɵadvance(2);
1784
1782
  i0.ɵɵtextInterpolate1(" This pattern has been called ", ctx_r0.eventDetailPanel.relatedPattern.count, " times. Consider caching or batching. ");
1785
1783
  } }
1786
- function SystemDiagnosticsComponent_Conditional_62_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1787
- i0.ɵɵelementStart(0, "div", 244)(1, "h4");
1788
- i0.ɵɵelement(2, "i", 105);
1784
+ function SystemDiagnosticsComponent_Conditional_57_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1785
+ i0.ɵɵelementStart(0, "div", 242)(1, "h4");
1786
+ i0.ɵɵelement(2, "i", 103);
1789
1787
  i0.ɵɵtext(3, " Related Pattern");
1790
1788
  i0.ɵɵelementEnd();
1791
- i0.ɵɵelementStart(4, "div", 300)(5, "div", 301)(6, "span", 302);
1789
+ i0.ɵɵelementStart(4, "div", 298)(5, "div", 299)(6, "span", 300);
1792
1790
  i0.ɵɵtext(7);
1793
1791
  i0.ɵɵelementEnd();
1794
- i0.ɵɵelementStart(8, "span", 68);
1792
+ i0.ɵɵelementStart(8, "span", 66);
1795
1793
  i0.ɵɵtext(9, "Total Calls");
1796
1794
  i0.ɵɵelementEnd()();
1797
- i0.ɵɵelementStart(10, "div", 301)(11, "span", 302);
1795
+ i0.ɵɵelementStart(10, "div", 299)(11, "span", 300);
1798
1796
  i0.ɵɵtext(12);
1799
1797
  i0.ɵɵpipe(13, "number");
1800
1798
  i0.ɵɵelementEnd();
1801
- i0.ɵɵelementStart(14, "span", 68);
1799
+ i0.ɵɵelementStart(14, "span", 66);
1802
1800
  i0.ɵɵtext(15, "Avg Duration");
1803
1801
  i0.ɵɵelementEnd()();
1804
- i0.ɵɵelementStart(16, "div", 301)(17, "span", 302);
1802
+ i0.ɵɵelementStart(16, "div", 299)(17, "span", 300);
1805
1803
  i0.ɵɵtext(18);
1806
1804
  i0.ɵɵpipe(19, "number");
1807
1805
  i0.ɵɵpipe(20, "number");
1808
1806
  i0.ɵɵelementEnd();
1809
- i0.ɵɵelementStart(21, "span", 68);
1807
+ i0.ɵɵelementStart(21, "span", 66);
1810
1808
  i0.ɵɵtext(22, "Range");
1811
1809
  i0.ɵɵelementEnd()()();
1812
- i0.ɵɵconditionalCreate(23, SystemDiagnosticsComponent_Conditional_62_Conditional_47_Conditional_23_Template, 3, 1, "div", 303);
1810
+ i0.ɵɵconditionalCreate(23, SystemDiagnosticsComponent_Conditional_57_Conditional_47_Conditional_23_Template, 3, 1, "div", 301);
1813
1811
  i0.ɵɵelementEnd();
1814
1812
  } if (rf & 2) {
1815
1813
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -1822,75 +1820,75 @@ function SystemDiagnosticsComponent_Conditional_62_Conditional_47_Template(rf, c
1822
1820
  i0.ɵɵadvance(5);
1823
1821
  i0.ɵɵconditional(ctx_r0.eventDetailPanel.relatedPattern.count >= 2 ? 23 : -1);
1824
1822
  } }
1825
- function SystemDiagnosticsComponent_Conditional_62_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1823
+ function SystemDiagnosticsComponent_Conditional_57_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1826
1824
  const _r42 = i0.ɵɵgetCurrentView();
1827
- i0.ɵɵelementStart(0, "button", 294);
1828
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Conditional_52_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.filterByEntity(ctx_r0.eventDetailPanel.event.entityName)); });
1829
- i0.ɵɵelement(1, "i", 227);
1825
+ i0.ɵɵelementStart(0, "button", 292);
1826
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_57_Conditional_52_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.filterByEntity(ctx_r0.eventDetailPanel.event.entityName)); });
1827
+ i0.ɵɵelement(1, "i", 225);
1830
1828
  i0.ɵɵtext(2, " Filter by Entity ");
1831
1829
  i0.ɵɵelementEnd();
1832
1830
  } }
1833
- function SystemDiagnosticsComponent_Conditional_62_Template(rf, ctx) { if (rf & 1) {
1831
+ function SystemDiagnosticsComponent_Conditional_57_Template(rf, ctx) { if (rf & 1) {
1834
1832
  const _r40 = i0.ɵɵgetCurrentView();
1835
- i0.ɵɵelementStart(0, "div", 277);
1836
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEventDetailPanel()); });
1833
+ i0.ɵɵelementStart(0, "div", 275);
1834
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_57_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEventDetailPanel()); });
1837
1835
  i0.ɵɵelementEnd();
1838
- i0.ɵɵelementStart(1, "div", 278)(2, "div", 52)(3, "div", 279)(4, "span", 222);
1836
+ i0.ɵɵelementStart(1, "div", 276)(2, "div", 50)(3, "div", 277)(4, "span", 220);
1839
1837
  i0.ɵɵtext(5);
1840
1838
  i0.ɵɵelementEnd();
1841
1839
  i0.ɵɵelementStart(6, "h3");
1842
1840
  i0.ɵɵtext(7, "Event Details");
1843
1841
  i0.ɵɵelementEnd()();
1844
- i0.ɵɵelementStart(8, "button", 280);
1845
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEventDetailPanel()); });
1846
- i0.ɵɵelement(9, "i", 116);
1842
+ i0.ɵɵelementStart(8, "button", 278);
1843
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_57_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEventDetailPanel()); });
1844
+ i0.ɵɵelement(9, "i", 114);
1847
1845
  i0.ɵɵelementEnd()();
1848
- i0.ɵɵelementStart(10, "div", 281)(11, "div", 282)(12, "div", 283)(13, "div", 284);
1846
+ i0.ɵɵelementStart(10, "div", 279)(11, "div", 280)(12, "div", 281)(13, "div", 282);
1849
1847
  i0.ɵɵtext(14);
1850
1848
  i0.ɵɵpipe(15, "number");
1851
1849
  i0.ɵɵelementEnd();
1852
- i0.ɵɵelementStart(16, "div", 285);
1850
+ i0.ɵɵelementStart(16, "div", 283);
1853
1851
  i0.ɵɵtext(17, "Duration");
1854
1852
  i0.ɵɵelementEnd()();
1855
- i0.ɵɵelementStart(18, "div", 283)(19, "div", 284);
1853
+ i0.ɵɵelementStart(18, "div", 281)(19, "div", 282);
1856
1854
  i0.ɵɵtext(20);
1857
1855
  i0.ɵɵelementEnd();
1858
- i0.ɵɵelementStart(21, "div", 285);
1856
+ i0.ɵɵelementStart(21, "div", 283);
1859
1857
  i0.ɵɵtext(22, "Time");
1860
1858
  i0.ɵɵelementEnd()();
1861
- i0.ɵɵelementStart(23, "div", 283)(24, "div", 284);
1859
+ i0.ɵɵelementStart(23, "div", 281)(24, "div", 282);
1862
1860
  i0.ɵɵtext(25);
1863
1861
  i0.ɵɵelementEnd();
1864
- i0.ɵɵelementStart(26, "div", 285);
1862
+ i0.ɵɵelementStart(26, "div", 283);
1865
1863
  i0.ɵɵtext(27, "Relative");
1866
1864
  i0.ɵɵelementEnd()()();
1867
- i0.ɵɵelementStart(28, "div", 244)(29, "h4");
1868
- i0.ɵɵelement(30, "i", 266);
1865
+ i0.ɵɵelementStart(28, "div", 242)(29, "h4");
1866
+ i0.ɵɵelement(30, "i", 264);
1869
1867
  i0.ɵɵtext(31, " Operation");
1870
1868
  i0.ɵɵelementEnd();
1871
- i0.ɵɵelementStart(32, "div", 286)(33, "div", 287)(34, "span", 288);
1869
+ i0.ɵɵelementStart(32, "div", 284)(33, "div", 285)(34, "span", 286);
1872
1870
  i0.ɵɵtext(35, "Operation:");
1873
1871
  i0.ɵɵelementEnd();
1874
- i0.ɵɵelementStart(36, "span", 289);
1872
+ i0.ɵɵelementStart(36, "span", 287);
1875
1873
  i0.ɵɵtext(37);
1876
1874
  i0.ɵɵelementEnd()();
1877
- i0.ɵɵconditionalCreate(38, SystemDiagnosticsComponent_Conditional_62_Conditional_38_Template, 5, 1, "div", 287);
1878
- i0.ɵɵconditionalCreate(39, SystemDiagnosticsComponent_Conditional_62_Conditional_39_Template, 5, 1, "div", 287);
1875
+ i0.ɵɵconditionalCreate(38, SystemDiagnosticsComponent_Conditional_57_Conditional_38_Template, 5, 1, "div", 285);
1876
+ i0.ɵɵconditionalCreate(39, SystemDiagnosticsComponent_Conditional_57_Conditional_39_Template, 5, 1, "div", 285);
1879
1877
  i0.ɵɵelementEnd()();
1880
- i0.ɵɵelementStart(40, "div", 244)(41, "h4");
1881
- i0.ɵɵelement(42, "i", 290);
1878
+ i0.ɵɵelementStart(40, "div", 242)(41, "h4");
1879
+ i0.ɵɵelement(42, "i", 288);
1882
1880
  i0.ɵɵtext(43, " Parameters");
1883
1881
  i0.ɵɵelementEnd();
1884
- i0.ɵɵelementStart(44, "div", 291);
1885
- i0.ɵɵrepeaterCreate(45, SystemDiagnosticsComponent_Conditional_62_For_46_Template, 5, 2, "div", 292, _forTrack6);
1882
+ i0.ɵɵelementStart(44, "div", 289);
1883
+ i0.ɵɵrepeaterCreate(45, SystemDiagnosticsComponent_Conditional_57_For_46_Template, 5, 2, "div", 290, _forTrack6);
1886
1884
  i0.ɵɵelementEnd()();
1887
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_62_Conditional_47_Template, 24, 14, "div", 244);
1888
- i0.ɵɵelementStart(48, "div", 293)(49, "button", 294);
1889
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.copyEventToClipboard(ctx_r0.eventDetailPanel.event)); });
1890
- i0.ɵɵelement(50, "i", 23);
1885
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_57_Conditional_47_Template, 24, 14, "div", 242);
1886
+ i0.ɵɵelementStart(48, "div", 291)(49, "button", 292);
1887
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_57_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.copyEventToClipboard(ctx_r0.eventDetailPanel.event)); });
1888
+ i0.ɵɵelement(50, "i", 22);
1891
1889
  i0.ɵɵtext(51, " Copy JSON ");
1892
1890
  i0.ɵɵelementEnd();
1893
- i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_62_Conditional_52_Template, 3, 0, "button", 295);
1891
+ i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_57_Conditional_52_Template, 3, 0, "button", 293);
1894
1892
  i0.ɵɵelementEnd()()();
1895
1893
  } if (rf & 2) {
1896
1894
  const ctx_r0 = i0.ɵɵnextContext();
@@ -1921,11 +1919,11 @@ function SystemDiagnosticsComponent_Conditional_62_Template(rf, ctx) { if (rf &
1921
1919
  i0.ɵɵadvance(5);
1922
1920
  i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.entityName ? 52 : -1);
1923
1921
  } }
1924
- function SystemDiagnosticsComponent_Conditional_63_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1925
- i0.ɵɵelementStart(0, "div", 309)(1, "span", 150);
1922
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1923
+ i0.ɵɵelementStart(0, "div", 307)(1, "span", 148);
1926
1924
  i0.ɵɵtext(2, "Last Loaded");
1927
1925
  i0.ɵɵelementEnd();
1928
- i0.ɵɵelementStart(3, "span", 149);
1926
+ i0.ɵɵelementStart(3, "span", 147);
1929
1927
  i0.ɵɵtext(4);
1930
1928
  i0.ɵɵelementEnd()();
1931
1929
  } if (rf & 2) {
@@ -1933,18 +1931,18 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_30_Template(rf, c
1933
1931
  i0.ɵɵadvance(4);
1934
1932
  i0.ɵɵtextInterpolate(ctx_r0.formatTime(ctx_r0.engineDetailPanel.engine.lastLoadedAt));
1935
1933
  } }
1936
- function SystemDiagnosticsComponent_Conditional_63_Conditional_35_Template(rf, ctx) { if (rf & 1) {
1937
- i0.ɵɵelementStart(0, "div", 190);
1938
- i0.ɵɵelement(1, "i", 59);
1934
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_35_Template(rf, ctx) { if (rf & 1) {
1935
+ i0.ɵɵelementStart(0, "div", 188);
1936
+ i0.ɵɵelement(1, "i", 57);
1939
1937
  i0.ɵɵelementStart(2, "p");
1940
1938
  i0.ɵɵtext(3, "No config items found");
1941
1939
  i0.ɵɵelementEnd()();
1942
1940
  } }
1943
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1944
- i0.ɵɵelementStart(0, "div", 323)(1, "span", 245);
1941
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1942
+ i0.ɵɵelementStart(0, "div", 321)(1, "span", 243);
1945
1943
  i0.ɵɵtext(2, "Filter:");
1946
1944
  i0.ɵɵelementEnd();
1947
- i0.ɵɵelementStart(3, "code", 324);
1945
+ i0.ɵɵelementStart(3, "code", 322);
1948
1946
  i0.ɵɵtext(4);
1949
1947
  i0.ɵɵelementEnd()();
1950
1948
  } if (rf & 2) {
@@ -1952,11 +1950,11 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
1952
1950
  i0.ɵɵadvance(4);
1953
1951
  i0.ɵɵtextInterpolate(item_r45.filter);
1954
1952
  } }
1955
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1956
- i0.ɵɵelementStart(0, "div", 323)(1, "span", 245);
1953
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1954
+ i0.ɵɵelementStart(0, "div", 321)(1, "span", 243);
1957
1955
  i0.ɵɵtext(2, "Order By:");
1958
1956
  i0.ɵɵelementEnd();
1959
- i0.ɵɵelementStart(3, "code", 324);
1957
+ i0.ɵɵelementStart(3, "code", 322);
1960
1958
  i0.ɵɵtext(4);
1961
1959
  i0.ɵɵelementEnd()();
1962
1960
  } if (rf & 2) {
@@ -1964,11 +1962,11 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
1964
1962
  i0.ɵɵadvance(4);
1965
1963
  i0.ɵɵtextInterpolate(item_r45.orderBy);
1966
1964
  } }
1967
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1968
- i0.ɵɵelementStart(0, "div", 325)(1, "span", 245);
1965
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1966
+ i0.ɵɵelementStart(0, "div", 323)(1, "span", 243);
1969
1967
  i0.ɵɵtext(2, "Error:");
1970
1968
  i0.ɵɵelementEnd();
1971
- i0.ɵɵelementStart(3, "span", 327);
1969
+ i0.ɵɵelementStart(3, "span", 325);
1972
1970
  i0.ɵɵtext(4);
1973
1971
  i0.ɵɵelementEnd()();
1974
1972
  } if (rf & 2) {
@@ -1976,28 +1974,28 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
1976
1974
  i0.ɵɵadvance(4);
1977
1975
  i0.ɵɵtextInterpolate(item_r45.errorMessage);
1978
1976
  } }
1979
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1980
- i0.ɵɵelement(0, "i", 336);
1977
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1978
+ i0.ɵɵelement(0, "i", 334);
1981
1979
  } }
1982
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1983
- i0.ɵɵelement(0, "i", 337);
1980
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1981
+ i0.ɵɵelement(0, "i", 335);
1984
1982
  } }
1985
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1986
- i0.ɵɵelement(0, "i", 336);
1983
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1984
+ i0.ɵɵelement(0, "i", 334);
1987
1985
  } }
1988
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1989
- i0.ɵɵelement(0, "i", 35);
1986
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1987
+ i0.ɵɵelement(0, "i", 34);
1990
1988
  } }
1991
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1989
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1992
1990
  const _r46 = i0.ɵɵgetCurrentView();
1993
- i0.ɵɵelementStart(0, "button", 335);
1994
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.loadMoreData(item_r45)); });
1995
- i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template, 1, 0, "i", 336)(2, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template, 1, 0, "i", 337);
1991
+ i0.ɵɵelementStart(0, "button", 333);
1992
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.loadMoreData(item_r45)); });
1993
+ i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template, 1, 0, "i", 334)(2, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template, 1, 0, "i", 335);
1996
1994
  i0.ɵɵtext(3, " Load More ");
1997
1995
  i0.ɵɵelementEnd();
1998
- i0.ɵɵelementStart(4, "button", 338);
1999
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.loadAllData(item_r45)); });
2000
- i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template, 1, 0, "i", 336)(6, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template, 1, 0, "i", 35);
1996
+ i0.ɵɵelementStart(4, "button", 336);
1997
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.loadAllData(item_r45)); });
1998
+ i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template, 1, 0, "i", 334)(6, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template, 1, 0, "i", 34);
2001
1999
  i0.ɵɵtext(7, " Load All ");
2002
2000
  i0.ɵɵelementEnd();
2003
2001
  } if (rf & 2) {
@@ -2010,13 +2008,13 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2010
2008
  i0.ɵɵadvance();
2011
2009
  i0.ɵɵconditional(item_r45.isLoadingMore ? 5 : 6);
2012
2010
  } }
2013
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
2014
- i0.ɵɵelementStart(0, "span", 331);
2015
- i0.ɵɵelement(1, "i", 339);
2011
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
2012
+ i0.ɵɵelementStart(0, "span", 329);
2013
+ i0.ɵɵelement(1, "i", 337);
2016
2014
  i0.ɵɵtext(2, " All Loaded ");
2017
2015
  i0.ɵɵelementEnd();
2018
2016
  } }
2019
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template(rf, ctx) { if (rf & 1) {
2017
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template(rf, ctx) { if (rf & 1) {
2020
2018
  i0.ɵɵelementStart(0, "th");
2021
2019
  i0.ɵɵtext(1);
2022
2020
  i0.ɵɵelementEnd();
@@ -2025,15 +2023,15 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2025
2023
  i0.ɵɵadvance();
2026
2024
  i0.ɵɵtextInterpolate(col_r47);
2027
2025
  } }
2028
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
2026
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
2029
2027
  const _r48 = i0.ɵɵgetCurrentView();
2030
- i0.ɵɵelementStart(0, "button", 342);
2031
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const row_r49 = i0.ɵɵnextContext().$implicit; const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord(item_r45.entityName, row_r49)); });
2032
- i0.ɵɵelement(1, "i", 343);
2028
+ i0.ɵɵelementStart(0, "button", 340);
2029
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const row_r49 = i0.ɵɵnextContext().$implicit; const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord(item_r45.entityName, row_r49)); });
2030
+ i0.ɵɵelement(1, "i", 341);
2033
2031
  i0.ɵɵelementEnd();
2034
2032
  } }
2035
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template(rf, ctx) { if (rf & 1) {
2036
- i0.ɵɵelementStart(0, "td", 341);
2033
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template(rf, ctx) { if (rf & 1) {
2034
+ i0.ɵɵelementStart(0, "td", 339);
2037
2035
  i0.ɵɵtext(1);
2038
2036
  i0.ɵɵelementEnd();
2039
2037
  } if (rf & 2) {
@@ -2044,11 +2042,11 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2044
2042
  i0.ɵɵadvance();
2045
2043
  i0.ɵɵtextInterpolate(ctx_r0.truncateString(ctx_r0.getSampleDataValue(row_r49, col_r50), 30));
2046
2044
  } }
2047
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template(rf, ctx) { if (rf & 1) {
2048
- i0.ɵɵelementStart(0, "tr")(1, "td", 334);
2049
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template, 2, 0, "button", 340);
2045
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template(rf, ctx) { if (rf & 1) {
2046
+ i0.ɵɵelementStart(0, "tr")(1, "td", 332);
2047
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template, 2, 0, "button", 338);
2050
2048
  i0.ɵɵelementEnd();
2051
- i0.ɵɵrepeaterCreate(3, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template, 2, 2, "td", 341, i0.ɵɵrepeaterTrackByIdentity);
2049
+ i0.ɵɵrepeaterCreate(3, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template, 2, 2, "td", 339, i0.ɵɵrepeaterTrackByIdentity);
2052
2050
  i0.ɵɵelementEnd();
2053
2051
  } if (rf & 2) {
2054
2052
  const row_r49 = ctx.$implicit;
@@ -2059,20 +2057,20 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2059
2057
  i0.ɵɵadvance();
2060
2058
  i0.ɵɵrepeater(ctx_r0.getSampleDataColumns(item_r45));
2061
2059
  } }
2062
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Template(rf, ctx) { if (rf & 1) {
2063
- i0.ɵɵelementStart(0, "div", 326)(1, "div", 328)(2, "span", 329);
2060
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Template(rf, ctx) { if (rf & 1) {
2061
+ i0.ɵɵelementStart(0, "div", 324)(1, "div", 326)(2, "span", 327);
2064
2062
  i0.ɵɵtext(3);
2065
2063
  i0.ɵɵelementEnd();
2066
- i0.ɵɵelementStart(4, "div", 330);
2067
- i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template, 8, 4);
2068
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template, 3, 0, "span", 331);
2064
+ i0.ɵɵelementStart(4, "div", 328);
2065
+ i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template, 8, 4);
2066
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template, 3, 0, "span", 329);
2069
2067
  i0.ɵɵelementEnd()();
2070
- i0.ɵɵelementStart(7, "div", 332)(8, "table", 333)(9, "thead")(10, "tr");
2071
- i0.ɵɵelement(11, "th", 334);
2072
- i0.ɵɵrepeaterCreate(12, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
2068
+ i0.ɵɵelementStart(7, "div", 330)(8, "table", 331)(9, "thead")(10, "tr");
2069
+ i0.ɵɵelement(11, "th", 332);
2070
+ i0.ɵɵrepeaterCreate(12, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
2073
2071
  i0.ɵɵelementEnd()();
2074
2072
  i0.ɵɵelementStart(14, "tbody");
2075
- i0.ɵɵrepeaterCreate(15, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template, 5, 1, "tr", null, i0.ɵɵrepeaterTrackByIndex);
2073
+ i0.ɵɵrepeaterCreate(15, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template, 5, 1, "tr", null, i0.ɵɵrepeaterTrackByIndex);
2076
2074
  i0.ɵɵelementEnd()()()();
2077
2075
  } if (rf & 2) {
2078
2076
  const item_r45 = i0.ɵɵnextContext(2).$implicit;
@@ -2088,17 +2086,17 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2088
2086
  i0.ɵɵadvance(3);
2089
2087
  i0.ɵɵrepeater(item_r45.displayedData);
2090
2088
  } }
2091
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
2092
- i0.ɵɵelementStart(0, "div", 322)(1, "div", 323)(2, "span", 245);
2089
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
2090
+ i0.ɵɵelementStart(0, "div", 320)(1, "div", 321)(2, "span", 243);
2093
2091
  i0.ɵɵtext(3, "Property:");
2094
2092
  i0.ɵɵelementEnd();
2095
- i0.ɵɵelementStart(4, "code", 324);
2093
+ i0.ɵɵelementStart(4, "code", 322);
2096
2094
  i0.ɵɵtext(5);
2097
2095
  i0.ɵɵelementEnd()();
2098
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_6_Template, 5, 1, "div", 323);
2099
- i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_7_Template, 5, 1, "div", 323);
2100
- i0.ɵɵconditionalCreate(8, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_8_Template, 5, 1, "div", 325);
2101
- i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Template, 17, 4, "div", 326);
2096
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_6_Template, 5, 1, "div", 321);
2097
+ i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_7_Template, 5, 1, "div", 321);
2098
+ i0.ɵɵconditionalCreate(8, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_8_Template, 5, 1, "div", 323);
2099
+ i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Template, 17, 4, "div", 324);
2102
2100
  i0.ɵɵelementEnd();
2103
2101
  } if (rf & 2) {
2104
2102
  const item_r45 = i0.ɵɵnextContext().$implicit;
@@ -2113,27 +2111,27 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2113
2111
  i0.ɵɵadvance();
2114
2112
  i0.ɵɵconditional(item_r45.displayedData.length > 0 ? 9 : -1);
2115
2113
  } }
2116
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template(rf, ctx) { if (rf & 1) {
2114
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Template(rf, ctx) { if (rf & 1) {
2117
2115
  const _r44 = i0.ɵɵgetCurrentView();
2118
- i0.ɵɵelementStart(0, "div", 314)(1, "div", 315);
2119
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template_div_click_1_listener() { const item_r45 = i0.ɵɵrestoreView(_r44).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.toggleConfigItemExpanded(item_r45)); });
2120
- i0.ɵɵelementStart(2, "div", 316);
2121
- i0.ɵɵelement(3, "i", 317);
2122
- i0.ɵɵelementStart(4, "span", 318);
2116
+ i0.ɵɵelementStart(0, "div", 312)(1, "div", 313);
2117
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Template_div_click_1_listener() { const item_r45 = i0.ɵɵrestoreView(_r44).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.toggleConfigItemExpanded(item_r45)); });
2118
+ i0.ɵɵelementStart(2, "div", 314);
2119
+ i0.ɵɵelement(3, "i", 315);
2120
+ i0.ɵɵelementStart(4, "span", 316);
2123
2121
  i0.ɵɵtext(5);
2124
2122
  i0.ɵɵelementEnd();
2125
- i0.ɵɵelementStart(6, "span", 319);
2123
+ i0.ɵɵelementStart(6, "span", 317);
2126
2124
  i0.ɵɵtext(7);
2127
2125
  i0.ɵɵelementEnd()();
2128
- i0.ɵɵelementStart(8, "div", 320)(9, "span", 321);
2126
+ i0.ɵɵelementStart(8, "div", 318)(9, "span", 319);
2129
2127
  i0.ɵɵtext(10);
2130
2128
  i0.ɵɵelementEnd();
2131
- i0.ɵɵelementStart(11, "span", 321);
2129
+ i0.ɵɵelementStart(11, "span", 319);
2132
2130
  i0.ɵɵtext(12);
2133
2131
  i0.ɵɵelementEnd();
2134
- i0.ɵɵelement(13, "i", 235);
2132
+ i0.ɵɵelement(13, "i", 233);
2135
2133
  i0.ɵɵelementEnd()();
2136
- i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Template, 10, 5, "div", 322);
2134
+ i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Template, 10, 5, "div", 320);
2137
2135
  i0.ɵɵelementEnd();
2138
2136
  } if (rf & 2) {
2139
2137
  const item_r45 = ctx.$implicit;
@@ -2156,59 +2154,59 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template
2156
2154
  i0.ɵɵadvance();
2157
2155
  i0.ɵɵconditional(item_r45.expanded ? 14 : -1);
2158
2156
  } }
2159
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_Template(rf, ctx) { if (rf & 1) {
2160
- i0.ɵɵelementStart(0, "div", 312);
2161
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template, 15, 22, "div", 313, _forTrack7);
2157
+ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_Template(rf, ctx) { if (rf & 1) {
2158
+ i0.ɵɵelementStart(0, "div", 310);
2159
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Template, 15, 22, "div", 311, _forTrack7);
2162
2160
  i0.ɵɵelementEnd();
2163
2161
  } if (rf & 2) {
2164
2162
  const ctx_r0 = i0.ɵɵnextContext(2);
2165
2163
  i0.ɵɵadvance();
2166
2164
  i0.ɵɵrepeater(ctx_r0.engineDetailPanel.configItems);
2167
2165
  } }
2168
- function SystemDiagnosticsComponent_Conditional_63_Template(rf, ctx) { if (rf & 1) {
2166
+ function SystemDiagnosticsComponent_Conditional_58_Template(rf, ctx) { if (rf & 1) {
2169
2167
  const _r43 = i0.ɵɵgetCurrentView();
2170
- i0.ɵɵelementStart(0, "div", 304);
2171
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEngineDetailPanel()); });
2168
+ i0.ɵɵelementStart(0, "div", 302);
2169
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEngineDetailPanel()); });
2172
2170
  i0.ɵɵelementEnd();
2173
- i0.ɵɵelementStart(1, "div", 305)(2, "div", 52)(3, "div", 279);
2174
- i0.ɵɵelement(4, "i", 21);
2171
+ i0.ɵɵelementStart(1, "div", 303)(2, "div", 50)(3, "div", 277);
2172
+ i0.ɵɵelement(4, "i", 20);
2175
2173
  i0.ɵɵelementStart(5, "h3");
2176
2174
  i0.ɵɵtext(6);
2177
2175
  i0.ɵɵelementEnd()();
2178
- i0.ɵɵelementStart(7, "div", 306)(8, "button", 307);
2179
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.refreshEngineInDetailPanel()); });
2180
- i0.ɵɵelement(9, "i", 55);
2176
+ i0.ɵɵelementStart(7, "div", 304)(8, "button", 305);
2177
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.refreshEngineInDetailPanel()); });
2178
+ i0.ɵɵelement(9, "i", 53);
2181
2179
  i0.ɵɵelementEnd();
2182
- i0.ɵɵelementStart(10, "button", 280);
2183
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEngineDetailPanel()); });
2184
- i0.ɵɵelement(11, "i", 116);
2180
+ i0.ɵɵelementStart(10, "button", 278);
2181
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_58_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEngineDetailPanel()); });
2182
+ i0.ɵɵelement(11, "i", 114);
2185
2183
  i0.ɵɵelementEnd()()();
2186
- i0.ɵɵelementStart(12, "div", 281)(13, "div", 308)(14, "div", 309)(15, "span", 150);
2184
+ i0.ɵɵelementStart(12, "div", 279)(13, "div", 306)(14, "div", 307)(15, "span", 148);
2187
2185
  i0.ɵɵtext(16, "Status");
2188
2186
  i0.ɵɵelementEnd();
2189
- i0.ɵɵelementStart(17, "span", 149);
2190
- i0.ɵɵelement(18, "span", 310);
2187
+ i0.ɵɵelementStart(17, "span", 147);
2188
+ i0.ɵɵelement(18, "span", 308);
2191
2189
  i0.ɵɵtext(19);
2192
2190
  i0.ɵɵelementEnd()();
2193
- i0.ɵɵelementStart(20, "div", 309)(21, "span", 150);
2191
+ i0.ɵɵelementStart(20, "div", 307)(21, "span", 148);
2194
2192
  i0.ɵɵtext(22, "Memory");
2195
2193
  i0.ɵɵelementEnd();
2196
- i0.ɵɵelementStart(23, "span", 149);
2194
+ i0.ɵɵelementStart(23, "span", 147);
2197
2195
  i0.ɵɵtext(24);
2198
2196
  i0.ɵɵelementEnd()();
2199
- i0.ɵɵelementStart(25, "div", 309)(26, "span", 150);
2197
+ i0.ɵɵelementStart(25, "div", 307)(26, "span", 148);
2200
2198
  i0.ɵɵtext(27, "Items");
2201
2199
  i0.ɵɵelementEnd();
2202
- i0.ɵɵelementStart(28, "span", 149);
2200
+ i0.ɵɵelementStart(28, "span", 147);
2203
2201
  i0.ɵɵtext(29);
2204
2202
  i0.ɵɵelementEnd()();
2205
- i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_63_Conditional_30_Template, 5, 1, "div", 309);
2203
+ i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_58_Conditional_30_Template, 5, 1, "div", 307);
2206
2204
  i0.ɵɵelementEnd();
2207
- i0.ɵɵelementStart(31, "div", 311)(32, "h4");
2208
- i0.ɵɵelement(33, "i", 27);
2205
+ i0.ɵɵelementStart(31, "div", 309)(32, "h4");
2206
+ i0.ɵɵelement(33, "i", 26);
2209
2207
  i0.ɵɵtext(34);
2210
2208
  i0.ɵɵelementEnd();
2211
- i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_63_Conditional_35_Template, 4, 0, "div", 190)(36, SystemDiagnosticsComponent_Conditional_63_Conditional_36_Template, 3, 0, "div", 312);
2209
+ i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_58_Conditional_35_Template, 4, 0, "div", 188)(36, SystemDiagnosticsComponent_Conditional_58_Conditional_36_Template, 3, 0, "div", 310);
2212
2210
  i0.ɵɵelementEnd()()();
2213
2211
  } if (rf & 2) {
2214
2212
  const ctx_r0 = i0.ɵɵnextContext();
@@ -4642,104 +4640,96 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4642
4640
  } if (rf & 2) {
4643
4641
  let _t;
4644
4642
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.perfChartRef = _t.first);
4645
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 64, vars: 36, consts: [["perfChart", ""], [1, "system-diagnostics"], [1, "diagnostics-header"], [1, "header-title"], [1, "fa-solid", "fa-stethoscope"], [1, "header-controls"], [1, "auto-refresh-control"], ["type", "checkbox", 3, "ngModelChange", "change", "ngModel"], [1, "refresh-indicator"], [1, "refresh-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-refresh"], [1, "overview-cards-container"], [1, "kpi-toggle-btn", 3, "click", "title"], [1, "fa-solid"], [1, "overview-cards"], [1, "overview-cards-mini"], [1, "main-content"], [1, "left-nav"], [1, "nav-section"], [1, "nav-section-title"], [1, "nav-item", 3, "click"], [1, "fa-solid", "fa-cogs"], [1, "nav-badge"], [1, "fa-solid", "fa-copy"], [1, "nav-badge", "nav-badge--warning"], [1, "nav-badge", "nav-badge--success"], [1, "fa-solid", "fa-chart-line"], [1, "fa-solid", "fa-database"], [1, "content-area"], [1, "section-panel"], [1, "section-panel", "perf-panel"], [1, "footer"], [1, "last-updated"], [1, "fa-solid", "fa-clock"], [1, "export-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "fa-solid", "fa-sync-alt", "spinning"], [1, "overview-card"], [1, "card-icon", "card-icon--engines"], [1, "card-content"], [1, "card-value"], [1, "card-label"], [1, "card-subtitle"], [1, "card-icon", "card-icon--memory"], [1, "fa-solid", "fa-microchip"], [1, "card-icon"], ["title", "Registered Engines", 1, "mini-kpi"], [1, "mini-value"], [1, "mini-label"], [1, "mini-divider"], ["title", "Engine Memory", 1, "mini-kpi"], ["title", "Redundant Loads", 1, "mini-kpi"], [1, "panel-header"], [1, "panel-actions"], [1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-sync"], [1, "section-panel-content"], [1, "empty-state"], [1, "engine-grid"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "engine-card", 3, "loaded"], [1, "engine-card"], [1, "engine-header"], [1, "engine-name", 3, "title"], [1, "engine-status"], [1, "engine-stats"], [1, "stat-item"], [1, "stat-label"], [1, "stat-value"], [1, "fa-solid", "fa-layer-group"], [1, "engine-actions"], ["title", "Refresh this engine", 1, "engine-action-btn", 3, "click", "disabled"], ["title", "View engine details", 1, "engine-action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-right"], [1, "info-banner"], [1, "fa-solid", "fa-info-circle"], [1, "empty-state", "success-state"], [1, "fa-solid", "fa-check-circle"], [1, "redundant-loads-table-wrapper"], [1, "redundant-loads-table"], [1, "text-right"], [1, "recommendation-banner"], [1, "fa-solid", "fa-lightbulb"], [1, "entity-name"], [1, "engines-cell"], [1, "engine-chips"], [1, "engine-chip"], [1, "text-right", "count-cell"], [1, "count-badge"], [1, "source-toggle"], [1, "source-btn", 3, "click"], [1, "fa-solid", "fa-browser"], [1, "fa-solid", "fa-server"], [1, "action-divider"], [1, "status-indicator", 3, "enabled", "disabled"], [1, "loading-indicator"], [1, "error-banner"], [1, "perf-tabs"], [1, "perf-tab", 3, "click"], [1, "fa-solid", "fa-chart-area"], [1, "fa-solid", "fa-gauge"], [1, "tab-badge", "warning"], [1, "fa-solid", "fa-timeline"], [1, "tab-badge"], [1, "fa-solid", "fa-fingerprint"], [1, "tab-badge", "insight"], [1, "info-banner", "warning-banner"], [1, "perfmon-section"], [1, "action-btn", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "status-indicator"], ["title", "Configure via mj.config.cjs telemetry section", 1, "config-note"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "dismiss-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "perfmon-header"], [1, "perfmon-legend"], [1, "legend-item", "runview"], [1, "legend-dot"], [1, "legend-item", "runquery"], [1, "legend-item", "engine"], [1, "legend-item", "ai"], [1, "perfmon-controls"], ["title", "Chart Interaction Mode", 1, "mode-toggle"], ["title", "Pointer mode - click events to view details", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-arrow-pointer"], ["title", "Select mode - drag to zoom into a time range", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-vector-square"], ["title", "Pan mode - drag to pan the chart", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-hand"], [1, "control-divider"], ["title", "Zoom In", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-plus"], ["title", "Zoom Out", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-minus"], ["title", "Reset Zoom", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-expand"], ["title", "Automatically compress gaps with no activity", 1, "compress-toggle"], [1, "perfmon-chart-container"], [1, "perfmon-y-axis"], [1, "axis-label"], [1, "perfmon-chart"], [1, "perfmon-footer"], [1, "footer-note"], [1, "footer-stats"], [1, "telemetry-summary"], [1, "summary-card"], [1, "summary-value"], [1, "summary-label"], [1, "category-breakdown"], [1, "slow-queries-section"], [1, "success-banner"], [1, "category-grid"], [1, "category-item"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-events"], [1, "category-avg"], [1, "fa-solid", "fa-turtle"], [1, "slow-queries-list"], [1, "slow-query-item", "clickable", 3, "cache-hit"], [1, "slow-query-item", "clickable", 3, "click"], [1, "slow-query-main"], [1, "category-chip", "small"], [1, "slow-query-entity"], ["title", "Data served from local cache", 1, "cache-hit-badge", "small"], [1, "slow-query-time"], [1, "slow-query-entities"], [1, "slow-query-pills"], [1, "slow-query-filter"], [1, "slow-query-timestamp"], [1, "fa-solid", "fa-bolt"], [1, "entity-pill", "small"], [1, "entity-pill", "small", "more"], [1, "param-pill", "small", 3, "class", "title"], [1, "param-pill", "small", 3, "title"], [1, "pill-label"], [1, "pill-value"], [1, "filter-bar", "compact"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search events...", 3, "ngModelChange", "ngModel"], [1, "clear-search"], [1, "filter-buttons"], [1, "filter-btn", 3, "click"], [1, "filter-btn", 3, "active"], [1, "timeline-section"], [1, "timeline-container"], [1, "empty-state", "small"], [1, "clear-search", 3, "click"], [1, "timeline-item", "clickable", 3, "class", "cache-hit"], [1, "timeline-item", "clickable", 3, "click"], [1, "timeline-marker"], [1, "marker-bolt"], [1, "marker-dot"], [1, "marker-line"], [1, "timeline-content"], [1, "timeline-header"], [1, "timeline-time"], ["title", "Data served from local cache", 1, "cache-hit-badge"], [1, "timeline-duration", 3, "slow"], [1, "timeline-body"], [1, "timeline-operation"], [1, "timeline-entity"], [1, "timeline-entities"], [1, "timeline-pills"], [1, "timeline-filter"], [1, "timeline-duration"], [1, "entity-pill"], [1, "entity-pill", "more"], [1, "param-pill", 3, "class", "title"], [1, "param-pill", 3, "title"], [1, "fa-solid", "fa-hourglass-start"], ["type", "text", "placeholder", "Search patterns...", 3, "ngModelChange", "ngModel"], [1, "patterns-section"], [1, "patterns-table-wrapper"], [1, "patterns-table", "sortable"], [1, "sortable-header", 3, "click"], [1, "sortable-header", "text-right", 3, "click"], [3, "duplicate-row", "slow-row"], [1, "category-chip"], [1, "operation-cell"], [1, "entity-cell"], [1, "filter-cell", 3, "title"], [1, "count-warning"], [1, "fa-solid", "fa-filter"], [1, "insights-section"], [1, "insights-list"], [1, "insight-card", "expandable", 3, "class", "expanded"], [1, "insight-card", "expandable"], [1, "insight-header", 3, "click"], [1, "insight-title"], [1, "insight-category"], [1, "fa-solid", "expand-icon"], [1, "insight-key-info"], [1, "key-info-item"], [1, "insight-message"], [1, "insight-suggestion"], [1, "insight-details"], [1, "key-label"], [1, "key-value", "entity-name"], [1, "key-value", "filter-code"], [1, "detail-section"], [1, "detail-label"], [1, "params-display"], [1, "param-row"], [1, "related-events"], [1, "related-event"], [1, "param-key"], [1, "param-value"], [1, "event-time"], [1, "event-duration"], [1, "event-entity"], [1, "event-filter"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)"], [1, "cache-summary"], [1, "cache-type-breakdown"], [1, "type-grid"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-name"], [1, "type-count"], [1, "type-size"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-code"], [1, "cache-entries-section"], [1, "section-header"], [1, "filter-controls"], [1, "cache-entries-table-wrapper"], [1, "cache-entries-table"], [1, "table-footer"], [1, "cache-type-chip"], [1, "entry-name"], [1, "entry-fingerprint"], ["title", "Invalidate", 1, "icon-btn", 3, "click"], [1, "event-detail-overlay", 3, "click"], [1, "event-detail-panel"], [1, "panel-title"], [1, "close-btn", 3, "click"], [1, "panel-body"], [1, "detail-metrics"], [1, "metric"], [1, "metric-value"], [1, "metric-label"], [1, "detail-content"], [1, "detail-row"], [1, "detail-key"], [1, "detail-val"], [1, "fa-solid", "fa-sliders"], [1, "params-grid"], [1, "param-item"], [1, "detail-actions"], [1, "action-button", 3, "click"], [1, "action-button"], [1, "detail-val", "entity-highlight"], [1, "detail-val", "filter-val"], [1, "param-name"], [1, "param-val"], [1, "pattern-summary"], [1, "pattern-stat"], [1, "stat-val"], [1, "pattern-warning"], [1, "engine-detail-overlay", 3, "click"], [1, "engine-detail-panel"], [1, "panel-header-actions"], ["title", "Refresh engine", 1, "icon-btn", 3, "click", "disabled"], [1, "engine-summary-section"], [1, "summary-stat"], [1, "status-dot"], [1, "config-items-section"], [1, "config-items-list"], [1, "config-item", 3, "expanded"], [1, "config-item"], [1, "config-item-header", 3, "click"], [1, "config-item-info"], [1, "fa-solid", "config-health-icon", 3, "title"], [1, "config-type-chip"], [1, "config-name"], [1, "config-item-stats"], [1, "config-stat"], [1, "config-item-details"], [1, "config-detail-row"], [1, "detail-value"], [1, "config-detail-row", "config-detail-row--error"], [1, "sample-data-section"], [1, "detail-value", "detail-value--error"], [1, "sample-header"], [1, "sample-title"], [1, "sample-header-actions"], [1, "all-loaded-badge"], [1, "sample-data-table-wrapper"], [1, "sample-data-table"], [1, "action-col"], ["title", "Load more records", 1, "load-more-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "spinning"], [1, "fa-solid", "fa-plus"], ["title", "Load all records", 1, "load-all-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], ["title", "Open record", 1, "open-record-btn"], [3, "title"], ["title", "Open record", 1, "open-record-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"]], template: function SystemDiagnosticsComponent_Template(rf, ctx) { if (rf & 1) {
4643
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 59, vars: 35, consts: [["perfChart", ""], [1, "sd-container"], [1, "sticky-header"], ["role", "toolbar", "aria-label", "System diagnostics actions", 1, "action-buttons"], ["Icon", "fa-solid fa-sync-alt fa-spin", "Label", "Auto-refresh \u00B7 every 5s", "Variant", "info"], [1, "auto-refresh-toggle"], ["type", "checkbox", 3, "ngModelChange", "change", "ngModel"], ["Label", "Refresh Now", 3, "Clicked", "Loading", "ShowLabel"], [1, "scrollable-content"], [1, "system-diagnostics"], [1, "overview-cards-container"], [1, "kpi-toggle-btn", 3, "click", "title"], [1, "fa-solid"], [1, "overview-cards"], [1, "overview-cards-mini"], [1, "main-content"], [1, "left-nav"], [1, "nav-section"], [1, "nav-section-title"], [1, "nav-item", 3, "click"], [1, "fa-solid", "fa-cogs"], [1, "nav-badge"], [1, "fa-solid", "fa-copy"], [1, "nav-badge", "nav-badge--warning"], [1, "nav-badge", "nav-badge--success"], [1, "fa-solid", "fa-chart-line"], [1, "fa-solid", "fa-database"], [1, "content-area"], [1, "section-panel"], [1, "section-panel", "perf-panel"], [1, "footer"], [1, "last-updated"], [1, "fa-solid", "fa-clock"], [1, "export-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "overview-card"], [1, "card-icon", "card-icon--engines"], [1, "card-content"], [1, "card-value"], [1, "card-label"], [1, "card-subtitle"], [1, "card-icon", "card-icon--memory"], [1, "fa-solid", "fa-microchip"], [1, "card-icon"], ["title", "Registered Engines", 1, "mini-kpi"], [1, "mini-value"], [1, "mini-label"], [1, "mini-divider"], ["title", "Engine Memory", 1, "mini-kpi"], ["title", "Redundant Loads", 1, "mini-kpi"], [1, "panel-header"], [1, "panel-actions"], [1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-sync"], [1, "section-panel-content"], [1, "empty-state"], [1, "engine-grid"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "engine-card", 3, "loaded"], [1, "engine-card"], [1, "engine-header"], [1, "engine-name", 3, "title"], [1, "engine-status"], [1, "engine-stats"], [1, "stat-item"], [1, "stat-label"], [1, "stat-value"], [1, "fa-solid", "fa-layer-group"], [1, "engine-actions"], ["title", "Refresh this engine", 1, "engine-action-btn", 3, "click", "disabled"], ["title", "View engine details", 1, "engine-action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-right"], [1, "info-banner"], [1, "fa-solid", "fa-info-circle"], [1, "empty-state", "success-state"], [1, "fa-solid", "fa-check-circle"], [1, "redundant-loads-table-wrapper"], [1, "redundant-loads-table"], [1, "text-right"], [1, "recommendation-banner"], [1, "fa-solid", "fa-lightbulb"], [1, "entity-name"], [1, "engines-cell"], [1, "engine-chips"], [1, "engine-chip"], [1, "text-right", "count-cell"], [1, "count-badge"], [1, "source-toggle"], [1, "source-btn", 3, "click"], [1, "fa-solid", "fa-browser"], [1, "fa-solid", "fa-server"], [1, "action-divider"], [1, "status-indicator", 3, "enabled", "disabled"], [1, "loading-indicator"], [1, "error-banner"], [1, "perf-tabs"], [1, "perf-tab", 3, "click"], [1, "fa-solid", "fa-chart-area"], [1, "fa-solid", "fa-gauge"], [1, "tab-badge", "warning"], [1, "fa-solid", "fa-timeline"], [1, "tab-badge"], [1, "fa-solid", "fa-fingerprint"], [1, "tab-badge", "insight"], [1, "info-banner", "warning-banner"], [1, "perfmon-section"], [1, "action-btn", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "status-indicator"], ["title", "Configure via mj.config.cjs telemetry section", 1, "config-note"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "dismiss-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "perfmon-header"], [1, "perfmon-legend"], [1, "legend-item", "runview"], [1, "legend-dot"], [1, "legend-item", "runquery"], [1, "legend-item", "engine"], [1, "legend-item", "ai"], [1, "perfmon-controls"], ["title", "Chart Interaction Mode", 1, "mode-toggle"], ["title", "Pointer mode - click events to view details", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-arrow-pointer"], ["title", "Select mode - drag to zoom into a time range", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-vector-square"], ["title", "Pan mode - drag to pan the chart", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-hand"], [1, "control-divider"], ["title", "Zoom In", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-plus"], ["title", "Zoom Out", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-minus"], ["title", "Reset Zoom", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-expand"], ["title", "Automatically compress gaps with no activity", 1, "compress-toggle"], [1, "perfmon-chart-container"], [1, "perfmon-y-axis"], [1, "axis-label"], [1, "perfmon-chart"], [1, "perfmon-footer"], [1, "footer-note"], [1, "footer-stats"], [1, "telemetry-summary"], [1, "summary-card"], [1, "summary-value"], [1, "summary-label"], [1, "category-breakdown"], [1, "slow-queries-section"], [1, "success-banner"], [1, "category-grid"], [1, "category-item"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-events"], [1, "category-avg"], [1, "fa-solid", "fa-turtle"], [1, "slow-queries-list"], [1, "slow-query-item", "clickable", 3, "cache-hit"], [1, "slow-query-item", "clickable", 3, "click"], [1, "slow-query-main"], [1, "category-chip", "small"], [1, "slow-query-entity"], ["title", "Data served from local cache", 1, "cache-hit-badge", "small"], [1, "slow-query-time"], [1, "slow-query-entities"], [1, "slow-query-pills"], [1, "slow-query-filter"], [1, "slow-query-timestamp"], [1, "fa-solid", "fa-bolt"], [1, "entity-pill", "small"], [1, "entity-pill", "small", "more"], [1, "param-pill", "small", 3, "class", "title"], [1, "param-pill", "small", 3, "title"], [1, "pill-label"], [1, "pill-value"], [1, "filter-bar", "compact"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search events...", 3, "ngModelChange", "ngModel"], [1, "clear-search"], [1, "filter-buttons"], [1, "filter-btn", 3, "click"], [1, "filter-btn", 3, "active"], [1, "timeline-section"], [1, "timeline-container"], [1, "empty-state", "small"], [1, "clear-search", 3, "click"], [1, "timeline-item", "clickable", 3, "class", "cache-hit"], [1, "timeline-item", "clickable", 3, "click"], [1, "timeline-marker"], [1, "marker-bolt"], [1, "marker-dot"], [1, "marker-line"], [1, "timeline-content"], [1, "timeline-header"], [1, "timeline-time"], ["title", "Data served from local cache", 1, "cache-hit-badge"], [1, "timeline-duration", 3, "slow"], [1, "timeline-body"], [1, "timeline-operation"], [1, "timeline-entity"], [1, "timeline-entities"], [1, "timeline-pills"], [1, "timeline-filter"], [1, "timeline-duration"], [1, "entity-pill"], [1, "entity-pill", "more"], [1, "param-pill", 3, "class", "title"], [1, "param-pill", 3, "title"], [1, "fa-solid", "fa-hourglass-start"], ["type", "text", "placeholder", "Search patterns...", 3, "ngModelChange", "ngModel"], [1, "patterns-section"], [1, "patterns-table-wrapper"], [1, "patterns-table", "sortable"], [1, "sortable-header", 3, "click"], [1, "sortable-header", "text-right", 3, "click"], [3, "duplicate-row", "slow-row"], [1, "category-chip"], [1, "operation-cell"], [1, "entity-cell"], [1, "filter-cell", 3, "title"], [1, "count-warning"], [1, "fa-solid", "fa-filter"], [1, "insights-section"], [1, "insights-list"], [1, "insight-card", "expandable", 3, "class", "expanded"], [1, "insight-card", "expandable"], [1, "insight-header", 3, "click"], [1, "insight-title"], [1, "insight-category"], [1, "fa-solid", "expand-icon"], [1, "insight-key-info"], [1, "key-info-item"], [1, "insight-message"], [1, "insight-suggestion"], [1, "insight-details"], [1, "key-label"], [1, "key-value", "entity-name"], [1, "key-value", "filter-code"], [1, "detail-section"], [1, "detail-label"], [1, "params-display"], [1, "param-row"], [1, "related-events"], [1, "related-event"], [1, "param-key"], [1, "param-value"], [1, "event-time"], [1, "event-duration"], [1, "event-entity"], [1, "event-filter"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)"], [1, "cache-summary"], [1, "cache-type-breakdown"], [1, "type-grid"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-name"], [1, "type-count"], [1, "type-size"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-code"], [1, "cache-entries-section"], [1, "section-header"], [1, "filter-controls"], [1, "cache-entries-table-wrapper"], [1, "cache-entries-table"], [1, "table-footer"], [1, "cache-type-chip"], [1, "entry-name"], [1, "entry-fingerprint"], ["title", "Invalidate", 1, "icon-btn", 3, "click"], [1, "event-detail-overlay", 3, "click"], [1, "event-detail-panel"], [1, "panel-title"], [1, "close-btn", 3, "click"], [1, "panel-body"], [1, "detail-metrics"], [1, "metric"], [1, "metric-value"], [1, "metric-label"], [1, "detail-content"], [1, "detail-row"], [1, "detail-key"], [1, "detail-val"], [1, "fa-solid", "fa-sliders"], [1, "params-grid"], [1, "param-item"], [1, "detail-actions"], [1, "action-button", 3, "click"], [1, "action-button"], [1, "detail-val", "entity-highlight"], [1, "detail-val", "filter-val"], [1, "param-name"], [1, "param-val"], [1, "pattern-summary"], [1, "pattern-stat"], [1, "stat-val"], [1, "pattern-warning"], [1, "engine-detail-overlay", 3, "click"], [1, "engine-detail-panel"], [1, "panel-header-actions"], ["title", "Refresh engine", 1, "icon-btn", 3, "click", "disabled"], [1, "engine-summary-section"], [1, "summary-stat"], [1, "status-dot"], [1, "config-items-section"], [1, "config-items-list"], [1, "config-item", 3, "expanded"], [1, "config-item"], [1, "config-item-header", 3, "click"], [1, "config-item-info"], [1, "fa-solid", "config-health-icon", 3, "title"], [1, "config-type-chip"], [1, "config-name"], [1, "config-item-stats"], [1, "config-stat"], [1, "config-item-details"], [1, "config-detail-row"], [1, "detail-value"], [1, "config-detail-row", "config-detail-row--error"], [1, "sample-data-section"], [1, "detail-value", "detail-value--error"], [1, "sample-header"], [1, "sample-title"], [1, "sample-header-actions"], [1, "all-loaded-badge"], [1, "sample-data-table-wrapper"], [1, "sample-data-table"], [1, "action-col"], ["title", "Load more records", 1, "load-more-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "spinning"], [1, "fa-solid", "fa-plus"], ["title", "Load all records", 1, "load-all-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], ["title", "Open record", 1, "open-record-btn"], [3, "title"], ["title", "Open record", 1, "open-record-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"]], template: function SystemDiagnosticsComponent_Template(rf, ctx) { if (rf & 1) {
4646
4644
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3);
4647
- i0.ɵɵelement(3, "i", 4);
4648
- i0.ɵɵelementStart(4, "h2");
4649
- i0.ɵɵtext(5, "System Diagnostics");
4650
- i0.ɵɵelementEnd()();
4651
- i0.ɵɵelementStart(6, "div", 5)(7, "div", 6)(8, "label")(9, "input", 7);
4652
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Template_input_ngModelChange_9_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.autoRefresh, $event) || (ctx.autoRefresh = $event); return $event; });
4653
- i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Template_input_change_9_listener() { return ctx.toggleAutoRefresh(); });
4654
- i0.ɵɵelementEnd();
4655
- i0.ɵɵtext(10, " Auto-refresh ");
4645
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_3_Template, 1, 0, "mj-stat-badge", 4);
4646
+ i0.ɵɵelementStart(4, "label", 5)(5, "input", 6);
4647
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Template_input_ngModelChange_5_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.autoRefresh, $event) || (ctx.autoRefresh = $event); return $event; });
4648
+ i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Template_input_change_5_listener() { return ctx.toggleAutoRefresh(); });
4656
4649
  i0.ɵɵelementEnd();
4657
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_11_Template, 3, 0, "span", 8);
4650
+ i0.ɵɵtext(6, " Auto-refresh ");
4658
4651
  i0.ɵɵelementEnd();
4659
- i0.ɵɵelementStart(12, "button", 9);
4660
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_12_listener() { return ctx.refreshData(); });
4661
- i0.ɵɵelement(13, "i", 10);
4662
- i0.ɵɵtext(14, " Refresh Now ");
4652
+ i0.ɵɵelementStart(7, "mj-refresh-button", 7);
4653
+ i0.ɵɵlistener("Clicked", function SystemDiagnosticsComponent_Template_mj_refresh_button_Clicked_7_listener() { return ctx.refreshData(); });
4663
4654
  i0.ɵɵelementEnd()()();
4664
- i0.ɵɵelementStart(15, "div", 11)(16, "button", 12);
4665
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_16_listener() { return ctx.toggleKpiCards(); });
4666
- i0.ɵɵelement(17, "i", 13);
4655
+ i0.ɵɵelementStart(8, "div", 8)(9, "div", 9)(10, "div", 10)(11, "button", 11);
4656
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_11_listener() { return ctx.toggleKpiCards(); });
4657
+ i0.ɵɵelement(12, "i", 12);
4667
4658
  i0.ɵɵelementEnd();
4668
- i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_18_Template, 32, 9, "div", 14)(19, SystemDiagnosticsComponent_Conditional_19_Template, 21, 5, "div", 15);
4659
+ i0.ɵɵconditionalCreate(13, SystemDiagnosticsComponent_Conditional_13_Template, 32, 9, "div", 13)(14, SystemDiagnosticsComponent_Conditional_14_Template, 21, 5, "div", 14);
4669
4660
  i0.ɵɵelementEnd();
4670
- i0.ɵɵelementStart(20, "div", 16)(21, "div", 17)(22, "div", 18)(23, "div", 19);
4671
- i0.ɵɵtext(24, "Diagnostics");
4661
+ i0.ɵɵelementStart(15, "div", 15)(16, "div", 16)(17, "div", 17)(18, "div", 18);
4662
+ i0.ɵɵtext(19, "Diagnostics");
4672
4663
  i0.ɵɵelementEnd();
4673
- i0.ɵɵelementStart(25, "div", 20);
4674
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_25_listener() { return ctx.setActiveSection("engines"); });
4675
- i0.ɵɵelement(26, "i", 21);
4676
- i0.ɵɵelementStart(27, "span");
4677
- i0.ɵɵtext(28, "Engine Registry");
4664
+ i0.ɵɵelementStart(20, "div", 19);
4665
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_20_listener() { return ctx.setActiveSection("engines"); });
4666
+ i0.ɵɵelement(21, "i", 20);
4667
+ i0.ɵɵelementStart(22, "span");
4668
+ i0.ɵɵtext(23, "Engine Registry");
4678
4669
  i0.ɵɵelementEnd();
4679
- i0.ɵɵelementStart(29, "span", 22);
4680
- i0.ɵɵtext(30);
4670
+ i0.ɵɵelementStart(24, "span", 21);
4671
+ i0.ɵɵtext(25);
4681
4672
  i0.ɵɵelementEnd()();
4682
- i0.ɵɵelementStart(31, "div", 20);
4683
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_31_listener() { return ctx.setActiveSection("redundant"); });
4684
- i0.ɵɵelement(32, "i", 23);
4685
- i0.ɵɵelementStart(33, "span");
4686
- i0.ɵɵtext(34, "Redundant Loading");
4673
+ i0.ɵɵelementStart(26, "div", 19);
4674
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_26_listener() { return ctx.setActiveSection("redundant"); });
4675
+ i0.ɵɵelement(27, "i", 22);
4676
+ i0.ɵɵelementStart(28, "span");
4677
+ i0.ɵɵtext(29, "Redundant Loading");
4687
4678
  i0.ɵɵelementEnd();
4688
- i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_35_Template, 2, 1, "span", 24)(36, SystemDiagnosticsComponent_Conditional_36_Template, 2, 0, "span", 25);
4679
+ i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_30_Template, 2, 1, "span", 23)(31, SystemDiagnosticsComponent_Conditional_31_Template, 2, 0, "span", 24);
4689
4680
  i0.ɵɵelementEnd();
4690
- i0.ɵɵelementStart(37, "div", 20);
4691
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_37_listener() { return ctx.setActiveSection("performance"); });
4692
- i0.ɵɵelement(38, "i", 26);
4693
- i0.ɵɵelementStart(39, "span");
4694
- i0.ɵɵtext(40, "Performance");
4681
+ i0.ɵɵelementStart(32, "div", 19);
4682
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_32_listener() { return ctx.setActiveSection("performance"); });
4683
+ i0.ɵɵelement(33, "i", 25);
4684
+ i0.ɵɵelementStart(34, "span");
4685
+ i0.ɵɵtext(35, "Performance");
4695
4686
  i0.ɵɵelementEnd();
4696
- i0.ɵɵelementStart(41, "span", 22);
4697
- i0.ɵɵtext(42);
4687
+ i0.ɵɵelementStart(36, "span", 21);
4688
+ i0.ɵɵtext(37);
4698
4689
  i0.ɵɵelementEnd()();
4699
- i0.ɵɵelementStart(43, "div", 20);
4700
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_43_listener() { return ctx.setActiveSection("cache"); });
4701
- i0.ɵɵelement(44, "i", 27);
4702
- i0.ɵɵelementStart(45, "span");
4703
- i0.ɵɵtext(46, "Local Cache");
4690
+ i0.ɵɵelementStart(38, "div", 19);
4691
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_38_listener() { return ctx.setActiveSection("cache"); });
4692
+ i0.ɵɵelement(39, "i", 26);
4693
+ i0.ɵɵelementStart(40, "span");
4694
+ i0.ɵɵtext(41, "Local Cache");
4704
4695
  i0.ɵɵelementEnd();
4705
- i0.ɵɵelementStart(47, "span", 22);
4706
- i0.ɵɵtext(48);
4696
+ i0.ɵɵelementStart(42, "span", 21);
4697
+ i0.ɵɵtext(43);
4707
4698
  i0.ɵɵelementEnd()()()();
4708
- i0.ɵɵelementStart(49, "div", 28);
4709
- i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_50_Template, 12, 4, "div", 29);
4710
- i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_51_Template, 14, 1, "div", 29);
4711
- i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_52_Template, 52, 27, "div", 30);
4712
- i0.ɵɵconditionalCreate(53, SystemDiagnosticsComponent_Conditional_53_Template, 12, 2, "div", 29);
4699
+ i0.ɵɵelementStart(44, "div", 27);
4700
+ i0.ɵɵconditionalCreate(45, SystemDiagnosticsComponent_Conditional_45_Template, 12, 4, "div", 28);
4701
+ i0.ɵɵconditionalCreate(46, SystemDiagnosticsComponent_Conditional_46_Template, 14, 1, "div", 28);
4702
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_47_Template, 52, 27, "div", 29);
4703
+ i0.ɵɵconditionalCreate(48, SystemDiagnosticsComponent_Conditional_48_Template, 12, 2, "div", 28);
4713
4704
  i0.ɵɵelementEnd()();
4714
- i0.ɵɵelementStart(54, "div", 31)(55, "span", 32);
4715
- i0.ɵɵelement(56, "i", 33);
4716
- i0.ɵɵtext(57);
4717
- i0.ɵɵpipe(58, "date");
4705
+ i0.ɵɵelementStart(49, "div", 30)(50, "span", 31);
4706
+ i0.ɵɵelement(51, "i", 32);
4707
+ i0.ɵɵtext(52);
4708
+ i0.ɵɵpipe(53, "date");
4718
4709
  i0.ɵɵelementEnd();
4719
- i0.ɵɵelementStart(59, "button", 34);
4720
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_59_listener() { return ctx.exportTelemetryData(); });
4721
- i0.ɵɵelement(60, "i", 35);
4722
- i0.ɵɵtext(61, " Export JSON ");
4710
+ i0.ɵɵelementStart(54, "button", 33);
4711
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_54_listener() { return ctx.exportTelemetryData(); });
4712
+ i0.ɵɵelement(55, "i", 34);
4713
+ i0.ɵɵtext(56, " Export JSON ");
4723
4714
  i0.ɵɵelementEnd()()();
4724
- i0.ɵɵconditionalCreate(62, SystemDiagnosticsComponent_Conditional_62_Template, 53, 18);
4725
- i0.ɵɵconditionalCreate(63, SystemDiagnosticsComponent_Conditional_63_Template, 37, 14);
4715
+ i0.ɵɵconditionalCreate(57, SystemDiagnosticsComponent_Conditional_57_Template, 53, 18);
4716
+ i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_58_Template, 37, 14);
4717
+ i0.ɵɵelementEnd()();
4726
4718
  } if (rf & 2) {
4727
- i0.ɵɵadvance(9);
4728
- i0.ɵɵtwoWayProperty("ngModel", ctx.autoRefresh);
4719
+ i0.ɵɵadvance(3);
4720
+ i0.ɵɵconditional(ctx.autoRefresh ? 3 : -1);
4729
4721
  i0.ɵɵadvance(2);
4730
- i0.ɵɵconditional(ctx.autoRefresh ? 11 : -1);
4731
- i0.ɵɵadvance();
4732
- i0.ɵɵproperty("disabled", ctx.isLoading);
4733
- i0.ɵɵadvance();
4734
- i0.ɵɵclassProp("spinning", ctx.isLoading);
4722
+ i0.ɵɵtwoWayProperty("ngModel", ctx.autoRefresh);
4735
4723
  i0.ɵɵadvance(2);
4724
+ i0.ɵɵproperty("Loading", ctx.isLoading)("ShowLabel", true);
4725
+ i0.ɵɵadvance(3);
4736
4726
  i0.ɵɵclassProp("collapsed", ctx.kpiCardsCollapsed);
4737
4727
  i0.ɵɵadvance();
4738
4728
  i0.ɵɵproperty("title", ctx.kpiCardsCollapsed ? "Expand KPI cards" : "Collapse KPI cards");
4739
4729
  i0.ɵɵadvance();
4740
4730
  i0.ɵɵclassProp("fa-chevron-up", !ctx.kpiCardsCollapsed)("fa-chevron-down", ctx.kpiCardsCollapsed);
4741
4731
  i0.ɵɵadvance();
4742
- i0.ɵɵconditional(!ctx.kpiCardsCollapsed ? 18 : 19);
4732
+ i0.ɵɵconditional(!ctx.kpiCardsCollapsed ? 13 : 14);
4743
4733
  i0.ɵɵadvance(7);
4744
4734
  i0.ɵɵclassProp("active", ctx.activeSection === "engines");
4745
4735
  i0.ɵɵadvance(5);
@@ -4747,7 +4737,7 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4747
4737
  i0.ɵɵadvance();
4748
4738
  i0.ɵɵclassProp("active", ctx.activeSection === "redundant");
4749
4739
  i0.ɵɵadvance(4);
4750
- i0.ɵɵconditional(ctx.redundantLoads.length > 0 ? 35 : 36);
4740
+ i0.ɵɵconditional(ctx.redundantLoads.length > 0 ? 30 : 31);
4751
4741
  i0.ɵɵadvance(2);
4752
4742
  i0.ɵɵclassProp("active", ctx.activeSection === "performance");
4753
4743
  i0.ɵɵadvance(5);
@@ -4757,22 +4747,22 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4757
4747
  i0.ɵɵadvance(5);
4758
4748
  i0.ɵɵtextInterpolate((ctx.cacheStats == null ? null : ctx.cacheStats.totalEntries) || 0);
4759
4749
  i0.ɵɵadvance(2);
4760
- i0.ɵɵconditional(ctx.activeSection === "engines" ? 50 : -1);
4750
+ i0.ɵɵconditional(ctx.activeSection === "engines" ? 45 : -1);
4761
4751
  i0.ɵɵadvance();
4762
- i0.ɵɵconditional(ctx.activeSection === "redundant" ? 51 : -1);
4752
+ i0.ɵɵconditional(ctx.activeSection === "redundant" ? 46 : -1);
4763
4753
  i0.ɵɵadvance();
4764
- i0.ɵɵconditional(ctx.activeSection === "performance" ? 52 : -1);
4754
+ i0.ɵɵconditional(ctx.activeSection === "performance" ? 47 : -1);
4765
4755
  i0.ɵɵadvance();
4766
- i0.ɵɵconditional(ctx.activeSection === "cache" ? 53 : -1);
4756
+ i0.ɵɵconditional(ctx.activeSection === "cache" ? 48 : -1);
4767
4757
  i0.ɵɵadvance(4);
4768
- i0.ɵɵtextInterpolate1(" Last updated: ", i0.ɵɵpipeBind2(58, 33, ctx.lastUpdated, "medium"), " ");
4758
+ i0.ɵɵtextInterpolate1(" Last updated: ", i0.ɵɵpipeBind2(53, 32, ctx.lastUpdated, "medium"), " ");
4769
4759
  i0.ɵɵadvance(2);
4770
4760
  i0.ɵɵproperty("disabled", !ctx.telemetryEnabled || ctx.telemetryEvents.length === 0);
4771
4761
  i0.ɵɵadvance(3);
4772
- i0.ɵɵconditional(ctx.eventDetailPanel.isOpen && ctx.eventDetailPanel.event ? 62 : -1);
4762
+ i0.ɵɵconditional(ctx.eventDetailPanel.isOpen && ctx.eventDetailPanel.event ? 57 : -1);
4773
4763
  i0.ɵɵadvance();
4774
- i0.ɵɵconditional(ctx.engineDetailPanel.isOpen && ctx.engineDetailPanel.engine ? 63 : -1);
4775
- } }, dependencies: [i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.DecimalPipe, i3.DatePipe], styles: [".system-diagnostics[_ngcontent-%COMP%] {\n padding: 0;\n background: var(--mj-bg-surface-sunken);\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n\n\n.diagnostics-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n flex-shrink: 0;\n}\n\n.header-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: var(--mj-status-success);\n}\n\n.header-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.header-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.auto-refresh-control[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.auto-refresh-control[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.auto-refresh-control[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.refresh-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-status-success);\n font-size: 12px;\n}\n\n.refresh-btn[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.refresh-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n\n.refresh-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.overview-cards-container[_ngcontent-%COMP%] {\n position: relative;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n\n.overview-cards-container.collapsed[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n.kpi-toggle-btn[_ngcontent-%COMP%] {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n width: 28px;\n height: 28px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: all 0.2s ease;\n z-index: 10;\n}\n\n.kpi-toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.overview-cards-container.collapsed[_ngcontent-%COMP%] .kpi-toggle-btn[_ngcontent-%COMP%] {\n top: 50%;\n}\n\n\n\n.overview-cards[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n padding: 20px 24px;\n padding-right: 60px;\n background: var(--mj-bg-page);\n flex-shrink: 0;\n}\n\n\n\n.overview-cards-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 10px 60px 10px 24px;\n background: var(--mj-bg-page);\n}\n\n.mini-kpi[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.mini-kpi[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-color-indigo-500);\n}\n\n.mini-kpi.warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.mini-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mini-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.mini-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 20px;\n background: var(--mj-border-default);\n}\n\n.overview-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: var(--mj-radius-lg);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-md);\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.card-icon--engines[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n color: var(--mj-brand-primary);\n}\n\n.card-icon--memory[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.card-icon--warning[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n color: var(--mj-status-error);\n}\n\n.card-icon--success[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-status-success);\n}\n\n.card-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-value[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n letter-spacing: -0.02em;\n}\n\n.card-label[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-top: 0.25rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.card-subtitle[_ngcontent-%COMP%] {\n font-size: 0.6875rem;\n color: var(--mj-text-muted);\n margin-top: 0.125rem;\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n\n\n.left-nav[_ngcontent-%COMP%] {\n width: 240px;\n background: var(--mj-bg-page);\n border-right: 1px solid var(--mj-border-default);\n padding: 16px 0;\n flex-shrink: 0;\n}\n\n.nav-section[_ngcontent-%COMP%] {\n padding: 0 12px;\n}\n\n.nav-section-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px;\n margin-bottom: 4px;\n}\n\n.nav-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: all 0.2s ease;\n margin-bottom: 4px;\n}\n\n.nav-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.nav-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 18px;\n text-align: center;\n font-size: 15px;\n}\n\n.nav-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type {\n flex: 1;\n}\n\n.nav-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 11px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n min-width: 24px;\n text-align: center;\n}\n\n.nav-item.active[_ngcontent-%COMP%] .nav-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.nav-badge--warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-500) !important;\n color: white !important;\n}\n\n.nav-badge--success[_ngcontent-%COMP%] {\n background: var(--mj-status-success) !important;\n color: white !important;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.panel-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%] {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator[_ngcontent-%COMP%] .config-note[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n margin-top: 8px;\n}\n\n\n\n.engine-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded[_ngcontent-%COMP%] {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n\n\n.info-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n\n\n.recommendation-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.redundant-loads-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] .entity-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip[_ngcontent-%COMP%] {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n\n\n.footer[_ngcontent-%COMP%] {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.warning-banner[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card[_ngcontent-%COMP%] {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.severity-info[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n.severity-warning[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-warning-500); }\n.severity-optimization[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n\n.insight-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview[_ngcontent-%COMP%] { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery[_ngcontent-%COMP%] { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine[_ngcontent-%COMP%] { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache[_ngcontent-%COMP%] { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network[_ngcontent-%COMP%] { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom[_ngcontent-%COMP%] { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.count-warning[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.slow-queries-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.insight-card.expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable[_ngcontent-%COMP%]:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.insight-details[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time[_ngcontent-%COMP%] {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line[_ngcontent-%COMP%] {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .marker-line[_ngcontent-%COMP%] {\n display: none;\n}\n\n.tl-runview[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-info-700); }\n.tl-runquery[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-violet-700); }\n.tl-engine[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-success-700); }\n.tl-ai[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-warning-700); }\n.tl-cache[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.marker-bolt[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n\n\n.tl-runview.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n\n\n.cache-hit-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.timeline-item.cache-hit[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n\n\n.timeline-entities[_ngcontent-%COMP%], \n.slow-query-entities[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n\n\n.timeline-pills[_ngcontent-%COMP%], \n.slow-query-pills[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-label[_ngcontent-%COMP%] {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-value[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.param-pill.pill-filter[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n\n\n.slow-query-item.cache-hit[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n\n\n.filter-bar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.sortable-header[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header[_ngcontent-%COMP%] i.fa-sort-up[_ngcontent-%COMP%], \n.sortable-header[_ngcontent-%COMP%] i.fa-sort-down[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n\n\n.filter-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n}\n\n.slow-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n\n\n.category-chip.small[_ngcontent-%COMP%] {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.perf-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel[_ngcontent-%COMP%] .section-panel-content[_ngcontent-%COMP%] {\n padding: 20px 24px;\n}\n\n\n\n.success-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n\n\n.filter-bar.compact[_ngcontent-%COMP%] {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n\n\n.category-item[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n\n\n.insight-key-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n\n\n.params-display[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-key[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.perfmon-section[_ngcontent-%COMP%] {\n \n\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n \n\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runview); }\n.legend-item.runquery[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runquery); }\n.legend-item.engine[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-engine); }\n.legend-item.ai[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] .axis-label[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.footer-stats[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n\n\n.perfmon-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.mode-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn[_ngcontent-%COMP%]:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active[_ngcontent-%COMP%] {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.control-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.zoom-level[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-rect) {\n pointer-events: none;\n}\n\n\n\n.zoom-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info[_ngcontent-%COMP%] .zoom-level[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.zoom-info[_ngcontent-%COMP%] .time-range[_ngcontent-%COMP%] {\n color: var(--perfmon-text-faint);\n}\n\n\n\n@media (max-width: 1024px) {\n .main-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .left-nav[_ngcontent-%COMP%] {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title[_ngcontent-%COMP%] {\n display: none;\n }\n\n .nav-item[_ngcontent-%COMP%] {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .diagnostics-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .header-controls[_ngcontent-%COMP%] {\n width: 100%;\n flex-wrap: wrap;\n }\n\n .overview-cards[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .engine-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n\n\n.export-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn[_ngcontent-%COMP%]:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n\n\n.event-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.detail-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value.slow[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.detail-key[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n\n\n.params-grid[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-name[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n\n\n.pattern-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-val[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n\n\n.timeline-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover .marker-dot[_ngcontent-%COMP%] {\n transform: scale(1.3);\n}\n\n\n\n\n\n\n.engine-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.engine-summary-section[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-items-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-item-details[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n\n\n.config-health-icon[_ngcontent-%COMP%] {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.config-detail-row--error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n\n\n.sample-data-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.sample-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn[_ngcontent-%COMP%], \n.load-all-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:hover:not(:disabled), \n.load-all-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:disabled, \n.load-all-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col[_ngcontent-%COMP%] {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n\n\n\n\n\n.cache-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.cache-type-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview[_ngcontent-%COMP%] {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}"], changeDetection: 0 });
4764
+ i0.ɵɵconditional(ctx.engineDetailPanel.isOpen && ctx.engineDetailPanel.engine ? 58 : -1);
4765
+ } }, dependencies: [i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJStatBadgeComponent, i3.MJRefreshButtonComponent, i4.DecimalPipe, i4.DatePipe], styles: ["\n\n.sd-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--mj-bg-page);\n}\n\n\n\n.sd-container[_ngcontent-%COMP%] > .sticky-header[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n z-index: 10;\n}\n\n.sd-container[_ngcontent-%COMP%] > .sticky-header[_ngcontent-%COMP%] > .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n justify-content: flex-end;\n padding: var(--mj-space-3) var(--mj-space-6);\n}\n\n@media (max-width: 639px) {\n .sd-container[_ngcontent-%COMP%] > .sticky-header[_ngcontent-%COMP%] > .action-buttons[_ngcontent-%COMP%] {\n justify-content: center;\n flex-wrap: wrap;\n }\n}\n\n\n\n.sd-container[_ngcontent-%COMP%] > .scrollable-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: var(--mj-space-6);\n}\n\n.system-diagnostics[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n display: flex;\n flex-direction: column;\n}\n\n\n\n.auto-refresh-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.auto-refresh-toggle[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n}\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.overview-cards-container[_ngcontent-%COMP%] {\n position: relative;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n\n.overview-cards-container.collapsed[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n.kpi-toggle-btn[_ngcontent-%COMP%] {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n width: 28px;\n height: 28px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: all 0.2s ease;\n z-index: 10;\n}\n\n.kpi-toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.overview-cards-container.collapsed[_ngcontent-%COMP%] .kpi-toggle-btn[_ngcontent-%COMP%] {\n top: 50%;\n}\n\n\n\n.overview-cards[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n padding: 20px 24px;\n padding-right: 60px;\n background: var(--mj-bg-page);\n flex-shrink: 0;\n}\n\n\n\n.overview-cards-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 10px 60px 10px 24px;\n background: var(--mj-bg-page);\n}\n\n.mini-kpi[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.mini-kpi[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-color-indigo-500);\n}\n\n.mini-kpi.warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.mini-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mini-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.mini-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 20px;\n background: var(--mj-border-default);\n}\n\n.overview-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: var(--mj-radius-lg);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-md);\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.card-icon--engines[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n color: var(--mj-brand-primary);\n}\n\n.card-icon--memory[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.card-icon--warning[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n color: var(--mj-status-error);\n}\n\n.card-icon--success[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-status-success);\n}\n\n.card-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-value[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n letter-spacing: -0.02em;\n}\n\n.card-label[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-top: 0.25rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.card-subtitle[_ngcontent-%COMP%] {\n font-size: 0.6875rem;\n color: var(--mj-text-muted);\n margin-top: 0.125rem;\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n\n\n.left-nav[_ngcontent-%COMP%] {\n width: 240px;\n background: var(--mj-bg-page);\n border-right: 1px solid var(--mj-border-default);\n padding: 16px 0;\n flex-shrink: 0;\n}\n\n.nav-section[_ngcontent-%COMP%] {\n padding: 0 12px;\n}\n\n.nav-section-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px;\n margin-bottom: 4px;\n}\n\n.nav-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: all 0.2s ease;\n margin-bottom: 4px;\n}\n\n.nav-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.nav-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 18px;\n text-align: center;\n font-size: 15px;\n}\n\n.nav-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type {\n flex: 1;\n}\n\n.nav-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 11px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n min-width: 24px;\n text-align: center;\n}\n\n.nav-item.active[_ngcontent-%COMP%] .nav-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.nav-badge--warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-500) !important;\n color: white !important;\n}\n\n.nav-badge--success[_ngcontent-%COMP%] {\n background: var(--mj-status-success) !important;\n color: white !important;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.panel-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%] {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator[_ngcontent-%COMP%] .config-note[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n margin-top: 8px;\n}\n\n\n\n.engine-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded[_ngcontent-%COMP%] {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n\n\n.info-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n\n\n.recommendation-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.redundant-loads-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] .entity-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip[_ngcontent-%COMP%] {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n\n\n.footer[_ngcontent-%COMP%] {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.warning-banner[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card[_ngcontent-%COMP%] {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.severity-info[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n.severity-warning[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-warning-500); }\n.severity-optimization[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n\n.insight-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview[_ngcontent-%COMP%] { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery[_ngcontent-%COMP%] { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine[_ngcontent-%COMP%] { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache[_ngcontent-%COMP%] { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network[_ngcontent-%COMP%] { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom[_ngcontent-%COMP%] { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.count-warning[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.slow-queries-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.insight-card.expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable[_ngcontent-%COMP%]:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.insight-details[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time[_ngcontent-%COMP%] {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line[_ngcontent-%COMP%] {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .marker-line[_ngcontent-%COMP%] {\n display: none;\n}\n\n.tl-runview[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-info-700); }\n.tl-runquery[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-violet-700); }\n.tl-engine[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-success-700); }\n.tl-ai[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-warning-700); }\n.tl-cache[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.marker-bolt[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n\n\n.tl-runview.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n\n\n.cache-hit-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.timeline-item.cache-hit[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n\n\n.timeline-entities[_ngcontent-%COMP%], \n.slow-query-entities[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n\n\n.timeline-pills[_ngcontent-%COMP%], \n.slow-query-pills[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-label[_ngcontent-%COMP%] {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-value[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.param-pill.pill-filter[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n\n\n.slow-query-item.cache-hit[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n\n\n.filter-bar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.sortable-header[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header[_ngcontent-%COMP%] i.fa-sort-up[_ngcontent-%COMP%], \n.sortable-header[_ngcontent-%COMP%] i.fa-sort-down[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n\n\n.filter-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n}\n\n.slow-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n\n\n.category-chip.small[_ngcontent-%COMP%] {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.perf-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel[_ngcontent-%COMP%] .section-panel-content[_ngcontent-%COMP%] {\n padding: 20px 24px;\n}\n\n\n\n.success-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n\n\n.filter-bar.compact[_ngcontent-%COMP%] {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n\n\n.category-item[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n\n\n.insight-key-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n\n\n.params-display[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-key[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.perfmon-section[_ngcontent-%COMP%] {\n \n\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n \n\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runview); }\n.legend-item.runquery[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runquery); }\n.legend-item.engine[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-engine); }\n.legend-item.ai[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] .axis-label[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.footer-stats[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n\n\n.perfmon-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.mode-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn[_ngcontent-%COMP%]:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active[_ngcontent-%COMP%] {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.control-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.zoom-level[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-rect) {\n pointer-events: none;\n}\n\n\n\n.zoom-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info[_ngcontent-%COMP%] .zoom-level[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.zoom-info[_ngcontent-%COMP%] .time-range[_ngcontent-%COMP%] {\n color: var(--perfmon-text-faint);\n}\n\n\n\n@media (max-width: 1024px) {\n .main-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .left-nav[_ngcontent-%COMP%] {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title[_ngcontent-%COMP%] {\n display: none;\n }\n\n .nav-item[_ngcontent-%COMP%] {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .overview-cards[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .engine-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n\n\n.export-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn[_ngcontent-%COMP%]:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n\n\n.event-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.detail-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value.slow[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.detail-key[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n\n\n.params-grid[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-name[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n\n\n.pattern-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-val[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n\n\n.timeline-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover .marker-dot[_ngcontent-%COMP%] {\n transform: scale(1.3);\n}\n\n\n\n\n\n\n.engine-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.engine-summary-section[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-items-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-item-details[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n\n\n.config-health-icon[_ngcontent-%COMP%] {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.config-detail-row--error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n\n\n.sample-data-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.sample-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn[_ngcontent-%COMP%], \n.load-all-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:hover:not(:disabled), \n.load-all-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:disabled, \n.load-all-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col[_ngcontent-%COMP%] {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n\n\n\n\n\n.cache-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.cache-type-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview[_ngcontent-%COMP%] {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}"], changeDetection: 0 });
4776
4766
  };
4777
4767
  SystemDiagnosticsComponent = __decorate([
4778
4768
  RegisterClass(BaseResourceComponent, 'SystemDiagnosticsResource')
@@ -4781,33 +4771,31 @@ export { SystemDiagnosticsComponent };
4781
4771
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SystemDiagnosticsComponent, [{
4782
4772
  type: Component,
4783
4773
  args: [{ standalone: false, selector: 'app-system-diagnostics', changeDetection: ChangeDetectionStrategy.OnPush, template: `
4784
- <div class="system-diagnostics">
4785
- <!-- Header -->
4786
- <div class="diagnostics-header">
4787
- <div class="header-title">
4788
- <i class="fa-solid fa-stethoscope"></i>
4789
- <h2>System Diagnostics</h2>
4790
- </div>
4791
- <div class="header-controls">
4792
- <div class="auto-refresh-control">
4793
- <label>
4794
- <input type="checkbox" [(ngModel)]="autoRefresh" (change)="toggleAutoRefresh()">
4795
- Auto-refresh
4796
- </label>
4797
- @if (autoRefresh) {
4798
- <span class="refresh-indicator">
4799
- <i class="fa-solid fa-sync-alt spinning"></i>
4800
- Every 5s
4801
- </span>
4802
- }
4803
- </div>
4804
- <button class="refresh-btn" (click)="refreshData()" [disabled]="isLoading">
4805
- <i class="fa-solid fa-refresh" [class.spinning]="isLoading"></i>
4806
- Refresh Now
4807
- </button>
4774
+ <!--
4775
+ SystemDiagnostics renders inside Admin's "Monitoring" left-nav shell,
4776
+ which owns its own <mj-page-header>. We deliberately do NOT render a
4777
+ <mj-page-header> here to avoid the doubled-header pattern Section 9b
4778
+ defers. Action chrome (auto-refresh toggle + refresh button) lives
4779
+ inline in the .sticky-header below, matching UserManagement /
4780
+ ApplicationRoles. See plans/explorer-chrome-conventions.md Section 10.
4781
+ -->
4782
+ <div class="sd-container">
4783
+ <div class="sticky-header">
4784
+ <div class="action-buttons" role="toolbar" aria-label="System diagnostics actions">
4785
+ @if (autoRefresh) {
4786
+ <mj-stat-badge Icon="fa-solid fa-sync-alt fa-spin" Label="Auto-refresh · every 5s" Variant="info"></mj-stat-badge>
4787
+ }
4788
+ <label class="auto-refresh-toggle">
4789
+ <input type="checkbox" [(ngModel)]="autoRefresh" (change)="toggleAutoRefresh()">
4790
+ Auto-refresh
4791
+ </label>
4792
+ <mj-refresh-button [Loading]="isLoading" Label="Refresh Now" [ShowLabel]="true" (Clicked)="refreshData()"></mj-refresh-button>
4808
4793
  </div>
4809
4794
  </div>
4810
-
4795
+
4796
+ <div class="scrollable-content">
4797
+ <div class="system-diagnostics">
4798
+
4811
4799
  <!-- Overview Cards (Collapsible) -->
4812
4800
  <div class="overview-cards-container" [class.collapsed]="kpiCardsCollapsed">
4813
4801
  <button class="kpi-toggle-btn" (click)="toggleKpiCards()" [title]="kpiCardsCollapsed ? 'Expand KPI cards' : 'Collapse KPI cards'">
@@ -6097,7 +6085,9 @@ export { SystemDiagnosticsComponent };
6097
6085
  </div>
6098
6086
  </div>
6099
6087
  }
6100
- `, styles: [".system-diagnostics {\n padding: 0;\n background: var(--mj-bg-surface-sunken);\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* Header */\n.diagnostics-header {\n background: var(--mj-bg-page);\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n flex-shrink: 0;\n}\n\n.header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-title i {\n font-size: 24px;\n color: var(--mj-status-success);\n}\n\n.header-title h2 {\n margin: 0;\n font-size: 22px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.header-controls {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.auto-refresh-control {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.auto-refresh-control label {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.auto-refresh-control input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.refresh-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-status-success);\n font-size: 12px;\n}\n\n.refresh-btn {\n background: var(--mj-status-success);\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.refresh-btn:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n\n.refresh-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Overview Cards Container (Collapsible) */\n.overview-cards-container {\n position: relative;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n\n.overview-cards-container.collapsed {\n padding: 0;\n}\n\n.kpi-toggle-btn {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n width: 28px;\n height: 28px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: all 0.2s ease;\n z-index: 10;\n}\n\n.kpi-toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.overview-cards-container.collapsed .kpi-toggle-btn {\n top: 50%;\n}\n\n/* Overview Cards */\n.overview-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n padding: 20px 24px;\n padding-right: 60px;\n background: var(--mj-bg-page);\n flex-shrink: 0;\n}\n\n/* Mini KPI Bar (Collapsed State) */\n.overview-cards-mini {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 10px 60px 10px 24px;\n background: var(--mj-bg-page);\n}\n\n.mini-kpi {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.mini-kpi i {\n font-size: 14px;\n color: var(--mj-color-indigo-500);\n}\n\n.mini-kpi.warning i {\n color: var(--mj-color-warning-500);\n}\n\n.mini-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mini-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.mini-divider {\n width: 1px;\n height: 20px;\n background: var(--mj-border-default);\n}\n\n.overview-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: var(--mj-radius-lg);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-md);\n}\n\n.card-icon {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.card-icon--engines {\n background: var(--mj-color-accent-300);\n color: var(--mj-brand-primary);\n}\n\n.card-icon--memory {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.card-icon--warning {\n background: var(--mj-color-error-100);\n color: var(--mj-status-error);\n}\n\n.card-icon--success {\n background: var(--mj-color-success-100);\n color: var(--mj-status-success);\n}\n\n.card-content {\n flex: 1;\n min-width: 0;\n}\n\n.card-value {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n letter-spacing: -0.02em;\n}\n\n.card-label {\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-top: 0.25rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.card-subtitle {\n font-size: 0.6875rem;\n color: var(--mj-text-muted);\n margin-top: 0.125rem;\n}\n\n/* Main Content */\n.main-content {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n/* Left Navigation */\n.left-nav {\n width: 240px;\n background: var(--mj-bg-page);\n border-right: 1px solid var(--mj-border-default);\n padding: 16px 0;\n flex-shrink: 0;\n}\n\n.nav-section {\n padding: 0 12px;\n}\n\n.nav-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px;\n margin-bottom: 4px;\n}\n\n.nav-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: all 0.2s ease;\n margin-bottom: 4px;\n}\n\n.nav-item:hover {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.nav-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.nav-item i {\n width: 18px;\n text-align: center;\n font-size: 15px;\n}\n\n.nav-item span:first-of-type {\n flex: 1;\n}\n\n.nav-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 11px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n min-width: 24px;\n text-align: center;\n}\n\n.nav-item.active .nav-badge {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.nav-badge--warning {\n background: var(--mj-color-warning-500) !important;\n color: white !important;\n}\n\n.nav-badge--success {\n background: var(--mj-status-success) !important;\n color: white !important;\n}\n\n/* Content Area */\n.content-area {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header h3 i {\n color: var(--mj-status-success);\n}\n\n.panel-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn i {\n font-size: 11px;\n}\n\n.loading-indicator {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner i {\n color: var(--mj-status-error);\n}\n\n.error-banner .dismiss-btn {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner .dismiss-btn:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Status indicator for read-only server telemetry status */\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator .config-note {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state i {\n color: var(--mj-status-success);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint {\n font-size: 13px;\n margin-top: 8px;\n}\n\n/* Engine Grid */\n.engine-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item i {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label {\n color: var(--mj-text-muted);\n}\n\n.stat-value {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n/* Info Banner */\n.info-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n/* Recommendation Banner */\n.recommendation-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n/* Redundant Loads Table */\n.redundant-loads-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table th.text-right {\n text-align: right;\n}\n\n.redundant-loads-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table td.text-right {\n text-align: right;\n}\n\n.redundant-loads-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.redundant-loads-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table .entity-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n/* Footer */\n.footer {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Performance Section Styles */\n.warning-banner {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner i {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown {\n margin-bottom: 24px;\n}\n\n.category-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section {\n margin-bottom: 24px;\n}\n\n.insights-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header i {\n font-size: 16px;\n}\n\n.severity-info .insight-header i { color: var(--mj-brand-primary); }\n.severity-warning .insight-header i { color: var(--mj-color-warning-500); }\n.severity-optimization .insight-header i { color: var(--mj-status-success); }\n\n.insight-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion i {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.patterns-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell {\n font-weight: 500;\n}\n\n.count-warning {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Slow Queries Section */\n.slow-queries-section {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable {\n cursor: pointer;\n}\n\n.slow-query-item.clickable:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Expandable Insight Cards */\n.insight-card.expandable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card .expand-icon {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded {\n border-width: 2px;\n}\n\n.insight-details {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section {\n margin-bottom: 12px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n/* Timeline Section */\n.timeline-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item:last-child .marker-line {\n display: none;\n}\n\n.tl-runview .marker-dot { background: var(--mj-color-info-700); }\n.tl-runquery .marker-dot { background: var(--mj-color-violet-700); }\n.tl-engine .marker-dot { background: var(--mj-color-success-700); }\n.tl-ai .marker-dot { background: var(--mj-color-warning-700); }\n.tl-cache .marker-dot { background: var(--mj-status-error); }\n\n/* Cache hit bolt marker */\n.marker-bolt {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt i {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n/* Category-specific bolt colors */\n.tl-runview.cache-hit .marker-bolt { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit .marker-bolt { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit .marker-bolt { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit .marker-bolt { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit .marker-bolt { color: var(--mj-status-error); }\n\n/* Cache hit badge */\n.cache-hit-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge i {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n/* Highlighted background for cache hit items */\n.timeline-item.cache-hit .timeline-content {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n/* Entity Pills for RunViews batch operations */\n.timeline-entities,\n.slow-query-entities {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n/* Parameter Pills */\n.timeline-pills,\n.slow-query-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill .pill-label {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill .pill-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Pill type colors */\n.param-pill.pill-filter {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n/* Slow query cache hit styling */\n.slow-query-item.cache-hit {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n/* Filter Bar */\n.filter-bar {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box i {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box input {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box input:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Sortable Table Headers */\n.sortable-header {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header i {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header i.fa-sort-up,\n.sortable-header i.fa-sort-down {\n color: var(--mj-color-indigo-500);\n}\n\n/* Table Enhancements */\n.filter-cell {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row {\n background: var(--mj-color-error-100);\n}\n\n.slow-row:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n/* Small category chips */\n.category-chip.small {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Performance Sub-Tabs */\n.perf-tabs {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab i {\n font-size: 14px;\n}\n\n.tab-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active .tab-badge {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel .section-panel-content {\n padding: 20px 24px;\n}\n\n/* Success Banner */\n.success-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner i {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n/* Compact Filter Bar */\n.filter-bar.compact {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n/* Clickable category items */\n.category-item {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n/* Insight Key Info (always visible) */\n.insight-key-info {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n/* Params Display */\n.params-display {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row:last-child {\n border-bottom: none;\n}\n\n.param-key {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n/* PerfMon Chart Styles\n * ====================\n * Chrome (background, borders, text, controls) is mapped to MJ semantic tokens\n * so the panel adapts to the active theme and is white-labelable. Series colors\n * (cyan / magenta / neon-green / orange) are categorical chart data \u2014 they must\n * stay distinct across themes and are exempt by the same rule that exempts\n * other chart-data palettes.\n *\n * The accent (--perfmon-accent) is intentionally kept as the same neon green as\n * the engine series so the \"live signal\" indicators (header icon, footer count,\n * chart strokes) read as part of the chart palette rather than the app's brand.\n *\n * Overlays are derived via color-mix() from --mj-text-primary so they invert\n * automatically: dark tints over light surfaces in light mode, light tints over\n * dark surfaces in dark mode.\n */\n.perfmon-section {\n /* Chrome \u2014 adapts to theme */\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n /* Categorical series colors and live-signal accent \u2014 exempt */\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header h4 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header h4 i {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview .legend-dot { background: var(--perfmon-series-runview); }\n.legend-item.runquery .legend-dot { background: var(--perfmon-series-runquery); }\n.legend-item.engine .legend-dot { background: var(--perfmon-series-engine); }\n.legend-item.ai .legend-dot { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis .axis-label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart svg {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note i {\n color: var(--perfmon-accent);\n}\n\n.footer-stats {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n/* D3 Chart Elements */\n.perfmon-chart :deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart :deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart :deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart :deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart :deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart :deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart :deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n/* PerfMon Chart Controls */\n.perfmon-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn i {\n font-size: 14px;\n}\n\n/* Mode Toggle Buttons */\n.mode-toggle {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn i {\n font-size: 12px;\n}\n\n.control-divider {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle input[type=\"checkbox\"] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle span {\n white-space: nowrap;\n}\n\n.zoom-level {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n/* Gap indicators in chart */\n.perfmon-chart :deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart :deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n/* Selection brush overlay */\n.perfmon-chart :deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart :deep(.selection-rect) {\n pointer-events: none;\n}\n\n/* Zoom info display */\n.zoom-info {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info .zoom-level {\n color: var(--perfmon-accent);\n}\n\n.zoom-info .time-range {\n color: var(--perfmon-text-faint);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .main-content {\n flex-direction: column;\n }\n\n .left-nav {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title {\n display: none;\n }\n\n .nav-item {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .diagnostics-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .header-controls {\n width: 100%;\n flex-wrap: wrap;\n }\n\n .overview-cards {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .engine-grid {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n/* Export Button */\n.export-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Event Detail Slide-in Panel */\n.event-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n@keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .close-btn {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel .close-btn:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Detail Metrics */\n.detail-metrics {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics .metric {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics .metric-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics .metric-value.slow {\n color: var(--mj-status-error);\n}\n\n.detail-metrics .metric-label {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Detail Sections */\n.event-detail-panel .detail-section {\n margin-bottom: 24px;\n}\n\n.event-detail-panel .detail-section h4 {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel .detail-section h4 i {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row:last-child {\n border-bottom: none;\n}\n\n.detail-key {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n/* Params Grid */\n.params-grid {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item:last-child {\n border-bottom: none;\n}\n\n.param-name {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n/* Pattern Summary */\n.pattern-summary {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat {\n text-align: center;\n}\n\n.pattern-stat .stat-val {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat .stat-label {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning i {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n/* Detail Actions */\n.detail-actions {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button i {\n color: var(--mj-text-secondary);\n}\n\n/* Clickable timeline items */\n.timeline-item.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable:hover .marker-dot {\n transform: scale(1.3);\n}\n\n/* ========================================\n ENGINE DETAIL PANEL STYLES\n ======================================== */\n\n.engine-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n.engine-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n.engine-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel .icon-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel .icon-btn:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .icon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel .close-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel .close-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Engine Summary */\n.engine-summary-section {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section .summary-stat {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section .summary-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section .summary-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded {\n background: var(--mj-status-success);\n}\n\n/* Config Items Section */\n.config-items-section h4 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section h4 i {\n color: var(--mj-status-success);\n}\n\n.config-items-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded .expand-icon {\n color: var(--mj-status-success);\n}\n\n.config-item-details {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row:last-child {\n border-bottom: none;\n}\n\n.config-detail-row .detail-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row .detail-value {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n/* Health status indicators for config items */\n.config-health-icon {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure {\n color: var(--mj-status-error);\n}\n.config-detail-row--error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n/* Sample Data Section */\n.sample-data-section {\n margin-top: 16px;\n}\n\n.sample-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn,\n.load-all-btn {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn:hover:not(:disabled),\n.load-all-btn:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn:disabled,\n.load-all-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table td {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.sample-data-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Spinning animation for refresh icon */\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n/* ========================================\n LOCAL CACHE SECTION STYLES\n ======================================== */\n\n.cache-summary {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section {\n margin-top: 24px;\n}\n\n.cache-entries-section .section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section .section-header h4 {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table th {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table td {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.cache-type-chip {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}\n"] }]
6088
+ </div>
6089
+ </div>
6090
+ `, styles: ["/* Container \u2014 flex-column workspace inside Admin's left-nav shell. */\n.sd-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--mj-bg-page);\n}\n\n/* Sticky Header \u2014 action row only (no title; Admin shell provides it). */\n.sd-container > .sticky-header {\n flex-shrink: 0;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n z-index: 10;\n}\n\n.sd-container > .sticky-header > .action-buttons {\n display: flex;\n align-items: center;\n gap: var(--mj-space-3);\n justify-content: flex-end;\n padding: var(--mj-space-3) var(--mj-space-6);\n}\n\n@media (max-width: 639px) {\n .sd-container > .sticky-header > .action-buttons {\n justify-content: center;\n flex-wrap: wrap;\n }\n}\n\n/* Scrollable Content */\n.sd-container > .scrollable-content {\n flex: 1;\n overflow-y: auto;\n padding: var(--mj-space-6);\n}\n\n.system-diagnostics {\n background: var(--mj-bg-surface-sunken);\n display: flex;\n flex-direction: column;\n}\n\n/* Inline auto-refresh toggle in the [actions] slot. */\n.auto-refresh-toggle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.auto-refresh-toggle input[type=\"checkbox\"] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n}\n\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Overview Cards Container (Collapsible) */\n.overview-cards-container {\n position: relative;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n\n.overview-cards-container.collapsed {\n padding: 0;\n}\n\n.kpi-toggle-btn {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n width: 28px;\n height: 28px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: all 0.2s ease;\n z-index: 10;\n}\n\n.kpi-toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.overview-cards-container.collapsed .kpi-toggle-btn {\n top: 50%;\n}\n\n/* Overview Cards */\n.overview-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n padding: 20px 24px;\n padding-right: 60px;\n background: var(--mj-bg-page);\n flex-shrink: 0;\n}\n\n/* Mini KPI Bar (Collapsed State) */\n.overview-cards-mini {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 10px 60px 10px 24px;\n background: var(--mj-bg-page);\n}\n\n.mini-kpi {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.mini-kpi i {\n font-size: 14px;\n color: var(--mj-color-indigo-500);\n}\n\n.mini-kpi.warning i {\n color: var(--mj-color-warning-500);\n}\n\n.mini-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mini-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.mini-divider {\n width: 1px;\n height: 20px;\n background: var(--mj-border-default);\n}\n\n.overview-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: var(--mj-radius-lg);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-md);\n}\n\n.card-icon {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.card-icon--engines {\n background: var(--mj-color-accent-300);\n color: var(--mj-brand-primary);\n}\n\n.card-icon--memory {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.card-icon--warning {\n background: var(--mj-color-error-100);\n color: var(--mj-status-error);\n}\n\n.card-icon--success {\n background: var(--mj-color-success-100);\n color: var(--mj-status-success);\n}\n\n.card-content {\n flex: 1;\n min-width: 0;\n}\n\n.card-value {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n letter-spacing: -0.02em;\n}\n\n.card-label {\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-top: 0.25rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.card-subtitle {\n font-size: 0.6875rem;\n color: var(--mj-text-muted);\n margin-top: 0.125rem;\n}\n\n/* Main Content */\n.main-content {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n/* Left Navigation */\n.left-nav {\n width: 240px;\n background: var(--mj-bg-page);\n border-right: 1px solid var(--mj-border-default);\n padding: 16px 0;\n flex-shrink: 0;\n}\n\n.nav-section {\n padding: 0 12px;\n}\n\n.nav-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px;\n margin-bottom: 4px;\n}\n\n.nav-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: all 0.2s ease;\n margin-bottom: 4px;\n}\n\n.nav-item:hover {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.nav-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.nav-item i {\n width: 18px;\n text-align: center;\n font-size: 15px;\n}\n\n.nav-item span:first-of-type {\n flex: 1;\n}\n\n.nav-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 11px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n min-width: 24px;\n text-align: center;\n}\n\n.nav-item.active .nav-badge {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.nav-badge--warning {\n background: var(--mj-color-warning-500) !important;\n color: white !important;\n}\n\n.nav-badge--success {\n background: var(--mj-status-success) !important;\n color: white !important;\n}\n\n/* Content Area */\n.content-area {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header h3 i {\n color: var(--mj-status-success);\n}\n\n.panel-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn i {\n font-size: 11px;\n}\n\n.loading-indicator {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner i {\n color: var(--mj-status-error);\n}\n\n.error-banner .dismiss-btn {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner .dismiss-btn:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Status indicator for read-only server telemetry status */\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator .config-note {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state i {\n color: var(--mj-status-success);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint {\n font-size: 13px;\n margin-top: 8px;\n}\n\n/* Engine Grid */\n.engine-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item i {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label {\n color: var(--mj-text-muted);\n}\n\n.stat-value {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n/* Info Banner */\n.info-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n/* Recommendation Banner */\n.recommendation-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n/* Redundant Loads Table */\n.redundant-loads-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table th.text-right {\n text-align: right;\n}\n\n.redundant-loads-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table td.text-right {\n text-align: right;\n}\n\n.redundant-loads-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.redundant-loads-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table .entity-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n/* Footer */\n.footer {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Performance Section Styles */\n.warning-banner {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner i {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown {\n margin-bottom: 24px;\n}\n\n.category-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section {\n margin-bottom: 24px;\n}\n\n.insights-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header i {\n font-size: 16px;\n}\n\n.severity-info .insight-header i { color: var(--mj-brand-primary); }\n.severity-warning .insight-header i { color: var(--mj-color-warning-500); }\n.severity-optimization .insight-header i { color: var(--mj-status-success); }\n\n.insight-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion i {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.patterns-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell {\n font-weight: 500;\n}\n\n.count-warning {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Slow Queries Section */\n.slow-queries-section {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable {\n cursor: pointer;\n}\n\n.slow-query-item.clickable:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Expandable Insight Cards */\n.insight-card.expandable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card .expand-icon {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded {\n border-width: 2px;\n}\n\n.insight-details {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section {\n margin-bottom: 12px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n/* Timeline Section */\n.timeline-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item:last-child .marker-line {\n display: none;\n}\n\n.tl-runview .marker-dot { background: var(--mj-color-info-700); }\n.tl-runquery .marker-dot { background: var(--mj-color-violet-700); }\n.tl-engine .marker-dot { background: var(--mj-color-success-700); }\n.tl-ai .marker-dot { background: var(--mj-color-warning-700); }\n.tl-cache .marker-dot { background: var(--mj-status-error); }\n\n/* Cache hit bolt marker */\n.marker-bolt {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt i {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n/* Category-specific bolt colors */\n.tl-runview.cache-hit .marker-bolt { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit .marker-bolt { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit .marker-bolt { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit .marker-bolt { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit .marker-bolt { color: var(--mj-status-error); }\n\n/* Cache hit badge */\n.cache-hit-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge i {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n/* Highlighted background for cache hit items */\n.timeline-item.cache-hit .timeline-content {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n/* Entity Pills for RunViews batch operations */\n.timeline-entities,\n.slow-query-entities {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n/* Parameter Pills */\n.timeline-pills,\n.slow-query-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill .pill-label {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill .pill-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Pill type colors */\n.param-pill.pill-filter {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n/* Slow query cache hit styling */\n.slow-query-item.cache-hit {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n/* Filter Bar */\n.filter-bar {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box i {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box input {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box input:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Sortable Table Headers */\n.sortable-header {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header i {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header i.fa-sort-up,\n.sortable-header i.fa-sort-down {\n color: var(--mj-color-indigo-500);\n}\n\n/* Table Enhancements */\n.filter-cell {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row {\n background: var(--mj-color-error-100);\n}\n\n.slow-row:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n/* Small category chips */\n.category-chip.small {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Performance Sub-Tabs */\n.perf-tabs {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab i {\n font-size: 14px;\n}\n\n.tab-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active .tab-badge {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel .section-panel-content {\n padding: 20px 24px;\n}\n\n/* Success Banner */\n.success-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner i {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n/* Compact Filter Bar */\n.filter-bar.compact {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n/* Clickable category items */\n.category-item {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n/* Insight Key Info (always visible) */\n.insight-key-info {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n/* Params Display */\n.params-display {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row:last-child {\n border-bottom: none;\n}\n\n.param-key {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n/* PerfMon Chart Styles\n * ====================\n * Chrome (background, borders, text, controls) is mapped to MJ semantic tokens\n * so the panel adapts to the active theme and is white-labelable. Series colors\n * (cyan / magenta / neon-green / orange) are categorical chart data \u2014 they must\n * stay distinct across themes and are exempt by the same rule that exempts\n * other chart-data palettes.\n *\n * The accent (--perfmon-accent) is intentionally kept as the same neon green as\n * the engine series so the \"live signal\" indicators (header icon, footer count,\n * chart strokes) read as part of the chart palette rather than the app's brand.\n *\n * Overlays are derived via color-mix() from --mj-text-primary so they invert\n * automatically: dark tints over light surfaces in light mode, light tints over\n * dark surfaces in dark mode.\n */\n.perfmon-section {\n /* Chrome \u2014 adapts to theme */\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n /* Categorical series colors and live-signal accent \u2014 exempt */\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header h4 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header h4 i {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview .legend-dot { background: var(--perfmon-series-runview); }\n.legend-item.runquery .legend-dot { background: var(--perfmon-series-runquery); }\n.legend-item.engine .legend-dot { background: var(--perfmon-series-engine); }\n.legend-item.ai .legend-dot { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis .axis-label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart svg {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note i {\n color: var(--perfmon-accent);\n}\n\n.footer-stats {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n/* D3 Chart Elements */\n.perfmon-chart :deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart :deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart :deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart :deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart :deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart :deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart :deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n/* PerfMon Chart Controls */\n.perfmon-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn i {\n font-size: 14px;\n}\n\n/* Mode Toggle Buttons */\n.mode-toggle {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn i {\n font-size: 12px;\n}\n\n.control-divider {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle input[type=\"checkbox\"] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle span {\n white-space: nowrap;\n}\n\n.zoom-level {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n/* Gap indicators in chart */\n.perfmon-chart :deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart :deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n/* Selection brush overlay */\n.perfmon-chart :deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart :deep(.selection-rect) {\n pointer-events: none;\n}\n\n/* Zoom info display */\n.zoom-info {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info .zoom-level {\n color: var(--perfmon-accent);\n}\n\n.zoom-info .time-range {\n color: var(--perfmon-text-faint);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .main-content {\n flex-direction: column;\n }\n\n .left-nav {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title {\n display: none;\n }\n\n .nav-item {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .overview-cards {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .engine-grid {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n/* Export Button */\n.export-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Event Detail Slide-in Panel */\n.event-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n@keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .close-btn {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel .close-btn:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Detail Metrics */\n.detail-metrics {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics .metric {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics .metric-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics .metric-value.slow {\n color: var(--mj-status-error);\n}\n\n.detail-metrics .metric-label {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Detail Sections */\n.event-detail-panel .detail-section {\n margin-bottom: 24px;\n}\n\n.event-detail-panel .detail-section h4 {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel .detail-section h4 i {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row:last-child {\n border-bottom: none;\n}\n\n.detail-key {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n/* Params Grid */\n.params-grid {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item:last-child {\n border-bottom: none;\n}\n\n.param-name {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n/* Pattern Summary */\n.pattern-summary {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat {\n text-align: center;\n}\n\n.pattern-stat .stat-val {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat .stat-label {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning i {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n/* Detail Actions */\n.detail-actions {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button i {\n color: var(--mj-text-secondary);\n}\n\n/* Clickable timeline items */\n.timeline-item.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable:hover .marker-dot {\n transform: scale(1.3);\n}\n\n/* ========================================\n ENGINE DETAIL PANEL STYLES\n ======================================== */\n\n.engine-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n.engine-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n.engine-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel .icon-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel .icon-btn:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .icon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel .close-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel .close-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Engine Summary */\n.engine-summary-section {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section .summary-stat {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section .summary-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section .summary-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded {\n background: var(--mj-status-success);\n}\n\n/* Config Items Section */\n.config-items-section h4 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section h4 i {\n color: var(--mj-status-success);\n}\n\n.config-items-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded .expand-icon {\n color: var(--mj-status-success);\n}\n\n.config-item-details {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row:last-child {\n border-bottom: none;\n}\n\n.config-detail-row .detail-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row .detail-value {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n/* Health status indicators for config items */\n.config-health-icon {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure {\n color: var(--mj-status-error);\n}\n.config-detail-row--error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n/* Sample Data Section */\n.sample-data-section {\n margin-top: 16px;\n}\n\n.sample-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn,\n.load-all-btn {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn:hover:not(:disabled),\n.load-all-btn:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn:disabled,\n.load-all-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table td {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.sample-data-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Spinning animation for refresh icon */\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n/* ========================================\n LOCAL CACHE SECTION STYLES\n ======================================== */\n\n.cache-summary {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section {\n margin-top: 24px;\n}\n\n.cache-entries-section .section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section .section-header h4 {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table th {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table td {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.cache-type-chip {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}\n"] }]
6101
6091
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.ActivatedRoute }], { perfChartRef: [{
6102
6092
  type: ViewChild,
6103
6093
  args: ['perfChart', { static: false }]