@memberjunction/ng-dashboards 5.35.0 → 5.36.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 (159) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.js +3 -3
  2. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  3. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +22 -1
  4. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/ai-analytics-resource.component.js +157 -137
  6. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +28 -0
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2075 -2068
  10. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  11. package/dist/AI/components/models/model-management.component.js +4 -4
  12. package/dist/AI/components/models/model-management.component.js.map +1 -1
  13. package/dist/AI/components/prompts/prompt-management.component.js +3 -3
  14. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  15. package/dist/AI/components/tags/tags-resource.component.d.ts +15 -0
  16. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  17. package/dist/AI/components/tags/tags-resource.component.js +1411 -1424
  18. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  19. package/dist/APIKeys/api-keys-resource.component.d.ts +12 -8
  20. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  21. package/dist/APIKeys/api-keys-resource.component.js +329 -371
  22. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  23. package/dist/Actions/components/actions-overview.component.js +137 -142
  24. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  25. package/dist/Actions/components/execution-monitoring.component.js +111 -116
  26. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  27. package/dist/Admin/admin-data-schema.component.js +13 -65
  28. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  29. package/dist/Admin/admin-dev-tools-resource.component.js +13 -65
  30. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  31. package/dist/Admin/admin-identity-access.component.js +13 -65
  32. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  33. package/dist/Admin/admin-monitoring.component.js +13 -65
  34. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  35. package/dist/Admin/base-admin-container.component.d.ts +9 -7
  36. package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
  37. package/dist/Admin/base-admin-container.component.js +26 -17
  38. package/dist/Admin/base-admin-container.component.js.map +1 -1
  39. package/dist/ApplicationRoles/application-roles-resource.component.js +74 -67
  40. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  41. package/dist/Communication/communication-new-message-resource.component.d.ts +93 -0
  42. package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
  43. package/dist/Communication/communication-new-message-resource.component.js +661 -0
  44. package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
  45. package/dist/Credentials/components/credentials-categories-resource.component.js +152 -159
  46. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  47. package/dist/Credentials/components/credentials-types-resource.component.js +151 -155
  48. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  49. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +20 -21
  50. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  51. package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
  52. package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
  53. package/dist/DatabaseDesigner/components/entity-list.component.js +131 -125
  54. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  55. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  56. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  57. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +7 -1
  58. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  59. package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
  60. package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
  61. package/dist/DevTools/app-state-inspector.component.js +46 -72
  62. package/dist/DevTools/app-state-inspector.component.js.map +1 -1
  63. package/dist/DevTools/class-registry.component.js +88 -100
  64. package/dist/DevTools/class-registry.component.js.map +1 -1
  65. package/dist/DevTools/event-monitor.component.js +158 -168
  66. package/dist/DevTools/event-monitor.component.js.map +1 -1
  67. package/dist/DevTools/graphql-console.component.js +257 -264
  68. package/dist/DevTools/graphql-console.component.js.map +1 -1
  69. package/dist/DevTools/layout-inspector.component.d.ts +5 -0
  70. package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
  71. package/dist/DevTools/layout-inspector.component.js +46 -64
  72. package/dist/DevTools/layout-inspector.component.js.map +1 -1
  73. package/dist/DevTools/lazy-module-status.component.js +75 -84
  74. package/dist/DevTools/lazy-module-status.component.js.map +1 -1
  75. package/dist/DevTools/settings-explorer.component.js +76 -85
  76. package/dist/DevTools/settings-explorer.component.js.map +1 -1
  77. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
  78. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  79. package/dist/EntityAdmin/entity-admin-dashboard.component.js +7 -3
  80. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  81. package/dist/Integration/components/activity/activity.component.js +97 -99
  82. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  83. package/dist/Integration/components/connections/connections.component.js +842 -855
  84. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  85. package/dist/Integration/components/pipelines/pipelines.component.js +502 -517
  86. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  87. package/dist/Integration/components/schedules/schedules.component.js +78 -89
  88. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  89. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +5 -0
  90. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
  91. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1120 -1128
  92. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  93. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +11 -0
  94. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  95. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +606 -661
  96. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  97. package/dist/Lists/components/lists-browse-resource.component.d.ts +102 -0
  98. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  99. package/dist/Lists/components/lists-browse-resource.component.js +1179 -504
  100. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  101. package/dist/Lists/components/lists-operations-resource.component.d.ts +133 -3
  102. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  103. package/dist/Lists/components/lists-operations-resource.component.js +1527 -327
  104. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  105. package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
  106. package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
  107. package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
  108. package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
  109. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
  110. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  111. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
  112. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  113. package/dist/Lists/index.d.ts +1 -0
  114. package/dist/Lists/index.d.ts.map +1 -1
  115. package/dist/Lists/index.js +1 -0
  116. package/dist/Lists/index.js.map +1 -1
  117. package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
  118. package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
  119. package/dist/Lists/services/list-set-operations.service.js +236 -10
  120. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  121. package/dist/MCP/mcp-dashboard.component.js +19 -19
  122. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  123. package/dist/Scheduling/scheduling-dashboard.component.js +58 -60
  124. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  125. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
  126. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  127. package/dist/SystemDiagnostics/system-diagnostics.component.js +1007 -1252
  128. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  129. package/dist/Testing/components/testing-explorer.component.d.ts +31 -6
  130. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  131. package/dist/Testing/components/testing-explorer.component.js +543 -629
  132. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  133. package/dist/Testing/testing-dashboard.component.js +50 -49
  134. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  135. package/dist/ai-dashboards.module.d.ts +1 -1
  136. package/dist/ai-dashboards.module.d.ts.map +1 -1
  137. package/dist/ai-dashboards.module.js +16 -1
  138. package/dist/ai-dashboards.module.js.map +1 -1
  139. package/dist/communication-dashboards.module.d.ts +9 -7
  140. package/dist/communication-dashboards.module.d.ts.map +1 -1
  141. package/dist/communication-dashboards.module.js +13 -4
  142. package/dist/communication-dashboards.module.js.map +1 -1
  143. package/dist/core-dashboards.module.d.ts +1 -1
  144. package/dist/core-dashboards.module.d.ts.map +1 -1
  145. package/dist/core-dashboards.module.js +16 -1
  146. package/dist/core-dashboards.module.js.map +1 -1
  147. package/dist/lists-dashboards.module.d.ts +10 -9
  148. package/dist/lists-dashboards.module.d.ts.map +1 -1
  149. package/dist/lists-dashboards.module.js +13 -2
  150. package/dist/lists-dashboards.module.js.map +1 -1
  151. package/dist/public-api.d.ts +1 -0
  152. package/dist/public-api.d.ts.map +1 -1
  153. package/dist/public-api.js +1 -0
  154. package/dist/public-api.js.map +1 -1
  155. package/dist/testing-dashboards.module.d.ts +1 -1
  156. package/dist/testing-dashboards.module.d.ts.map +1 -1
  157. package/dist/testing-dashboards.module.js +13 -1
  158. package/dist/testing-dashboards.module.js.map +1 -1
  159. package/package.json +53 -52
@@ -28,184 +28,68 @@ const _forTrack4 = ($index, $item) => $item.label;
28
28
  const _forTrack5 = ($index, $item) => $item.fingerprint;
29
29
  const _forTrack6 = ($index, $item) => $item.key;
30
30
  const _forTrack7 = ($index, $item) => $item.propertyName;
31
- function SystemDiagnosticsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelement(0, "mj-stat-badge", 4);
33
- } }
34
- function SystemDiagnosticsComponent_Conditional_13_Conditional_30_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵtext(0, " No redundant loading detected ");
36
- } }
37
- function SystemDiagnosticsComponent_Conditional_13_Conditional_31_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵtext(0);
39
- } if (rf & 2) {
40
- const ctx_r0 = i0.ɵɵnextContext(2);
41
- i0.ɵɵtextInterpolate1(" ", ctx_r0.redundantLoads.length, " entities loaded by multiple engines ");
42
- } }
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);
46
- i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(4, "div", 37)(5, "div", 38);
48
- i0.ɵɵtext(6);
49
- i0.ɵɵelementEnd();
50
- i0.ɵɵelementStart(7, "div", 39);
51
- i0.ɵɵtext(8, "Registered Engines");
52
- i0.ɵɵelementEnd();
53
- i0.ɵɵelementStart(9, "div", 40);
54
- i0.ɵɵtext(10);
55
- i0.ɵɵelementEnd()()();
56
- i0.ɵɵelementStart(11, "div", 35)(12, "div", 41);
57
- i0.ɵɵelement(13, "i", 42);
58
- i0.ɵɵelementEnd();
59
- i0.ɵɵelementStart(14, "div", 37)(15, "div", 38);
60
- i0.ɵɵtext(16);
61
- i0.ɵɵelementEnd();
62
- i0.ɵɵelementStart(17, "div", 39);
63
- i0.ɵɵtext(18, "Engine Memory");
64
- i0.ɵɵelementEnd();
65
- i0.ɵɵelementStart(19, "div", 40);
66
- i0.ɵɵtext(20, "Estimated total");
67
- i0.ɵɵelementEnd()()();
68
- i0.ɵɵelementStart(21, "div", 35)(22, "div", 43);
69
- i0.ɵɵelement(23, "i", 22);
70
- i0.ɵɵelementEnd();
71
- i0.ɵɵelementStart(24, "div", 37)(25, "div", 38);
72
- i0.ɵɵtext(26);
73
- i0.ɵɵelementEnd();
74
- i0.ɵɵelementStart(27, "div", 39);
75
- i0.ɵɵtext(28, "Redundant Loads");
76
- i0.ɵɵelementEnd();
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);
79
- i0.ɵɵelementEnd()()()();
80
- } if (rf & 2) {
81
- const ctx_r0 = i0.ɵɵnextContext();
82
- i0.ɵɵadvance(6);
83
- i0.ɵɵtextInterpolate((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEngines) || 0);
84
- i0.ɵɵadvance(4);
85
- i0.ɵɵtextInterpolate1("", (ctx_r0.engineStats == null ? null : ctx_r0.engineStats.loadedEngines) || 0, " loaded");
86
- i0.ɵɵadvance(6);
87
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEstimatedMemoryBytes) || 0));
88
- i0.ɵɵadvance(6);
89
- i0.ɵɵclassProp("card-icon--warning", ctx_r0.redundantLoads.length > 0)("card-icon--success", ctx_r0.redundantLoads.length === 0);
90
- i0.ɵɵadvance(4);
91
- i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
92
- i0.ɵɵadvance(4);
93
- i0.ɵɵconditional(ctx_r0.redundantLoads.length === 0 ? 30 : 31);
94
- } }
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);
99
- i0.ɵɵtext(4);
100
- i0.ɵɵelementEnd();
101
- i0.ɵɵelementStart(5, "span", 46);
102
- i0.ɵɵtext(6, "Engines");
103
- i0.ɵɵelementEnd()();
104
- i0.ɵɵelement(7, "div", 47);
105
- i0.ɵɵelementStart(8, "div", 48);
106
- i0.ɵɵelement(9, "i", 42);
107
- i0.ɵɵelementStart(10, "span", 45);
108
- i0.ɵɵtext(11);
109
- i0.ɵɵelementEnd();
110
- i0.ɵɵelementStart(12, "span", 46);
111
- i0.ɵɵtext(13, "Memory");
112
- i0.ɵɵelementEnd()();
113
- i0.ɵɵelement(14, "div", 47);
114
- i0.ɵɵelementStart(15, "div", 49);
115
- i0.ɵɵelement(16, "i", 22);
116
- i0.ɵɵelementStart(17, "span", 45);
117
- i0.ɵɵtext(18);
118
- i0.ɵɵelementEnd();
119
- i0.ɵɵelementStart(19, "span", 46);
120
- i0.ɵɵtext(20, "Redundant");
121
- i0.ɵɵelementEnd()()();
122
- } if (rf & 2) {
123
- const ctx_r0 = i0.ɵɵnextContext();
124
- i0.ɵɵadvance(4);
125
- i0.ɵɵtextInterpolate((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEngines) || 0);
126
- i0.ɵɵadvance(7);
127
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEstimatedMemoryBytes) || 0));
128
- i0.ɵɵadvance(4);
129
- i0.ɵɵclassProp("warning", ctx_r0.redundantLoads.length > 0);
130
- i0.ɵɵadvance(3);
131
- i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
132
- } }
133
- function SystemDiagnosticsComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
134
- i0.ɵɵelementStart(0, "span", 23);
135
- i0.ɵɵtext(1);
136
- i0.ɵɵelementEnd();
137
- } if (rf & 2) {
138
- const ctx_r0 = i0.ɵɵnextContext();
139
- i0.ɵɵadvance();
140
- i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
141
- } }
142
- function SystemDiagnosticsComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
143
- i0.ɵɵelementStart(0, "span", 24);
144
- i0.ɵɵtext(1, "0");
145
- i0.ɵɵelementEnd();
146
- } }
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);
31
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_10_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "div", 28);
33
+ i0.ɵɵelement(1, "i", 30);
150
34
  i0.ɵɵelementStart(2, "p");
151
35
  i0.ɵɵtext(3, "No engines registered yet");
152
36
  i0.ɵɵelementEnd();
153
- i0.ɵɵelementStart(4, "span", 58);
37
+ i0.ɵɵelementStart(4, "span", 31);
154
38
  i0.ɵɵtext(5, "Engines register themselves when they are first configured");
155
39
  i0.ɵɵelementEnd()();
156
40
  } }
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);
41
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "div", 38);
43
+ i0.ɵɵelement(1, "i", 19);
44
+ i0.ɵɵelementStart(2, "span", 40);
161
45
  i0.ɵɵtext(3, "Loaded:");
162
46
  i0.ɵɵelementEnd();
163
- i0.ɵɵelementStart(4, "span", 67);
47
+ i0.ɵɵelementStart(4, "span", 41);
164
48
  i0.ɵɵtext(5);
165
49
  i0.ɵɵelementEnd()();
166
50
  } if (rf & 2) {
167
51
  const engine_r4 = i0.ɵɵnextContext().$implicit;
168
- const ctx_r0 = i0.ɵɵnextContext(3);
52
+ const ctx_r1 = i0.ɵɵnextContext(3);
169
53
  i0.ɵɵadvance(5);
170
- i0.ɵɵtextInterpolate(ctx_r0.formatTime(engine_r4.lastLoadedAt));
54
+ i0.ɵɵtextInterpolate(ctx_r1.formatTime(engine_r4.lastLoadedAt));
171
55
  } }
172
- function SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
56
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
173
57
  const _r3 = i0.ɵɵgetCurrentView();
174
- i0.ɵɵelementStart(0, "div", 60)(1, "div", 61)(2, "div", 62);
58
+ i0.ɵɵelementStart(0, "div", 33)(1, "div", 34)(2, "div", 35);
175
59
  i0.ɵɵtext(3);
176
60
  i0.ɵɵelementEnd();
177
- i0.ɵɵelementStart(4, "div", 63);
61
+ i0.ɵɵelementStart(4, "div", 36);
178
62
  i0.ɵɵtext(5);
179
63
  i0.ɵɵelementEnd()();
180
- i0.ɵɵelementStart(6, "div", 64)(7, "div", 65);
181
- i0.ɵɵelement(8, "i", 42);
182
- i0.ɵɵelementStart(9, "span", 66);
64
+ i0.ɵɵelementStart(6, "div", 37)(7, "div", 38);
65
+ i0.ɵɵelement(8, "i", 39);
66
+ i0.ɵɵelementStart(9, "span", 40);
183
67
  i0.ɵɵtext(10, "Memory:");
184
68
  i0.ɵɵelementEnd();
185
- i0.ɵɵelementStart(11, "span", 67);
69
+ i0.ɵɵelementStart(11, "span", 41);
186
70
  i0.ɵɵtext(12);
187
71
  i0.ɵɵelementEnd()();
188
- i0.ɵɵelementStart(13, "div", 65);
189
- i0.ɵɵelement(14, "i", 68);
190
- i0.ɵɵelementStart(15, "span", 66);
72
+ i0.ɵɵelementStart(13, "div", 38);
73
+ i0.ɵɵelement(14, "i", 42);
74
+ i0.ɵɵelementStart(15, "span", 40);
191
75
  i0.ɵɵtext(16, "Items:");
192
76
  i0.ɵɵelementEnd();
193
- i0.ɵɵelementStart(17, "span", 67);
77
+ i0.ɵɵelementStart(17, "span", 41);
194
78
  i0.ɵɵtext(18);
195
79
  i0.ɵɵelementEnd()();
196
- i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Conditional_19_Template, 6, 1, "div", 65);
80
+ i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Conditional_19_Template, 6, 1, "div", 38);
197
81
  i0.ɵɵelementEnd();
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);
82
+ i0.ɵɵelementStart(20, "div", 43)(21, "button", 44);
83
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template_button_click_21_listener($event) { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.refreshSingleEngine(engine_r4, $event)); });
84
+ i0.ɵɵelement(22, "i", 26);
201
85
  i0.ɵɵelementEnd();
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);
86
+ i0.ɵɵelementStart(23, "button", 45);
87
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template_button_click_23_listener() { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEngineDetailPanel(engine_r4)); });
88
+ i0.ɵɵelement(24, "i", 46);
205
89
  i0.ɵɵelementEnd()()();
206
90
  } if (rf & 2) {
207
91
  const engine_r4 = ctx.$implicit;
208
- const ctx_r0 = i0.ɵɵnextContext(3);
92
+ const ctx_r1 = i0.ɵɵnextContext(3);
209
93
  i0.ɵɵclassProp("loaded", engine_r4.isLoaded);
210
94
  i0.ɵɵadvance(2);
211
95
  i0.ɵɵproperty("title", engine_r4.className);
@@ -222,56 +106,56 @@ function SystemDiagnosticsComponent_Conditional_45_Conditional_11_For_2_Template
222
106
  i0.ɵɵadvance();
223
107
  i0.ɵɵconditional(engine_r4.lastLoadedAt ? 19 : -1);
224
108
  i0.ɵɵadvance(2);
225
- i0.ɵɵproperty("disabled", !engine_r4.isLoaded || ctx_r0.isRefreshingSingleEngine === engine_r4.className);
109
+ i0.ɵɵproperty("disabled", !engine_r4.isLoaded || ctx_r1.isRefreshingSingleEngine === engine_r4.className);
226
110
  i0.ɵɵadvance();
227
- i0.ɵɵclassProp("spinning", ctx_r0.isRefreshingSingleEngine === engine_r4.className);
111
+ i0.ɵɵclassProp("spinning", ctx_r1.isRefreshingSingleEngine === engine_r4.className);
228
112
  i0.ɵɵadvance();
229
113
  i0.ɵɵproperty("disabled", !engine_r4.isLoaded);
230
114
  } }
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);
115
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_11_Template(rf, ctx) { if (rf & 1) {
116
+ i0.ɵɵelementStart(0, "div", 29);
117
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template, 25, 16, "div", 32, _forTrack0);
234
118
  i0.ɵɵelementEnd();
235
119
  } if (rf & 2) {
236
- const ctx_r0 = i0.ɵɵnextContext(2);
120
+ const ctx_r1 = i0.ɵɵnextContext(2);
237
121
  i0.ɵɵadvance();
238
- i0.ɵɵrepeater(ctx_r0.engines);
122
+ i0.ɵɵrepeater(ctx_r1.engines);
239
123
  } }
240
- function SystemDiagnosticsComponent_Conditional_45_Template(rf, ctx) { if (rf & 1) {
241
- const _r2 = i0.ɵɵgetCurrentView();
242
- i0.ɵɵelementStart(0, "div", 28)(1, "div", 50)(2, "h3");
243
- i0.ɵɵelement(3, "i", 20);
124
+ function SystemDiagnosticsComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
125
+ const _r1 = i0.ɵɵgetCurrentView();
126
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 22)(2, "h3");
127
+ i0.ɵɵelement(3, "i", 23);
244
128
  i0.ɵɵtext(4, " Registered Engines ");
245
129
  i0.ɵɵelementEnd();
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);
130
+ i0.ɵɵelementStart(5, "div", 24)(6, "button", 25);
131
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_15_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshAllEngines()); });
132
+ i0.ɵɵelement(7, "i", 26);
249
133
  i0.ɵɵtext(8, " Refresh All Engines ");
250
134
  i0.ɵɵelementEnd()()();
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);
135
+ i0.ɵɵelementStart(9, "div", 27);
136
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_15_Conditional_10_Template, 6, 0, "div", 28)(11, SystemDiagnosticsComponent_Conditional_15_Conditional_11_Template, 3, 0, "div", 29);
253
137
  i0.ɵɵelementEnd()();
254
138
  } if (rf & 2) {
255
- const ctx_r0 = i0.ɵɵnextContext();
139
+ const ctx_r1 = i0.ɵɵnextContext();
256
140
  i0.ɵɵadvance(6);
257
- i0.ɵɵproperty("disabled", ctx_r0.isRefreshingEngines);
141
+ i0.ɵɵproperty("disabled", ctx_r1.isRefreshingEngines);
258
142
  i0.ɵɵadvance();
259
- i0.ɵɵclassProp("spinning", ctx_r0.isRefreshingEngines);
143
+ i0.ɵɵclassProp("spinning", ctx_r1.isRefreshingEngines);
260
144
  i0.ɵɵadvance(3);
261
- i0.ɵɵconditional(ctx_r0.engines.length === 0 ? 10 : 11);
145
+ i0.ɵɵconditional(ctx_r1.engines.length === 0 ? 10 : 11);
262
146
  } }
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);
147
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_12_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "div", 50);
149
+ i0.ɵɵelement(1, "i", 51);
266
150
  i0.ɵɵelementStart(2, "p");
267
151
  i0.ɵɵtext(3, "No redundant entity loading detected");
268
152
  i0.ɵɵelementEnd();
269
- i0.ɵɵelementStart(4, "span", 58);
153
+ i0.ɵɵelementStart(4, "span", 31);
270
154
  i0.ɵɵtext(5, "Each entity is being loaded by only one engine");
271
155
  i0.ɵɵelementEnd()();
272
156
  } }
273
- function SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_For_6_Template(rf, ctx) { if (rf & 1) {
274
- i0.ɵɵelementStart(0, "span", 85);
157
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_For_6_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "span", 60);
275
159
  i0.ɵɵtext(1);
276
160
  i0.ɵɵelementEnd();
277
161
  } if (rf & 2) {
@@ -279,14 +163,14 @@ function SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_For_6_T
279
163
  i0.ɵɵadvance();
280
164
  i0.ɵɵtextInterpolate(engine_r5);
281
165
  } }
282
- function SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_Template(rf, ctx) { if (rf & 1) {
283
- i0.ɵɵelementStart(0, "tr")(1, "td", 82);
166
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "tr")(1, "td", 57);
284
168
  i0.ɵɵtext(2);
285
169
  i0.ɵɵelementEnd();
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);
170
+ i0.ɵɵelementStart(3, "td", 58)(4, "div", 59);
171
+ i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_For_6_Template, 2, 1, "span", 60, i0.ɵɵrepeaterTrackByIdentity);
288
172
  i0.ɵɵelementEnd()();
289
- i0.ɵɵelementStart(7, "td", 86)(8, "span", 87);
173
+ i0.ɵɵelementStart(7, "td", 61)(8, "span", 62);
290
174
  i0.ɵɵtext(9);
291
175
  i0.ɵɵelementEnd()()();
292
176
  } if (rf & 2) {
@@ -298,252 +182,252 @@ function SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_Templat
298
182
  i0.ɵɵadvance(4);
299
183
  i0.ɵɵtextInterpolate(load_r6.engines.length);
300
184
  } }
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");
185
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_13_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵelementStart(0, "div", 52)(1, "table", 53)(2, "thead")(3, "tr")(4, "th");
303
187
  i0.ɵɵtext(5, "Entity Name");
304
188
  i0.ɵɵelementEnd();
305
189
  i0.ɵɵelementStart(6, "th");
306
190
  i0.ɵɵtext(7, "Loaded By Engines");
307
191
  i0.ɵɵelementEnd();
308
- i0.ɵɵelementStart(8, "th", 79);
192
+ i0.ɵɵelementStart(8, "th", 54);
309
193
  i0.ɵɵtext(9, "Engine Count");
310
194
  i0.ɵɵelementEnd()()();
311
195
  i0.ɵɵelementStart(10, "tbody");
312
- i0.ɵɵrepeaterCreate(11, SystemDiagnosticsComponent_Conditional_46_Conditional_13_For_12_Template, 10, 2, "tr", null, _forTrack1);
196
+ i0.ɵɵrepeaterCreate(11, SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_Template, 10, 2, "tr", null, _forTrack1);
313
197
  i0.ɵɵelementEnd()()();
314
- i0.ɵɵelementStart(13, "div", 80);
315
- i0.ɵɵelement(14, "i", 81);
198
+ i0.ɵɵelementStart(13, "div", 55);
199
+ i0.ɵɵelement(14, "i", 56);
316
200
  i0.ɵɵelementStart(15, "div")(16, "strong");
317
201
  i0.ɵɵtext(17, "Recommendation:");
318
202
  i0.ɵɵelementEnd();
319
203
  i0.ɵɵtext(18, " Consider consolidating data loading by having dependent engines access data from a parent engine, or restructuring the engine hierarchy to avoid duplicate data fetches. ");
320
204
  i0.ɵɵelementEnd()();
321
205
  } if (rf & 2) {
322
- const ctx_r0 = i0.ɵɵnextContext(2);
206
+ const ctx_r1 = i0.ɵɵnextContext(2);
323
207
  i0.ɵɵadvance(11);
324
- i0.ɵɵrepeater(ctx_r0.redundantLoads);
208
+ i0.ɵɵrepeater(ctx_r1.redundantLoads);
325
209
  } }
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);
210
+ function SystemDiagnosticsComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
211
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 22)(2, "h3");
212
+ i0.ɵɵelement(3, "i", 47);
329
213
  i0.ɵɵtext(4, " Redundant Entity Loading ");
330
214
  i0.ɵɵelementEnd()();
331
- i0.ɵɵelementStart(5, "div", 54)(6, "div", 73);
332
- i0.ɵɵelement(7, "i", 74);
215
+ i0.ɵɵelementStart(5, "div", 27)(6, "div", 48);
216
+ i0.ɵɵelement(7, "i", 49);
333
217
  i0.ɵɵelementStart(8, "div")(9, "strong");
334
218
  i0.ɵɵtext(10, "What is this?");
335
219
  i0.ɵɵelementEnd();
336
220
  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. ");
337
221
  i0.ɵɵelementEnd()();
338
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_46_Conditional_12_Template, 6, 0, "div", 75)(13, SystemDiagnosticsComponent_Conditional_46_Conditional_13_Template, 19, 0);
222
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_16_Conditional_12_Template, 6, 0, "div", 50)(13, SystemDiagnosticsComponent_Conditional_16_Conditional_13_Template, 19, 0);
339
223
  i0.ɵɵelementEnd()();
340
224
  } if (rf & 2) {
341
- const ctx_r0 = i0.ɵɵnextContext();
225
+ const ctx_r1 = i0.ɵɵnextContext();
342
226
  i0.ɵɵadvance(12);
343
- i0.ɵɵconditional(ctx_r0.redundantLoads.length === 0 ? 12 : 13);
227
+ i0.ɵɵconditional(ctx_r1.redundantLoads.length === 0 ? 12 : 13);
344
228
  } }
345
- function SystemDiagnosticsComponent_Conditional_47_Conditional_14_Template(rf, ctx) { if (rf & 1) {
229
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template(rf, ctx) { if (rf & 1) {
346
230
  const _r8 = i0.ɵɵgetCurrentView();
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);
231
+ i0.ɵɵelementStart(0, "button", 83);
232
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleTelemetry()); });
233
+ i0.ɵɵelement(1, "i", 84);
350
234
  i0.ɵɵtext(2);
351
235
  i0.ɵɵelementEnd();
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);
236
+ i0.ɵɵelementStart(3, "button", 25);
237
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clearTelemetry()); });
238
+ i0.ɵɵelement(4, "i", 85);
355
239
  i0.ɵɵtext(5, " Clear ");
356
240
  i0.ɵɵelementEnd();
357
241
  } if (rf & 2) {
358
- const ctx_r0 = i0.ɵɵnextContext(2);
359
- i0.ɵɵclassProp("active", ctx_r0.telemetryEnabled);
242
+ const ctx_r1 = i0.ɵɵnextContext(2);
243
+ i0.ɵɵclassProp("active", ctx_r1.telemetryEnabled);
360
244
  i0.ɵɵadvance();
361
- i0.ɵɵclassProp("fa-toggle-on", ctx_r0.telemetryEnabled)("fa-toggle-off", !ctx_r0.telemetryEnabled);
245
+ i0.ɵɵclassProp("fa-toggle-on", ctx_r1.telemetryEnabled)("fa-toggle-off", !ctx_r1.telemetryEnabled);
362
246
  i0.ɵɵadvance();
363
- i0.ɵɵtextInterpolate1(" ", ctx_r0.telemetryEnabled ? "Enabled" : "Disabled", " ");
247
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.telemetryEnabled ? "Enabled" : "Disabled", " ");
364
248
  i0.ɵɵadvance();
365
- i0.ɵɵproperty("disabled", !ctx_r0.telemetryEnabled);
249
+ i0.ɵɵproperty("disabled", !ctx_r1.telemetryEnabled);
366
250
  } }
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);
251
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_15_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelementStart(0, "span", 86);
253
+ i0.ɵɵelement(1, "i", 84);
370
254
  i0.ɵɵtext(2);
371
- i0.ɵɵelementStart(3, "span", 110);
255
+ i0.ɵɵelementStart(3, "span", 87);
372
256
  i0.ɵɵtext(4, "(config)");
373
257
  i0.ɵɵelementEnd()();
374
258
  } if (rf & 2) {
375
- const ctx_r0 = i0.ɵɵnextContext(2);
376
- i0.ɵɵclassProp("enabled", ctx_r0.serverTelemetryEnabled)("disabled", !ctx_r0.serverTelemetryEnabled);
259
+ const ctx_r1 = i0.ɵɵnextContext(2);
260
+ i0.ɵɵclassProp("enabled", ctx_r1.serverTelemetryEnabled)("disabled", !ctx_r1.serverTelemetryEnabled);
377
261
  i0.ɵɵadvance();
378
- i0.ɵɵclassProp("fa-circle-check", ctx_r0.serverTelemetryEnabled)("fa-circle-xmark", !ctx_r0.serverTelemetryEnabled);
262
+ i0.ɵɵclassProp("fa-circle-check", ctx_r1.serverTelemetryEnabled)("fa-circle-xmark", !ctx_r1.serverTelemetryEnabled);
379
263
  i0.ɵɵadvance();
380
- i0.ɵɵtextInterpolate1(" ", ctx_r0.serverTelemetryEnabled ? "Enabled" : "Disabled", " ");
264
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.serverTelemetryEnabled ? "Enabled" : "Disabled", " ");
381
265
  } }
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);
266
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_16_Template(rf, ctx) { if (rf & 1) {
267
+ i0.ɵɵelementStart(0, "span", 70);
268
+ i0.ɵɵelement(1, "i", 88);
385
269
  i0.ɵɵelementEnd();
386
270
  } }
387
- function SystemDiagnosticsComponent_Conditional_47_Conditional_17_Template(rf, ctx) { if (rf & 1) {
271
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_17_Template(rf, ctx) { if (rf & 1) {
388
272
  const _r9 = i0.ɵɵgetCurrentView();
389
- i0.ɵɵelementStart(0, "div", 95);
390
- i0.ɵɵelement(1, "i", 112);
273
+ i0.ɵɵelementStart(0, "div", 71);
274
+ i0.ɵɵelement(1, "i", 89);
391
275
  i0.ɵɵtext(2);
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);
276
+ i0.ɵɵelementStart(3, "button", 90);
277
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.serverTelemetryError = null); });
278
+ i0.ɵɵelement(4, "i", 91);
395
279
  i0.ɵɵelementEnd()();
396
280
  } if (rf & 2) {
397
- const ctx_r0 = i0.ɵɵnextContext(2);
281
+ const ctx_r1 = i0.ɵɵnextContext(2);
398
282
  i0.ɵɵadvance(2);
399
- i0.ɵɵtextInterpolate1(" ", ctx_r0.serverTelemetryError, " ");
283
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.serverTelemetryError, " ");
400
284
  } }
401
- function SystemDiagnosticsComponent_Conditional_47_Conditional_27_Template(rf, ctx) { if (rf & 1) {
402
- i0.ɵɵelementStart(0, "span", 100);
285
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_27_Template(rf, ctx) { if (rf & 1) {
286
+ i0.ɵɵelementStart(0, "span", 76);
403
287
  i0.ɵɵtext(1);
404
288
  i0.ɵɵelementEnd();
405
289
  } if (rf & 2) {
406
- const ctx_r0 = i0.ɵɵnextContext(2);
290
+ const ctx_r1 = i0.ɵɵnextContext(2);
407
291
  i0.ɵɵadvance();
408
- i0.ɵɵtextInterpolate(ctx_r0.slowQueries.length);
292
+ i0.ɵɵtextInterpolate(ctx_r1.slowQueries.length);
409
293
  } }
410
- function SystemDiagnosticsComponent_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
411
- i0.ɵɵelementStart(0, "span", 104);
294
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_44_Template(rf, ctx) { if (rf & 1) {
295
+ i0.ɵɵelementStart(0, "span", 80);
412
296
  i0.ɵɵtext(1);
413
297
  i0.ɵɵelementEnd();
414
298
  } if (rf & 2) {
415
- const ctx_r0 = i0.ɵɵnextContext(2);
299
+ const ctx_r1 = i0.ɵɵnextContext(2);
416
300
  i0.ɵɵadvance();
417
- i0.ɵɵtextInterpolate(ctx_r0.telemetryInsights.length);
301
+ i0.ɵɵtextInterpolate(ctx_r1.telemetryInsights.length);
418
302
  } }
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);
303
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_46_Template(rf, ctx) { if (rf & 1) {
304
+ i0.ɵɵelementStart(0, "div", 81);
305
+ i0.ɵɵelement(1, "i", 89);
422
306
  i0.ɵɵelementStart(2, "div")(3, "strong");
423
307
  i0.ɵɵtext(4, "Telemetry is disabled.");
424
308
  i0.ɵɵelementEnd();
425
309
  i0.ɵɵtext(5, " Enable telemetry to track RunView, RunQuery, and Engine loading performance. ");
426
310
  i0.ɵɵelementEnd()();
427
311
  } }
428
- function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
312
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
429
313
  i0.ɵɵtext(0);
430
314
  } if (rf & 2) {
431
- const ctx_r0 = i0.ɵɵnextContext(3);
432
- i0.ɵɵtextInterpolate2(" Viewing ", ctx_r0.formatRelativeTime(ctx_r0.chartTimeRangeStart), " - ", ctx_r0.formatRelativeTime(ctx_r0.chartTimeRangeEnd), ". Click Reset to show all. ");
315
+ const ctx_r1 = i0.ɵɵnextContext(3);
316
+ i0.ɵɵtextInterpolate2(" Viewing ", ctx_r1.formatRelativeTime(ctx_r1.chartTimeRangeStart), " - ", ctx_r1.formatRelativeTime(ctx_r1.chartTimeRangeEnd), ". Click Reset to show all. ");
433
317
  } }
434
- function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_45_Template(rf, ctx) { if (rf & 1) {
318
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_45_Template(rf, ctx) { if (rf & 1) {
435
319
  i0.ɵɵtext(0, " Drag to select a time range. Gaps >5s compressed. ");
436
320
  } }
437
- function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
321
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
438
322
  i0.ɵɵtext(0, " Drag to select a time range. Hover over points for details. ");
439
323
  } }
440
- function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
324
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
441
325
  i0.ɵɵtext(0);
442
326
  i0.ɵɵpipe(1, "number");
443
327
  } if (rf & 2) {
444
- const ctx_r0 = i0.ɵɵnextContext(4);
445
- i0.ɵɵtextInterpolate1(" \u2022 ", i0.ɵɵpipeBind2(1, 1, ctx_r0.chartZoomLevel * 100, "1.0-0"), "% zoom ");
328
+ const ctx_r1 = i0.ɵɵnextContext(4);
329
+ i0.ɵɵtextInterpolate1(" \u2022 ", i0.ɵɵpipeBind2(1, 1, ctx_r1.chartZoomLevel * 100, "1.0-0"), "% zoom ");
446
330
  } }
447
- function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
448
- i0.ɵɵelementStart(0, "span", 144);
331
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
332
+ i0.ɵɵelementStart(0, "span", 121);
449
333
  i0.ɵɵtext(1);
450
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Conditional_2_Template, 2, 4);
334
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Conditional_2_Template, 2, 4);
451
335
  i0.ɵɵelementEnd();
452
336
  } if (rf & 2) {
453
- const ctx_r0 = i0.ɵɵnextContext(3);
337
+ const ctx_r1 = i0.ɵɵnextContext(3);
454
338
  i0.ɵɵadvance();
455
- i0.ɵɵtextInterpolate1(" ", ctx_r0.telemetrySummary.totalEvents, " events ");
339
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.telemetrySummary.totalEvents, " events ");
456
340
  i0.ɵɵadvance();
457
- i0.ɵɵconditional(ctx_r0.chartZoomLevel !== 1 ? 2 : -1);
341
+ i0.ɵɵconditional(ctx_r1.chartZoomLevel !== 1 ? 2 : -1);
458
342
  } }
459
- function SystemDiagnosticsComponent_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
343
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template(rf, ctx) { if (rf & 1) {
460
344
  const _r10 = i0.ɵɵgetCurrentView();
461
- i0.ɵɵelementStart(0, "div", 106)(1, "div", 115)(2, "div", 116)(3, "span", 117);
462
- i0.ɵɵelement(4, "span", 118);
345
+ i0.ɵɵelementStart(0, "div", 82)(1, "div", 92)(2, "div", 93)(3, "span", 94);
346
+ i0.ɵɵelement(4, "span", 95);
463
347
  i0.ɵɵtext(5, " RunView");
464
348
  i0.ɵɵelementEnd();
465
- i0.ɵɵelementStart(6, "span", 119);
466
- i0.ɵɵelement(7, "span", 118);
349
+ i0.ɵɵelementStart(6, "span", 96);
350
+ i0.ɵɵelement(7, "span", 95);
467
351
  i0.ɵɵtext(8, " RunQuery");
468
352
  i0.ɵɵelementEnd();
469
- i0.ɵɵelementStart(9, "span", 120);
470
- i0.ɵɵelement(10, "span", 118);
353
+ i0.ɵɵelementStart(9, "span", 97);
354
+ i0.ɵɵelement(10, "span", 95);
471
355
  i0.ɵɵtext(11, " Engine");
472
356
  i0.ɵɵelementEnd();
473
- i0.ɵɵelementStart(12, "span", 121);
474
- i0.ɵɵelement(13, "span", 118);
357
+ i0.ɵɵelementStart(12, "span", 98);
358
+ i0.ɵɵelement(13, "span", 95);
475
359
  i0.ɵɵtext(14, " AI");
476
360
  i0.ɵɵelementEnd()();
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);
361
+ i0.ɵɵelementStart(15, "div", 99)(16, "div", 100)(17, "button", 101);
362
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setChartInteractionMode("pointer")); });
363
+ i0.ɵɵelement(18, "i", 102);
480
364
  i0.ɵɵelementEnd();
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);
365
+ i0.ɵɵelementStart(19, "button", 103);
366
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setChartInteractionMode("select")); });
367
+ i0.ɵɵelement(20, "i", 104);
484
368
  i0.ɵɵelementEnd();
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);
369
+ i0.ɵɵelementStart(21, "button", 105);
370
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setChartInteractionMode("pan")); });
371
+ i0.ɵɵelement(22, "i", 106);
488
372
  i0.ɵɵelementEnd()();
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);
373
+ i0.ɵɵelement(23, "span", 107);
374
+ i0.ɵɵelementStart(24, "button", 108);
375
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.zoomPerfChart("in")); });
376
+ i0.ɵɵelement(25, "i", 109);
493
377
  i0.ɵɵelementEnd();
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);
378
+ i0.ɵɵelementStart(26, "button", 110);
379
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.zoomPerfChart("out")); });
380
+ i0.ɵɵelement(27, "i", 111);
497
381
  i0.ɵɵelementEnd();
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);
382
+ i0.ɵɵelementStart(28, "button", 112);
383
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.resetPerfChartZoom()); });
384
+ i0.ɵɵelement(29, "i", 113);
501
385
  i0.ɵɵelementEnd();
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()); });
386
+ i0.ɵɵelement(30, "span", 107);
387
+ i0.ɵɵelementStart(31, "label", 114)(32, "input", 10);
388
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_input_ngModelChange_32_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.chartGapCompression, $event) || (ctx_r1.chartGapCompression = $event); return i0.ɵɵresetView($event); });
389
+ i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_input_change_32_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGapCompressionChange()); });
506
390
  i0.ɵɵelementEnd();
507
391
  i0.ɵɵelementStart(33, "span");
508
392
  i0.ɵɵtext(34, "Compress Gaps");
509
393
  i0.ɵɵelementEnd()()()();
510
- i0.ɵɵelementStart(35, "div", 138)(36, "div", 139)(37, "span", 140);
394
+ i0.ɵɵelementStart(35, "div", 115)(36, "div", 116)(37, "span", 117);
511
395
  i0.ɵɵtext(38, "Duration (ms)");
512
396
  i0.ɵɵelementEnd()();
513
- i0.ɵɵelement(39, "div", 141, 0);
397
+ i0.ɵɵelement(39, "div", 118, 0);
514
398
  i0.ɵɵelementEnd();
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);
399
+ i0.ɵɵelementStart(41, "div", 119)(42, "span", 120);
400
+ i0.ɵɵelement(43, "i", 49);
401
+ i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_44_Template, 1, 2)(45, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_45_Template, 1, 0)(46, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_46_Template, 1, 0);
518
402
  i0.ɵɵelementEnd();
519
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_47_Conditional_47_Conditional_47_Template, 3, 2, "span", 144);
403
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Template, 3, 2, "span", 121);
520
404
  i0.ɵɵelementEnd()();
521
405
  } if (rf & 2) {
522
- const ctx_r0 = i0.ɵɵnextContext(2);
406
+ const ctx_r1 = i0.ɵɵnextContext(2);
523
407
  i0.ɵɵadvance(17);
524
- i0.ɵɵclassProp("active", ctx_r0.chartInteractionMode === "pointer");
408
+ i0.ɵɵclassProp("active", ctx_r1.chartInteractionMode === "pointer");
525
409
  i0.ɵɵadvance(2);
526
- i0.ɵɵclassProp("active", ctx_r0.chartInteractionMode === "select");
410
+ i0.ɵɵclassProp("active", ctx_r1.chartInteractionMode === "select");
527
411
  i0.ɵɵadvance(2);
528
- i0.ɵɵclassProp("active", ctx_r0.chartInteractionMode === "pan");
412
+ i0.ɵɵclassProp("active", ctx_r1.chartInteractionMode === "pan");
529
413
  i0.ɵɵadvance(11);
530
- i0.ɵɵtwoWayProperty("ngModel", ctx_r0.chartGapCompression);
414
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.chartGapCompression);
531
415
  i0.ɵɵadvance(12);
532
- i0.ɵɵconditional(ctx_r0.chartTimeRangeStart !== null && ctx_r0.chartTimeRangeEnd !== null ? 44 : ctx_r0.chartGapCompression ? 45 : 46);
416
+ i0.ɵɵconditional(ctx_r1.chartTimeRangeStart !== null && ctx_r1.chartTimeRangeEnd !== null ? 44 : ctx_r1.chartGapCompression ? 45 : 46);
533
417
  i0.ɵɵadvance(3);
534
- i0.ɵɵconditional(ctx_r0.telemetrySummary ? 47 : -1);
418
+ i0.ɵɵconditional(ctx_r1.telemetrySummary ? 47 : -1);
535
419
  } }
536
- function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_For_5_Template(rf, ctx) { if (rf & 1) {
420
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_For_5_Template(rf, ctx) { if (rf & 1) {
537
421
  const _r11 = i0.ɵɵgetCurrentView();
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);
422
+ i0.ɵɵelementStart(0, "div", 131);
423
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_For_5_Template_div_click_0_listener() { const cat_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.jumpToPatternsByCategory(cat_r12.name)); });
424
+ i0.ɵɵelementStart(1, "span", 132);
541
425
  i0.ɵɵtext(2);
542
426
  i0.ɵɵelementEnd();
543
- i0.ɵɵelementStart(3, "span", 156);
427
+ i0.ɵɵelementStart(3, "span", 133);
544
428
  i0.ɵɵtext(4);
545
429
  i0.ɵɵelementEnd();
546
- i0.ɵɵelementStart(5, "span", 157);
430
+ i0.ɵɵelementStart(5, "span", 134);
547
431
  i0.ɵɵtext(6);
548
432
  i0.ɵɵpipe(7, "number");
549
433
  i0.ɵɵelementEnd()();
@@ -556,26 +440,26 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21
556
440
  i0.ɵɵadvance(2);
557
441
  i0.ɵɵtextInterpolate1("avg ", i0.ɵɵpipeBind2(7, 3, cat_r12.avgMs, "1.0-0"), "ms");
558
442
  } }
559
- function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_21_Template(rf, ctx) { if (rf & 1) {
560
- i0.ɵɵelementStart(0, "div", 149)(1, "h4");
443
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_Template(rf, ctx) { if (rf & 1) {
444
+ i0.ɵɵelementStart(0, "div", 126)(1, "h4");
561
445
  i0.ɵɵtext(2, "By Category");
562
446
  i0.ɵɵelementEnd();
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);
447
+ i0.ɵɵelementStart(3, "div", 129);
448
+ i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_For_5_Template, 8, 6, "div", 130, _forTrack2);
565
449
  i0.ɵɵelementEnd()();
566
450
  } if (rf & 2) {
567
- const ctx_r0 = i0.ɵɵnextContext(3);
451
+ const ctx_r1 = i0.ɵɵnextContext(3);
568
452
  i0.ɵɵadvance(4);
569
- i0.ɵɵrepeater(ctx_r0.categoriesWithData);
453
+ i0.ɵɵrepeater(ctx_r1.categoriesWithData);
570
454
  } }
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);
455
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
456
+ i0.ɵɵelementStart(0, "span", 142);
457
+ i0.ɵɵelement(1, "i", 148);
574
458
  i0.ɵɵtext(2, " CACHED ");
575
459
  i0.ɵɵelementEnd();
576
460
  } }
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);
461
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
462
+ i0.ɵɵelementStart(0, "span", 149);
579
463
  i0.ɵɵtext(1);
580
464
  i0.ɵɵelementEnd();
581
465
  } if (rf & 2) {
@@ -583,34 +467,34 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22
583
467
  i0.ɵɵadvance();
584
468
  i0.ɵɵtextInterpolate(entity_r15);
585
469
  } }
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);
470
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
471
+ i0.ɵɵelementStart(0, "span", 150);
588
472
  i0.ɵɵtext(1);
589
473
  i0.ɵɵelementEnd();
590
474
  } if (rf & 2) {
591
475
  const query_r14 = i0.ɵɵnextContext(2).$implicit;
592
- const ctx_r0 = i0.ɵɵnextContext(4);
476
+ const ctx_r1 = i0.ɵɵnextContext(4);
593
477
  i0.ɵɵadvance();
594
- i0.ɵɵtextInterpolate1("+", ctx_r0.getRunViewsEntityCount(query_r14) - 4, " more");
478
+ i0.ɵɵtextInterpolate1("+", ctx_r1.getRunViewsEntityCount(query_r14) - 4, " more");
595
479
  } }
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);
480
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
481
+ i0.ɵɵelementStart(0, "div", 144);
482
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template, 2, 1, "span", 149, i0.ɵɵrepeaterTrackByIdentity);
483
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template, 2, 1, "span", 150);
600
484
  i0.ɵɵelementEnd();
601
485
  } if (rf & 2) {
602
486
  const query_r14 = i0.ɵɵnextContext().$implicit;
603
- const ctx_r0 = i0.ɵɵnextContext(4);
487
+ const ctx_r1 = i0.ɵɵnextContext(4);
604
488
  i0.ɵɵadvance();
605
- i0.ɵɵrepeater(ctx_r0.getRunViewsEntities(query_r14, 4));
489
+ i0.ɵɵrepeater(ctx_r1.getRunViewsEntities(query_r14, 4));
606
490
  i0.ɵɵadvance(2);
607
- i0.ɵɵconditional(ctx_r0.hasMoreEntities(query_r14, 4) ? 3 : -1);
491
+ i0.ɵɵconditional(ctx_r1.hasMoreEntities(query_r14, 4) ? 3 : -1);
608
492
  } }
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);
493
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
494
+ i0.ɵɵelementStart(0, "span", 152)(1, "span", 153);
611
495
  i0.ɵɵtext(2);
612
496
  i0.ɵɵelementEnd();
613
- i0.ɵɵelementStart(3, "span", 177);
497
+ i0.ɵɵelementStart(3, "span", 154);
614
498
  i0.ɵɵtext(4);
615
499
  i0.ɵɵelementEnd()();
616
500
  } if (rf & 2) {
@@ -622,51 +506,51 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22
622
506
  i0.ɵɵadvance(2);
623
507
  i0.ɵɵtextInterpolate(pill_r16.value);
624
508
  } }
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);
509
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
510
+ i0.ɵɵelementStart(0, "div", 145);
511
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template, 5, 5, "span", 151, _forTrack4);
628
512
  i0.ɵɵelementEnd();
629
513
  } if (rf & 2) {
630
514
  const query_r14 = i0.ɵɵnextContext().$implicit;
631
- const ctx_r0 = i0.ɵɵnextContext(4);
515
+ const ctx_r1 = i0.ɵɵnextContext(4);
632
516
  i0.ɵɵadvance();
633
- i0.ɵɵrepeater(ctx_r0.getRunViewPills(query_r14));
517
+ i0.ɵɵrepeater(ctx_r1.getRunViewPills(query_r14));
634
518
  } }
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);
519
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
520
+ i0.ɵɵelementStart(0, "div", 146);
637
521
  i0.ɵɵtext(1);
638
522
  i0.ɵɵelementEnd();
639
523
  } if (rf & 2) {
640
524
  const query_r14 = i0.ɵɵnextContext().$implicit;
641
- const ctx_r0 = i0.ɵɵnextContext(4);
525
+ const ctx_r1 = i0.ɵɵnextContext(4);
642
526
  i0.ɵɵadvance();
643
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(query_r14.filter, 60));
527
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(query_r14.filter, 60));
644
528
  } }
645
- function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22_For_6_Template(rf, ctx) { if (rf & 1) {
529
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Template(rf, ctx) { if (rf & 1) {
646
530
  const _r13 = i0.ɵɵgetCurrentView();
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);
531
+ i0.ɵɵelementStart(0, "div", 138);
532
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Template_div_click_0_listener() { const query_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openEventDetailPanel(query_r14)); });
533
+ i0.ɵɵelementStart(1, "div", 139)(2, "span", 140);
650
534
  i0.ɵɵtext(3);
651
535
  i0.ɵɵelementEnd();
652
- i0.ɵɵelementStart(4, "span", 164);
536
+ i0.ɵɵelementStart(4, "span", 141);
653
537
  i0.ɵɵtext(5);
654
538
  i0.ɵɵelementEnd();
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);
539
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_6_Template, 3, 0, "span", 142);
540
+ i0.ɵɵelementStart(7, "span", 143);
657
541
  i0.ɵɵtext(8);
658
542
  i0.ɵɵpipe(9, "number");
659
543
  i0.ɵɵelementEnd()();
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);
544
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Template, 4, 1, "div", 144);
545
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_Template, 3, 0, "div", 145);
546
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_12_Template, 2, 1, "div", 146);
547
+ i0.ɵɵelementStart(13, "div", 147);
664
548
  i0.ɵɵtext(14);
665
549
  i0.ɵɵelementEnd()();
666
550
  } if (rf & 2) {
667
551
  const query_r14 = ctx.$implicit;
668
- const ctx_r0 = i0.ɵɵnextContext(4);
669
- i0.ɵɵclassProp("cache-hit", ctx_r0.isCacheHit(query_r14));
552
+ const ctx_r1 = i0.ɵɵnextContext(4);
553
+ i0.ɵɵclassProp("cache-hit", ctx_r1.isCacheHit(query_r14));
670
554
  i0.ɵɵadvance(2);
671
555
  i0.ɵɵclassMap("cat-" + query_r14.category.toLowerCase());
672
556
  i0.ɵɵadvance();
@@ -674,134 +558,134 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_48_Conditional_22
674
558
  i0.ɵɵadvance(2);
675
559
  i0.ɵɵtextInterpolate(query_r14.entityName || query_r14.operation);
676
560
  i0.ɵɵadvance();
677
- i0.ɵɵconditional(ctx_r0.isCacheHit(query_r14) ? 6 : -1);
561
+ i0.ɵɵconditional(ctx_r1.isCacheHit(query_r14) ? 6 : -1);
678
562
  i0.ɵɵadvance(2);
679
563
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(9, 12, query_r14.elapsedMs, "1.0-0"), "ms");
680
564
  i0.ɵɵadvance(2);
681
- i0.ɵɵconditional(ctx_r0.isRunViewsOperation(query_r14) ? 10 : -1);
565
+ i0.ɵɵconditional(ctx_r1.isRunViewsOperation(query_r14) ? 10 : -1);
682
566
  i0.ɵɵadvance();
683
- i0.ɵɵconditional(ctx_r0.isRunViewOperation(query_r14) && ctx_r0.getRunViewPills(query_r14).length > 0 ? 11 : -1);
567
+ i0.ɵɵconditional(ctx_r1.isRunViewOperation(query_r14) && ctx_r1.getRunViewPills(query_r14).length > 0 ? 11 : -1);
684
568
  i0.ɵɵadvance();
685
569
  i0.ɵɵconditional(query_r14.filter ? 12 : -1);
686
570
  i0.ɵɵadvance(2);
687
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(query_r14.timestamp));
571
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(query_r14.timestamp));
688
572
  } }
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);
573
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_Template(rf, ctx) { if (rf & 1) {
574
+ i0.ɵɵelementStart(0, "div", 127)(1, "h4");
575
+ i0.ɵɵelement(2, "i", 135);
692
576
  i0.ɵɵtext(3);
693
577
  i0.ɵɵelementEnd();
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);
578
+ i0.ɵɵelementStart(4, "div", 136);
579
+ i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Template, 15, 15, "div", 137, _forTrack3);
696
580
  i0.ɵɵelementEnd()();
697
581
  } if (rf & 2) {
698
- const ctx_r0 = i0.ɵɵnextContext(3);
582
+ const ctx_r1 = i0.ɵɵnextContext(3);
699
583
  i0.ɵɵadvance(3);
700
- i0.ɵɵtextInterpolate1(" Slow Operations (>", ctx_r0.slowQueryThresholdMs, "ms) ");
584
+ i0.ɵɵtextInterpolate1(" Slow Operations (>", ctx_r1.slowQueryThresholdMs, "ms) ");
701
585
  i0.ɵɵadvance(2);
702
- i0.ɵɵrepeater(ctx_r0.slowQueries.slice(0, 10));
586
+ i0.ɵɵrepeater(ctx_r1.slowQueries.slice(0, 10));
703
587
  } }
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);
588
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_23_Template(rf, ctx) { if (rf & 1) {
589
+ i0.ɵɵelementStart(0, "div", 128);
590
+ i0.ɵɵelement(1, "i", 51);
707
591
  i0.ɵɵelementStart(2, "span");
708
592
  i0.ɵɵtext(3);
709
593
  i0.ɵɵelementEnd()();
710
594
  } if (rf & 2) {
711
- const ctx_r0 = i0.ɵɵnextContext(3);
595
+ const ctx_r1 = i0.ɵɵnextContext(3);
712
596
  i0.ɵɵadvance(3);
713
- i0.ɵɵtextInterpolate1("No slow operations detected. All operations completed under ", ctx_r0.slowQueryThresholdMs, "ms.");
597
+ i0.ɵɵtextInterpolate1("No slow operations detected. All operations completed under ", ctx_r1.slowQueryThresholdMs, "ms.");
714
598
  } }
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);
599
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Template(rf, ctx) { if (rf & 1) {
600
+ i0.ɵɵelementStart(0, "div", 122)(1, "div", 123)(2, "div", 124);
717
601
  i0.ɵɵtext(3);
718
602
  i0.ɵɵelementEnd();
719
- i0.ɵɵelementStart(4, "div", 148);
603
+ i0.ɵɵelementStart(4, "div", 125);
720
604
  i0.ɵɵtext(5, "Total Events");
721
605
  i0.ɵɵelementEnd()();
722
- i0.ɵɵelementStart(6, "div", 146)(7, "div", 147);
606
+ i0.ɵɵelementStart(6, "div", 123)(7, "div", 124);
723
607
  i0.ɵɵtext(8);
724
608
  i0.ɵɵelementEnd();
725
- i0.ɵɵelementStart(9, "div", 148);
609
+ i0.ɵɵelementStart(9, "div", 125);
726
610
  i0.ɵɵtext(10, "Unique Patterns");
727
611
  i0.ɵɵelementEnd()();
728
- i0.ɵɵelementStart(11, "div", 146)(12, "div", 147);
612
+ i0.ɵɵelementStart(11, "div", 123)(12, "div", 124);
729
613
  i0.ɵɵtext(13);
730
614
  i0.ɵɵelementEnd();
731
- i0.ɵɵelementStart(14, "div", 148);
615
+ i0.ɵɵelementStart(14, "div", 125);
732
616
  i0.ɵɵtext(15, "Insights");
733
617
  i0.ɵɵelementEnd()();
734
- i0.ɵɵelementStart(16, "div", 146)(17, "div", 147);
618
+ i0.ɵɵelementStart(16, "div", 123)(17, "div", 124);
735
619
  i0.ɵɵtext(18);
736
620
  i0.ɵɵelementEnd();
737
- i0.ɵɵelementStart(19, "div", 148);
621
+ i0.ɵɵelementStart(19, "div", 125);
738
622
  i0.ɵɵtext(20, "Active");
739
623
  i0.ɵɵelementEnd()()();
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);
624
+ i0.ɵɵconditionalCreate(21, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_Template, 6, 0, "div", 126);
625
+ i0.ɵɵconditionalCreate(22, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_Template, 7, 1, "div", 127)(23, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_23_Template, 4, 1, "div", 128);
742
626
  } if (rf & 2) {
743
- const ctx_r0 = i0.ɵɵnextContext(2);
627
+ const ctx_r1 = i0.ɵɵnextContext(2);
744
628
  i0.ɵɵadvance(3);
745
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalEvents) || 0);
629
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalEvents) || 0);
746
630
  i0.ɵɵadvance(5);
747
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalPatterns) || 0);
631
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalPatterns) || 0);
748
632
  i0.ɵɵadvance(5);
749
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalInsights) || 0);
633
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalInsights) || 0);
750
634
  i0.ɵɵadvance(5);
751
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.activeEvents) || 0);
635
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.activeEvents) || 0);
752
636
  i0.ɵɵadvance(3);
753
- i0.ɵɵconditional(ctx_r0.telemetrySummary && ctx_r0.telemetrySummary.totalEvents > 0 ? 21 : -1);
637
+ i0.ɵɵconditional(ctx_r1.telemetrySummary && ctx_r1.telemetrySummary.totalEvents > 0 ? 21 : -1);
754
638
  i0.ɵɵadvance();
755
- i0.ɵɵconditional(ctx_r0.slowQueries.length > 0 ? 22 : ctx_r0.telemetryEnabled && ctx_r0.telemetrySummary && ctx_r0.telemetrySummary.totalEvents > 0 ? 23 : -1);
639
+ i0.ɵɵconditional(ctx_r1.slowQueries.length > 0 ? 22 : ctx_r1.telemetryEnabled && ctx_r1.telemetrySummary && ctx_r1.telemetrySummary.totalEvents > 0 ? 23 : -1);
756
640
  } }
757
- function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_4_Template(rf, ctx) { if (rf & 1) {
641
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_4_Template(rf, ctx) { if (rf & 1) {
758
642
  const _r18 = i0.ɵɵgetCurrentView();
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);
643
+ i0.ɵɵelementStart(0, "button", 166);
644
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clearSearch()); });
645
+ i0.ɵɵelement(1, "i", 91);
762
646
  i0.ɵɵelementEnd();
763
647
  } }
764
- function SystemDiagnosticsComponent_Conditional_47_Conditional_49_For_9_Template(rf, ctx) { if (rf & 1) {
648
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_For_9_Template(rf, ctx) { if (rf & 1) {
765
649
  const _r19 = i0.ɵɵgetCurrentView();
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)); });
650
+ i0.ɵɵelementStart(0, "button", 161);
651
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_For_9_Template_button_click_0_listener() { const cat_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCategoryFilterByName(cat_r20.name)); });
768
652
  i0.ɵɵtext(1);
769
653
  i0.ɵɵelementEnd();
770
654
  } if (rf & 2) {
771
655
  const cat_r20 = ctx.$implicit;
772
- const ctx_r0 = i0.ɵɵnextContext(3);
773
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === cat_r20.name);
656
+ const ctx_r1 = i0.ɵɵnextContext(3);
657
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === cat_r20.name);
774
658
  i0.ɵɵadvance();
775
659
  i0.ɵɵtextInterpolate1(" ", cat_r20.name, " ");
776
660
  } }
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);
661
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
662
+ i0.ɵɵelementStart(0, "div", 170);
663
+ i0.ɵɵelement(1, "i", 148);
780
664
  i0.ɵɵelementEnd();
781
665
  } }
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);
666
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
667
+ i0.ɵɵelement(0, "div", 171);
784
668
  } }
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);
669
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
670
+ i0.ɵɵelementStart(0, "span", 176);
671
+ i0.ɵɵelement(1, "i", 148);
788
672
  i0.ɵɵtext(2, " CACHED ");
789
673
  i0.ɵɵelementEnd();
790
674
  } }
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);
675
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
676
+ i0.ɵɵelementStart(0, "span", 184);
793
677
  i0.ɵɵtext(1);
794
678
  i0.ɵɵpipe(2, "number");
795
679
  i0.ɵɵelementEnd();
796
680
  } if (rf & 2) {
797
681
  const event_r22 = i0.ɵɵnextContext().$implicit;
798
- const ctx_r0 = i0.ɵɵnextContext(4);
799
- i0.ɵɵclassProp("slow", (event_r22.elapsedMs || 0) >= ctx_r0.slowQueryThresholdMs);
682
+ const ctx_r1 = i0.ɵɵnextContext(4);
683
+ i0.ɵɵclassProp("slow", (event_r22.elapsedMs || 0) >= ctx_r1.slowQueryThresholdMs);
800
684
  i0.ɵɵadvance();
801
685
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 3, event_r22.elapsedMs, "1.0-0"), "ms ");
802
686
  } }
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);
687
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
688
+ i0.ɵɵelementStart(0, "span", 180);
805
689
  i0.ɵɵtext(1);
806
690
  i0.ɵɵelementEnd();
807
691
  } if (rf & 2) {
@@ -809,8 +693,8 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12
809
693
  i0.ɵɵadvance();
810
694
  i0.ɵɵtextInterpolate(event_r22.entityName);
811
695
  } }
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);
696
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
697
+ i0.ɵɵelementStart(0, "span", 185);
814
698
  i0.ɵɵtext(1);
815
699
  i0.ɵɵelementEnd();
816
700
  } if (rf & 2) {
@@ -818,34 +702,34 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12
818
702
  i0.ɵɵadvance();
819
703
  i0.ɵɵtextInterpolate(entity_r23);
820
704
  } }
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);
705
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
706
+ i0.ɵɵelementStart(0, "span", 186);
823
707
  i0.ɵɵtext(1);
824
708
  i0.ɵɵelementEnd();
825
709
  } if (rf & 2) {
826
710
  const event_r22 = i0.ɵɵnextContext(2).$implicit;
827
- const ctx_r0 = i0.ɵɵnextContext(4);
711
+ const ctx_r1 = i0.ɵɵnextContext(4);
828
712
  i0.ɵɵadvance();
829
- i0.ɵɵtextInterpolate1("+", ctx_r0.getRunViewsEntityCount(event_r22) - 3, " more");
713
+ i0.ɵɵtextInterpolate1("+", ctx_r1.getRunViewsEntityCount(event_r22) - 3, " more");
830
714
  } }
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);
715
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
716
+ i0.ɵɵelementStart(0, "div", 181);
717
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template, 2, 1, "span", 185, i0.ɵɵrepeaterTrackByIdentity);
718
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template, 2, 1, "span", 186);
835
719
  i0.ɵɵelementEnd();
836
720
  } if (rf & 2) {
837
721
  const event_r22 = i0.ɵɵnextContext().$implicit;
838
- const ctx_r0 = i0.ɵɵnextContext(4);
722
+ const ctx_r1 = i0.ɵɵnextContext(4);
839
723
  i0.ɵɵadvance();
840
- i0.ɵɵrepeater(ctx_r0.getRunViewsEntities(event_r22, 3));
724
+ i0.ɵɵrepeater(ctx_r1.getRunViewsEntities(event_r22, 3));
841
725
  i0.ɵɵadvance(2);
842
- i0.ɵɵconditional(ctx_r0.hasMoreEntities(event_r22, 3) ? 3 : -1);
726
+ i0.ɵɵconditional(ctx_r1.hasMoreEntities(event_r22, 3) ? 3 : -1);
843
727
  } }
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);
728
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
729
+ i0.ɵɵelementStart(0, "span", 188)(1, "span", 153);
846
730
  i0.ɵɵtext(2);
847
731
  i0.ɵɵelementEnd();
848
- i0.ɵɵelementStart(3, "span", 177);
732
+ i0.ɵɵelementStart(3, "span", 154);
849
733
  i0.ɵɵtext(4);
850
734
  i0.ɵɵelementEnd()();
851
735
  } if (rf & 2) {
@@ -857,67 +741,67 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12
857
741
  i0.ɵɵadvance(2);
858
742
  i0.ɵɵtextInterpolate(pill_r24.value);
859
743
  } }
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);
744
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
745
+ i0.ɵɵelementStart(0, "div", 182);
746
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template, 5, 5, "span", 187, _forTrack4);
863
747
  i0.ɵɵelementEnd();
864
748
  } if (rf & 2) {
865
749
  const event_r22 = i0.ɵɵnextContext().$implicit;
866
- const ctx_r0 = i0.ɵɵnextContext(4);
750
+ const ctx_r1 = i0.ɵɵnextContext(4);
867
751
  i0.ɵɵadvance();
868
- i0.ɵɵrepeater(ctx_r0.getRunViewPills(event_r22));
752
+ i0.ɵɵrepeater(ctx_r1.getRunViewPills(event_r22));
869
753
  } }
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);
754
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_19_Template(rf, ctx) { if (rf & 1) {
755
+ i0.ɵɵelementStart(0, "div", 183);
872
756
  i0.ɵɵtext(1);
873
757
  i0.ɵɵelementEnd();
874
758
  } if (rf & 2) {
875
759
  const event_r22 = i0.ɵɵnextContext().$implicit;
876
- const ctx_r0 = i0.ɵɵnextContext(4);
760
+ const ctx_r1 = i0.ɵɵnextContext(4);
877
761
  i0.ɵɵadvance();
878
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(event_r22.filter, 80));
762
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(event_r22.filter, 80));
879
763
  } }
880
- function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12_For_1_Template(rf, ctx) { if (rf & 1) {
764
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Template(rf, ctx) { if (rf & 1) {
881
765
  const _r21 = i0.ɵɵgetCurrentView();
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);
766
+ i0.ɵɵelementStart(0, "div", 168);
767
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Template_div_click_0_listener() { const event_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openEventDetailPanel(event_r22)); });
768
+ i0.ɵɵelementStart(1, "div", 169);
769
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_2_Template, 2, 0, "div", 170)(3, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_3_Template, 1, 0, "div", 171);
770
+ i0.ɵɵelement(4, "div", 172);
887
771
  i0.ɵɵelementEnd();
888
- i0.ɵɵelementStart(5, "div", 196)(6, "div", 197)(7, "span", 198);
772
+ i0.ɵɵelementStart(5, "div", 173)(6, "div", 174)(7, "span", 175);
889
773
  i0.ɵɵtext(8);
890
774
  i0.ɵɵelementEnd();
891
- i0.ɵɵelementStart(9, "span", 163);
775
+ i0.ɵɵelementStart(9, "span", 140);
892
776
  i0.ɵɵtext(10);
893
777
  i0.ɵɵelementEnd();
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);
778
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_11_Template, 3, 0, "span", 176);
779
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_12_Template, 3, 6, "span", 177);
896
780
  i0.ɵɵelementEnd();
897
- i0.ɵɵelementStart(13, "div", 201)(14, "span", 202);
781
+ i0.ɵɵelementStart(13, "div", 178)(14, "span", 179);
898
782
  i0.ɵɵtext(15);
899
783
  i0.ɵɵelementEnd();
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);
784
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_16_Template, 2, 1, "span", 180);
785
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Template, 4, 1, "div", 181);
902
786
  i0.ɵɵelementEnd();
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);
787
+ i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_Template, 3, 0, "div", 182);
788
+ i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_19_Template, 2, 1, "div", 183);
905
789
  i0.ɵɵelementEnd()();
906
790
  } if (rf & 2) {
907
791
  const event_r22 = ctx.$implicit;
908
- const ctx_r0 = i0.ɵɵnextContext(4);
792
+ const ctx_r1 = i0.ɵɵnextContext(4);
909
793
  i0.ɵɵclassMap("tl-" + event_r22.category.toLowerCase());
910
- i0.ɵɵclassProp("cache-hit", ctx_r0.isCacheHit(event_r22));
794
+ i0.ɵɵclassProp("cache-hit", ctx_r1.isCacheHit(event_r22));
911
795
  i0.ɵɵadvance(2);
912
- i0.ɵɵconditional(ctx_r0.isCacheHit(event_r22) ? 2 : 3);
796
+ i0.ɵɵconditional(ctx_r1.isCacheHit(event_r22) ? 2 : 3);
913
797
  i0.ɵɵadvance(6);
914
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(event_r22.timestamp));
798
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(event_r22.timestamp));
915
799
  i0.ɵɵadvance();
916
800
  i0.ɵɵclassMap("cat-" + event_r22.category.toLowerCase());
917
801
  i0.ɵɵadvance();
918
802
  i0.ɵɵtextInterpolate1(" ", event_r22.category, " ");
919
803
  i0.ɵɵadvance();
920
- i0.ɵɵconditional(ctx_r0.isCacheHit(event_r22) ? 11 : -1);
804
+ i0.ɵɵconditional(ctx_r1.isCacheHit(event_r22) ? 11 : -1);
921
805
  i0.ɵɵadvance();
922
806
  i0.ɵɵconditional(event_r22.elapsedMs !== undefined ? 12 : -1);
923
807
  i0.ɵɵadvance(3);
@@ -925,79 +809,79 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_12
925
809
  i0.ɵɵadvance();
926
810
  i0.ɵɵconditional(event_r22.entityName ? 16 : -1);
927
811
  i0.ɵɵadvance();
928
- i0.ɵɵconditional(ctx_r0.isRunViewsOperation(event_r22) ? 17 : -1);
812
+ i0.ɵɵconditional(ctx_r1.isRunViewsOperation(event_r22) ? 17 : -1);
929
813
  i0.ɵɵadvance();
930
- i0.ɵɵconditional(ctx_r0.isRunViewOperation(event_r22) && ctx_r0.getRunViewPills(event_r22).length > 0 ? 18 : -1);
814
+ i0.ɵɵconditional(ctx_r1.isRunViewOperation(event_r22) && ctx_r1.getRunViewPills(event_r22).length > 0 ? 18 : -1);
931
815
  i0.ɵɵadvance();
932
816
  i0.ɵɵconditional(event_r22.filter ? 19 : -1);
933
817
  } }
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);
818
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_Template(rf, ctx) { if (rf & 1) {
819
+ i0.ɵɵrepeaterCreate(0, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Template, 20, 16, "div", 167, _forTrack3);
936
820
  } if (rf & 2) {
937
- const ctx_r0 = i0.ɵɵnextContext(3);
938
- i0.ɵɵrepeater(ctx_r0.filteredEvents.slice(0, 50));
821
+ const ctx_r1 = i0.ɵɵnextContext(3);
822
+ i0.ɵɵrepeater(ctx_r1.filteredEvents.slice(0, 50));
939
823
  } }
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);
824
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_13_Template(rf, ctx) { if (rf & 1) {
825
+ i0.ɵɵelementStart(0, "div", 165);
826
+ i0.ɵɵelement(1, "i", 189);
943
827
  i0.ɵɵelementStart(2, "p");
944
828
  i0.ɵɵtext(3, "No events recorded yet");
945
829
  i0.ɵɵelementEnd()();
946
830
  } }
947
- function SystemDiagnosticsComponent_Conditional_47_Conditional_49_Template(rf, ctx) { if (rf & 1) {
831
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template(rf, ctx) { if (rf & 1) {
948
832
  const _r17 = i0.ɵɵgetCurrentView();
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()); });
833
+ i0.ɵɵelementStart(0, "div", 155)(1, "div", 156);
834
+ i0.ɵɵelement(2, "i", 157);
835
+ i0.ɵɵelementStart(3, "input", 158);
836
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
837
+ i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSearchChange()); });
954
838
  i0.ɵɵelementEnd();
955
- i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_47_Conditional_49_Conditional_4_Template, 2, 0, "button", 182);
839
+ i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_4_Template, 2, 0, "button", 159);
956
840
  i0.ɵɵelementEnd();
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")); });
841
+ i0.ɵɵelementStart(5, "div", 160)(6, "button", 161);
842
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCategoryFilter("all")); });
959
843
  i0.ɵɵtext(7, " All ");
960
844
  i0.ɵɵelementEnd();
961
- i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_47_Conditional_49_For_9_Template, 2, 3, "button", 185, _forTrack2);
845
+ i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_17_Conditional_49_For_9_Template, 2, 3, "button", 162, _forTrack2);
962
846
  i0.ɵɵelementEnd()();
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);
847
+ i0.ɵɵelementStart(10, "div", 163)(11, "div", 164);
848
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_Template, 2, 0)(13, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_13_Template, 4, 0, "div", 165);
965
849
  i0.ɵɵelementEnd()();
966
850
  } if (rf & 2) {
967
- const ctx_r0 = i0.ɵɵnextContext(2);
851
+ const ctx_r1 = i0.ɵɵnextContext(2);
968
852
  i0.ɵɵadvance(3);
969
- i0.ɵɵtwoWayProperty("ngModel", ctx_r0.searchQuery);
853
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.searchQuery);
970
854
  i0.ɵɵadvance();
971
- i0.ɵɵconditional(ctx_r0.searchQuery ? 4 : -1);
855
+ i0.ɵɵconditional(ctx_r1.searchQuery ? 4 : -1);
972
856
  i0.ɵɵadvance(2);
973
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === "all");
857
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === "all");
974
858
  i0.ɵɵadvance(2);
975
- i0.ɵɵrepeater(ctx_r0.categoriesWithData);
859
+ i0.ɵɵrepeater(ctx_r1.categoriesWithData);
976
860
  i0.ɵɵadvance(4);
977
- i0.ɵɵconditional(ctx_r0.filteredEvents.length > 0 ? 12 : 13);
861
+ i0.ɵɵconditional(ctx_r1.filteredEvents.length > 0 ? 12 : 13);
978
862
  } }
979
- function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
863
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
980
864
  const _r26 = i0.ɵɵgetCurrentView();
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);
865
+ i0.ɵɵelementStart(0, "button", 166);
866
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clearSearch()); });
867
+ i0.ɵɵelement(1, "i", 91);
984
868
  i0.ɵɵelementEnd();
985
869
  } }
986
- function SystemDiagnosticsComponent_Conditional_47_Conditional_50_For_9_Template(rf, ctx) { if (rf & 1) {
870
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_For_9_Template(rf, ctx) { if (rf & 1) {
987
871
  const _r27 = i0.ɵɵgetCurrentView();
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)); });
872
+ i0.ɵɵelementStart(0, "button", 161);
873
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_For_9_Template_button_click_0_listener() { const cat_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCategoryFilterByName(cat_r28.name)); });
990
874
  i0.ɵɵtext(1);
991
875
  i0.ɵɵelementEnd();
992
876
  } if (rf & 2) {
993
877
  const cat_r28 = ctx.$implicit;
994
- const ctx_r0 = i0.ɵɵnextContext(3);
995
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === cat_r28.name);
878
+ const ctx_r1 = i0.ɵɵnextContext(3);
879
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === cat_r28.name);
996
880
  i0.ɵɵadvance();
997
881
  i0.ɵɵtextInterpolate1(" ", cat_r28.name, " ");
998
882
  } }
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);
883
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_11_Template(rf, ctx) { if (rf & 1) {
884
+ i0.ɵɵelementStart(0, "span", 201);
1001
885
  i0.ɵɵtext(1);
1002
886
  i0.ɵɵelementEnd();
1003
887
  } if (rf & 2) {
@@ -1005,40 +889,40 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10
1005
889
  i0.ɵɵadvance();
1006
890
  i0.ɵɵtextInterpolate(pattern_r30.count);
1007
891
  } }
1008
- function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
892
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1009
893
  i0.ɵɵtext(0);
1010
894
  } if (rf & 2) {
1011
895
  const pattern_r30 = i0.ɵɵnextContext().$implicit;
1012
896
  i0.ɵɵtextInterpolate1(" ", pattern_r30.count, " ");
1013
897
  } }
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);
898
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Template(rf, ctx) { if (rf & 1) {
899
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 197);
1016
900
  i0.ɵɵtext(3);
1017
901
  i0.ɵɵelementEnd()();
1018
- i0.ɵɵelementStart(4, "td", 221);
902
+ i0.ɵɵelementStart(4, "td", 198);
1019
903
  i0.ɵɵtext(5);
1020
904
  i0.ɵɵelementEnd();
1021
- i0.ɵɵelementStart(6, "td", 222);
905
+ i0.ɵɵelementStart(6, "td", 199);
1022
906
  i0.ɵɵtext(7);
1023
907
  i0.ɵɵelementEnd();
1024
- i0.ɵɵelementStart(8, "td", 223);
908
+ i0.ɵɵelementStart(8, "td", 200);
1025
909
  i0.ɵɵtext(9);
1026
910
  i0.ɵɵelementEnd();
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);
911
+ i0.ɵɵelementStart(10, "td", 54);
912
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_11_Template, 2, 1, "span", 201)(12, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_12_Template, 1, 1);
1029
913
  i0.ɵɵelementEnd();
1030
- i0.ɵɵelementStart(13, "td", 79);
914
+ i0.ɵɵelementStart(13, "td", 54);
1031
915
  i0.ɵɵtext(14);
1032
916
  i0.ɵɵpipe(15, "number");
1033
917
  i0.ɵɵelementEnd();
1034
- i0.ɵɵelementStart(16, "td", 79);
918
+ i0.ɵɵelementStart(16, "td", 54);
1035
919
  i0.ɵɵtext(17);
1036
920
  i0.ɵɵpipe(18, "number");
1037
921
  i0.ɵɵelementEnd()();
1038
922
  } if (rf & 2) {
1039
923
  const pattern_r30 = ctx.$implicit;
1040
- const ctx_r0 = i0.ɵɵnextContext(4);
1041
- i0.ɵɵclassProp("duplicate-row", pattern_r30.count >= 2)("slow-row", pattern_r30.avgElapsedMs >= ctx_r0.slowQueryThresholdMs);
924
+ const ctx_r1 = i0.ɵɵnextContext(4);
925
+ i0.ɵɵclassProp("duplicate-row", pattern_r30.count >= 2)("slow-row", pattern_r30.avgElapsedMs >= ctx_r1.slowQueryThresholdMs);
1042
926
  i0.ɵɵadvance(2);
1043
927
  i0.ɵɵclassMap("cat-" + pattern_r30.category.toLowerCase());
1044
928
  i0.ɵɵadvance();
@@ -1050,123 +934,123 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10
1050
934
  i0.ɵɵadvance();
1051
935
  i0.ɵɵproperty("title", pattern_r30.filter || "");
1052
936
  i0.ɵɵadvance();
1053
- i0.ɵɵtextInterpolate1(" ", ctx_r0.truncateString(pattern_r30.filter, 30), " ");
937
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.truncateString(pattern_r30.filter, 30), " ");
1054
938
  i0.ɵɵadvance(2);
1055
939
  i0.ɵɵconditional(pattern_r30.count >= 2 ? 11 : 12);
1056
940
  i0.ɵɵadvance(2);
1057
- i0.ɵɵclassProp("slow-value", pattern_r30.avgElapsedMs >= ctx_r0.slowQueryThresholdMs);
941
+ i0.ɵɵclassProp("slow-value", pattern_r30.avgElapsedMs >= ctx_r1.slowQueryThresholdMs);
1058
942
  i0.ɵɵadvance();
1059
943
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(15, 16, pattern_r30.avgElapsedMs, "1.1-1"), " ");
1060
944
  i0.ɵɵadvance(3);
1061
945
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(18, 19, pattern_r30.totalElapsedMs, "1.0-0"));
1062
946
  } }
1063
- function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
947
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1064
948
  const _r29 = i0.ɵɵgetCurrentView();
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")); });
949
+ i0.ɵɵelementStart(0, "div", 191)(1, "div", 192)(2, "table", 193)(3, "thead")(4, "tr")(5, "th", 194);
950
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("category")); });
1067
951
  i0.ɵɵtext(6, " Category ");
1068
- i0.ɵɵelement(7, "i", 12);
952
+ i0.ɵɵelement(7, "i", 84);
1069
953
  i0.ɵɵelementEnd();
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")); });
954
+ i0.ɵɵelementStart(8, "th", 194);
955
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_8_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("operation")); });
1072
956
  i0.ɵɵtext(9, " Operation ");
1073
- i0.ɵɵelement(10, "i", 12);
957
+ i0.ɵɵelement(10, "i", 84);
1074
958
  i0.ɵɵelementEnd();
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")); });
959
+ i0.ɵɵelementStart(11, "th", 194);
960
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("entity")); });
1077
961
  i0.ɵɵtext(12, " Entity/Query ");
1078
- i0.ɵɵelement(13, "i", 12);
962
+ i0.ɵɵelement(13, "i", 84);
1079
963
  i0.ɵɵelementEnd();
1080
964
  i0.ɵɵelementStart(14, "th");
1081
965
  i0.ɵɵtext(15, "Filter");
1082
966
  i0.ɵɵelementEnd();
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")); });
967
+ i0.ɵɵelementStart(16, "th", 195);
968
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_16_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("count")); });
1085
969
  i0.ɵɵtext(17, " Count ");
1086
- i0.ɵɵelement(18, "i", 12);
970
+ i0.ɵɵelement(18, "i", 84);
1087
971
  i0.ɵɵelementEnd();
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")); });
972
+ i0.ɵɵelementStart(19, "th", 195);
973
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_19_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("avgMs")); });
1090
974
  i0.ɵɵtext(20, " Avg (ms) ");
1091
- i0.ɵɵelement(21, "i", 12);
975
+ i0.ɵɵelement(21, "i", 84);
1092
976
  i0.ɵɵelementEnd();
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")); });
977
+ i0.ɵɵelementStart(22, "th", 195);
978
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_22_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("totalMs")); });
1095
979
  i0.ɵɵtext(23, " Total (ms) ");
1096
- i0.ɵɵelement(24, "i", 12);
980
+ i0.ɵɵelement(24, "i", 84);
1097
981
  i0.ɵɵelementEnd()()();
1098
982
  i0.ɵɵelementStart(25, "tbody");
1099
- i0.ɵɵrepeaterCreate(26, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_10_For_27_Template, 19, 22, "tr", 219, _forTrack5);
983
+ i0.ɵɵrepeaterCreate(26, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Template, 19, 22, "tr", 196, _forTrack5);
1100
984
  i0.ɵɵelementEnd()()()();
1101
985
  } if (rf & 2) {
1102
- const ctx_r0 = i0.ɵɵnextContext(3);
986
+ const ctx_r1 = i0.ɵɵnextContext(3);
1103
987
  i0.ɵɵadvance(7);
1104
- i0.ɵɵclassMap(ctx_r0.getSortIcon("category"));
988
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("category"));
1105
989
  i0.ɵɵadvance(3);
1106
- i0.ɵɵclassMap(ctx_r0.getSortIcon("operation"));
990
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("operation"));
1107
991
  i0.ɵɵadvance(3);
1108
- i0.ɵɵclassMap(ctx_r0.getSortIcon("entity"));
992
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("entity"));
1109
993
  i0.ɵɵadvance(5);
1110
- i0.ɵɵclassMap(ctx_r0.getSortIcon("count"));
994
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("count"));
1111
995
  i0.ɵɵadvance(3);
1112
- i0.ɵɵclassMap(ctx_r0.getSortIcon("avgMs"));
996
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("avgMs"));
1113
997
  i0.ɵɵadvance(3);
1114
- i0.ɵɵclassMap(ctx_r0.getSortIcon("totalMs"));
998
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("totalMs"));
1115
999
  i0.ɵɵadvance(2);
1116
- i0.ɵɵrepeater(ctx_r0.filteredPatterns);
1000
+ i0.ɵɵrepeater(ctx_r1.filteredPatterns);
1117
1001
  } }
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);
1002
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1003
+ i0.ɵɵelementStart(0, "div", 28);
1004
+ i0.ɵɵelement(1, "i", 189);
1121
1005
  i0.ɵɵelementStart(2, "p");
1122
1006
  i0.ɵɵtext(3, "No telemetry data yet");
1123
1007
  i0.ɵɵelementEnd();
1124
- i0.ɵɵelementStart(4, "span", 58);
1008
+ i0.ɵɵelementStart(4, "span", 31);
1125
1009
  i0.ɵɵtext(5, "Navigate around the app to generate performance data");
1126
1010
  i0.ɵɵelementEnd()();
1127
1011
  } }
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);
1012
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1013
+ i0.ɵɵelementStart(0, "div", 165);
1014
+ i0.ɵɵelement(1, "i", 202);
1131
1015
  i0.ɵɵelementStart(2, "p");
1132
1016
  i0.ɵɵtext(3, "No patterns match your filter");
1133
1017
  i0.ɵɵelementEnd()();
1134
1018
  } }
1135
- function SystemDiagnosticsComponent_Conditional_47_Conditional_50_Template(rf, ctx) { if (rf & 1) {
1019
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template(rf, ctx) { if (rf & 1) {
1136
1020
  const _r25 = i0.ɵɵgetCurrentView();
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()); });
1021
+ i0.ɵɵelementStart(0, "div", 155)(1, "div", 156);
1022
+ i0.ɵɵelement(2, "i", 157);
1023
+ i0.ɵɵelementStart(3, "input", 190);
1024
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
1025
+ i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSearchChange()); });
1142
1026
  i0.ɵɵelementEnd();
1143
- i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_47_Conditional_50_Conditional_4_Template, 2, 0, "button", 182);
1027
+ i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_4_Template, 2, 0, "button", 159);
1144
1028
  i0.ɵɵelementEnd();
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")); });
1029
+ i0.ɵɵelementStart(5, "div", 160)(6, "button", 161);
1030
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCategoryFilter("all")); });
1147
1031
  i0.ɵɵtext(7, " All ");
1148
1032
  i0.ɵɵelementEnd();
1149
- i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_47_Conditional_50_For_9_Template, 2, 3, "button", 185, _forTrack2);
1033
+ i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_17_Conditional_50_For_9_Template, 2, 3, "button", 162, _forTrack2);
1150
1034
  i0.ɵɵelementEnd()();
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);
1035
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template, 28, 12, "div", 191)(11, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_11_Template, 6, 0, "div", 28)(12, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_12_Template, 4, 0, "div", 165);
1152
1036
  } if (rf & 2) {
1153
- const ctx_r0 = i0.ɵɵnextContext(2);
1037
+ const ctx_r1 = i0.ɵɵnextContext(2);
1154
1038
  i0.ɵɵadvance(3);
1155
- i0.ɵɵtwoWayProperty("ngModel", ctx_r0.searchQuery);
1039
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.searchQuery);
1156
1040
  i0.ɵɵadvance();
1157
- i0.ɵɵconditional(ctx_r0.searchQuery ? 4 : -1);
1041
+ i0.ɵɵconditional(ctx_r1.searchQuery ? 4 : -1);
1158
1042
  i0.ɵɵadvance(2);
1159
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === "all");
1043
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === "all");
1160
1044
  i0.ɵɵadvance(2);
1161
- i0.ɵɵrepeater(ctx_r0.categoriesWithData);
1045
+ i0.ɵɵrepeater(ctx_r1.categoriesWithData);
1162
1046
  i0.ɵɵadvance(2);
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);
1047
+ i0.ɵɵconditional(ctx_r1.filteredPatterns.length > 0 ? 10 : ctx_r1.telemetryEnabled && ctx_r1.telemetryPatterns.length === 0 ? 11 : ctx_r1.searchQuery || ctx_r1.categoryFilter !== "all" ? 12 : -1);
1164
1048
  } }
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);
1049
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1050
+ i0.ɵɵelementStart(0, "div", 212)(1, "span", 216);
1167
1051
  i0.ɵɵtext(2, "Entity:");
1168
1052
  i0.ɵɵelementEnd();
1169
- i0.ɵɵelementStart(3, "span", 240);
1053
+ i0.ɵɵelementStart(3, "span", 217);
1170
1054
  i0.ɵɵtext(4);
1171
1055
  i0.ɵɵelementEnd()();
1172
1056
  } if (rf & 2) {
@@ -1174,24 +1058,24 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_
1174
1058
  i0.ɵɵadvance(4);
1175
1059
  i0.ɵɵtextInterpolate(insight_r32.entityName);
1176
1060
  } }
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);
1061
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1062
+ i0.ɵɵelementStart(0, "div", 212)(1, "span", 216);
1179
1063
  i0.ɵɵtext(2, "Filter:");
1180
1064
  i0.ɵɵelementEnd();
1181
- i0.ɵɵelementStart(3, "code", 241);
1065
+ i0.ɵɵelementStart(3, "code", 218);
1182
1066
  i0.ɵɵtext(4);
1183
1067
  i0.ɵɵelementEnd()();
1184
1068
  } if (rf & 2) {
1185
1069
  const insight_r32 = i0.ɵɵnextContext().$implicit;
1186
- const ctx_r0 = i0.ɵɵnextContext(4);
1070
+ const ctx_r1 = i0.ɵɵnextContext(4);
1187
1071
  i0.ɵɵadvance(4);
1188
- i0.ɵɵtextInterpolate(ctx_r0.getInsightFilter(insight_r32));
1072
+ i0.ɵɵtextInterpolate(ctx_r1.getInsightFilter(insight_r32));
1189
1073
  } }
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);
1074
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template(rf, ctx) { if (rf & 1) {
1075
+ i0.ɵɵelementStart(0, "div", 222)(1, "span", 225);
1192
1076
  i0.ɵɵtext(2);
1193
1077
  i0.ɵɵelementEnd();
1194
- i0.ɵɵelementStart(3, "span", 249);
1078
+ i0.ɵɵelementStart(3, "span", 226);
1195
1079
  i0.ɵɵtext(4);
1196
1080
  i0.ɵɵelementEnd()();
1197
1081
  } if (rf & 2) {
@@ -1201,8 +1085,8 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_
1201
1085
  i0.ɵɵadvance(2);
1202
1086
  i0.ɵɵtextInterpolate(param_r33.value);
1203
1087
  } }
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);
1088
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1089
+ i0.ɵɵelementStart(0, "span", 229);
1206
1090
  i0.ɵɵtext(1);
1207
1091
  i0.ɵɵelementEnd();
1208
1092
  } if (rf & 2) {
@@ -1210,32 +1094,32 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_
1210
1094
  i0.ɵɵadvance();
1211
1095
  i0.ɵɵtextInterpolate(event_r34.entityName);
1212
1096
  } }
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);
1097
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1098
+ i0.ɵɵelementStart(0, "span", 230);
1215
1099
  i0.ɵɵtext(1);
1216
1100
  i0.ɵɵelementEnd();
1217
1101
  } if (rf & 2) {
1218
1102
  const event_r34 = i0.ɵɵnextContext().$implicit;
1219
- const ctx_r0 = i0.ɵɵnextContext(7);
1103
+ const ctx_r1 = i0.ɵɵnextContext(7);
1220
1104
  i0.ɵɵadvance();
1221
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(event_r34.filter, 40));
1105
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(event_r34.filter, 40));
1222
1106
  } }
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);
1107
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
1108
+ i0.ɵɵelementStart(0, "div", 224)(1, "span", 227);
1225
1109
  i0.ɵɵtext(2);
1226
1110
  i0.ɵɵelementEnd();
1227
- i0.ɵɵelementStart(3, "span", 251);
1111
+ i0.ɵɵelementStart(3, "span", 228);
1228
1112
  i0.ɵɵtext(4);
1229
1113
  i0.ɵɵpipe(5, "number");
1230
1114
  i0.ɵɵelementEnd();
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);
1115
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template, 2, 1, "span", 229);
1116
+ i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template, 2, 1, "span", 230);
1233
1117
  i0.ɵɵelementEnd();
1234
1118
  } if (rf & 2) {
1235
1119
  const event_r34 = ctx.$implicit;
1236
- const ctx_r0 = i0.ɵɵnextContext(7);
1120
+ const ctx_r1 = i0.ɵɵnextContext(7);
1237
1121
  i0.ɵɵadvance(2);
1238
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(event_r34.timestamp));
1122
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(event_r34.timestamp));
1239
1123
  i0.ɵɵadvance(2);
1240
1124
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(5, 4, event_r34.elapsedMs, "1.0-0"), "ms");
1241
1125
  i0.ɵɵadvance(2);
@@ -1243,71 +1127,71 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_
1243
1127
  i0.ɵɵadvance();
1244
1128
  i0.ɵɵconditional(event_r34.filter ? 7 : -1);
1245
1129
  } }
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);
1130
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1131
+ i0.ɵɵelementStart(0, "div", 219)(1, "div", 220);
1248
1132
  i0.ɵɵtext(2, "Full Parameters");
1249
1133
  i0.ɵɵelementEnd();
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);
1134
+ i0.ɵɵelementStart(3, "div", 221);
1135
+ i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template, 5, 2, "div", 222, _forTrack6);
1252
1136
  i0.ɵɵelementEnd()();
1253
- i0.ɵɵelementStart(6, "div", 242)(7, "div", 243);
1137
+ i0.ɵɵelementStart(6, "div", 219)(7, "div", 220);
1254
1138
  i0.ɵɵtext(8);
1255
1139
  i0.ɵɵelementEnd();
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);
1140
+ i0.ɵɵelementStart(9, "div", 223);
1141
+ i0.ɵɵrepeaterCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template, 8, 7, "div", 224, _forTrack3);
1258
1142
  i0.ɵɵelementEnd()();
1259
1143
  } if (rf & 2) {
1260
1144
  const insight_r32 = i0.ɵɵnextContext(2).$implicit;
1261
- const ctx_r0 = i0.ɵɵnextContext(4);
1145
+ const ctx_r1 = i0.ɵɵnextContext(4);
1262
1146
  i0.ɵɵadvance(4);
1263
- i0.ɵɵrepeater(ctx_r0.getEventParams(insight_r32.relatedEvents[0]));
1147
+ i0.ɵɵrepeater(ctx_r1.getEventParams(insight_r32.relatedEvents[0]));
1264
1148
  i0.ɵɵadvance(4);
1265
1149
  i0.ɵɵtextInterpolate1("Related Calls (", insight_r32.relatedEvents.length, ")");
1266
1150
  i0.ɵɵadvance(2);
1267
1151
  i0.ɵɵrepeater(insight_r32.relatedEvents);
1268
1152
  } }
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);
1153
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1154
+ i0.ɵɵelementStart(0, "div", 215);
1155
+ i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template, 12, 1);
1272
1156
  i0.ɵɵelementEnd();
1273
1157
  } if (rf & 2) {
1274
1158
  const insight_r32 = i0.ɵɵnextContext().$implicit;
1275
1159
  i0.ɵɵadvance();
1276
1160
  i0.ɵɵconditional(insight_r32.relatedEvents.length > 0 ? 1 : -1);
1277
1161
  } }
1278
- function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
1162
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
1279
1163
  const _r31 = i0.ɵɵgetCurrentView();
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);
1164
+ i0.ɵɵelementStart(0, "div", 206)(1, "div", 207);
1165
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Template_div_click_1_listener() { const insight_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleInsightExpanded(insight_r32)); });
1166
+ i0.ɵɵelement(2, "i", 84);
1167
+ i0.ɵɵelementStart(3, "span", 208);
1284
1168
  i0.ɵɵtext(4);
1285
1169
  i0.ɵɵelementEnd();
1286
- i0.ɵɵelementStart(5, "span", 232);
1170
+ i0.ɵɵelementStart(5, "span", 209);
1287
1171
  i0.ɵɵtext(6);
1288
1172
  i0.ɵɵelementEnd();
1289
- i0.ɵɵelement(7, "i", 233);
1173
+ i0.ɵɵelement(7, "i", 210);
1290
1174
  i0.ɵɵelementEnd();
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);
1175
+ i0.ɵɵelementStart(8, "div", 211);
1176
+ i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_9_Template, 5, 1, "div", 212);
1177
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_10_Template, 5, 1, "div", 212);
1294
1178
  i0.ɵɵelementEnd();
1295
- i0.ɵɵelementStart(11, "div", 236);
1179
+ i0.ɵɵelementStart(11, "div", 213);
1296
1180
  i0.ɵɵtext(12);
1297
1181
  i0.ɵɵelementEnd();
1298
- i0.ɵɵelementStart(13, "div", 237);
1299
- i0.ɵɵelement(14, "i", 72);
1182
+ i0.ɵɵelementStart(13, "div", 214);
1183
+ i0.ɵɵelement(14, "i", 46);
1300
1184
  i0.ɵɵtext(15);
1301
1185
  i0.ɵɵelementEnd();
1302
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_For_3_Conditional_16_Template, 2, 1, "div", 238);
1186
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Template, 2, 1, "div", 215);
1303
1187
  i0.ɵɵelementEnd();
1304
1188
  } if (rf & 2) {
1305
1189
  const insight_r32 = ctx.$implicit;
1306
- const ctx_r0 = i0.ɵɵnextContext(4);
1307
- i0.ɵɵclassMap(ctx_r0.getSeverityClass(insight_r32.severity));
1190
+ const ctx_r1 = i0.ɵɵnextContext(4);
1191
+ i0.ɵɵclassMap(ctx_r1.getSeverityClass(insight_r32.severity));
1308
1192
  i0.ɵɵclassProp("expanded", insight_r32.expanded);
1309
1193
  i0.ɵɵadvance(2);
1310
- i0.ɵɵclassMap(ctx_r0.getSeverityIcon(insight_r32.severity));
1194
+ i0.ɵɵclassMap(ctx_r1.getSeverityIcon(insight_r32.severity));
1311
1195
  i0.ɵɵadvance(2);
1312
1196
  i0.ɵɵtextInterpolate(insight_r32.title);
1313
1197
  i0.ɵɵadvance(2);
@@ -1317,7 +1201,7 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_
1317
1201
  i0.ɵɵadvance(2);
1318
1202
  i0.ɵɵconditional(insight_r32.entityName ? 9 : -1);
1319
1203
  i0.ɵɵadvance();
1320
- i0.ɵɵconditional(ctx_r0.getInsightFilter(insight_r32) ? 10 : -1);
1204
+ i0.ɵɵconditional(ctx_r1.getInsightFilter(insight_r32) ? 10 : -1);
1321
1205
  i0.ɵɵadvance(2);
1322
1206
  i0.ɵɵtextInterpolate(insight_r32.message);
1323
1207
  i0.ɵɵadvance(3);
@@ -1325,175 +1209,175 @@ function SystemDiagnosticsComponent_Conditional_47_Conditional_51_Conditional_0_
1325
1209
  i0.ɵɵadvance();
1326
1210
  i0.ɵɵconditional(insight_r32.expanded ? 16 : -1);
1327
1211
  } }
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);
1212
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1213
+ i0.ɵɵelementStart(0, "div", 203)(1, "div", 204);
1214
+ i0.ɵɵrepeaterCreate(2, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Template, 17, 17, "div", 205, _forTrack3);
1331
1215
  i0.ɵɵelementEnd()();
1332
1216
  } if (rf & 2) {
1333
- const ctx_r0 = i0.ɵɵnextContext(3);
1217
+ const ctx_r1 = i0.ɵɵnextContext(3);
1334
1218
  i0.ɵɵadvance(2);
1335
- i0.ɵɵrepeater(ctx_r0.telemetryInsights);
1219
+ i0.ɵɵrepeater(ctx_r1.telemetryInsights);
1336
1220
  } }
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);
1221
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1222
+ i0.ɵɵelementStart(0, "div", 28);
1223
+ i0.ɵɵelement(1, "i", 231);
1340
1224
  i0.ɵɵelementStart(2, "p");
1341
1225
  i0.ɵɵtext(3, "No optimization insights");
1342
1226
  i0.ɵɵelementEnd();
1343
- i0.ɵɵelementStart(4, "span", 58);
1227
+ i0.ɵɵelementStart(4, "span", 31);
1344
1228
  i0.ɵɵtext(5, "Insights will appear when potential optimizations are detected");
1345
1229
  i0.ɵɵelementEnd()();
1346
1230
  } }
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);
1231
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Template(rf, ctx) { if (rf & 1) {
1232
+ i0.ɵɵconditionalCreate(0, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_Template, 4, 0, "div", 203)(1, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_1_Template, 6, 0, "div", 28);
1349
1233
  } if (rf & 2) {
1350
- const ctx_r0 = i0.ɵɵnextContext(2);
1351
- i0.ɵɵconditional(ctx_r0.telemetryInsights.length > 0 ? 0 : 1);
1234
+ const ctx_r1 = i0.ɵɵnextContext(2);
1235
+ i0.ɵɵconditional(ctx_r1.telemetryInsights.length > 0 ? 0 : 1);
1352
1236
  } }
1353
- function SystemDiagnosticsComponent_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1237
+ function SystemDiagnosticsComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
1354
1238
  const _r7 = i0.ɵɵgetCurrentView();
1355
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 50)(2, "h3");
1356
- i0.ɵɵelement(3, "i", 25);
1239
+ i0.ɵɵelementStart(0, "div", 16)(1, "div", 22)(2, "h3");
1240
+ i0.ɵɵelement(3, "i", 63);
1357
1241
  i0.ɵɵtext(4, " Performance Telemetry ");
1358
1242
  i0.ɵɵelementEnd();
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);
1243
+ i0.ɵɵelementStart(5, "div", 24)(6, "div", 64)(7, "button", 65);
1244
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setTelemetrySource("client")); });
1245
+ i0.ɵɵelement(8, "i", 66);
1362
1246
  i0.ɵɵtext(9, " Client ");
1363
1247
  i0.ɵɵelementEnd();
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);
1248
+ i0.ɵɵelementStart(10, "button", 65);
1249
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setTelemetrySource("server")); });
1250
+ i0.ɵɵelement(11, "i", 67);
1367
1251
  i0.ɵɵtext(12, " Server ");
1368
1252
  i0.ɵɵelementEnd()();
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);
1253
+ i0.ɵɵelement(13, "span", 68);
1254
+ i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template, 6, 8)(15, SystemDiagnosticsComponent_Conditional_17_Conditional_15_Template, 5, 9, "span", 69);
1255
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_17_Conditional_16_Template, 2, 0, "span", 70);
1372
1256
  i0.ɵɵelementEnd()();
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);
1257
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_17_Conditional_17_Template, 5, 1, "div", 71);
1258
+ i0.ɵɵelementStart(18, "div", 72)(19, "button", 73);
1259
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("monitor")); });
1260
+ i0.ɵɵelement(20, "i", 74);
1377
1261
  i0.ɵɵelementStart(21, "span");
1378
1262
  i0.ɵɵtext(22, "Monitor");
1379
1263
  i0.ɵɵelementEnd()();
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);
1264
+ i0.ɵɵelementStart(23, "button", 73);
1265
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("overview")); });
1266
+ i0.ɵɵelement(24, "i", 75);
1383
1267
  i0.ɵɵelementStart(25, "span");
1384
1268
  i0.ɵɵtext(26, "Overview");
1385
1269
  i0.ɵɵelementEnd();
1386
- i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_47_Conditional_27_Template, 2, 1, "span", 100);
1270
+ i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_17_Conditional_27_Template, 2, 1, "span", 76);
1387
1271
  i0.ɵɵelementEnd();
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);
1272
+ i0.ɵɵelementStart(28, "button", 73);
1273
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("events")); });
1274
+ i0.ɵɵelement(29, "i", 77);
1391
1275
  i0.ɵɵelementStart(30, "span");
1392
1276
  i0.ɵɵtext(31, "Events");
1393
1277
  i0.ɵɵelementEnd();
1394
- i0.ɵɵelementStart(32, "span", 102);
1278
+ i0.ɵɵelementStart(32, "span", 78);
1395
1279
  i0.ɵɵtext(33);
1396
1280
  i0.ɵɵelementEnd()();
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);
1281
+ i0.ɵɵelementStart(34, "button", 73);
1282
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("patterns")); });
1283
+ i0.ɵɵelement(35, "i", 79);
1400
1284
  i0.ɵɵelementStart(36, "span");
1401
1285
  i0.ɵɵtext(37, "Patterns");
1402
1286
  i0.ɵɵelementEnd();
1403
- i0.ɵɵelementStart(38, "span", 102);
1287
+ i0.ɵɵelementStart(38, "span", 78);
1404
1288
  i0.ɵɵtext(39);
1405
1289
  i0.ɵɵelementEnd()();
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);
1290
+ i0.ɵɵelementStart(40, "button", 73);
1291
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("insights")); });
1292
+ i0.ɵɵelement(41, "i", 56);
1409
1293
  i0.ɵɵelementStart(42, "span");
1410
1294
  i0.ɵɵtext(43, "Insights");
1411
1295
  i0.ɵɵelementEnd();
1412
- i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_47_Conditional_44_Template, 2, 1, "span", 104);
1296
+ i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_17_Conditional_44_Template, 2, 1, "span", 80);
1413
1297
  i0.ɵɵelementEnd()();
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);
1298
+ i0.ɵɵelementStart(45, "div", 27);
1299
+ i0.ɵɵconditionalCreate(46, SystemDiagnosticsComponent_Conditional_17_Conditional_46_Template, 6, 0, "div", 81);
1300
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template, 48, 9, "div", 82);
1301
+ i0.ɵɵconditionalCreate(48, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Template, 24, 6);
1302
+ i0.ɵɵconditionalCreate(49, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template, 14, 5);
1303
+ i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template, 13, 5);
1304
+ i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Template, 2, 1);
1421
1305
  i0.ɵɵelementEnd()();
1422
1306
  } if (rf & 2) {
1423
- const ctx_r0 = i0.ɵɵnextContext();
1307
+ const ctx_r1 = i0.ɵɵnextContext();
1424
1308
  i0.ɵɵadvance(7);
1425
- i0.ɵɵclassProp("active", ctx_r0.telemetrySource === "client");
1309
+ i0.ɵɵclassProp("active", ctx_r1.telemetrySource === "client");
1426
1310
  i0.ɵɵadvance(3);
1427
- i0.ɵɵclassProp("active", ctx_r0.telemetrySource === "server");
1311
+ i0.ɵɵclassProp("active", ctx_r1.telemetrySource === "server");
1428
1312
  i0.ɵɵadvance(4);
1429
- i0.ɵɵconditional(ctx_r0.telemetrySource === "client" ? 14 : 15);
1313
+ i0.ɵɵconditional(ctx_r1.telemetrySource === "client" ? 14 : 15);
1430
1314
  i0.ɵɵadvance(2);
1431
- i0.ɵɵconditional(ctx_r0.serverTelemetryLoading ? 16 : -1);
1315
+ i0.ɵɵconditional(ctx_r1.serverTelemetryLoading ? 16 : -1);
1432
1316
  i0.ɵɵadvance();
1433
- i0.ɵɵconditional(ctx_r0.serverTelemetryError ? 17 : -1);
1317
+ i0.ɵɵconditional(ctx_r1.serverTelemetryError ? 17 : -1);
1434
1318
  i0.ɵɵadvance(2);
1435
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "monitor");
1319
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "monitor");
1436
1320
  i0.ɵɵadvance(4);
1437
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "overview");
1321
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "overview");
1438
1322
  i0.ɵɵadvance(4);
1439
- i0.ɵɵconditional(ctx_r0.slowQueries.length > 0 ? 27 : -1);
1323
+ i0.ɵɵconditional(ctx_r1.slowQueries.length > 0 ? 27 : -1);
1440
1324
  i0.ɵɵadvance();
1441
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "events");
1325
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "events");
1442
1326
  i0.ɵɵadvance(5);
1443
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalEvents) || 0);
1327
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalEvents) || 0);
1444
1328
  i0.ɵɵadvance();
1445
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "patterns");
1329
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "patterns");
1446
1330
  i0.ɵɵadvance(5);
1447
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalPatterns) || 0);
1331
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalPatterns) || 0);
1448
1332
  i0.ɵɵadvance();
1449
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "insights");
1333
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "insights");
1450
1334
  i0.ɵɵadvance(4);
1451
- i0.ɵɵconditional(ctx_r0.telemetryInsights.length > 0 ? 44 : -1);
1335
+ i0.ɵɵconditional(ctx_r1.telemetryInsights.length > 0 ? 44 : -1);
1452
1336
  i0.ɵɵadvance(2);
1453
- i0.ɵɵconditional(!ctx_r0.telemetryEnabled ? 46 : -1);
1337
+ i0.ɵɵconditional(!ctx_r1.telemetryEnabled ? 46 : -1);
1454
1338
  i0.ɵɵadvance();
1455
- i0.ɵɵconditional(ctx_r0.perfTab === "monitor" ? 47 : -1);
1339
+ i0.ɵɵconditional(ctx_r1.perfTab === "monitor" ? 47 : -1);
1456
1340
  i0.ɵɵadvance();
1457
- i0.ɵɵconditional(ctx_r0.perfTab === "overview" ? 48 : -1);
1341
+ i0.ɵɵconditional(ctx_r1.perfTab === "overview" ? 48 : -1);
1458
1342
  i0.ɵɵadvance();
1459
- i0.ɵɵconditional(ctx_r0.perfTab === "events" ? 49 : -1);
1343
+ i0.ɵɵconditional(ctx_r1.perfTab === "events" ? 49 : -1);
1460
1344
  i0.ɵɵadvance();
1461
- i0.ɵɵconditional(ctx_r0.perfTab === "patterns" ? 50 : -1);
1345
+ i0.ɵɵconditional(ctx_r1.perfTab === "patterns" ? 50 : -1);
1462
1346
  i0.ɵɵadvance();
1463
- i0.ɵɵconditional(ctx_r0.perfTab === "insights" ? 51 : -1);
1347
+ i0.ɵɵconditional(ctx_r1.perfTab === "insights" ? 51 : -1);
1464
1348
  } }
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);
1349
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1350
+ i0.ɵɵelementStart(0, "div", 81);
1351
+ i0.ɵɵelement(1, "i", 89);
1468
1352
  i0.ɵɵelementStart(2, "div")(3, "strong");
1469
1353
  i0.ɵɵtext(4, "Cache not initialized.");
1470
1354
  i0.ɵɵelementEnd();
1471
1355
  i0.ɵɵtext(5, " The LocalCacheManager requires initialization with a storage provider during app startup. ");
1472
1356
  i0.ɵɵelementEnd()();
1473
1357
  } }
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);
1358
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1359
+ i0.ɵɵelementStart(0, "code", 251);
1476
1360
  i0.ɵɵtext(1);
1477
1361
  i0.ɵɵelementEnd();
1478
1362
  } if (rf & 2) {
1479
1363
  const entry_r39 = i0.ɵɵnextContext().$implicit;
1480
- const ctx_r0 = i0.ɵɵnextContext(4);
1364
+ const ctx_r1 = i0.ɵɵnextContext(4);
1481
1365
  i0.ɵɵadvance();
1482
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(entry_r39.fingerprint, 20));
1366
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(entry_r39.fingerprint, 20));
1483
1367
  } }
1484
- function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Template(rf, ctx) { if (rf & 1) {
1368
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Template(rf, ctx) { if (rf & 1) {
1485
1369
  const _r38 = i0.ɵɵgetCurrentView();
1486
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 271);
1370
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 249);
1487
1371
  i0.ɵɵtext(3);
1488
1372
  i0.ɵɵelementEnd()();
1489
- i0.ɵɵelementStart(4, "td", 272);
1373
+ i0.ɵɵelementStart(4, "td", 250);
1490
1374
  i0.ɵɵtext(5);
1491
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Conditional_6_Template, 2, 1, "code", 273);
1375
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Conditional_6_Template, 2, 1, "code", 251);
1492
1376
  i0.ɵɵelementEnd();
1493
- i0.ɵɵelementStart(7, "td", 79);
1377
+ i0.ɵɵelementStart(7, "td", 54);
1494
1378
  i0.ɵɵtext(8);
1495
1379
  i0.ɵɵelementEnd();
1496
- i0.ɵɵelementStart(9, "td", 79);
1380
+ i0.ɵɵelementStart(9, "td", 54);
1497
1381
  i0.ɵɵtext(10);
1498
1382
  i0.ɵɵelementEnd();
1499
1383
  i0.ɵɵelementStart(11, "td");
@@ -1502,13 +1386,13 @@ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58
1502
1386
  i0.ɵɵelementStart(13, "td");
1503
1387
  i0.ɵɵtext(14);
1504
1388
  i0.ɵɵelementEnd();
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);
1389
+ i0.ɵɵelementStart(15, "td")(16, "button", 252);
1390
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Template_button_click_16_listener() { const entry_r39 = i0.ɵɵrestoreView(_r38).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.invalidateCacheEntry(entry_r39)); });
1391
+ i0.ɵɵelement(17, "i", 91);
1508
1392
  i0.ɵɵelementEnd()()();
1509
1393
  } if (rf & 2) {
1510
1394
  const entry_r39 = ctx.$implicit;
1511
- const ctx_r0 = i0.ɵɵnextContext(4);
1395
+ const ctx_r1 = i0.ɵɵnextContext(4);
1512
1396
  i0.ɵɵadvance(2);
1513
1397
  i0.ɵɵclassMap("type-" + entry_r39.type);
1514
1398
  i0.ɵɵadvance();
@@ -1518,54 +1402,54 @@ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58
1518
1402
  i0.ɵɵadvance();
1519
1403
  i0.ɵɵconditional(entry_r39.fingerprint ? 6 : -1);
1520
1404
  i0.ɵɵadvance(2);
1521
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes(entry_r39.sizeBytes));
1405
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes(entry_r39.sizeBytes));
1522
1406
  i0.ɵɵadvance(2);
1523
1407
  i0.ɵɵtextInterpolate(entry_r39.accessCount);
1524
1408
  i0.ɵɵadvance(2);
1525
- i0.ɵɵtextInterpolate(ctx_r0.formatCacheTimestamp(entry_r39.cachedAt));
1409
+ i0.ɵɵtextInterpolate(ctx_r1.formatCacheTimestamp(entry_r39.cachedAt));
1526
1410
  i0.ɵɵadvance(2);
1527
- i0.ɵɵtextInterpolate(ctx_r0.formatCacheTimestamp(entry_r39.lastAccessedAt));
1411
+ i0.ɵɵtextInterpolate(ctx_r1.formatCacheTimestamp(entry_r39.lastAccessedAt));
1528
1412
  } }
1529
- function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1530
- i0.ɵɵelementStart(0, "div", 270);
1413
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1414
+ i0.ɵɵelementStart(0, "div", 248);
1531
1415
  i0.ɵɵtext(1);
1532
1416
  i0.ɵɵelementEnd();
1533
1417
  } if (rf & 2) {
1534
- const ctx_r0 = i0.ɵɵnextContext(4);
1418
+ const ctx_r1 = i0.ɵɵnextContext(4);
1535
1419
  i0.ɵɵadvance();
1536
- i0.ɵɵtextInterpolate1(" Showing 50 of ", ctx_r0.filteredCacheEntries.length, " entries ");
1420
+ i0.ɵɵtextInterpolate1(" Showing 50 of ", ctx_r1.filteredCacheEntries.length, " entries ");
1537
1421
  } }
1538
- function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Template(rf, ctx) { if (rf & 1) {
1422
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template(rf, ctx) { if (rf & 1) {
1539
1423
  const _r37 = i0.ɵɵgetCurrentView();
1540
- i0.ɵɵelementStart(0, "div", 265)(1, "div", 266)(2, "h4");
1424
+ i0.ɵɵelementStart(0, "div", 243)(1, "div", 244)(2, "h4");
1541
1425
  i0.ɵɵtext(3, "Cache Entries");
1542
1426
  i0.ɵɵelementEnd();
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")); });
1427
+ i0.ɵɵelementStart(4, "div", 245)(5, "button", 161);
1428
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("all")); });
1545
1429
  i0.ɵɵtext(6, "All");
1546
1430
  i0.ɵɵelementEnd();
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")); });
1431
+ i0.ɵɵelementStart(7, "button", 161);
1432
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("dataset")); });
1549
1433
  i0.ɵɵtext(8, "Datasets");
1550
1434
  i0.ɵɵelementEnd();
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")); });
1435
+ i0.ɵɵelementStart(9, "button", 161);
1436
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runview")); });
1553
1437
  i0.ɵɵtext(10, "RunViews");
1554
1438
  i0.ɵɵelementEnd();
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")); });
1439
+ i0.ɵɵelementStart(11, "button", 161);
1440
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runquery")); });
1557
1441
  i0.ɵɵtext(12, "RunQueries");
1558
1442
  i0.ɵɵelementEnd()()();
1559
- i0.ɵɵelementStart(13, "div", 268)(14, "table", 269)(15, "thead")(16, "tr")(17, "th");
1443
+ i0.ɵɵelementStart(13, "div", 246)(14, "table", 247)(15, "thead")(16, "tr")(17, "th");
1560
1444
  i0.ɵɵtext(18, "Type");
1561
1445
  i0.ɵɵelementEnd();
1562
1446
  i0.ɵɵelementStart(19, "th");
1563
1447
  i0.ɵɵtext(20, "Name");
1564
1448
  i0.ɵɵelementEnd();
1565
- i0.ɵɵelementStart(21, "th", 79);
1449
+ i0.ɵɵelementStart(21, "th", 54);
1566
1450
  i0.ɵɵtext(22, "Size");
1567
1451
  i0.ɵɵelementEnd();
1568
- i0.ɵɵelementStart(23, "th", 79);
1452
+ i0.ɵɵelementStart(23, "th", 54);
1569
1453
  i0.ɵɵtext(24, "Hits");
1570
1454
  i0.ɵɵelementEnd();
1571
1455
  i0.ɵɵelementStart(25, "th");
@@ -1577,191 +1461,191 @@ function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58
1577
1461
  i0.ɵɵelement(29, "th");
1578
1462
  i0.ɵɵelementEnd()();
1579
1463
  i0.ɵɵelementStart(30, "tbody");
1580
- i0.ɵɵrepeaterCreate(31, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_For_32_Template, 18, 9, "tr", null, _forTrack6);
1464
+ i0.ɵɵrepeaterCreate(31, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Template, 18, 9, "tr", null, _forTrack6);
1581
1465
  i0.ɵɵelementEnd()()();
1582
- i0.ɵɵconditionalCreate(33, SystemDiagnosticsComponent_Conditional_48_Conditional_11_Conditional_58_Conditional_33_Template, 2, 1, "div", 270);
1466
+ i0.ɵɵconditionalCreate(33, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Conditional_33_Template, 2, 1, "div", 248);
1583
1467
  i0.ɵɵelementEnd();
1584
1468
  } if (rf & 2) {
1585
- const ctx_r0 = i0.ɵɵnextContext(3);
1469
+ const ctx_r1 = i0.ɵɵnextContext(3);
1586
1470
  i0.ɵɵadvance(5);
1587
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "all");
1471
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "all");
1588
1472
  i0.ɵɵadvance(2);
1589
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "dataset");
1473
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "dataset");
1590
1474
  i0.ɵɵadvance(2);
1591
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "runview");
1475
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "runview");
1592
1476
  i0.ɵɵadvance(2);
1593
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "runquery");
1477
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "runquery");
1594
1478
  i0.ɵɵadvance(20);
1595
- i0.ɵɵrepeater(ctx_r0.filteredCacheEntries.slice(0, 50));
1479
+ i0.ɵɵrepeater(ctx_r1.filteredCacheEntries.slice(0, 50));
1596
1480
  i0.ɵɵadvance(2);
1597
- i0.ɵɵconditional(ctx_r0.filteredCacheEntries.length > 50 ? 33 : -1);
1481
+ i0.ɵɵconditional(ctx_r1.filteredCacheEntries.length > 50 ? 33 : -1);
1598
1482
  } }
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);
1483
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1484
+ i0.ɵɵelementStart(0, "div", 28);
1485
+ i0.ɵɵelement(1, "i", 232);
1602
1486
  i0.ɵɵelementStart(2, "p");
1603
1487
  i0.ɵɵtext(3, "No cached data");
1604
1488
  i0.ɵɵelementEnd();
1605
- i0.ɵɵelementStart(4, "span", 58);
1489
+ i0.ɵɵelementStart(4, "span", 31);
1606
1490
  i0.ɵɵtext(5, "Data will be cached as you use the application");
1607
1491
  i0.ɵɵelementEnd()();
1608
1492
  } }
1609
- function SystemDiagnosticsComponent_Conditional_48_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1493
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1610
1494
  const _r36 = i0.ɵɵgetCurrentView();
1611
- i0.ɵɵelementStart(0, "div", 255)(1, "div", 146)(2, "div", 147);
1495
+ i0.ɵɵelementStart(0, "div", 233)(1, "div", 123)(2, "div", 124);
1612
1496
  i0.ɵɵtext(3);
1613
1497
  i0.ɵɵelementEnd();
1614
- i0.ɵɵelementStart(4, "div", 148);
1498
+ i0.ɵɵelementStart(4, "div", 125);
1615
1499
  i0.ɵɵtext(5, "Total Entries");
1616
1500
  i0.ɵɵelementEnd()();
1617
- i0.ɵɵelementStart(6, "div", 146)(7, "div", 147);
1501
+ i0.ɵɵelementStart(6, "div", 123)(7, "div", 124);
1618
1502
  i0.ɵɵtext(8);
1619
1503
  i0.ɵɵelementEnd();
1620
- i0.ɵɵelementStart(9, "div", 148);
1504
+ i0.ɵɵelementStart(9, "div", 125);
1621
1505
  i0.ɵɵtext(10, "Total Size");
1622
1506
  i0.ɵɵelementEnd()();
1623
- i0.ɵɵelementStart(11, "div", 146)(12, "div", 147);
1507
+ i0.ɵɵelementStart(11, "div", 123)(12, "div", 124);
1624
1508
  i0.ɵɵtext(13);
1625
1509
  i0.ɵɵelementEnd();
1626
- i0.ɵɵelementStart(14, "div", 148);
1510
+ i0.ɵɵelementStart(14, "div", 125);
1627
1511
  i0.ɵɵtext(15, "Cache Hits");
1628
1512
  i0.ɵɵelementEnd()();
1629
- i0.ɵɵelementStart(16, "div", 146)(17, "div", 147);
1513
+ i0.ɵɵelementStart(16, "div", 123)(17, "div", 124);
1630
1514
  i0.ɵɵtext(18);
1631
1515
  i0.ɵɵelementEnd();
1632
- i0.ɵɵelementStart(19, "div", 148);
1516
+ i0.ɵɵelementStart(19, "div", 125);
1633
1517
  i0.ɵɵtext(20, "Cache Misses");
1634
1518
  i0.ɵɵelementEnd()();
1635
- i0.ɵɵelementStart(21, "div", 146)(22, "div", 147);
1519
+ i0.ɵɵelementStart(21, "div", 123)(22, "div", 124);
1636
1520
  i0.ɵɵtext(23);
1637
1521
  i0.ɵɵpipe(24, "number");
1638
1522
  i0.ɵɵelementEnd();
1639
- i0.ɵɵelementStart(25, "div", 148);
1523
+ i0.ɵɵelementStart(25, "div", 125);
1640
1524
  i0.ɵɵtext(26, "Hit Rate");
1641
1525
  i0.ɵɵelementEnd()()();
1642
- i0.ɵɵelementStart(27, "div", 256)(28, "h4");
1526
+ i0.ɵɵelementStart(27, "div", 234)(28, "h4");
1643
1527
  i0.ɵɵtext(29, "By Type");
1644
1528
  i0.ɵɵelementEnd();
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);
1529
+ i0.ɵɵelementStart(30, "div", 235)(31, "div", 236);
1530
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template_div_click_31_listener() { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("dataset")); });
1531
+ i0.ɵɵelementStart(32, "span", 237);
1532
+ i0.ɵɵelement(33, "i", 42);
1649
1533
  i0.ɵɵelementEnd();
1650
- i0.ɵɵelementStart(34, "span", 260);
1534
+ i0.ɵɵelementStart(34, "span", 238);
1651
1535
  i0.ɵɵtext(35, "Datasets");
1652
1536
  i0.ɵɵelementEnd();
1653
- i0.ɵɵelementStart(36, "span", 261);
1537
+ i0.ɵɵelementStart(36, "span", 239);
1654
1538
  i0.ɵɵtext(37);
1655
1539
  i0.ɵɵelementEnd();
1656
- i0.ɵɵelementStart(38, "span", 262);
1540
+ i0.ɵɵelementStart(38, "span", 240);
1657
1541
  i0.ɵɵtext(39);
1658
1542
  i0.ɵɵelementEnd()();
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);
1543
+ i0.ɵɵelementStart(40, "div", 236);
1544
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template_div_click_40_listener() { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runview")); });
1545
+ i0.ɵɵelementStart(41, "span", 237);
1546
+ i0.ɵɵelement(42, "i", 241);
1663
1547
  i0.ɵɵelementEnd();
1664
- i0.ɵɵelementStart(43, "span", 260);
1548
+ i0.ɵɵelementStart(43, "span", 238);
1665
1549
  i0.ɵɵtext(44, "RunViews");
1666
1550
  i0.ɵɵelementEnd();
1667
- i0.ɵɵelementStart(45, "span", 261);
1551
+ i0.ɵɵelementStart(45, "span", 239);
1668
1552
  i0.ɵɵtext(46);
1669
1553
  i0.ɵɵelementEnd();
1670
- i0.ɵɵelementStart(47, "span", 262);
1554
+ i0.ɵɵelementStart(47, "span", 240);
1671
1555
  i0.ɵɵtext(48);
1672
1556
  i0.ɵɵelementEnd()();
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);
1557
+ i0.ɵɵelementStart(49, "div", 236);
1558
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template_div_click_49_listener() { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runquery")); });
1559
+ i0.ɵɵelementStart(50, "span", 237);
1560
+ i0.ɵɵelement(51, "i", 242);
1677
1561
  i0.ɵɵelementEnd();
1678
- i0.ɵɵelementStart(52, "span", 260);
1562
+ i0.ɵɵelementStart(52, "span", 238);
1679
1563
  i0.ɵɵtext(53, "RunQueries");
1680
1564
  i0.ɵɵelementEnd();
1681
- i0.ɵɵelementStart(54, "span", 261);
1565
+ i0.ɵɵelementStart(54, "span", 239);
1682
1566
  i0.ɵɵtext(55);
1683
1567
  i0.ɵɵelementEnd();
1684
- i0.ɵɵelementStart(56, "span", 262);
1568
+ i0.ɵɵelementStart(56, "span", 240);
1685
1569
  i0.ɵɵtext(57);
1686
1570
  i0.ɵɵelementEnd()()()();
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);
1571
+ i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template, 34, 9, "div", 243)(59, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_59_Template, 6, 0, "div", 28);
1688
1572
  } if (rf & 2) {
1689
- const ctx_r0 = i0.ɵɵnextContext(2);
1573
+ const ctx_r1 = i0.ɵɵnextContext(2);
1690
1574
  i0.ɵɵadvance(3);
1691
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.totalEntries) || 0);
1575
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.totalEntries) || 0);
1692
1576
  i0.ɵɵadvance(5);
1693
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.totalSizeBytes) || 0));
1577
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.totalSizeBytes) || 0));
1694
1578
  i0.ɵɵadvance(5);
1695
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.hits) || 0);
1579
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.hits) || 0);
1696
1580
  i0.ɵɵadvance(5);
1697
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.misses) || 0);
1581
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.misses) || 0);
1698
1582
  i0.ɵɵadvance(5);
1699
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(24, 12, ctx_r0.cacheHitRate, "1.1-1"), "%");
1583
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(24, 12, ctx_r1.cacheHitRate, "1.1-1"), "%");
1700
1584
  i0.ɵɵadvance(14);
1701
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.dataset == null ? null : ctx_r0.cacheStats.byType.dataset.count) || 0);
1585
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.dataset == null ? null : ctx_r1.cacheStats.byType.dataset.count) || 0);
1702
1586
  i0.ɵɵadvance(2);
1703
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.dataset == null ? null : ctx_r0.cacheStats.byType.dataset.sizeBytes) || 0));
1587
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.dataset == null ? null : ctx_r1.cacheStats.byType.dataset.sizeBytes) || 0));
1704
1588
  i0.ɵɵadvance(7);
1705
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runview == null ? null : ctx_r0.cacheStats.byType.runview.count) || 0);
1589
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runview == null ? null : ctx_r1.cacheStats.byType.runview.count) || 0);
1706
1590
  i0.ɵɵadvance(2);
1707
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runview == null ? null : ctx_r0.cacheStats.byType.runview.sizeBytes) || 0));
1591
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runview == null ? null : ctx_r1.cacheStats.byType.runview.sizeBytes) || 0));
1708
1592
  i0.ɵɵadvance(7);
1709
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runquery == null ? null : ctx_r0.cacheStats.byType.runquery.count) || 0);
1593
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runquery == null ? null : ctx_r1.cacheStats.byType.runquery.count) || 0);
1710
1594
  i0.ɵɵadvance(2);
1711
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runquery == null ? null : ctx_r0.cacheStats.byType.runquery.sizeBytes) || 0));
1595
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runquery == null ? null : ctx_r1.cacheStats.byType.runquery.sizeBytes) || 0));
1712
1596
  i0.ɵɵadvance();
1713
- i0.ɵɵconditional(ctx_r0.filteredCacheEntries.length > 0 ? 58 : ctx_r0.cacheStats && ctx_r0.cacheStats.totalEntries === 0 ? 59 : -1);
1597
+ i0.ɵɵconditional(ctx_r1.filteredCacheEntries.length > 0 ? 58 : ctx_r1.cacheStats && ctx_r1.cacheStats.totalEntries === 0 ? 59 : -1);
1714
1598
  } }
1715
- function SystemDiagnosticsComponent_Conditional_48_Template(rf, ctx) { if (rf & 1) {
1599
+ function SystemDiagnosticsComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1716
1600
  const _r35 = i0.ɵɵgetCurrentView();
1717
- i0.ɵɵelementStart(0, "div", 28)(1, "div", 50)(2, "h3");
1718
- i0.ɵɵelement(3, "i", 26);
1601
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 22)(2, "h3");
1602
+ i0.ɵɵelement(3, "i", 232);
1719
1603
  i0.ɵɵtext(4, " Local Cache ");
1720
1604
  i0.ɵɵelementEnd();
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);
1605
+ i0.ɵɵelementStart(5, "div", 24)(6, "button", 25);
1606
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.clearAllCache()); });
1607
+ i0.ɵɵelement(7, "i", 85);
1724
1608
  i0.ɵɵtext(8, " Clear All ");
1725
1609
  i0.ɵɵelementEnd()()();
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);
1610
+ i0.ɵɵelementStart(9, "div", 27);
1611
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_18_Conditional_10_Template, 6, 0, "div", 81)(11, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template, 60, 15);
1728
1612
  i0.ɵɵelementEnd()();
1729
1613
  } if (rf & 2) {
1730
- const ctx_r0 = i0.ɵɵnextContext();
1614
+ const ctx_r1 = i0.ɵɵnextContext();
1731
1615
  i0.ɵɵadvance(6);
1732
- i0.ɵɵproperty("disabled", !ctx_r0.cacheStats || ctx_r0.cacheStats.totalEntries === 0);
1616
+ i0.ɵɵproperty("disabled", !ctx_r1.cacheStats || ctx_r1.cacheStats.totalEntries === 0);
1733
1617
  i0.ɵɵadvance(4);
1734
- i0.ɵɵconditional(!ctx_r0.cacheInitialized ? 10 : 11);
1618
+ i0.ɵɵconditional(!ctx_r1.cacheInitialized ? 10 : 11);
1735
1619
  } }
1736
- function SystemDiagnosticsComponent_Conditional_57_Conditional_38_Template(rf, ctx) { if (rf & 1) {
1737
- i0.ɵɵelementStart(0, "div", 285)(1, "span", 286);
1620
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_38_Template(rf, ctx) { if (rf & 1) {
1621
+ i0.ɵɵelementStart(0, "div", 263)(1, "span", 264);
1738
1622
  i0.ɵɵtext(2, "Entity:");
1739
1623
  i0.ɵɵelementEnd();
1740
- i0.ɵɵelementStart(3, "span", 294);
1624
+ i0.ɵɵelementStart(3, "span", 272);
1741
1625
  i0.ɵɵtext(4);
1742
1626
  i0.ɵɵelementEnd()();
1743
1627
  } if (rf & 2) {
1744
- const ctx_r0 = i0.ɵɵnextContext(2);
1628
+ const ctx_r1 = i0.ɵɵnextContext(2);
1745
1629
  i0.ɵɵadvance(4);
1746
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.entityName);
1630
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.event.entityName);
1747
1631
  } }
1748
- function SystemDiagnosticsComponent_Conditional_57_Conditional_39_Template(rf, ctx) { if (rf & 1) {
1749
- i0.ɵɵelementStart(0, "div", 285)(1, "span", 286);
1632
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_39_Template(rf, ctx) { if (rf & 1) {
1633
+ i0.ɵɵelementStart(0, "div", 263)(1, "span", 264);
1750
1634
  i0.ɵɵtext(2, "Filter:");
1751
1635
  i0.ɵɵelementEnd();
1752
- i0.ɵɵelementStart(3, "code", 295);
1636
+ i0.ɵɵelementStart(3, "code", 273);
1753
1637
  i0.ɵɵtext(4);
1754
1638
  i0.ɵɵelementEnd()();
1755
1639
  } if (rf & 2) {
1756
- const ctx_r0 = i0.ɵɵnextContext(2);
1640
+ const ctx_r1 = i0.ɵɵnextContext(2);
1757
1641
  i0.ɵɵadvance(4);
1758
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.filter);
1642
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.event.filter);
1759
1643
  } }
1760
- function SystemDiagnosticsComponent_Conditional_57_For_46_Template(rf, ctx) { if (rf & 1) {
1761
- i0.ɵɵelementStart(0, "div", 290)(1, "span", 296);
1644
+ function SystemDiagnosticsComponent_Conditional_27_For_46_Template(rf, ctx) { if (rf & 1) {
1645
+ i0.ɵɵelementStart(0, "div", 268)(1, "span", 274);
1762
1646
  i0.ɵɵtext(2);
1763
1647
  i0.ɵɵelementEnd();
1764
- i0.ɵɵelementStart(3, "span", 297);
1648
+ i0.ɵɵelementStart(3, "span", 275);
1765
1649
  i0.ɵɵtext(4);
1766
1650
  i0.ɵɵelementEnd()();
1767
1651
  } if (rf & 2) {
@@ -1771,178 +1655,178 @@ function SystemDiagnosticsComponent_Conditional_57_For_46_Template(rf, ctx) { if
1771
1655
  i0.ɵɵadvance(2);
1772
1656
  i0.ɵɵtextInterpolate(param_r41.value);
1773
1657
  } }
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);
1658
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_47_Conditional_23_Template(rf, ctx) { if (rf & 1) {
1659
+ i0.ɵɵelementStart(0, "div", 279);
1660
+ i0.ɵɵelement(1, "i", 89);
1777
1661
  i0.ɵɵtext(2);
1778
1662
  i0.ɵɵelementEnd();
1779
1663
  } if (rf & 2) {
1780
- const ctx_r0 = i0.ɵɵnextContext(3);
1664
+ const ctx_r1 = i0.ɵɵnextContext(3);
1781
1665
  i0.ɵɵadvance(2);
1782
- i0.ɵɵtextInterpolate1(" This pattern has been called ", ctx_r0.eventDetailPanel.relatedPattern.count, " times. Consider caching or batching. ");
1666
+ i0.ɵɵtextInterpolate1(" This pattern has been called ", ctx_r1.eventDetailPanel.relatedPattern.count, " times. Consider caching or batching. ");
1783
1667
  } }
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);
1668
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1669
+ i0.ɵɵelementStart(0, "div", 219)(1, "h4");
1670
+ i0.ɵɵelement(2, "i", 79);
1787
1671
  i0.ɵɵtext(3, " Related Pattern");
1788
1672
  i0.ɵɵelementEnd();
1789
- i0.ɵɵelementStart(4, "div", 298)(5, "div", 299)(6, "span", 300);
1673
+ i0.ɵɵelementStart(4, "div", 276)(5, "div", 277)(6, "span", 278);
1790
1674
  i0.ɵɵtext(7);
1791
1675
  i0.ɵɵelementEnd();
1792
- i0.ɵɵelementStart(8, "span", 66);
1676
+ i0.ɵɵelementStart(8, "span", 40);
1793
1677
  i0.ɵɵtext(9, "Total Calls");
1794
1678
  i0.ɵɵelementEnd()();
1795
- i0.ɵɵelementStart(10, "div", 299)(11, "span", 300);
1679
+ i0.ɵɵelementStart(10, "div", 277)(11, "span", 278);
1796
1680
  i0.ɵɵtext(12);
1797
1681
  i0.ɵɵpipe(13, "number");
1798
1682
  i0.ɵɵelementEnd();
1799
- i0.ɵɵelementStart(14, "span", 66);
1683
+ i0.ɵɵelementStart(14, "span", 40);
1800
1684
  i0.ɵɵtext(15, "Avg Duration");
1801
1685
  i0.ɵɵelementEnd()();
1802
- i0.ɵɵelementStart(16, "div", 299)(17, "span", 300);
1686
+ i0.ɵɵelementStart(16, "div", 277)(17, "span", 278);
1803
1687
  i0.ɵɵtext(18);
1804
1688
  i0.ɵɵpipe(19, "number");
1805
1689
  i0.ɵɵpipe(20, "number");
1806
1690
  i0.ɵɵelementEnd();
1807
- i0.ɵɵelementStart(21, "span", 66);
1691
+ i0.ɵɵelementStart(21, "span", 40);
1808
1692
  i0.ɵɵtext(22, "Range");
1809
1693
  i0.ɵɵelementEnd()()();
1810
- i0.ɵɵconditionalCreate(23, SystemDiagnosticsComponent_Conditional_57_Conditional_47_Conditional_23_Template, 3, 1, "div", 301);
1694
+ i0.ɵɵconditionalCreate(23, SystemDiagnosticsComponent_Conditional_27_Conditional_47_Conditional_23_Template, 3, 1, "div", 279);
1811
1695
  i0.ɵɵelementEnd();
1812
1696
  } if (rf & 2) {
1813
- const ctx_r0 = i0.ɵɵnextContext(2);
1697
+ const ctx_r1 = i0.ɵɵnextContext(2);
1814
1698
  i0.ɵɵadvance(7);
1815
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.relatedPattern.count);
1699
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.relatedPattern.count);
1816
1700
  i0.ɵɵadvance(5);
1817
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(13, 5, ctx_r0.eventDetailPanel.relatedPattern.avgElapsedMs, "1.1-1"), "ms");
1701
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(13, 5, ctx_r1.eventDetailPanel.relatedPattern.avgElapsedMs, "1.1-1"), "ms");
1818
1702
  i0.ɵɵadvance(6);
1819
- i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind2(19, 8, ctx_r0.eventDetailPanel.relatedPattern.minElapsedMs, "1.0-0"), " - ", i0.ɵɵpipeBind2(20, 11, ctx_r0.eventDetailPanel.relatedPattern.maxElapsedMs, "1.0-0"), "ms");
1703
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind2(19, 8, ctx_r1.eventDetailPanel.relatedPattern.minElapsedMs, "1.0-0"), " - ", i0.ɵɵpipeBind2(20, 11, ctx_r1.eventDetailPanel.relatedPattern.maxElapsedMs, "1.0-0"), "ms");
1820
1704
  i0.ɵɵadvance(5);
1821
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.relatedPattern.count >= 2 ? 23 : -1);
1705
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.relatedPattern.count >= 2 ? 23 : -1);
1822
1706
  } }
1823
- function SystemDiagnosticsComponent_Conditional_57_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1707
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1824
1708
  const _r42 = i0.ɵɵgetCurrentView();
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);
1709
+ i0.ɵɵelementStart(0, "button", 270);
1710
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Conditional_52_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.filterByEntity(ctx_r1.eventDetailPanel.event.entityName)); });
1711
+ i0.ɵɵelement(1, "i", 202);
1828
1712
  i0.ɵɵtext(2, " Filter by Entity ");
1829
1713
  i0.ɵɵelementEnd();
1830
1714
  } }
1831
- function SystemDiagnosticsComponent_Conditional_57_Template(rf, ctx) { if (rf & 1) {
1715
+ function SystemDiagnosticsComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1832
1716
  const _r40 = i0.ɵɵgetCurrentView();
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()); });
1717
+ i0.ɵɵelementStart(0, "div", 253);
1718
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEventDetailPanel()); });
1835
1719
  i0.ɵɵelementEnd();
1836
- i0.ɵɵelementStart(1, "div", 276)(2, "div", 50)(3, "div", 277)(4, "span", 220);
1720
+ i0.ɵɵelementStart(1, "div", 254)(2, "div", 22)(3, "div", 255)(4, "span", 197);
1837
1721
  i0.ɵɵtext(5);
1838
1722
  i0.ɵɵelementEnd();
1839
1723
  i0.ɵɵelementStart(6, "h3");
1840
1724
  i0.ɵɵtext(7, "Event Details");
1841
1725
  i0.ɵɵelementEnd()();
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);
1726
+ i0.ɵɵelementStart(8, "button", 256);
1727
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEventDetailPanel()); });
1728
+ i0.ɵɵelement(9, "i", 91);
1845
1729
  i0.ɵɵelementEnd()();
1846
- i0.ɵɵelementStart(10, "div", 279)(11, "div", 280)(12, "div", 281)(13, "div", 282);
1730
+ i0.ɵɵelementStart(10, "div", 257)(11, "div", 258)(12, "div", 259)(13, "div", 260);
1847
1731
  i0.ɵɵtext(14);
1848
1732
  i0.ɵɵpipe(15, "number");
1849
1733
  i0.ɵɵelementEnd();
1850
- i0.ɵɵelementStart(16, "div", 283);
1734
+ i0.ɵɵelementStart(16, "div", 261);
1851
1735
  i0.ɵɵtext(17, "Duration");
1852
1736
  i0.ɵɵelementEnd()();
1853
- i0.ɵɵelementStart(18, "div", 281)(19, "div", 282);
1737
+ i0.ɵɵelementStart(18, "div", 259)(19, "div", 260);
1854
1738
  i0.ɵɵtext(20);
1855
1739
  i0.ɵɵelementEnd();
1856
- i0.ɵɵelementStart(21, "div", 283);
1740
+ i0.ɵɵelementStart(21, "div", 261);
1857
1741
  i0.ɵɵtext(22, "Time");
1858
1742
  i0.ɵɵelementEnd()();
1859
- i0.ɵɵelementStart(23, "div", 281)(24, "div", 282);
1743
+ i0.ɵɵelementStart(23, "div", 259)(24, "div", 260);
1860
1744
  i0.ɵɵtext(25);
1861
1745
  i0.ɵɵelementEnd();
1862
- i0.ɵɵelementStart(26, "div", 283);
1746
+ i0.ɵɵelementStart(26, "div", 261);
1863
1747
  i0.ɵɵtext(27, "Relative");
1864
1748
  i0.ɵɵelementEnd()()();
1865
- i0.ɵɵelementStart(28, "div", 242)(29, "h4");
1866
- i0.ɵɵelement(30, "i", 264);
1749
+ i0.ɵɵelementStart(28, "div", 219)(29, "h4");
1750
+ i0.ɵɵelement(30, "i", 242);
1867
1751
  i0.ɵɵtext(31, " Operation");
1868
1752
  i0.ɵɵelementEnd();
1869
- i0.ɵɵelementStart(32, "div", 284)(33, "div", 285)(34, "span", 286);
1753
+ i0.ɵɵelementStart(32, "div", 262)(33, "div", 263)(34, "span", 264);
1870
1754
  i0.ɵɵtext(35, "Operation:");
1871
1755
  i0.ɵɵelementEnd();
1872
- i0.ɵɵelementStart(36, "span", 287);
1756
+ i0.ɵɵelementStart(36, "span", 265);
1873
1757
  i0.ɵɵtext(37);
1874
1758
  i0.ɵɵelementEnd()();
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);
1759
+ i0.ɵɵconditionalCreate(38, SystemDiagnosticsComponent_Conditional_27_Conditional_38_Template, 5, 1, "div", 263);
1760
+ i0.ɵɵconditionalCreate(39, SystemDiagnosticsComponent_Conditional_27_Conditional_39_Template, 5, 1, "div", 263);
1877
1761
  i0.ɵɵelementEnd()();
1878
- i0.ɵɵelementStart(40, "div", 242)(41, "h4");
1879
- i0.ɵɵelement(42, "i", 288);
1762
+ i0.ɵɵelementStart(40, "div", 219)(41, "h4");
1763
+ i0.ɵɵelement(42, "i", 266);
1880
1764
  i0.ɵɵtext(43, " Parameters");
1881
1765
  i0.ɵɵelementEnd();
1882
- i0.ɵɵelementStart(44, "div", 289);
1883
- i0.ɵɵrepeaterCreate(45, SystemDiagnosticsComponent_Conditional_57_For_46_Template, 5, 2, "div", 290, _forTrack6);
1766
+ i0.ɵɵelementStart(44, "div", 267);
1767
+ i0.ɵɵrepeaterCreate(45, SystemDiagnosticsComponent_Conditional_27_For_46_Template, 5, 2, "div", 268, _forTrack6);
1884
1768
  i0.ɵɵelementEnd()();
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);
1769
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_27_Conditional_47_Template, 24, 14, "div", 219);
1770
+ i0.ɵɵelementStart(48, "div", 269)(49, "button", 270);
1771
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyEventToClipboard(ctx_r1.eventDetailPanel.event)); });
1772
+ i0.ɵɵelement(50, "i", 47);
1889
1773
  i0.ɵɵtext(51, " Copy JSON ");
1890
1774
  i0.ɵɵelementEnd();
1891
- i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_57_Conditional_52_Template, 3, 0, "button", 293);
1775
+ i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_27_Conditional_52_Template, 3, 0, "button", 271);
1892
1776
  i0.ɵɵelementEnd()()();
1893
1777
  } if (rf & 2) {
1894
- const ctx_r0 = i0.ɵɵnextContext();
1778
+ const ctx_r1 = i0.ɵɵnextContext();
1895
1779
  i0.ɵɵadvance();
1896
- i0.ɵɵclassProp("open", ctx_r0.eventDetailPanel.isOpen);
1780
+ i0.ɵɵclassProp("open", ctx_r1.eventDetailPanel.isOpen);
1897
1781
  i0.ɵɵadvance(3);
1898
- i0.ɵɵclassMap("cat-" + ctx_r0.eventDetailPanel.event.category.toLowerCase());
1782
+ i0.ɵɵclassMap("cat-" + ctx_r1.eventDetailPanel.event.category.toLowerCase());
1899
1783
  i0.ɵɵadvance();
1900
- i0.ɵɵtextInterpolate1(" ", ctx_r0.eventDetailPanel.event.category, " ");
1784
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.eventDetailPanel.event.category, " ");
1901
1785
  i0.ɵɵadvance(8);
1902
- i0.ɵɵclassProp("slow", (ctx_r0.eventDetailPanel.event.elapsedMs || 0) >= ctx_r0.slowQueryThresholdMs);
1786
+ i0.ɵɵclassProp("slow", (ctx_r1.eventDetailPanel.event.elapsedMs || 0) >= ctx_r1.slowQueryThresholdMs);
1903
1787
  i0.ɵɵadvance();
1904
- i0.ɵɵtextInterpolate1(" ", ctx_r0.eventDetailPanel.event.elapsedMs !== undefined ? i0.ɵɵpipeBind2(15, 15, ctx_r0.eventDetailPanel.event.elapsedMs, "1.0-0") + "ms" : "In Progress", " ");
1788
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.eventDetailPanel.event.elapsedMs !== undefined ? i0.ɵɵpipeBind2(15, 15, ctx_r1.eventDetailPanel.event.elapsedMs, "1.0-0") + "ms" : "In Progress", " ");
1905
1789
  i0.ɵɵadvance(6);
1906
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(ctx_r0.eventDetailPanel.event.timestamp));
1790
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(ctx_r1.eventDetailPanel.event.timestamp));
1907
1791
  i0.ɵɵadvance(5);
1908
- i0.ɵɵtextInterpolate1("+", ctx_r0.formatRelativeTime(ctx_r0.eventDetailPanel.event.startTime - ctx_r0.telemetryBootTime));
1792
+ i0.ɵɵtextInterpolate1("+", ctx_r1.formatRelativeTime(ctx_r1.eventDetailPanel.event.startTime - ctx_r1.telemetryBootTime));
1909
1793
  i0.ɵɵadvance(12);
1910
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.operation);
1794
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.event.operation);
1911
1795
  i0.ɵɵadvance();
1912
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.entityName ? 38 : -1);
1796
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.event.entityName ? 38 : -1);
1913
1797
  i0.ɵɵadvance();
1914
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.filter ? 39 : -1);
1798
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.event.filter ? 39 : -1);
1915
1799
  i0.ɵɵadvance(6);
1916
- i0.ɵɵrepeater(ctx_r0.getEventParams(ctx_r0.eventDetailPanel.event));
1800
+ i0.ɵɵrepeater(ctx_r1.getEventParams(ctx_r1.eventDetailPanel.event));
1917
1801
  i0.ɵɵadvance(2);
1918
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.relatedPattern ? 47 : -1);
1802
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.relatedPattern ? 47 : -1);
1919
1803
  i0.ɵɵadvance(5);
1920
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.entityName ? 52 : -1);
1804
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.event.entityName ? 52 : -1);
1921
1805
  } }
1922
- function SystemDiagnosticsComponent_Conditional_58_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1923
- i0.ɵɵelementStart(0, "div", 307)(1, "span", 148);
1806
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1807
+ i0.ɵɵelementStart(0, "div", 285)(1, "span", 125);
1924
1808
  i0.ɵɵtext(2, "Last Loaded");
1925
1809
  i0.ɵɵelementEnd();
1926
- i0.ɵɵelementStart(3, "span", 147);
1810
+ i0.ɵɵelementStart(3, "span", 124);
1927
1811
  i0.ɵɵtext(4);
1928
1812
  i0.ɵɵelementEnd()();
1929
1813
  } if (rf & 2) {
1930
- const ctx_r0 = i0.ɵɵnextContext(2);
1814
+ const ctx_r1 = i0.ɵɵnextContext(2);
1931
1815
  i0.ɵɵadvance(4);
1932
- i0.ɵɵtextInterpolate(ctx_r0.formatTime(ctx_r0.engineDetailPanel.engine.lastLoadedAt));
1816
+ i0.ɵɵtextInterpolate(ctx_r1.formatTime(ctx_r1.engineDetailPanel.engine.lastLoadedAt));
1933
1817
  } }
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);
1818
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_35_Template(rf, ctx) { if (rf & 1) {
1819
+ i0.ɵɵelementStart(0, "div", 165);
1820
+ i0.ɵɵelement(1, "i", 30);
1937
1821
  i0.ɵɵelementStart(2, "p");
1938
1822
  i0.ɵɵtext(3, "No config items found");
1939
1823
  i0.ɵɵelementEnd()();
1940
1824
  } }
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);
1825
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1826
+ i0.ɵɵelementStart(0, "div", 299)(1, "span", 220);
1943
1827
  i0.ɵɵtext(2, "Filter:");
1944
1828
  i0.ɵɵelementEnd();
1945
- i0.ɵɵelementStart(3, "code", 322);
1829
+ i0.ɵɵelementStart(3, "code", 300);
1946
1830
  i0.ɵɵtext(4);
1947
1831
  i0.ɵɵelementEnd()();
1948
1832
  } if (rf & 2) {
@@ -1950,11 +1834,11 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
1950
1834
  i0.ɵɵadvance(4);
1951
1835
  i0.ɵɵtextInterpolate(item_r45.filter);
1952
1836
  } }
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);
1837
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1838
+ i0.ɵɵelementStart(0, "div", 299)(1, "span", 220);
1955
1839
  i0.ɵɵtext(2, "Order By:");
1956
1840
  i0.ɵɵelementEnd();
1957
- i0.ɵɵelementStart(3, "code", 322);
1841
+ i0.ɵɵelementStart(3, "code", 300);
1958
1842
  i0.ɵɵtext(4);
1959
1843
  i0.ɵɵelementEnd()();
1960
1844
  } if (rf & 2) {
@@ -1962,11 +1846,11 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
1962
1846
  i0.ɵɵadvance(4);
1963
1847
  i0.ɵɵtextInterpolate(item_r45.orderBy);
1964
1848
  } }
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);
1849
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1850
+ i0.ɵɵelementStart(0, "div", 301)(1, "span", 220);
1967
1851
  i0.ɵɵtext(2, "Error:");
1968
1852
  i0.ɵɵelementEnd();
1969
- i0.ɵɵelementStart(3, "span", 325);
1853
+ i0.ɵɵelementStart(3, "span", 303);
1970
1854
  i0.ɵɵtext(4);
1971
1855
  i0.ɵɵelementEnd()();
1972
1856
  } if (rf & 2) {
@@ -1974,28 +1858,28 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
1974
1858
  i0.ɵɵadvance(4);
1975
1859
  i0.ɵɵtextInterpolate(item_r45.errorMessage);
1976
1860
  } }
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);
1861
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1862
+ i0.ɵɵelement(0, "i", 312);
1979
1863
  } }
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);
1864
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1865
+ i0.ɵɵelement(0, "i", 313);
1982
1866
  } }
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);
1867
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1868
+ i0.ɵɵelement(0, "i", 312);
1985
1869
  } }
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);
1870
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1871
+ i0.ɵɵelement(0, "i", 21);
1988
1872
  } }
1989
- function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1873
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1990
1874
  const _r46 = i0.ɵɵgetCurrentView();
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);
1875
+ i0.ɵɵelementStart(0, "button", 311);
1876
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_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_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.loadMoreData(item_r45)); });
1877
+ i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template, 1, 0, "i", 312)(2, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template, 1, 0, "i", 313);
1994
1878
  i0.ɵɵtext(3, " Load More ");
1995
1879
  i0.ɵɵelementEnd();
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);
1880
+ i0.ɵɵelementStart(4, "button", 314);
1881
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_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_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.loadAllData(item_r45)); });
1882
+ i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template, 1, 0, "i", 312)(6, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template, 1, 0, "i", 21);
1999
1883
  i0.ɵɵtext(7, " Load All ");
2000
1884
  i0.ɵɵelementEnd();
2001
1885
  } if (rf & 2) {
@@ -2008,13 +1892,13 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
2008
1892
  i0.ɵɵadvance();
2009
1893
  i0.ɵɵconditional(item_r45.isLoadingMore ? 5 : 6);
2010
1894
  } }
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);
1895
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1896
+ i0.ɵɵelementStart(0, "span", 307);
1897
+ i0.ɵɵelement(1, "i", 315);
2014
1898
  i0.ɵɵtext(2, " All Loaded ");
2015
1899
  i0.ɵɵelementEnd();
2016
1900
  } }
2017
- function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template(rf, ctx) { if (rf & 1) {
1901
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template(rf, ctx) { if (rf & 1) {
2018
1902
  i0.ɵɵelementStart(0, "th");
2019
1903
  i0.ɵɵtext(1);
2020
1904
  i0.ɵɵelementEnd();
@@ -2023,58 +1907,58 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
2023
1907
  i0.ɵɵadvance();
2024
1908
  i0.ɵɵtextInterpolate(col_r47);
2025
1909
  } }
2026
- function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1910
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
2027
1911
  const _r48 = i0.ɵɵgetCurrentView();
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);
1912
+ i0.ɵɵelementStart(0, "button", 318);
1913
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_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_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord(item_r45.entityName, row_r49)); });
1914
+ i0.ɵɵelement(1, "i", 319);
2031
1915
  i0.ɵɵelementEnd();
2032
1916
  } }
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);
1917
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template(rf, ctx) { if (rf & 1) {
1918
+ i0.ɵɵelementStart(0, "td", 317);
2035
1919
  i0.ɵɵtext(1);
2036
1920
  i0.ɵɵelementEnd();
2037
1921
  } if (rf & 2) {
2038
1922
  const col_r50 = ctx.$implicit;
2039
1923
  const row_r49 = i0.ɵɵnextContext().$implicit;
2040
- const ctx_r0 = i0.ɵɵnextContext(6);
2041
- i0.ɵɵproperty("title", ctx_r0.getSampleDataValue(row_r49, col_r50));
1924
+ const ctx_r1 = i0.ɵɵnextContext(6);
1925
+ i0.ɵɵproperty("title", ctx_r1.getSampleDataValue(row_r49, col_r50));
2042
1926
  i0.ɵɵadvance();
2043
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(ctx_r0.getSampleDataValue(row_r49, col_r50), 30));
1927
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(ctx_r1.getSampleDataValue(row_r49, col_r50), 30));
2044
1928
  } }
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);
1929
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template(rf, ctx) { if (rf & 1) {
1930
+ i0.ɵɵelementStart(0, "tr")(1, "td", 310);
1931
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template, 2, 0, "button", 316);
2048
1932
  i0.ɵɵelementEnd();
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);
1933
+ i0.ɵɵrepeaterCreate(3, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template, 2, 2, "td", 317, i0.ɵɵrepeaterTrackByIdentity);
2050
1934
  i0.ɵɵelementEnd();
2051
1935
  } if (rf & 2) {
2052
1936
  const row_r49 = ctx.$implicit;
2053
1937
  const item_r45 = i0.ɵɵnextContext(3).$implicit;
2054
- const ctx_r0 = i0.ɵɵnextContext(3);
1938
+ const ctx_r1 = i0.ɵɵnextContext(3);
2055
1939
  i0.ɵɵadvance(2);
2056
- i0.ɵɵconditional(item_r45.entityName && ctx_r0.getRecordId(row_r49) ? 2 : -1);
1940
+ i0.ɵɵconditional(item_r45.entityName && ctx_r1.getRecordId(row_r49) ? 2 : -1);
2057
1941
  i0.ɵɵadvance();
2058
- i0.ɵɵrepeater(ctx_r0.getSampleDataColumns(item_r45));
1942
+ i0.ɵɵrepeater(ctx_r1.getSampleDataColumns(item_r45));
2059
1943
  } }
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);
1944
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1945
+ i0.ɵɵelementStart(0, "div", 302)(1, "div", 304)(2, "span", 305);
2062
1946
  i0.ɵɵtext(3);
2063
1947
  i0.ɵɵelementEnd();
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);
1948
+ i0.ɵɵelementStart(4, "div", 306);
1949
+ i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template, 8, 4);
1950
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template, 3, 0, "span", 307);
2067
1951
  i0.ɵɵelementEnd()();
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);
1952
+ i0.ɵɵelementStart(7, "div", 308)(8, "table", 309)(9, "thead")(10, "tr");
1953
+ i0.ɵɵelement(11, "th", 310);
1954
+ i0.ɵɵrepeaterCreate(12, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
2071
1955
  i0.ɵɵelementEnd()();
2072
1956
  i0.ɵɵelementStart(14, "tbody");
2073
- i0.ɵɵrepeaterCreate(15, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template, 5, 1, "tr", null, i0.ɵɵrepeaterTrackByIndex);
1957
+ i0.ɵɵrepeaterCreate(15, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template, 5, 1, "tr", null, i0.ɵɵrepeaterTrackByIndex);
2074
1958
  i0.ɵɵelementEnd()()()();
2075
1959
  } if (rf & 2) {
2076
1960
  const item_r45 = i0.ɵɵnextContext(2).$implicit;
2077
- const ctx_r0 = i0.ɵɵnextContext(3);
1961
+ const ctx_r1 = i0.ɵɵnextContext(3);
2078
1962
  i0.ɵɵadvance(3);
2079
1963
  i0.ɵɵtextInterpolate2("Data (", item_r45.displayedData.length, " of ", item_r45.itemCount, ")");
2080
1964
  i0.ɵɵadvance(2);
@@ -2082,21 +1966,21 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
2082
1966
  i0.ɵɵadvance();
2083
1967
  i0.ɵɵconditional(item_r45.allDataLoaded ? 6 : -1);
2084
1968
  i0.ɵɵadvance(6);
2085
- i0.ɵɵrepeater(ctx_r0.getSampleDataColumns(item_r45));
1969
+ i0.ɵɵrepeater(ctx_r1.getSampleDataColumns(item_r45));
2086
1970
  i0.ɵɵadvance(3);
2087
1971
  i0.ɵɵrepeater(item_r45.displayedData);
2088
1972
  } }
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);
1973
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
1974
+ i0.ɵɵelementStart(0, "div", 298)(1, "div", 299)(2, "span", 220);
2091
1975
  i0.ɵɵtext(3, "Property:");
2092
1976
  i0.ɵɵelementEnd();
2093
- i0.ɵɵelementStart(4, "code", 322);
1977
+ i0.ɵɵelementStart(4, "code", 300);
2094
1978
  i0.ɵɵtext(5);
2095
1979
  i0.ɵɵelementEnd()();
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);
1980
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_6_Template, 5, 1, "div", 299);
1981
+ i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_7_Template, 5, 1, "div", 299);
1982
+ i0.ɵɵconditionalCreate(8, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_8_Template, 5, 1, "div", 301);
1983
+ i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Template, 17, 4, "div", 302);
2100
1984
  i0.ɵɵelementEnd();
2101
1985
  } if (rf & 2) {
2102
1986
  const item_r45 = i0.ɵɵnextContext().$implicit;
@@ -2111,27 +1995,27 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditio
2111
1995
  i0.ɵɵadvance();
2112
1996
  i0.ɵɵconditional(item_r45.displayedData.length > 0 ? 9 : -1);
2113
1997
  } }
2114
- function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Template(rf, ctx) { if (rf & 1) {
1998
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Template(rf, ctx) { if (rf & 1) {
2115
1999
  const _r44 = i0.ɵɵgetCurrentView();
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);
2000
+ i0.ɵɵelementStart(0, "div", 290)(1, "div", 291);
2001
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Template_div_click_1_listener() { const item_r45 = i0.ɵɵrestoreView(_r44).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleConfigItemExpanded(item_r45)); });
2002
+ i0.ɵɵelementStart(2, "div", 292);
2003
+ i0.ɵɵelement(3, "i", 293);
2004
+ i0.ɵɵelementStart(4, "span", 294);
2121
2005
  i0.ɵɵtext(5);
2122
2006
  i0.ɵɵelementEnd();
2123
- i0.ɵɵelementStart(6, "span", 317);
2007
+ i0.ɵɵelementStart(6, "span", 295);
2124
2008
  i0.ɵɵtext(7);
2125
2009
  i0.ɵɵelementEnd()();
2126
- i0.ɵɵelementStart(8, "div", 318)(9, "span", 319);
2010
+ i0.ɵɵelementStart(8, "div", 296)(9, "span", 297);
2127
2011
  i0.ɵɵtext(10);
2128
2012
  i0.ɵɵelementEnd();
2129
- i0.ɵɵelementStart(11, "span", 319);
2013
+ i0.ɵɵelementStart(11, "span", 297);
2130
2014
  i0.ɵɵtext(12);
2131
2015
  i0.ɵɵelementEnd();
2132
- i0.ɵɵelement(13, "i", 233);
2016
+ i0.ɵɵelement(13, "i", 210);
2133
2017
  i0.ɵɵelementEnd()();
2134
- i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Conditional_14_Template, 10, 5, "div", 320);
2018
+ i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Template, 10, 5, "div", 298);
2135
2019
  i0.ɵɵelementEnd();
2136
2020
  } if (rf & 2) {
2137
2021
  const item_r45 = ctx.$implicit;
@@ -2154,84 +2038,84 @@ function SystemDiagnosticsComponent_Conditional_58_Conditional_36_For_2_Template
2154
2038
  i0.ɵɵadvance();
2155
2039
  i0.ɵɵconditional(item_r45.expanded ? 14 : -1);
2156
2040
  } }
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);
2041
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_Template(rf, ctx) { if (rf & 1) {
2042
+ i0.ɵɵelementStart(0, "div", 288);
2043
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Template, 15, 22, "div", 289, _forTrack7);
2160
2044
  i0.ɵɵelementEnd();
2161
2045
  } if (rf & 2) {
2162
- const ctx_r0 = i0.ɵɵnextContext(2);
2046
+ const ctx_r1 = i0.ɵɵnextContext(2);
2163
2047
  i0.ɵɵadvance();
2164
- i0.ɵɵrepeater(ctx_r0.engineDetailPanel.configItems);
2048
+ i0.ɵɵrepeater(ctx_r1.engineDetailPanel.configItems);
2165
2049
  } }
2166
- function SystemDiagnosticsComponent_Conditional_58_Template(rf, ctx) { if (rf & 1) {
2050
+ function SystemDiagnosticsComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
2167
2051
  const _r43 = i0.ɵɵgetCurrentView();
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()); });
2052
+ i0.ɵɵelementStart(0, "div", 280);
2053
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEngineDetailPanel()); });
2170
2054
  i0.ɵɵelementEnd();
2171
- i0.ɵɵelementStart(1, "div", 303)(2, "div", 50)(3, "div", 277);
2172
- i0.ɵɵelement(4, "i", 20);
2055
+ i0.ɵɵelementStart(1, "div", 281)(2, "div", 22)(3, "div", 255);
2056
+ i0.ɵɵelement(4, "i", 23);
2173
2057
  i0.ɵɵelementStart(5, "h3");
2174
2058
  i0.ɵɵtext(6);
2175
2059
  i0.ɵɵelementEnd()();
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);
2060
+ i0.ɵɵelementStart(7, "div", 282)(8, "button", 283);
2061
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshEngineInDetailPanel()); });
2062
+ i0.ɵɵelement(9, "i", 26);
2179
2063
  i0.ɵɵelementEnd();
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);
2064
+ i0.ɵɵelementStart(10, "button", 256);
2065
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEngineDetailPanel()); });
2066
+ i0.ɵɵelement(11, "i", 91);
2183
2067
  i0.ɵɵelementEnd()()();
2184
- i0.ɵɵelementStart(12, "div", 279)(13, "div", 306)(14, "div", 307)(15, "span", 148);
2068
+ i0.ɵɵelementStart(12, "div", 257)(13, "div", 284)(14, "div", 285)(15, "span", 125);
2185
2069
  i0.ɵɵtext(16, "Status");
2186
2070
  i0.ɵɵelementEnd();
2187
- i0.ɵɵelementStart(17, "span", 147);
2188
- i0.ɵɵelement(18, "span", 308);
2071
+ i0.ɵɵelementStart(17, "span", 124);
2072
+ i0.ɵɵelement(18, "span", 286);
2189
2073
  i0.ɵɵtext(19);
2190
2074
  i0.ɵɵelementEnd()();
2191
- i0.ɵɵelementStart(20, "div", 307)(21, "span", 148);
2075
+ i0.ɵɵelementStart(20, "div", 285)(21, "span", 125);
2192
2076
  i0.ɵɵtext(22, "Memory");
2193
2077
  i0.ɵɵelementEnd();
2194
- i0.ɵɵelementStart(23, "span", 147);
2078
+ i0.ɵɵelementStart(23, "span", 124);
2195
2079
  i0.ɵɵtext(24);
2196
2080
  i0.ɵɵelementEnd()();
2197
- i0.ɵɵelementStart(25, "div", 307)(26, "span", 148);
2081
+ i0.ɵɵelementStart(25, "div", 285)(26, "span", 125);
2198
2082
  i0.ɵɵtext(27, "Items");
2199
2083
  i0.ɵɵelementEnd();
2200
- i0.ɵɵelementStart(28, "span", 147);
2084
+ i0.ɵɵelementStart(28, "span", 124);
2201
2085
  i0.ɵɵtext(29);
2202
2086
  i0.ɵɵelementEnd()();
2203
- i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_58_Conditional_30_Template, 5, 1, "div", 307);
2087
+ i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_28_Conditional_30_Template, 5, 1, "div", 285);
2204
2088
  i0.ɵɵelementEnd();
2205
- i0.ɵɵelementStart(31, "div", 309)(32, "h4");
2206
- i0.ɵɵelement(33, "i", 26);
2089
+ i0.ɵɵelementStart(31, "div", 287)(32, "h4");
2090
+ i0.ɵɵelement(33, "i", 232);
2207
2091
  i0.ɵɵtext(34);
2208
2092
  i0.ɵɵelementEnd();
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);
2093
+ i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_28_Conditional_35_Template, 4, 0, "div", 165)(36, SystemDiagnosticsComponent_Conditional_28_Conditional_36_Template, 3, 0, "div", 288);
2210
2094
  i0.ɵɵelementEnd()()();
2211
2095
  } if (rf & 2) {
2212
- const ctx_r0 = i0.ɵɵnextContext();
2096
+ const ctx_r1 = i0.ɵɵnextContext();
2213
2097
  i0.ɵɵadvance();
2214
- i0.ɵɵclassProp("open", ctx_r0.engineDetailPanel.isOpen);
2098
+ i0.ɵɵclassProp("open", ctx_r1.engineDetailPanel.isOpen);
2215
2099
  i0.ɵɵadvance(5);
2216
- i0.ɵɵtextInterpolate(ctx_r0.engineDetailPanel.engine.className);
2100
+ i0.ɵɵtextInterpolate(ctx_r1.engineDetailPanel.engine.className);
2217
2101
  i0.ɵɵadvance(2);
2218
- i0.ɵɵproperty("disabled", ctx_r0.engineDetailPanel.isRefreshing);
2102
+ i0.ɵɵproperty("disabled", ctx_r1.engineDetailPanel.isRefreshing);
2219
2103
  i0.ɵɵadvance();
2220
- i0.ɵɵclassProp("spinning", ctx_r0.engineDetailPanel.isRefreshing);
2104
+ i0.ɵɵclassProp("spinning", ctx_r1.engineDetailPanel.isRefreshing);
2221
2105
  i0.ɵɵadvance(9);
2222
- i0.ɵɵclassProp("status-loaded", ctx_r0.engineDetailPanel.engine.isLoaded);
2106
+ i0.ɵɵclassProp("status-loaded", ctx_r1.engineDetailPanel.engine.isLoaded);
2223
2107
  i0.ɵɵadvance();
2224
- i0.ɵɵtextInterpolate1(" ", ctx_r0.engineDetailPanel.engine.isLoaded ? "Loaded" : "Not Loaded", " ");
2108
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.engineDetailPanel.engine.isLoaded ? "Loaded" : "Not Loaded", " ");
2225
2109
  i0.ɵɵadvance(5);
2226
- i0.ɵɵtextInterpolate(ctx_r0.engineDetailPanel.engine.memoryDisplay);
2110
+ i0.ɵɵtextInterpolate(ctx_r1.engineDetailPanel.engine.memoryDisplay);
2227
2111
  i0.ɵɵadvance(5);
2228
- i0.ɵɵtextInterpolate(ctx_r0.engineDetailPanel.engine.itemCount.toLocaleString());
2112
+ i0.ɵɵtextInterpolate(ctx_r1.engineDetailPanel.engine.itemCount.toLocaleString());
2229
2113
  i0.ɵɵadvance();
2230
- i0.ɵɵconditional(ctx_r0.engineDetailPanel.engine.lastLoadedAt ? 30 : -1);
2114
+ i0.ɵɵconditional(ctx_r1.engineDetailPanel.engine.lastLoadedAt ? 30 : -1);
2231
2115
  i0.ɵɵadvance(4);
2232
- i0.ɵɵtextInterpolate1(" Data Configs (", ctx_r0.engineDetailPanel.configItems.length, ") ");
2116
+ i0.ɵɵtextInterpolate1(" Data Configs (", ctx_r1.engineDetailPanel.configItems.length, ") ");
2233
2117
  i0.ɵɵadvance();
2234
- i0.ɵɵconditional(ctx_r0.engineDetailPanel.configItems.length === 0 ? 35 : 36);
2118
+ i0.ɵɵconditional(ctx_r1.engineDetailPanel.configItems.length === 0 ? 35 : 36);
2235
2119
  } }
2236
2120
  /**
2237
2121
  * Settings key for persisting user preferences
@@ -2262,7 +2146,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
2262
2146
  activeSection = 'engines';
2263
2147
  lastUpdated = new Date();
2264
2148
  isRefreshingEngines = false;
2265
- kpiCardsCollapsed = false;
2266
2149
  // Data
2267
2150
  engineStats = null;
2268
2151
  engines = [];
@@ -2386,6 +2269,50 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
2386
2269
  this.cdr.markForCheck();
2387
2270
  this.saveUserPreferencesDebounced();
2388
2271
  }
2272
+ /**
2273
+ * Adapter for `<mj-tab-nav>`'s string-typed `(TabChange)` output.
2274
+ * Narrows the emitted key to the typed `activeSection` union before
2275
+ * delegating to `setActiveSection`.
2276
+ */
2277
+ onSectionTabChange(key) {
2278
+ if (key === 'engines' || key === 'redundant' || key === 'performance' || key === 'cache') {
2279
+ this.setActiveSection(key);
2280
+ }
2281
+ }
2282
+ /**
2283
+ * L2 section tabs for `<mj-tab-nav>` in the interior chrome's [toolbar] slot.
2284
+ * Badges are dynamic (engine count, redundant-load count w/ warning variant,
2285
+ * telemetry event count, cache entry count).
2286
+ */
2287
+ get diagnosticsTabs() {
2288
+ return [
2289
+ {
2290
+ key: 'engines',
2291
+ icon: 'fa-solid fa-cogs',
2292
+ label: 'Engine Registry',
2293
+ badge: this.engineStats?.totalEngines ?? 0
2294
+ },
2295
+ {
2296
+ key: 'redundant',
2297
+ icon: 'fa-solid fa-copy',
2298
+ label: 'Redundant Loading',
2299
+ badge: this.redundantLoads.length,
2300
+ badgeVariant: this.redundantLoads.length > 0 ? 'warning' : 'success'
2301
+ },
2302
+ {
2303
+ key: 'performance',
2304
+ icon: 'fa-solid fa-chart-line',
2305
+ label: 'Performance',
2306
+ badge: this.telemetrySummary?.totalEvents ?? 0
2307
+ },
2308
+ {
2309
+ key: 'cache',
2310
+ icon: 'fa-solid fa-database',
2311
+ label: 'Local Cache',
2312
+ badge: this.cacheStats?.totalEntries ?? 0
2313
+ }
2314
+ ];
2315
+ }
2389
2316
  toggleAutoRefresh() {
2390
2317
  if (this.autoRefresh) {
2391
2318
  // Start auto-refresh interval
@@ -2399,11 +2326,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
2399
2326
  }
2400
2327
  this.saveUserPreferencesDebounced();
2401
2328
  }
2402
- toggleKpiCards() {
2403
- this.kpiCardsCollapsed = !this.kpiCardsCollapsed;
2404
- this.cdr.markForCheck();
2405
- this.saveUserPreferencesDebounced();
2406
- }
2407
2329
  async refreshData() {
2408
2330
  this.isLoading = true;
2409
2331
  this.cdr.markForCheck();
@@ -4496,9 +4418,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4496
4418
  this.searchQuery = params['search'];
4497
4419
  }
4498
4420
  // KPI cards collapsed: ?kpi=collapsed|expanded
4499
- if (params['kpi']) {
4500
- this.kpiCardsCollapsed = params['kpi'] === 'collapsed';
4501
- }
4502
4421
  this.cdr.markForCheck();
4503
4422
  }
4504
4423
  /**
@@ -4511,8 +4430,7 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4511
4430
  tab: this.perfTab !== 'monitor' ? this.perfTab : null,
4512
4431
  source: this.telemetrySource !== 'client' ? this.telemetrySource : null,
4513
4432
  category: this.categoryFilter !== 'all' ? this.categoryFilter : null,
4514
- search: this.searchQuery.trim() || null,
4515
- kpi: this.kpiCardsCollapsed ? 'collapsed' : null
4433
+ search: this.searchQuery.trim() || null
4516
4434
  };
4517
4435
  // Use NavigationService to update query params properly
4518
4436
  this.navigationService.UpdateActiveTabQueryParams(queryParams);
@@ -4549,8 +4467,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4549
4467
  * Apply loaded user preferences to component state
4550
4468
  */
4551
4469
  applyUserPreferences(prefs) {
4552
- if (prefs.kpiCardsCollapsed !== undefined)
4553
- this.kpiCardsCollapsed = prefs.kpiCardsCollapsed;
4554
4470
  if (prefs.activeSection !== undefined)
4555
4471
  this.activeSection = prefs.activeSection;
4556
4472
  if (prefs.perfTab !== undefined)
@@ -4572,7 +4488,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4572
4488
  */
4573
4489
  getCurrentPreferences() {
4574
4490
  return {
4575
- kpiCardsCollapsed: this.kpiCardsCollapsed,
4576
4491
  activeSection: this.activeSection,
4577
4492
  perfTab: this.perfTab,
4578
4493
  telemetrySource: this.telemetrySource,
@@ -4640,129 +4555,73 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4640
4555
  } if (rf & 2) {
4641
4556
  let _t;
4642
4557
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.perfChartRef = _t.first);
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) {
4644
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3);
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(); });
4649
- i0.ɵɵelementEnd();
4650
- i0.ɵɵtext(6, " Auto-refresh ");
4651
- i0.ɵɵelementEnd();
4652
- i0.ɵɵelementStart(7, "mj-refresh-button", 7);
4653
- i0.ɵɵlistener("Clicked", function SystemDiagnosticsComponent_Template_mj_refresh_button_Clicked_7_listener() { return ctx.refreshData(); });
4654
- i0.ɵɵelementEnd()()();
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);
4658
- i0.ɵɵelementEnd();
4659
- i0.ɵɵconditionalCreate(13, SystemDiagnosticsComponent_Conditional_13_Template, 32, 9, "div", 13)(14, SystemDiagnosticsComponent_Conditional_14_Template, 21, 5, "div", 14);
4558
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 21, consts: [["perfChart", ""], ["Role", "region", "AriaLabel", "System diagnostics", "Title", "System Diagnostics", "Subtitle", "Engine registry, cache, and performance telemetry"], ["meta", ""], ["Label", "engines", 3, "Count"], ["Label", "memory", 3, "Count"], ["Label", "redundant", 3, "Count", "Variant"], ["toolbar", ""], [3, "TabChange", "Tabs", "ActiveKey"], ["actions", ""], [1, "auto-refresh-toggle"], ["type", "checkbox", 3, "ngModelChange", "change", "ngModel"], ["Label", "Refresh Now", 3, "Clicked", "Loading", "ShowLabel"], [3, "Padding"], [1, "system-diagnostics"], [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, "panel-header"], [1, "fa-solid", "fa-cogs"], [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, "fa-solid", "fa-microchip"], [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, "fa-solid", "fa-copy"], [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, "fa-solid", "fa-chart-line"], [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"], [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, "fa-solid", "fa-database"], [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) {
4559
+ i0.ɵɵelementStart(0, "mj-page-header-interior", 1)(1, "div", 2);
4560
+ i0.ɵɵelement(2, "mj-stat-badge", 3)(3, "mj-stat-badge", 4)(4, "mj-stat-badge", 5);
4660
4561
  i0.ɵɵelementEnd();
4661
- i0.ɵɵelementStart(15, "div", 15)(16, "div", 16)(17, "div", 17)(18, "div", 18);
4662
- i0.ɵɵtext(19, "Diagnostics");
4663
- i0.ɵɵelementEnd();
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");
4669
- i0.ɵɵelementEnd();
4670
- i0.ɵɵelementStart(24, "span", 21);
4671
- i0.ɵɵtext(25);
4562
+ i0.ɵɵelementStart(5, "div", 6)(6, "mj-tab-nav", 7);
4563
+ i0.ɵɵlistener("TabChange", function SystemDiagnosticsComponent_Template_mj_tab_nav_TabChange_6_listener($event) { return ctx.onSectionTabChange($event); });
4672
4564
  i0.ɵɵelementEnd()();
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");
4565
+ i0.ɵɵelementStart(7, "div", 8)(8, "label", 9)(9, "input", 10);
4566
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Template_input_ngModelChange_9_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.autoRefresh, $event) || (ctx.autoRefresh = $event); return $event; });
4567
+ i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Template_input_change_9_listener() { return ctx.toggleAutoRefresh(); });
4678
4568
  i0.ɵɵelementEnd();
4679
- i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_30_Template, 2, 1, "span", 23)(31, SystemDiagnosticsComponent_Conditional_31_Template, 2, 0, "span", 24);
4569
+ i0.ɵɵtext(10, " Auto-refresh ");
4680
4570
  i0.ɵɵelementEnd();
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");
4571
+ i0.ɵɵelementStart(11, "mj-refresh-button", 11);
4572
+ i0.ɵɵlistener("Clicked", function SystemDiagnosticsComponent_Template_mj_refresh_button_Clicked_11_listener() { return ctx.refreshData(); });
4573
+ i0.ɵɵelementEnd()()();
4574
+ i0.ɵɵelementStart(12, "mj-page-body-interior", 12)(13, "div", 13)(14, "div", 14);
4575
+ i0.ɵɵconditionalCreate(15, SystemDiagnosticsComponent_Conditional_15_Template, 12, 4, "div", 15);
4576
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_16_Template, 14, 1, "div", 15);
4577
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_17_Template, 52, 27, "div", 16);
4578
+ i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_18_Template, 12, 2, "div", 15);
4686
4579
  i0.ɵɵelementEnd();
4687
- i0.ɵɵelementStart(36, "span", 21);
4688
- i0.ɵɵtext(37);
4689
- i0.ɵɵelementEnd()();
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");
4580
+ i0.ɵɵelementStart(19, "div", 17)(20, "span", 18);
4581
+ i0.ɵɵelement(21, "i", 19);
4582
+ i0.ɵɵtext(22);
4583
+ i0.ɵɵpipe(23, "date");
4695
4584
  i0.ɵɵelementEnd();
4696
- i0.ɵɵelementStart(42, "span", 21);
4697
- i0.ɵɵtext(43);
4698
- i0.ɵɵelementEnd()()()();
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);
4704
- i0.ɵɵelementEnd()();
4705
- i0.ɵɵelementStart(49, "div", 30)(50, "span", 31);
4706
- i0.ɵɵelement(51, "i", 32);
4707
- i0.ɵɵtext(52);
4708
- i0.ɵɵpipe(53, "date");
4709
- i0.ɵɵelementEnd();
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 ");
4585
+ i0.ɵɵelementStart(24, "button", 20);
4586
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_24_listener() { return ctx.exportTelemetryData(); });
4587
+ i0.ɵɵelement(25, "i", 21);
4588
+ i0.ɵɵtext(26, " Export JSON ");
4714
4589
  i0.ɵɵelementEnd()()();
4715
- i0.ɵɵconditionalCreate(57, SystemDiagnosticsComponent_Conditional_57_Template, 53, 18);
4716
- i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_58_Template, 37, 14);
4717
- i0.ɵɵelementEnd()();
4590
+ i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_27_Template, 53, 18);
4591
+ i0.ɵɵconditionalCreate(28, SystemDiagnosticsComponent_Conditional_28_Template, 37, 14);
4592
+ i0.ɵɵelementEnd();
4718
4593
  } if (rf & 2) {
4719
- i0.ɵɵadvance(3);
4720
- i0.ɵɵconditional(ctx.autoRefresh ? 3 : -1);
4721
4594
  i0.ɵɵadvance(2);
4722
- i0.ɵɵtwoWayProperty("ngModel", ctx.autoRefresh);
4723
- i0.ɵɵadvance(2);
4724
- i0.ɵɵproperty("Loading", ctx.isLoading)("ShowLabel", true);
4725
- i0.ɵɵadvance(3);
4726
- i0.ɵɵclassProp("collapsed", ctx.kpiCardsCollapsed);
4595
+ i0.ɵɵproperty("Count", (ctx.engineStats == null ? null : ctx.engineStats.totalEngines) || 0);
4727
4596
  i0.ɵɵadvance();
4728
- i0.ɵɵproperty("title", ctx.kpiCardsCollapsed ? "Expand KPI cards" : "Collapse KPI cards");
4597
+ i0.ɵɵproperty("Count", ctx.formatBytes((ctx.engineStats == null ? null : ctx.engineStats.totalEstimatedMemoryBytes) || 0));
4729
4598
  i0.ɵɵadvance();
4730
- i0.ɵɵclassProp("fa-chevron-up", !ctx.kpiCardsCollapsed)("fa-chevron-down", ctx.kpiCardsCollapsed);
4731
- i0.ɵɵadvance();
4732
- i0.ɵɵconditional(!ctx.kpiCardsCollapsed ? 13 : 14);
4733
- i0.ɵɵadvance(7);
4734
- i0.ɵɵclassProp("active", ctx.activeSection === "engines");
4735
- i0.ɵɵadvance(5);
4736
- i0.ɵɵtextInterpolate((ctx.engineStats == null ? null : ctx.engineStats.totalEngines) || 0);
4737
- i0.ɵɵadvance();
4738
- i0.ɵɵclassProp("active", ctx.activeSection === "redundant");
4739
- i0.ɵɵadvance(4);
4740
- i0.ɵɵconditional(ctx.redundantLoads.length > 0 ? 30 : 31);
4599
+ i0.ɵɵproperty("Count", ctx.redundantLoads.length)("Variant", ctx.redundantLoads.length > 0 ? "warning" : "default");
4741
4600
  i0.ɵɵadvance(2);
4742
- i0.ɵɵclassProp("active", ctx.activeSection === "performance");
4743
- i0.ɵɵadvance(5);
4744
- i0.ɵɵtextInterpolate((ctx.telemetrySummary == null ? null : ctx.telemetrySummary.totalEvents) || 0);
4745
- i0.ɵɵadvance();
4746
- i0.ɵɵclassProp("active", ctx.activeSection === "cache");
4747
- i0.ɵɵadvance(5);
4748
- i0.ɵɵtextInterpolate((ctx.cacheStats == null ? null : ctx.cacheStats.totalEntries) || 0);
4601
+ i0.ɵɵproperty("Tabs", ctx.diagnosticsTabs)("ActiveKey", ctx.activeSection);
4602
+ i0.ɵɵadvance(3);
4603
+ i0.ɵɵtwoWayProperty("ngModel", ctx.autoRefresh);
4749
4604
  i0.ɵɵadvance(2);
4750
- i0.ɵɵconditional(ctx.activeSection === "engines" ? 45 : -1);
4605
+ i0.ɵɵproperty("Loading", ctx.isLoading)("ShowLabel", true);
4606
+ i0.ɵɵadvance();
4607
+ i0.ɵɵproperty("Padding", false);
4608
+ i0.ɵɵadvance(3);
4609
+ i0.ɵɵconditional(ctx.activeSection === "engines" ? 15 : -1);
4751
4610
  i0.ɵɵadvance();
4752
- i0.ɵɵconditional(ctx.activeSection === "redundant" ? 46 : -1);
4611
+ i0.ɵɵconditional(ctx.activeSection === "redundant" ? 16 : -1);
4753
4612
  i0.ɵɵadvance();
4754
- i0.ɵɵconditional(ctx.activeSection === "performance" ? 47 : -1);
4613
+ i0.ɵɵconditional(ctx.activeSection === "performance" ? 17 : -1);
4755
4614
  i0.ɵɵadvance();
4756
- i0.ɵɵconditional(ctx.activeSection === "cache" ? 48 : -1);
4615
+ i0.ɵɵconditional(ctx.activeSection === "cache" ? 18 : -1);
4757
4616
  i0.ɵɵadvance(4);
4758
- i0.ɵɵtextInterpolate1(" Last updated: ", i0.ɵɵpipeBind2(53, 32, ctx.lastUpdated, "medium"), " ");
4617
+ i0.ɵɵtextInterpolate1(" Last updated: ", i0.ɵɵpipeBind2(23, 18, ctx.lastUpdated, "medium"), " ");
4759
4618
  i0.ɵɵadvance(2);
4760
4619
  i0.ɵɵproperty("disabled", !ctx.telemetryEnabled || ctx.telemetryEvents.length === 0);
4761
4620
  i0.ɵɵadvance(3);
4762
- i0.ɵɵconditional(ctx.eventDetailPanel.isOpen && ctx.eventDetailPanel.event ? 57 : -1);
4621
+ i0.ɵɵconditional(ctx.eventDetailPanel.isOpen && ctx.eventDetailPanel.event ? 27 : -1);
4763
4622
  i0.ɵɵadvance();
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 });
4623
+ i0.ɵɵconditional(ctx.engineDetailPanel.isOpen && ctx.engineDetailPanel.engine ? 28 : -1);
4624
+ } }, dependencies: [i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJPageHeaderInteriorComponent, i3.MJPageBodyInteriorComponent, i3.MJStatBadgeComponent, i3.MJRefreshButtonComponent, i3.MJTabNavComponent, i4.DecimalPipe, i4.DatePipe], styles: ["\n\n\n\n\n\n[_nghost-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--mj-bg-page);\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\n\n\n\n\n\n\n\n\n\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 .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 });
4766
4625
  };
4767
4626
  SystemDiagnosticsComponent = __decorate([
4768
4627
  RegisterClass(BaseResourceComponent, 'SystemDiagnosticsResource')
@@ -4772,153 +4631,51 @@ export { SystemDiagnosticsComponent };
4772
4631
  type: Component,
4773
4632
  args: [{ standalone: false, selector: 'app-system-diagnostics', changeDetection: ChangeDetectionStrategy.OnPush, template: `
4774
4633
  <!--
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.
4634
+ SystemDiagnostics renders inside Admin's "Monitoring" left-nav shell.
4635
+ L1 (outer Admin rail) is owned by the parent shell; here we use
4636
+ <mj-page-header-interior> with [toolbar]=<mj-tab-nav> to render the
4637
+ L2 section nav (Engine Registry / Redundant / Performance / Cache),
4638
+ and [actions]=auto-refresh + refresh button. The Performance section
4639
+ carries its own L3 perf-tabs strip inside its panel.
4640
+ See plans/explorer-chrome-conventions.md Section 10.
4781
4641
  -->
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>
4793
- </div>
4642
+ <mj-page-header-interior
4643
+ Role="region"
4644
+ AriaLabel="System diagnostics"
4645
+ Title="System Diagnostics"
4646
+ Subtitle="Engine registry, cache, and performance telemetry">
4647
+ <div meta>
4648
+ <mj-stat-badge [Count]="engineStats?.totalEngines || 0" Label="engines"></mj-stat-badge>
4649
+ <mj-stat-badge [Count]="formatBytes(engineStats?.totalEstimatedMemoryBytes || 0)" Label="memory"></mj-stat-badge>
4650
+ <mj-stat-badge
4651
+ [Count]="redundantLoads.length"
4652
+ Label="redundant"
4653
+ [Variant]="redundantLoads.length > 0 ? 'warning' : 'default'">
4654
+ </mj-stat-badge>
4655
+ </div>
4656
+ <div toolbar>
4657
+ <mj-tab-nav
4658
+ [Tabs]="diagnosticsTabs"
4659
+ [ActiveKey]="activeSection"
4660
+ (TabChange)="onSectionTabChange($event)">
4661
+ </mj-tab-nav>
4662
+ </div>
4663
+ <div actions>
4664
+ <label class="auto-refresh-toggle">
4665
+ <input type="checkbox" [(ngModel)]="autoRefresh" (change)="toggleAutoRefresh()">
4666
+ Auto-refresh
4667
+ </label>
4668
+ <mj-refresh-button [Loading]="isLoading" Label="Refresh Now" [ShowLabel]="true" (Clicked)="refreshData()"></mj-refresh-button>
4794
4669
  </div>
4670
+ </mj-page-header-interior>
4795
4671
 
4796
- <div class="scrollable-content">
4672
+ <mj-page-body-interior [Padding]="false">
4797
4673
  <div class="system-diagnostics">
4798
4674
 
4799
- <!-- Overview Cards (Collapsible) -->
4800
- <div class="overview-cards-container" [class.collapsed]="kpiCardsCollapsed">
4801
- <button class="kpi-toggle-btn" (click)="toggleKpiCards()" [title]="kpiCardsCollapsed ? 'Expand KPI cards' : 'Collapse KPI cards'">
4802
- <i class="fa-solid" [class.fa-chevron-up]="!kpiCardsCollapsed" [class.fa-chevron-down]="kpiCardsCollapsed"></i>
4803
- </button>
4804
-
4805
- @if (!kpiCardsCollapsed) {
4806
- <!-- Expanded View -->
4807
- <div class="overview-cards">
4808
- <div class="overview-card">
4809
- <div class="card-icon card-icon--engines">
4810
- <i class="fa-solid fa-cogs"></i>
4811
- </div>
4812
- <div class="card-content">
4813
- <div class="card-value">{{ engineStats?.totalEngines || 0 }}</div>
4814
- <div class="card-label">Registered Engines</div>
4815
- <div class="card-subtitle">{{ engineStats?.loadedEngines || 0 }} loaded</div>
4816
- </div>
4817
- </div>
4818
-
4819
- <div class="overview-card">
4820
- <div class="card-icon card-icon--memory">
4821
- <i class="fa-solid fa-microchip"></i>
4822
- </div>
4823
- <div class="card-content">
4824
- <div class="card-value">{{ formatBytes(engineStats?.totalEstimatedMemoryBytes || 0) }}</div>
4825
- <div class="card-label">Engine Memory</div>
4826
- <div class="card-subtitle">Estimated total</div>
4827
- </div>
4828
- </div>
4829
-
4830
- <div class="overview-card">
4831
- <div class="card-icon" [class.card-icon--warning]="redundantLoads.length > 0" [class.card-icon--success]="redundantLoads.length === 0">
4832
- <i class="fa-solid fa-copy"></i>
4833
- </div>
4834
- <div class="card-content">
4835
- <div class="card-value">{{ redundantLoads.length }}</div>
4836
- <div class="card-label">Redundant Loads</div>
4837
- <div class="card-subtitle">
4838
- @if (redundantLoads.length === 0) {
4839
- No redundant loading detected
4840
- } @else {
4841
- {{ redundantLoads.length }} entities loaded by multiple engines
4842
- }
4843
- </div>
4844
- </div>
4845
- </div>
4846
- </div>
4847
- } @else {
4848
- <!-- Collapsed View - Mini KPI bar -->
4849
- <div class="overview-cards-mini">
4850
- <div class="mini-kpi" title="Registered Engines">
4851
- <i class="fa-solid fa-cogs"></i>
4852
- <span class="mini-value">{{ engineStats?.totalEngines || 0 }}</span>
4853
- <span class="mini-label">Engines</span>
4854
- </div>
4855
- <div class="mini-divider"></div>
4856
- <div class="mini-kpi" title="Engine Memory">
4857
- <i class="fa-solid fa-microchip"></i>
4858
- <span class="mini-value">{{ formatBytes(engineStats?.totalEstimatedMemoryBytes || 0) }}</span>
4859
- <span class="mini-label">Memory</span>
4860
- </div>
4861
- <div class="mini-divider"></div>
4862
- <div class="mini-kpi" [class.warning]="redundantLoads.length > 0" title="Redundant Loads">
4863
- <i class="fa-solid fa-copy"></i>
4864
- <span class="mini-value">{{ redundantLoads.length }}</span>
4865
- <span class="mini-label">Redundant</span>
4866
- </div>
4867
- </div>
4868
- }
4869
- </div>
4870
-
4871
- <!-- Main Content with Left Nav -->
4872
- <div class="main-content">
4873
- <!-- Left Navigation -->
4874
- <div class="left-nav">
4875
- <div class="nav-section">
4876
- <div class="nav-section-title">Diagnostics</div>
4877
- <div
4878
- class="nav-item"
4879
- [class.active]="activeSection === 'engines'"
4880
- (click)="setActiveSection('engines')"
4881
- >
4882
- <i class="fa-solid fa-cogs"></i>
4883
- <span>Engine Registry</span>
4884
- <span class="nav-badge">{{ engineStats?.totalEngines || 0 }}</span>
4885
- </div>
4886
- <div
4887
- class="nav-item"
4888
- [class.active]="activeSection === 'redundant'"
4889
- (click)="setActiveSection('redundant')"
4890
- >
4891
- <i class="fa-solid fa-copy"></i>
4892
- <span>Redundant Loading</span>
4893
- @if (redundantLoads.length > 0) {
4894
- <span class="nav-badge nav-badge--warning">{{ redundantLoads.length }}</span>
4895
- } @else {
4896
- <span class="nav-badge nav-badge--success">0</span>
4897
- }
4898
- </div>
4899
- <div
4900
- class="nav-item"
4901
- [class.active]="activeSection === 'performance'"
4902
- (click)="setActiveSection('performance')"
4903
- >
4904
- <i class="fa-solid fa-chart-line"></i>
4905
- <span>Performance</span>
4906
- <span class="nav-badge">{{ telemetrySummary?.totalEvents || 0 }}</span>
4907
- </div>
4908
- <div
4909
- class="nav-item"
4910
- [class.active]="activeSection === 'cache'"
4911
- (click)="setActiveSection('cache')"
4912
- >
4913
- <i class="fa-solid fa-database"></i>
4914
- <span>Local Cache</span>
4915
- <span class="nav-badge">{{ cacheStats?.totalEntries || 0 }}</span>
4916
- </div>
4917
- </div>
4918
- </div>
4919
-
4920
- <!-- Content Area -->
4921
- <div class="content-area">
4675
+ <!-- KPI overview moved into chrome [meta] slot as <mj-stat-badge>s. -->
4676
+
4677
+ <!-- Section Content (L2 nav is rendered as horizontal tabs in the interior chrome above) -->
4678
+ <div class="content-area">
4922
4679
  <!-- Engine Registry Section -->
4923
4680
  @if (activeSection === 'engines') {
4924
4681
  <div class="section-panel">
@@ -5779,8 +5536,7 @@ export { SystemDiagnosticsComponent };
5779
5536
  </div>
5780
5537
  }
5781
5538
  </div>
5782
- </div>
5783
-
5539
+
5784
5540
  <!-- Last Updated -->
5785
5541
  <div class="footer">
5786
5542
  <span class="last-updated">
@@ -6085,12 +5841,11 @@ export { SystemDiagnosticsComponent };
6085
5841
  </div>
6086
5842
  </div>
6087
5843
  }
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"] }]
5844
+ </mj-page-body-interior>
5845
+ `, styles: ["/*\n SystemDiagnostics renders inside Admin's \"Monitoring\" left-nav shell.\n Host is a flex column so <mj-page-header-interior> sits pinned at the top\n and .scrollable-content fills the rest. See plans/explorer-chrome-conventions.md Section 10.\n*/\n:host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--mj-bg-page);\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/*\n Overview KPIs (engines / memory / redundant) now live as <mj-stat-badge>\n instances in the chrome's [meta] slot \u2014 see the header-interior block above.\n The legacy .overview-cards-container / .overview-card / .kpi-toggle-btn /\n .mini-kpi rules were retired with that migration.\n*/\n\n/* Main Content */\n/*\n Content Area \u2014 L2 nav was previously a bespoke left rail (.left-nav). It now\n lives in the interior chrome above as <mj-tab-nav>. Section panels render\n directly inside .content-area, which fills the remaining body width.\n*/\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 .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"] }]
6091
5846
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.ActivatedRoute }], { perfChartRef: [{
6092
5847
  type: ViewChild,
6093
5848
  args: ['perfChart', { static: false }]
6094
5849
  }] }); })();
6095
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SystemDiagnosticsComponent, { className: "SystemDiagnosticsComponent", filePath: "src/SystemDiagnostics/system-diagnostics.component.ts", lineNumber: 1494 }); })();
5850
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SystemDiagnosticsComponent, { className: "SystemDiagnosticsComponent", filePath: "src/SystemDiagnostics/system-diagnostics.component.ts", lineNumber: 1390 }); })();
6096
5851
  //# sourceMappingURL=system-diagnostics.component.js.map