noteconnection 1.7.0 → 1.8.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 (211) hide show
  1. package/LICENSE +674 -21
  2. package/README.md +242 -62
  3. package/dist/src/agent_workspace.contract.parity.test.js +475 -0
  4. package/dist/src/agent_workspace.frontend.test.js +9989 -0
  5. package/dist/src/agent_workspace.locale.contract.test.js +95 -0
  6. package/dist/src/agent_workspace.runtime.behavior.test.js +5072 -0
  7. package/dist/src/copy.assets.contract.test.js +130 -0
  8. package/dist/src/core/PathBridge.js +28 -3
  9. package/dist/src/export/WorkspaceExportBundle.js +1130 -0
  10. package/dist/src/export/WorkspaceExportBundle.test.js +1480 -0
  11. package/dist/src/export/index.js +18 -0
  12. package/dist/src/export/types.js +2 -0
  13. package/dist/src/fixrisk.issue.verifier.contract.test.js +3 -1
  14. package/dist/src/foundation.ann.runtime.contract.test.js +81 -0
  15. package/dist/src/foundation.release.evidence.contract.test.js +406 -0
  16. package/dist/src/foundation.sqlite.runtime.contract.test.js +82 -0
  17. package/dist/src/frontend/README.md +242 -62
  18. package/dist/src/frontend/agent_workspace.js +5353 -0
  19. package/dist/src/frontend/agent_workspace_runtime.js +4434 -0
  20. package/dist/src/frontend/analysis.js +31 -4
  21. package/dist/src/frontend/app.js +2178 -62
  22. package/dist/src/frontend/focus_mode_interactions.js +33 -0
  23. package/dist/src/frontend/godot_future_path_renderer.js +540 -0
  24. package/dist/src/frontend/godot_tree_interactions.js +178 -0
  25. package/dist/src/frontend/graph_state.mjs +105 -0
  26. package/dist/src/frontend/hosted_future_path_runtime.js +157 -0
  27. package/dist/src/frontend/i18n.mjs +186 -0
  28. package/dist/src/frontend/index.html +641 -266
  29. package/dist/src/frontend/layout_gpu.js +12 -4
  30. package/dist/src/frontend/locales/en.json +721 -5
  31. package/dist/src/frontend/locales/zh.json +721 -5
  32. package/dist/src/frontend/main.mjs +60 -0
  33. package/dist/src/frontend/markdown_runtime.js +827 -0
  34. package/dist/src/frontend/notemd.css +49 -0
  35. package/dist/src/frontend/notemd.html +7 -1
  36. package/dist/src/frontend/notemd.js +64 -0
  37. package/dist/src/frontend/path.html +107 -0
  38. package/dist/src/frontend/path_app.js +2108 -130
  39. package/dist/src/frontend/path_layout.mjs +143 -0
  40. package/dist/src/frontend/path_mermaid_utils.mjs +108 -0
  41. package/dist/src/frontend/path_modules_bridge.js +486 -0
  42. package/dist/src/frontend/path_state.mjs +118 -0
  43. package/dist/src/frontend/path_styles.css +146 -0
  44. package/dist/src/frontend/path_worker_bridge.mjs +85 -0
  45. package/dist/src/frontend/reader.js +393 -33
  46. package/dist/src/frontend/runtime_bridge.js +67 -54
  47. package/dist/src/frontend/runtime_bridge.mjs +279 -0
  48. package/dist/src/frontend/settings.js +130 -12
  49. package/dist/src/frontend/source_manager.js +190 -21
  50. package/dist/src/frontend/styles.css +2720 -72
  51. package/dist/src/frontend/workbench_state.mjs +101 -0
  52. package/dist/src/frontend/workspace_panes.js +10168 -0
  53. package/dist/src/frontend.locale.contract.test.js +62 -0
  54. package/dist/src/godot.sidecar.bootstrap.contract.test.js +244 -0
  55. package/dist/src/indexing/IndexLifecycle.js +195 -0
  56. package/dist/src/indexing/IndexLifecycle.test.js +49 -0
  57. package/dist/src/indexing/SegmentBuilder.js +64 -0
  58. package/dist/src/indexing/UnitBuilder.js +48 -0
  59. package/dist/src/indexing/types.js +2 -0
  60. package/dist/src/knowledge.api.contract.test.js +170 -0
  61. package/dist/src/learning/KnowledgeLearningPlatform.js +10386 -0
  62. package/dist/src/learning/KnowledgeLearningPlatform.persistence.test.js +327 -0
  63. package/dist/src/learning/KnowledgeLearningPlatform.program-f.test.js +99 -0
  64. package/dist/src/learning/KnowledgeLearningPlatform.test.js +2971 -0
  65. package/dist/src/learning/KnowledgeWorkspaceConversationRegression.js +2974 -0
  66. package/dist/src/learning/KnowledgeWorkspaceConversationRegression.test.js +3928 -0
  67. package/dist/src/learning/answerReleaseReview.js +4319 -0
  68. package/dist/src/learning/answerReleaseReview.test.js +2888 -0
  69. package/dist/src/learning/api.js +2 -0
  70. package/dist/src/learning/conversationComposer.js +1480 -0
  71. package/dist/src/learning/conversationComposer.test.js +1817 -0
  72. package/dist/src/learning/domains/ConversationManager.js +53 -0
  73. package/dist/src/learning/domains/KnowledgeIngestor.js +238 -0
  74. package/dist/src/learning/domains/KnowledgeQuerier.js +187 -0
  75. package/dist/src/learning/domains/MasteryEngine.js +387 -0
  76. package/dist/src/learning/domains/MemoryPolicyManager.js +408 -0
  77. package/dist/src/learning/domains/QualityEvaluator.js +307 -0
  78. package/dist/src/learning/domains/TutorRouter.js +313 -0
  79. package/dist/src/learning/domains/index.js +33 -0
  80. package/dist/src/learning/domains/types.js +7 -0
  81. package/dist/src/learning/errors.js +29 -0
  82. package/dist/src/learning/evidenceContextAssembler.js +1176 -0
  83. package/dist/src/learning/evidenceContextAssembler.test.js +6332 -0
  84. package/dist/src/learning/graphContextAssembler.js +870 -0
  85. package/dist/src/learning/graphContextAssembler.test.js +1033 -0
  86. package/dist/src/learning/index.js +28 -0
  87. package/dist/src/learning/queryBackend.js +1898 -0
  88. package/dist/src/learning/queryBackend.test.js +955 -0
  89. package/dist/src/learning/ragContextPack.js +257 -0
  90. package/dist/src/learning/ragContextPack.test.js +160 -0
  91. package/dist/src/learning/ragPublicText.js +38 -0
  92. package/dist/src/learning/ragSufficiencyJudge.js +161 -0
  93. package/dist/src/learning/ragSufficiencyJudge.test.js +177 -0
  94. package/dist/src/learning/ragSufficiencyProviderJudge.js +227 -0
  95. package/dist/src/learning/ragSufficiencyProviderJudge.test.js +156 -0
  96. package/dist/src/learning/requestNormalization.js +198 -0
  97. package/dist/src/learning/runtimeCapability.js +4677 -0
  98. package/dist/src/learning/runtimeCapability.test.js +3635 -0
  99. package/dist/src/learning/store.js +1240 -0
  100. package/dist/src/learning/store.test.js +1126 -0
  101. package/dist/src/learning/tutorAdapter.js +2 -0
  102. package/dist/src/learning/types.js +2 -0
  103. package/dist/src/learning/vectorAccelerationAdapter.js +942 -0
  104. package/dist/src/learning/vectorAccelerationAdapter.test.js +382 -0
  105. package/dist/src/lfs.asset.policy.contract.test.js +153 -0
  106. package/dist/src/license.policy.contract.test.js +66 -0
  107. package/dist/src/memory/MemoryGovernance.js +74 -0
  108. package/dist/src/memory/MemoryGovernance.test.js +46 -0
  109. package/dist/src/memory/types.js +2 -0
  110. package/dist/src/mermaid.frontend.guard.contract.test.js +77 -0
  111. package/dist/src/middleware/auth.js +17 -0
  112. package/dist/src/middleware/body-parser.js +45 -0
  113. package/dist/src/middleware/cors.js +44 -0
  114. package/dist/src/middleware/index.js +21 -0
  115. package/dist/src/middleware/request-trace.js +96 -0
  116. package/dist/src/notemd/AppConfigToml.js +6 -4
  117. package/dist/src/notemd/MermaidProcessor.js +400 -50
  118. package/dist/src/notemd/NotemdService.js +498 -13
  119. package/dist/src/notemd/PromptManager.js +15 -0
  120. package/dist/src/notemd/cli/commands.js +357 -0
  121. package/dist/src/notemd/cli/dispatcher.js +225 -0
  122. package/dist/src/notemd/cli/index.js +169 -0
  123. package/dist/src/notemd/cli/parser.js +68 -0
  124. package/dist/src/notemd/cli/types.js +2 -0
  125. package/dist/src/notemd/constants.js +43 -0
  126. package/dist/src/notemd/diagram/diagramGenerationService.js +78 -0
  127. package/dist/src/notemd/diagram/diagramSpec.js +79 -0
  128. package/dist/src/notemd/diagram/diagramSpecResponseParser.js +131 -0
  129. package/dist/src/notemd/diagram/intent.js +95 -0
  130. package/dist/src/notemd/diagram/planner.js +71 -0
  131. package/dist/src/notemd/diagram/prompts/diagramSpecPrompt.js +42 -0
  132. package/dist/src/notemd/diagram/types.js +18 -0
  133. package/dist/src/notemd/index.js +26 -0
  134. package/dist/src/notemd/operations/capabilityManifest.js +23 -0
  135. package/dist/src/notemd/operations/cliContracts.js +17 -0
  136. package/dist/src/notemd/operations/configProfileCommands.js +85 -0
  137. package/dist/src/notemd/operations/registry.contract.test.js +95 -0
  138. package/dist/src/notemd/operations/registry.js +991 -0
  139. package/dist/src/notemd/operations/types.js +2 -0
  140. package/dist/src/notemd/providerDiagnostics.js +220 -0
  141. package/dist/src/notemd/providerProfiles.js +42 -0
  142. package/dist/src/notemd/providerTemplates.js +231 -0
  143. package/dist/src/notemd/search/DuckDuckGoProvider.js +39 -0
  144. package/dist/src/notemd/search/SearchManager.js +13 -0
  145. package/dist/src/notemd/search/SearchProvider.js +2 -0
  146. package/dist/src/notemd/search/TavilyProvider.js +44 -0
  147. package/dist/src/notemd.agent.manifest.test.js +85 -0
  148. package/dist/src/notemd.api.contract.test.js +14 -1
  149. package/dist/src/notemd.app_config_toml.test.js +2 -1
  150. package/dist/src/notemd.batch.workflow.test.js +117 -0
  151. package/dist/src/notemd.cli.e2e.test.js +136 -0
  152. package/dist/src/notemd.core.test.js +51 -0
  153. package/dist/src/notemd.diagram.pipeline.test.js +233 -0
  154. package/dist/src/notemd.providerTemplates.test.js +34 -0
  155. package/dist/src/notemd.server.integration.test.js +143 -35
  156. package/dist/src/notemd.workflow.pipeline.test.js +162 -0
  157. package/dist/src/pathbridge.handshake.contract.test.js +16 -2
  158. package/dist/src/pathmode.background.contract.test.js +69 -0
  159. package/dist/src/pathmode.settings.api.contract.test.js +9 -0
  160. package/dist/src/pkg.sidecar.contract.test.js +9 -3
  161. package/dist/src/platform/ExportProfile.js +58 -0
  162. package/dist/src/platform/PlatformCapabilities.js +45 -0
  163. package/dist/src/platform/PlatformCapabilities.test.js +30 -0
  164. package/dist/src/platform/RenderMaterializer.js +33 -0
  165. package/dist/src/platform/RenderMaterializer.test.js +32 -0
  166. package/dist/src/query_backend.external_http.integration.test.js +410 -0
  167. package/dist/src/reader_renderer.js +404 -3
  168. package/dist/src/reader_renderer.test.js +87 -0
  169. package/dist/src/release.godot.mirror.contract.test.js +73 -0
  170. package/dist/src/resources/ResourceRegistry.js +223 -0
  171. package/dist/src/resources/ResourceRegistry.test.js +61 -0
  172. package/dist/src/resources/types.js +2 -0
  173. package/dist/src/routes/agentWorkspaceDiagnostics.js +173 -0
  174. package/dist/src/routes/data.js +267 -0
  175. package/dist/src/routes/diagnostics.js +51 -0
  176. package/dist/src/routes/index.js +23 -0
  177. package/dist/src/routes/knowledge.js +968 -0
  178. package/dist/src/routes/markdown.js +287 -0
  179. package/dist/src/routes/notemd.js +565 -0
  180. package/dist/src/routes/registry.contract.test.js +130 -0
  181. package/dist/src/routes/render.js +285 -0
  182. package/dist/src/routes/runtimeRunbookRouteOps.js +149 -0
  183. package/dist/src/routes/runtimeRunbookRouteOps.test.js +194 -0
  184. package/dist/src/routes/settings.js +6 -0
  185. package/dist/src/routes/staticFiles.js +94 -0
  186. package/dist/src/routes/types.js +2 -0
  187. package/dist/src/runtime.transport.adapter.contract.test.js +81 -0
  188. package/dist/src/server.js +11090 -1549
  189. package/dist/src/server.migration.test.js +193 -21
  190. package/dist/src/server.port.fallback.contract.test.js +63 -0
  191. package/dist/src/session/SessionStateStore.js +81 -0
  192. package/dist/src/session/SessionStateStore.test.js +58 -0
  193. package/dist/src/session/types.js +2 -0
  194. package/dist/src/settings.runtime.contract.test.js +50 -0
  195. package/dist/src/shared/types.contract.test.js +107 -0
  196. package/dist/src/shared/types.js +22 -0
  197. package/dist/src/sidecar.replacement.boundary.contract.test.js +128 -0
  198. package/dist/src/sidecar.supply.readiness.contract.test.js +144 -0
  199. package/dist/src/source_manager.loadflow.test.js +46 -0
  200. package/dist/src/startup.layout.snapshot.contract.test.js +57 -0
  201. package/dist/src/tauri.frontend.build.contract.test.js +60 -0
  202. package/dist/src/tauri.sidecar.cleanup.contract.test.js +21 -0
  203. package/dist/src/utils/RuntimePaths.js +4 -13
  204. package/dist/src/utils/platform.js +153 -0
  205. package/dist/src/workflows/WorkflowArtifactStore.js +96 -0
  206. package/dist/src/workflows/WorkflowArtifactStore.test.js +80 -0
  207. package/dist/src/workflows/types.js +2 -0
  208. package/dist/src/workspace/WorkspaceRegistry.js +122 -0
  209. package/dist/src/workspace/WorkspaceRegistry.test.js +29 -0
  210. package/dist/src/workspace/types.js +2 -0
  211. package/package.json +53 -10
@@ -697,6 +697,30 @@ div.tooltip {
697
697
  overflow: hidden;
698
698
  }
699
699
 
700
+ .settings-modal-overlay {
701
+ align-items: flex-start;
702
+ overflow-y: auto;
703
+ padding: 24px 16px;
704
+ box-sizing: border-box;
705
+ }
706
+
707
+ .modal-content-settings {
708
+ width: min(680px, 92vw);
709
+ max-width: 680px;
710
+ max-height: min(88vh, 860px);
711
+ margin: auto;
712
+ border-radius: 18px;
713
+ background:
714
+ linear-gradient(180deg, rgba(44, 51, 63, 0.98), rgba(28, 33, 42, 0.98));
715
+ border: 1px solid rgba(140, 156, 176, 0.22);
716
+ box-shadow: 0 22px 64px rgba(0, 0, 0, 0.45);
717
+ }
718
+
719
+ .modal-content-agent-settings {
720
+ width: min(760px, 94vw);
721
+ max-width: 760px;
722
+ }
723
+
700
724
  .modal-header {
701
725
  padding: 15px;
702
726
  background: #333;
@@ -729,6 +753,78 @@ div.tooltip {
729
753
  color: #e0e0e0;
730
754
  }
731
755
 
756
+ .settings-modal-body {
757
+ padding: 16px 18px 18px;
758
+ overflow-y: auto;
759
+ min-height: 0;
760
+ }
761
+
762
+ .settings-modal-subtitle {
763
+ margin: 6px 0 0;
764
+ color: #a8b4c3;
765
+ font-size: 0.9rem;
766
+ line-height: 1.45;
767
+ max-width: 54ch;
768
+ }
769
+
770
+ .settings-page-grid {
771
+ display: grid;
772
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
773
+ gap: 14px;
774
+ align-content: start;
775
+ }
776
+
777
+ .settings-page-grid-single {
778
+ grid-template-columns: minmax(0, 1fr);
779
+ }
780
+
781
+ .settings-card {
782
+ background: rgba(255, 255, 255, 0.03);
783
+ border: 1px solid rgba(255, 255, 255, 0.08);
784
+ border-radius: 16px;
785
+ padding: 14px;
786
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
787
+ }
788
+
789
+ .settings-card-accent {
790
+ background:
791
+ linear-gradient(180deg, rgba(97, 218, 251, 0.06), rgba(116, 66, 16, 0.08)),
792
+ rgba(255, 255, 255, 0.03);
793
+ border-color: rgba(97, 218, 251, 0.14);
794
+ }
795
+
796
+ .settings-card-wide {
797
+ min-width: 0;
798
+ }
799
+
800
+ .settings-card-callout {
801
+ display: flex;
802
+ min-height: 100%;
803
+ flex-direction: column;
804
+ gap: 10px;
805
+ justify-content: space-between;
806
+ }
807
+
808
+ .settings-card-kicker {
809
+ font-size: 0.74rem;
810
+ letter-spacing: 0.08em;
811
+ text-transform: uppercase;
812
+ color: #8ecae6;
813
+ }
814
+
815
+ .settings-card-title {
816
+ margin: 0;
817
+ font-size: 1.08rem;
818
+ color: #f7fbff;
819
+ }
820
+
821
+ .settings-card-copy {
822
+ margin: 0;
823
+ color: #b8c2cf;
824
+ font-size: 0.9rem;
825
+ line-height: 1.5;
826
+ }
827
+
732
828
  .settings-group {
733
829
  margin-bottom: 20px;
734
830
  }
@@ -742,12 +838,17 @@ div.tooltip {
742
838
  padding-bottom: 5px;
743
839
  }
744
840
 
841
+ .settings-card .settings-group:last-child {
842
+ margin-bottom: 0;
843
+ }
844
+
745
845
  .setting-item {
746
846
  display: flex;
747
847
  align-items: center;
748
848
  justify-content: space-between;
749
849
  margin-bottom: 10px;
750
850
  font-size: 0.9rem;
851
+ gap: 12px;
751
852
  }
752
853
 
753
854
  .setting-item label {
@@ -766,6 +867,43 @@ div.tooltip {
766
867
  color: #61dafb;
767
868
  }
768
869
 
870
+ .setting-item-stack {
871
+ display: flex;
872
+ flex-direction: column;
873
+ align-items: stretch;
874
+ }
875
+
876
+ .setting-item-stack > label {
877
+ flex: none;
878
+ }
879
+
880
+ .settings-toggle {
881
+ display: flex;
882
+ align-items: center;
883
+ gap: 10px;
884
+ cursor: pointer;
885
+ }
886
+
887
+ .settings-select,
888
+ .settings-text-input,
889
+ .settings-number {
890
+ width: 100%;
891
+ background: rgba(14, 18, 24, 0.86);
892
+ color: #f8fbff;
893
+ border: 1px solid rgba(255, 255, 255, 0.14);
894
+ border-radius: 10px;
895
+ padding: 8px 10px;
896
+ box-sizing: border-box;
897
+ }
898
+
899
+ .settings-number {
900
+ width: 72px;
901
+ }
902
+
903
+ .settings-select-grow {
904
+ flex: 1 1 220px;
905
+ }
906
+
769
907
  .modal-footer {
770
908
  padding: 15px;
771
909
  background: #333;
@@ -775,6 +913,22 @@ div.tooltip {
775
913
  gap: 10px;
776
914
  }
777
915
 
916
+ .modal-footer-settings {
917
+ position: sticky;
918
+ bottom: 0;
919
+ z-index: 1;
920
+ background: rgba(33, 39, 49, 0.98);
921
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
922
+ }
923
+
924
+ .settings-breadcrumb-row {
925
+ margin-bottom: 10px;
926
+ }
927
+
928
+ .btn-inline-nav {
929
+ padding-inline: 10px;
930
+ }
931
+
778
932
  .btn {
779
933
  padding: 6px 12px;
780
934
  border-radius: 4px;
@@ -879,6 +1033,7 @@ div.tooltip {
879
1033
  display: flex;
880
1034
  flex-direction: column;
881
1035
  overflow: hidden;
1036
+ min-height: 0;
882
1037
  transition: all 0.3s ease;
883
1038
  }
884
1039
 
@@ -944,6 +1099,76 @@ div.tooltip {
944
1099
  font-family: "Segoe UI", sans-serif;
945
1100
  line-height: 1.6;
946
1101
  flex: 1;
1102
+ min-height: 0;
1103
+ }
1104
+
1105
+ .reading-layout {
1106
+ display: flex;
1107
+ flex: 1;
1108
+ min-height: 0;
1109
+ overflow: hidden;
1110
+ }
1111
+
1112
+ .reading-main {
1113
+ display: flex;
1114
+ flex: 1 1 auto;
1115
+ flex-direction: column;
1116
+ min-width: 0;
1117
+ min-height: 0;
1118
+ }
1119
+
1120
+ .reading-diagnostics {
1121
+ display: flex;
1122
+ flex-wrap: wrap;
1123
+ gap: 8px;
1124
+ padding: 8px 18px 0;
1125
+ flex-shrink: 0;
1126
+ }
1127
+
1128
+ .reading-diagnostics-item {
1129
+ display: inline-flex;
1130
+ align-items: center;
1131
+ min-height: 24px;
1132
+ padding: 2px 8px;
1133
+ border-radius: 999px;
1134
+ background: rgba(60, 60, 60, 0.9);
1135
+ color: #cfd8e3;
1136
+ font-size: 0.78rem;
1137
+ }
1138
+
1139
+ .reading-outline {
1140
+ width: 240px;
1141
+ min-width: 200px;
1142
+ max-width: 280px;
1143
+ border-left: 1px solid #333;
1144
+ background: rgba(20, 20, 20, 0.82);
1145
+ display: flex;
1146
+ flex-direction: column;
1147
+ flex-shrink: 0;
1148
+ min-height: 0;
1149
+ }
1150
+
1151
+ .reading-outline-header {
1152
+ padding: 14px 16px 10px;
1153
+ color: #8ddcff;
1154
+ font-size: 0.82rem;
1155
+ font-weight: 700;
1156
+ letter-spacing: 0.04em;
1157
+ text-transform: uppercase;
1158
+ border-bottom: 1px solid #2e2e2e;
1159
+ }
1160
+
1161
+ .reading-outline-body {
1162
+ flex: 1;
1163
+ min-height: 0;
1164
+ overflow-y: auto;
1165
+ padding: 10px 12px 14px;
1166
+ }
1167
+
1168
+ .reading-outline-empty {
1169
+ color: #8c99a7;
1170
+ font-size: 0.82rem;
1171
+ line-height: 1.5;
947
1172
  }
948
1173
 
949
1174
  /* Content Styling */
@@ -1080,89 +1305,2512 @@ div.tooltip {
1080
1305
  background: #9b2c2c;
1081
1306
  }
1082
1307
 
1083
- /* --- Mobile Responsiveness (v0.9.2) --- */
1084
- @media (max-width: 768px) {
1085
- .notemd-embed-shell {
1086
- width: 100vw;
1087
- height: 100vh;
1088
- border-radius: 0;
1089
- border: none;
1090
- }
1308
+ .mermaid-render-failed {
1309
+ border-style: dashed;
1310
+ border-color: rgba(245, 158, 11, 0.65);
1311
+ background: rgba(36, 22, 6, 0.92);
1312
+ }
1091
1313
 
1092
- .notemd-embed-header {
1093
- height: 52px;
1094
- padding: 0 10px;
1095
- }
1314
+ .mermaid-render-notice {
1315
+ display: flex;
1316
+ flex-direction: column;
1317
+ gap: 8px;
1318
+ color: #f5f0e6;
1319
+ font-size: 0.92rem;
1320
+ }
1096
1321
 
1097
- .notemd-embed-close {
1098
- padding: 6px 10px;
1099
- }
1322
+ .mermaid-render-notice-title {
1323
+ font-weight: 700;
1324
+ color: #f6c453;
1325
+ }
1100
1326
 
1101
- .notemd-embed-frame {
1102
- height: calc(100% - 52px);
1103
- }
1327
+ .mermaid-render-notice-summary {
1328
+ color: #d6ccb8;
1329
+ line-height: 1.4;
1330
+ }
1104
1331
 
1105
- /* 1. Main Controls: Collapsible or Compact */
1106
- #controls {
1107
- width: 40px;
1108
- height: 40px;
1109
- overflow: hidden;
1110
- padding: 0;
1111
- border-radius: 50%;
1112
- transition: all 0.3s ease;
1113
- background: rgba(45, 45, 45, 0.95)
1114
- url('data:image/svg+xml;utf8,<svg fill="white" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>')
1115
- no-repeat center;
1116
- background-size: 24px;
1117
- cursor: pointer;
1118
- }
1332
+ .mermaid-render-notice-details {
1333
+ color: #cfc6b4;
1334
+ }
1119
1335
 
1120
- #controls.expanded {
1121
- width: 85%;
1122
- height: auto;
1123
- max-height: 80vh;
1124
- overflow-y: auto;
1125
- border-radius: 8px;
1126
- padding: 15px;
1127
- background: rgba(45, 45, 45, 0.98);
1128
- }
1336
+ .mermaid-render-notice-details summary {
1337
+ cursor: pointer;
1338
+ color: #f0d899;
1339
+ }
1129
1340
 
1130
- /* Hide internal elements when collapsed */
1131
- #controls:not(.expanded) > * {
1132
- opacity: 0;
1133
- pointer-events: none;
1134
- }
1341
+ .mermaid-render-notice-code {
1342
+ margin: 8px 0 0;
1343
+ max-height: 180px;
1344
+ overflow: auto;
1345
+ white-space: pre-wrap;
1346
+ word-break: break-word;
1347
+ font-size: 0.8rem;
1348
+ line-height: 1.45;
1349
+ padding: 10px;
1350
+ border-radius: 8px;
1351
+ background: rgba(0, 0, 0, 0.28);
1352
+ border: 1px solid rgba(255, 255, 255, 0.08);
1353
+ }
1135
1354
 
1136
- /* 2. Focus Mode Controls */
1137
- #focus-exit-btn {
1138
- top: auto;
1139
- bottom: 20px; /* Move to bottom for easier thumb reach */
1140
- width: 90%;
1141
- left: 50%;
1142
- flex-direction: column;
1143
- gap: 10px;
1144
- padding: 15px;
1145
- }
1355
+ .mermaid-inline-guard {
1356
+ display: flex;
1357
+ flex-direction: column;
1358
+ gap: 6px;
1359
+ margin: 10px 0;
1360
+ padding: 10px 12px;
1361
+ border-radius: 10px;
1362
+ border: 1px dashed rgba(245, 158, 11, 0.55);
1363
+ background: rgba(34, 24, 10, 0.88);
1364
+ color: #f3e7d3;
1365
+ }
1146
1366
 
1147
- #focus-exit-btn span {
1148
- font-size: 1.1rem;
1149
- text-align: center;
1150
- }
1367
+ .mermaid-inline-guard-title {
1368
+ font-weight: 700;
1369
+ color: #f6c453;
1370
+ }
1151
1371
 
1152
- #focus-exit-btn div {
1153
- width: 100%;
1154
- justify-content: space-between;
1155
- }
1372
+ .mermaid-inline-guard-summary {
1373
+ font-size: 0.86rem;
1374
+ line-height: 1.4;
1375
+ color: #e2d1b5;
1376
+ }
1156
1377
 
1157
- #focus-exit-btn button {
1158
- width: 100%;
1159
- padding: 10px;
1160
- }
1378
+ .mermaid-inline-guard-detail {
1379
+ font-size: 0.78rem;
1380
+ line-height: 1.35;
1381
+ color: #c9bea8;
1382
+ word-break: break-word;
1383
+ }
1161
1384
 
1162
- /* 3. Reading Window */
1163
- .reading-box.window-mode {
1164
- width: 95%;
1165
- height: 90%;
1385
+ .mermaid-error-toast-stack {
1386
+ position: fixed;
1387
+ right: 18px;
1388
+ bottom: 18px;
1389
+ z-index: 3400;
1390
+ display: flex;
1391
+ flex-direction: column;
1392
+ gap: 10px;
1393
+ align-items: flex-end;
1394
+ pointer-events: none;
1395
+ }
1396
+
1397
+ .mermaid-error-toast {
1398
+ width: min(420px, calc(100vw - 32px));
1399
+ padding: 12px 14px;
1400
+ border-radius: 12px;
1401
+ border: 1px solid rgba(245, 158, 11, 0.42);
1402
+ background: rgba(17, 12, 6, 0.94);
1403
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
1404
+ color: #f4ead7;
1405
+ pointer-events: none;
1406
+ }
1407
+
1408
+ .mermaid-error-toast-title {
1409
+ font-weight: 700;
1410
+ color: #f6c453;
1411
+ margin-bottom: 4px;
1412
+ }
1413
+
1414
+ .mermaid-error-toast-summary {
1415
+ font-size: 0.84rem;
1416
+ color: #e4d6ba;
1417
+ line-height: 1.35;
1418
+ }
1419
+
1420
+ .mermaid-error-toast-detail {
1421
+ margin-top: 6px;
1422
+ font-size: 0.74rem;
1423
+ color: #cdbfa6;
1424
+ line-height: 1.3;
1425
+ word-break: break-word;
1426
+ }
1427
+
1428
+ .settings-inline-row {
1429
+ display: flex;
1430
+ gap: 10px;
1431
+ align-items: center;
1432
+ flex-wrap: wrap;
1433
+ }
1434
+
1435
+ .settings-helper-block {
1436
+ margin-top: 8px;
1437
+ font-size: 0.78rem;
1438
+ line-height: 1.45;
1439
+ color: #aeb7c3;
1440
+ }
1441
+
1442
+ .settings-helper-code {
1443
+ font-family: Consolas, "Courier New", monospace;
1444
+ color: #d4dee8;
1445
+ word-break: break-all;
1446
+ }
1447
+
1448
+ .agent-workspace-backdrop {
1449
+ position: fixed;
1450
+ inset: 0;
1451
+ background: rgba(5, 7, 11, 0.58);
1452
+ backdrop-filter: blur(4px);
1453
+ z-index: 2590;
1454
+ opacity: 0;
1455
+ pointer-events: none;
1456
+ transition: opacity 0.24s ease;
1457
+ }
1458
+
1459
+ .agent-workspace-drawer {
1460
+ position: fixed;
1461
+ top: 14px;
1462
+ right: 14px;
1463
+ bottom: 14px;
1464
+ width: min(1100px, calc(100vw - 28px));
1465
+ transform: translateX(calc(100% + 24px));
1466
+ opacity: 0;
1467
+ pointer-events: none;
1468
+ transition:
1469
+ transform 0.26s ease,
1470
+ opacity 0.22s ease;
1471
+ z-index: 2600;
1472
+ }
1473
+
1474
+ body.agent-workspace-open .agent-workspace-backdrop {
1475
+ opacity: 1;
1476
+ pointer-events: auto;
1477
+ }
1478
+
1479
+ body.agent-workspace-open .agent-workspace-drawer {
1480
+ transform: translateX(0);
1481
+ opacity: 1;
1482
+ pointer-events: auto;
1483
+ }
1484
+
1485
+ .agent-workspace-drawer-frame {
1486
+ display: flex;
1487
+ flex-direction: column;
1488
+ width: 100%;
1489
+ height: 100%;
1490
+ min-height: 0;
1491
+ border-radius: 18px;
1492
+ overflow: hidden;
1493
+ background: rgba(11, 15, 21, 0.98);
1494
+ border: 1px solid rgba(97, 218, 251, 0.16);
1495
+ box-shadow:
1496
+ 0 18px 48px rgba(0, 0, 0, 0.42),
1497
+ 0 0 0 1px rgba(255, 255, 255, 0.03) inset;
1498
+ }
1499
+
1500
+ .agent-workspace-drawer-toolbar {
1501
+ display: grid;
1502
+ grid-template-columns: minmax(180px, 1fr) auto;
1503
+ align-items: center;
1504
+ gap: 12px;
1505
+ padding: 14px 18px;
1506
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
1507
+ background:
1508
+ linear-gradient(135deg, rgba(116, 66, 16, 0.28), rgba(44, 82, 130, 0.22)),
1509
+ rgba(8, 11, 16, 0.92);
1510
+ }
1511
+
1512
+ .agent-workspace-drawer-heading {
1513
+ display: flex;
1514
+ flex-direction: column;
1515
+ gap: 3px;
1516
+ min-width: 0;
1517
+ }
1518
+
1519
+ .agent-workspace-drawer-title {
1520
+ color: #f7fafc;
1521
+ font-size: 1rem;
1522
+ font-weight: 700;
1523
+ }
1524
+
1525
+ .agent-workspace-drawer-subtitle {
1526
+ color: #aeb9c6;
1527
+ font-size: 0.82rem;
1528
+ }
1529
+
1530
+ .agent-workspace-drawer-close {
1531
+ justify-self: end;
1532
+ border: 1px solid rgba(255, 255, 255, 0.12);
1533
+ background: rgba(255, 255, 255, 0.04);
1534
+ color: #edf2f7;
1535
+ border-radius: 999px;
1536
+ padding: 8px 14px;
1537
+ cursor: pointer;
1538
+ }
1539
+
1540
+ .agent-workspace-shell {
1541
+ flex: 1;
1542
+ min-height: 0;
1543
+ display: grid;
1544
+ grid-template-columns: minmax(320px, 0.92fr) minmax(360px, 1.08fr);
1545
+ gap: 16px;
1546
+ padding: 16px;
1547
+ align-content: start;
1548
+ overflow-x: hidden;
1549
+ overflow-y: auto;
1550
+ overscroll-behavior: contain;
1551
+ scrollbar-gutter: stable;
1552
+ }
1553
+
1554
+ .agent-chat-pane,
1555
+ .agent-side-work-area,
1556
+ .agent-workspace-pane {
1557
+ min-height: 0;
1558
+ }
1559
+
1560
+ .agent-chat-pane,
1561
+ .agent-workspace-pane {
1562
+ background: rgba(255, 255, 255, 0.03);
1563
+ border: 1px solid rgba(255, 255, 255, 0.08);
1564
+ border-radius: 16px;
1565
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
1566
+ }
1567
+
1568
+ .agent-chat-pane {
1569
+ display: grid;
1570
+ grid-template-rows:
1571
+ auto
1572
+ auto
1573
+ auto
1574
+ minmax(128px, 0.92fr)
1575
+ minmax(128px, 0.62fr)
1576
+ auto
1577
+ auto
1578
+ auto;
1579
+ max-height: calc(100vh - 142px);
1580
+ padding: 16px;
1581
+ gap: 12px;
1582
+ overflow-x: hidden;
1583
+ overflow-y: auto;
1584
+ overscroll-behavior: contain;
1585
+ scrollbar-gutter: stable;
1586
+ }
1587
+
1588
+ .agent-pane-header,
1589
+ .agent-workspace-pane-header {
1590
+ display: flex;
1591
+ align-items: flex-start;
1592
+ justify-content: space-between;
1593
+ gap: 12px;
1594
+ }
1595
+
1596
+ .agent-pane-header h3,
1597
+ .agent-workspace-pane-header h4 {
1598
+ margin: 0;
1599
+ color: #f8fbff;
1600
+ }
1601
+
1602
+ .agent-pane-subtitle {
1603
+ color: #a6b4c3;
1604
+ font-size: 0.82rem;
1605
+ }
1606
+
1607
+ .agent-pane-field {
1608
+ display: flex;
1609
+ flex-direction: column;
1610
+ gap: 6px;
1611
+ }
1612
+
1613
+ .agent-scope-control,
1614
+ .agent-pane-field,
1615
+ .agent-pane-actions,
1616
+ .agent-api-status {
1617
+ flex: 0 0 auto;
1618
+ }
1619
+
1620
+ .agent-scope-control {
1621
+ display: grid;
1622
+ grid-template-columns: minmax(0, 1fr);
1623
+ gap: 6px;
1624
+ padding: 10px;
1625
+ border: 1px solid rgba(148, 163, 184, 0.18);
1626
+ border-radius: 8px;
1627
+ background: rgba(15, 23, 42, 0.92);
1628
+ backdrop-filter: blur(8px);
1629
+ }
1630
+
1631
+ .agent-scope-control--toolbar {
1632
+ grid-template-columns: auto minmax(0, 1fr);
1633
+ align-items: center;
1634
+ gap: 6px 10px;
1635
+ min-width: 0;
1636
+ padding: 8px 10px;
1637
+ background: rgba(2, 6, 12, 0.5);
1638
+ }
1639
+
1640
+ .agent-scope-control--workspace {
1641
+ grid-template-columns: minmax(94px, auto) minmax(0, 1fr);
1642
+ align-items: center;
1643
+ gap: 6px 10px;
1644
+ }
1645
+
1646
+ .agent-scope-control label {
1647
+ color: #dbeafe;
1648
+ font-size: 0.8rem;
1649
+ font-weight: 700;
1650
+ }
1651
+
1652
+ .agent-scope-control select {
1653
+ width: 100%;
1654
+ min-height: 44px;
1655
+ border: 1px solid rgba(125, 211, 252, 0.22);
1656
+ border-radius: 8px;
1657
+ background: rgba(2, 6, 12, 0.82);
1658
+ color: #f8fbff;
1659
+ padding: 9px 10px;
1660
+ box-sizing: border-box;
1661
+ }
1662
+
1663
+ .agent-scope-control--toolbar select {
1664
+ min-height: 38px;
1665
+ padding: 7px 9px;
1666
+ }
1667
+
1668
+ .agent-scope-summary {
1669
+ min-height: 18px;
1670
+ color: #93c5fd;
1671
+ font-size: 0.78rem;
1672
+ line-height: 1.35;
1673
+ overflow-wrap: anywhere;
1674
+ }
1675
+
1676
+ .agent-scope-control--toolbar .agent-scope-summary {
1677
+ grid-column: 1 / -1;
1678
+ min-height: 16px;
1679
+ font-size: 0.74rem;
1680
+ }
1681
+
1682
+ .agent-scope-control--workspace .agent-scope-summary {
1683
+ grid-column: 2;
1684
+ }
1685
+
1686
+ .agent-pane-field label {
1687
+ color: #cbd5e1;
1688
+ font-size: 0.84rem;
1689
+ }
1690
+
1691
+ .agent-pane-field input,
1692
+ .agent-pane-field textarea {
1693
+ width: 100%;
1694
+ border-radius: 12px;
1695
+ border: 1px solid rgba(255, 255, 255, 0.12);
1696
+ background: rgba(2, 6, 12, 0.66);
1697
+ color: #edf2f7;
1698
+ padding: 10px 12px;
1699
+ box-sizing: border-box;
1700
+ }
1701
+
1702
+ .agent-pane-field textarea {
1703
+ resize: vertical;
1704
+ min-height: 92px;
1705
+ }
1706
+
1707
+ .agent-pane-actions,
1708
+ .agent-pane-controls {
1709
+ display: flex;
1710
+ gap: 8px;
1711
+ flex-wrap: wrap;
1712
+ align-items: center;
1713
+ justify-content: flex-end;
1714
+ }
1715
+
1716
+ .agent-pane-actions button,
1717
+ .agent-pane-controls button,
1718
+ #btn-agent-workspace-send,
1719
+ #btn-open-agent-workspace {
1720
+ min-height: 44px;
1721
+ border: 1px solid rgba(255, 255, 255, 0.12);
1722
+ border-radius: 12px;
1723
+ cursor: pointer;
1724
+ }
1725
+
1726
+ .agent-pane-controls button {
1727
+ background: rgba(2, 6, 12, 0.52);
1728
+ color: #dbeafe;
1729
+ padding: 8px 12px;
1730
+ }
1731
+
1732
+ .agent-pane-controls button:hover,
1733
+ .agent-pane-controls button:focus-visible {
1734
+ border-color: rgba(125, 211, 252, 0.42);
1735
+ background: rgba(14, 116, 144, 0.2);
1736
+ outline: 2px solid rgba(125, 211, 252, 0.34);
1737
+ outline-offset: 2px;
1738
+ }
1739
+
1740
+ .agent-pane-close-button {
1741
+ width: 44px;
1742
+ padding: 0;
1743
+ border-radius: 999px;
1744
+ font-size: 1.15rem;
1745
+ line-height: 1;
1746
+ }
1747
+
1748
+ #btn-agent-workspace-send {
1749
+ background: linear-gradient(135deg, #2c5282, #744210);
1750
+ color: #fff8ed;
1751
+ padding: 10px 14px;
1752
+ }
1753
+
1754
+ .agent-api-status {
1755
+ min-height: 34px;
1756
+ display: flex;
1757
+ align-items: center;
1758
+ gap: 8px;
1759
+ padding: 7px 9px;
1760
+ border: 1px solid rgba(148, 163, 184, 0.18);
1761
+ border-radius: 8px;
1762
+ background: rgba(15, 23, 42, 0.46);
1763
+ color: #cbd5e1;
1764
+ font-size: 0.78rem;
1765
+ line-height: 1.35;
1766
+ }
1767
+
1768
+ .agent-api-status-dot {
1769
+ width: 8px;
1770
+ height: 8px;
1771
+ flex: 0 0 auto;
1772
+ border-radius: 999px;
1773
+ background: #94a3b8;
1774
+ }
1775
+
1776
+ .agent-api-status-label {
1777
+ color: #f8fbff;
1778
+ font-weight: 700;
1779
+ }
1780
+
1781
+ .agent-api-status-detail {
1782
+ min-width: 0;
1783
+ color: #9fb0c2;
1784
+ overflow-wrap: anywhere;
1785
+ }
1786
+
1787
+ .agent-api-status[data-api-state="pending"] .agent-api-status-dot {
1788
+ background: #facc15;
1789
+ }
1790
+
1791
+ .agent-api-status[data-api-state="ok"] .agent-api-status-dot {
1792
+ background: #22c55e;
1793
+ }
1794
+
1795
+ .agent-api-status[data-api-state="error"] {
1796
+ border-color: rgba(248, 113, 113, 0.34);
1797
+ }
1798
+
1799
+ .agent-api-status[data-api-state="error"] .agent-api-status-dot {
1800
+ background: #f87171;
1801
+ }
1802
+
1803
+ .agent-chat-messages,
1804
+ .agent-knowledge-points,
1805
+ .agent-workspace-pane-body {
1806
+ min-height: 0;
1807
+ overflow: auto;
1808
+ }
1809
+
1810
+ .agent-chat-messages {
1811
+ min-height: 0;
1812
+ display: flex;
1813
+ flex-direction: column;
1814
+ gap: 10px;
1815
+ padding-right: 6px;
1816
+ overflow-y: auto;
1817
+ overscroll-behavior: contain;
1818
+ }
1819
+
1820
+ .agent-chat-message {
1821
+ padding: 10px 12px;
1822
+ border-radius: 14px;
1823
+ line-height: 1.48;
1824
+ white-space: pre-wrap;
1825
+ word-break: break-word;
1826
+ }
1827
+
1828
+ .agent-chat-message-rendered {
1829
+ white-space: normal;
1830
+ }
1831
+
1832
+ .agent-chat-message-user {
1833
+ align-self: flex-end;
1834
+ max-width: 92%;
1835
+ background: rgba(44, 82, 130, 0.34);
1836
+ color: #e2e8f0;
1837
+ }
1838
+
1839
+ .agent-chat-message-assistant,
1840
+ .agent-chat-message-system {
1841
+ align-self: stretch;
1842
+ background: rgba(255, 255, 255, 0.04);
1843
+ color: #edf2f7;
1844
+ }
1845
+
1846
+ .agent-chat-render-block + .agent-chat-render-block {
1847
+ margin-top: 12px;
1848
+ }
1849
+
1850
+ .agent-chat-markdown {
1851
+ color: #edf2f7;
1852
+ line-height: 1.62;
1853
+ white-space: normal;
1854
+ }
1855
+
1856
+ .agent-chat-markdown > :first-child {
1857
+ margin-top: 0;
1858
+ }
1859
+
1860
+ .agent-chat-markdown > :last-child {
1861
+ margin-bottom: 0;
1862
+ }
1863
+
1864
+ .agent-chat-markdown p {
1865
+ margin: 0.85rem 0;
1866
+ }
1867
+
1868
+ .agent-chat-markdown ul,
1869
+ .agent-chat-markdown ol {
1870
+ margin: 0.85rem 0;
1871
+ padding-left: 1.4rem;
1872
+ }
1873
+
1874
+ .agent-chat-markdown li + li {
1875
+ margin-top: 0.3rem;
1876
+ }
1877
+
1878
+ .agent-chat-markdown pre {
1879
+ margin: 0.85rem 0;
1880
+ padding: 12px 14px;
1881
+ border-radius: 12px;
1882
+ background: rgba(8, 12, 18, 0.92);
1883
+ overflow: auto;
1884
+ border: 1px solid rgba(255, 255, 255, 0.08);
1885
+ }
1886
+
1887
+ .agent-chat-markdown code {
1888
+ font-family: "Cascadia Code", "JetBrains Mono", Consolas, monospace;
1889
+ }
1890
+
1891
+ .agent-chat-markdown p code,
1892
+ .agent-chat-markdown li code,
1893
+ .agent-chat-markdown td code {
1894
+ padding: 2px 6px;
1895
+ border-radius: 8px;
1896
+ background: rgba(255, 255, 255, 0.08);
1897
+ }
1898
+
1899
+ .agent-chat-markdown blockquote {
1900
+ margin: 0.95rem 0;
1901
+ padding: 0.7rem 0.95rem;
1902
+ border-left: 3px solid rgba(97, 218, 251, 0.48);
1903
+ background: rgba(255, 255, 255, 0.04);
1904
+ border-radius: 0 10px 10px 0;
1905
+ color: #d8e2eb;
1906
+ }
1907
+
1908
+ .agent-chat-markdown table {
1909
+ width: 100%;
1910
+ border-collapse: collapse;
1911
+ margin: 1rem 0;
1912
+ font-size: 0.92rem;
1913
+ }
1914
+
1915
+ .agent-chat-markdown th,
1916
+ .agent-chat-markdown td {
1917
+ padding: 8px 10px;
1918
+ border: 1px solid rgba(255, 255, 255, 0.08);
1919
+ text-align: left;
1920
+ vertical-align: top;
1921
+ }
1922
+
1923
+ .agent-chat-markdown th {
1924
+ background: rgba(255, 255, 255, 0.06);
1925
+ }
1926
+
1927
+ .agent-chat-markdown img {
1928
+ max-width: 100%;
1929
+ border-radius: 10px;
1930
+ }
1931
+
1932
+ .agent-chat-inline-card,
1933
+ .agent-chat-inline-artifact {
1934
+ border-radius: 12px;
1935
+ border: 1px solid rgba(255, 255, 255, 0.08);
1936
+ background: rgba(8, 12, 18, 0.86);
1937
+ padding: 12px 14px;
1938
+ }
1939
+
1940
+ .agent-chat-inline-card-title,
1941
+ .agent-chat-inline-artifact-title {
1942
+ font-weight: 700;
1943
+ color: #f8fbff;
1944
+ }
1945
+
1946
+ .agent-chat-inline-card-summary,
1947
+ .agent-chat-inline-artifact-summary {
1948
+ margin-top: 6px;
1949
+ color: #c3cfdb;
1950
+ }
1951
+
1952
+ .agent-chat-structured-answer-card {
1953
+ display: grid;
1954
+ gap: 12px;
1955
+ background:
1956
+ linear-gradient(180deg, rgba(18, 26, 38, 0.94) 0%, rgba(8, 12, 18, 0.88) 100%);
1957
+ border-color: rgba(143, 226, 247, 0.18);
1958
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
1959
+ }
1960
+
1961
+ .agent-chat-structured-answer-direct {
1962
+ margin-top: 0;
1963
+ padding: 12px 14px;
1964
+ border-radius: 12px;
1965
+ background:
1966
+ linear-gradient(135deg, rgba(14, 116, 144, 0.22) 0%, rgba(30, 41, 59, 0.18) 100%);
1967
+ border: 1px solid rgba(125, 211, 252, 0.22);
1968
+ color: #f8fbff;
1969
+ font-size: 0.96rem;
1970
+ line-height: 1.62;
1971
+ font-weight: 600;
1972
+ }
1973
+
1974
+ .agent-chat-structured-answer-section {
1975
+ margin-top: 0;
1976
+ padding: 12px 14px;
1977
+ border-radius: 12px;
1978
+ border: 1px solid rgba(255, 255, 255, 0.06);
1979
+ background: rgba(255, 255, 255, 0.025);
1980
+ }
1981
+
1982
+ .agent-chat-structured-answer-section h1,
1983
+ .agent-chat-structured-answer-section h2,
1984
+ .agent-chat-structured-answer-section h3 {
1985
+ margin-top: 0;
1986
+ }
1987
+
1988
+ .agent-chat-structured-answer-section > :last-child {
1989
+ margin-bottom: 0;
1990
+ }
1991
+
1992
+ .agent-chat-structured-answer-overview {
1993
+ border-left: 3px solid rgba(148, 163, 184, 0.7);
1994
+ }
1995
+
1996
+ .agent-chat-structured-answer-explanation {
1997
+ border-left: 3px solid rgba(125, 211, 252, 0.78);
1998
+ background:
1999
+ linear-gradient(180deg, rgba(14, 116, 144, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%);
2000
+ }
2001
+
2002
+ .agent-chat-structured-answer-evidence {
2003
+ border-left: 3px solid rgba(34, 197, 94, 0.78);
2004
+ background:
2005
+ linear-gradient(180deg, rgba(21, 128, 61, 0.1) 0%, rgba(255, 255, 255, 0.02) 100%);
2006
+ }
2007
+
2008
+ .agent-chat-structured-answer-next-actions {
2009
+ border-left: 3px solid rgba(245, 158, 11, 0.82);
2010
+ background:
2011
+ linear-gradient(180deg, rgba(146, 64, 14, 0.12) 0%, rgba(255, 255, 255, 0.02) 100%);
2012
+ }
2013
+
2014
+ .agent-chat-inline-card-list {
2015
+ list-style: none;
2016
+ margin: 10px 0 0;
2017
+ padding: 0;
2018
+ display: flex;
2019
+ flex-direction: column;
2020
+ gap: 10px;
2021
+ }
2022
+
2023
+ .agent-chat-inline-card-item {
2024
+ padding: 10px 12px;
2025
+ border-radius: 10px;
2026
+ background: rgba(255, 255, 255, 0.03);
2027
+ }
2028
+
2029
+ .agent-chat-inline-card-item-title {
2030
+ font-weight: 600;
2031
+ color: #eef4fb;
2032
+ }
2033
+
2034
+ .agent-chat-inline-artifact-details {
2035
+ margin-top: 10px;
2036
+ }
2037
+
2038
+ .agent-chat-inline-artifact-details summary {
2039
+ cursor: pointer;
2040
+ color: #8fe2f7;
2041
+ }
2042
+
2043
+ .agent-chat-inline-artifact-frame {
2044
+ width: 100%;
2045
+ min-height: 280px;
2046
+ margin-top: 10px;
2047
+ border: 1px solid rgba(255, 255, 255, 0.08);
2048
+ border-radius: 10px;
2049
+ background: #ffffff;
2050
+ }
2051
+
2052
+ .agent-chat-message-card {
2053
+ padding: 0;
2054
+ background: transparent;
2055
+ border: none;
2056
+ }
2057
+
2058
+ .agent-chat-card,
2059
+ .agent-pane-block {
2060
+ border-radius: 14px;
2061
+ border: 1px solid rgba(255, 255, 255, 0.08);
2062
+ background: rgba(10, 14, 20, 0.88);
2063
+ padding: 14px;
2064
+ }
2065
+
2066
+ .agent-chat-card-title,
2067
+ .agent-pane-title {
2068
+ font-weight: 700;
2069
+ color: #f8fbff;
2070
+ }
2071
+
2072
+ .agent-chat-card-summary,
2073
+ .agent-pane-summary,
2074
+ .agent-pane-meta,
2075
+ .agent-chat-card-list-meta {
2076
+ color: #c3cfdb;
2077
+ }
2078
+
2079
+ .agent-chat-card-section-title {
2080
+ margin-top: 12px;
2081
+ margin-bottom: 8px;
2082
+ color: #e5ecf4;
2083
+ font-weight: 600;
2084
+ }
2085
+
2086
+ .agent-pane-section-title {
2087
+ margin-top: 12px;
2088
+ margin-bottom: 8px;
2089
+ color: #e5ecf4;
2090
+ font-weight: 600;
2091
+ }
2092
+
2093
+ .agent-chat-card-list,
2094
+ .agent-pane-list {
2095
+ margin: 0;
2096
+ padding-left: 0;
2097
+ list-style: none;
2098
+ display: flex;
2099
+ flex-direction: column;
2100
+ gap: 10px;
2101
+ }
2102
+
2103
+ .agent-chat-card-list-item,
2104
+ .agent-pane-list-item {
2105
+ display: flex;
2106
+ gap: 10px;
2107
+ align-items: flex-start;
2108
+ padding: 10px 12px;
2109
+ border-radius: 12px;
2110
+ background: rgba(255, 255, 255, 0.03);
2111
+ }
2112
+
2113
+ .agent-pane-list-index {
2114
+ min-width: 24px;
2115
+ height: 24px;
2116
+ display: inline-flex;
2117
+ align-items: center;
2118
+ justify-content: center;
2119
+ border-radius: 999px;
2120
+ background: rgba(97, 218, 251, 0.12);
2121
+ color: #8fe2f7;
2122
+ font-size: 0.8rem;
2123
+ }
2124
+
2125
+ .agent-knowledge-points {
2126
+ min-height: 0;
2127
+ display: flex;
2128
+ flex-direction: column;
2129
+ gap: 10px;
2130
+ padding-right: 6px;
2131
+ overflow-y: auto;
2132
+ overscroll-behavior: contain;
2133
+ scrollbar-gutter: stable;
2134
+ }
2135
+
2136
+ .agent-chat-input-field textarea {
2137
+ min-height: 76px;
2138
+ max-height: min(150px, 22vh);
2139
+ }
2140
+
2141
+ .agent-knowledge-list-header {
2142
+ flex: 0 0 auto;
2143
+ position: sticky;
2144
+ top: 0;
2145
+ z-index: 2;
2146
+ display: flex;
2147
+ align-items: center;
2148
+ justify-content: space-between;
2149
+ gap: 10px;
2150
+ min-height: 44px;
2151
+ padding: 2px 0 6px;
2152
+ background: #111820;
2153
+ }
2154
+
2155
+ .agent-knowledge-list-title {
2156
+ color: #dbeafe;
2157
+ font-size: 0.82rem;
2158
+ font-weight: 800;
2159
+ }
2160
+
2161
+ .agent-knowledge-help {
2162
+ position: relative;
2163
+ flex: 0 0 auto;
2164
+ }
2165
+
2166
+ .agent-knowledge-help-button {
2167
+ width: 44px;
2168
+ min-height: 44px;
2169
+ border: 1px solid rgba(125, 211, 252, 0.26);
2170
+ border-radius: 999px;
2171
+ background: rgba(2, 6, 12, 0.64);
2172
+ color: #bae6fd;
2173
+ cursor: pointer;
2174
+ font-size: 1rem;
2175
+ font-weight: 800;
2176
+ line-height: 1;
2177
+ }
2178
+
2179
+ .agent-knowledge-help-button:hover,
2180
+ .agent-knowledge-help-button:focus-visible,
2181
+ .agent-knowledge-help[data-open="true"] .agent-knowledge-help-button {
2182
+ border-color: rgba(125, 211, 252, 0.58);
2183
+ background: rgba(14, 116, 144, 0.26);
2184
+ outline: 2px solid rgba(125, 211, 252, 0.36);
2185
+ outline-offset: 2px;
2186
+ }
2187
+
2188
+ .agent-knowledge-help-popover {
2189
+ position: absolute;
2190
+ right: 0;
2191
+ top: calc(100% + 8px);
2192
+ z-index: 10;
2193
+ width: min(320px, 70vw);
2194
+ padding: 10px 12px;
2195
+ border: 1px solid rgba(125, 211, 252, 0.26);
2196
+ border-radius: 8px;
2197
+ background: rgba(2, 6, 12, 0.96);
2198
+ box-shadow: 0 16px 36px rgba(0, 0, 0, 0.32);
2199
+ color: #dbeafe;
2200
+ font-size: 0.82rem;
2201
+ line-height: 1.5;
2202
+ }
2203
+
2204
+ .agent-knowledge-help-popover[hidden] {
2205
+ display: none !important;
2206
+ }
2207
+
2208
+ .agent-knowledge-card {
2209
+ position: relative;
2210
+ padding: 0;
2211
+ border: 1px solid rgba(148, 163, 184, 0.18);
2212
+ border-radius: 8px;
2213
+ background: rgba(15, 23, 42, 0.42);
2214
+ overflow: visible;
2215
+ }
2216
+
2217
+ .agent-knowledge-card-header {
2218
+ display: grid;
2219
+ grid-template-columns: minmax(0, 1fr) 44px;
2220
+ align-items: stretch;
2221
+ gap: 4px;
2222
+ }
2223
+
2224
+ .agent-knowledge-file-button {
2225
+ width: 100%;
2226
+ min-width: 0;
2227
+ min-height: 44px;
2228
+ display: flex;
2229
+ align-items: center;
2230
+ justify-content: flex-start;
2231
+ gap: 8px;
2232
+ border: 0;
2233
+ border-radius: 8px;
2234
+ background: transparent;
2235
+ color: #f8fbff;
2236
+ cursor: pointer;
2237
+ font-size: 0.9rem;
2238
+ font-weight: 700;
2239
+ line-height: 1.35;
2240
+ padding: 10px 12px;
2241
+ text-align: left;
2242
+ white-space: normal;
2243
+ overflow-wrap: anywhere;
2244
+ }
2245
+
2246
+ .agent-knowledge-menu-button {
2247
+ width: 44px;
2248
+ min-width: 44px;
2249
+ min-height: 44px;
2250
+ display: inline-flex;
2251
+ align-items: center;
2252
+ justify-content: center;
2253
+ border: 0;
2254
+ border-radius: 8px;
2255
+ background: transparent;
2256
+ color: #bae6fd;
2257
+ cursor: pointer;
2258
+ font-size: 1rem;
2259
+ font-weight: 800;
2260
+ line-height: 1;
2261
+ }
2262
+
2263
+ .agent-knowledge-card[data-selected="true"] .agent-knowledge-file-button,
2264
+ .agent-knowledge-card[data-selected="true"] .agent-knowledge-menu-button,
2265
+ .agent-knowledge-file-button:hover,
2266
+ .agent-knowledge-file-button:focus-visible,
2267
+ .agent-knowledge-file-button[aria-expanded="true"],
2268
+ .agent-knowledge-menu-button:hover,
2269
+ .agent-knowledge-menu-button:focus-visible,
2270
+ .agent-knowledge-menu-button[aria-expanded="true"] {
2271
+ background: rgba(125, 211, 252, 0.1);
2272
+ outline: 1px solid rgba(125, 211, 252, 0.28);
2273
+ outline-offset: -1px;
2274
+ }
2275
+
2276
+ .agent-knowledge-source-path {
2277
+ display: none;
2278
+ padding: 0 12px 10px;
2279
+ color: #93a4b8;
2280
+ font-size: 0.76rem;
2281
+ line-height: 1.4;
2282
+ overflow-wrap: anywhere;
2283
+ }
2284
+
2285
+ .agent-knowledge-actions {
2286
+ display: grid;
2287
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2288
+ gap: 6px;
2289
+ padding: 0 8px 8px;
2290
+ }
2291
+
2292
+ .agent-knowledge-actions .agent-knowledge-action-button {
2293
+ min-width: 0;
2294
+ min-height: 44px;
2295
+ border: 1px solid rgba(125, 211, 252, 0.2);
2296
+ border-radius: 8px;
2297
+ background: rgba(15, 23, 42, 0.52);
2298
+ color: #c7e8ff;
2299
+ cursor: pointer;
2300
+ font-size: 0.78rem;
2301
+ font-weight: 700;
2302
+ line-height: 1.2;
2303
+ padding: 8px 10px;
2304
+ text-align: center;
2305
+ overflow-wrap: anywhere;
2306
+ }
2307
+
2308
+ .agent-knowledge-actions .agent-knowledge-action-button:hover,
2309
+ .agent-knowledge-actions .agent-knowledge-action-button:focus-visible {
2310
+ background: rgba(14, 116, 144, 0.2);
2311
+ border-color: rgba(125, 211, 252, 0.38);
2312
+ outline: 2px solid rgba(125, 211, 252, 0.28);
2313
+ outline-offset: 1px;
2314
+ }
2315
+
2316
+ .agent-knowledge-actions .agent-knowledge-action-button:disabled {
2317
+ cursor: not-allowed;
2318
+ opacity: 0.46;
2319
+ }
2320
+
2321
+ .agent-knowledge-action-menu {
2322
+ position: absolute;
2323
+ right: 8px;
2324
+ top: calc(100% - 4px);
2325
+ z-index: 6;
2326
+ display: grid;
2327
+ gap: 6px;
2328
+ min-width: 172px;
2329
+ padding: 8px;
2330
+ border: 1px solid rgba(125, 211, 252, 0.26);
2331
+ border-radius: 8px;
2332
+ background: rgba(2, 6, 12, 0.96);
2333
+ box-shadow: 0 16px 36px rgba(0, 0, 0, 0.34);
2334
+ }
2335
+
2336
+ .agent-knowledge-action-menu[hidden] {
2337
+ display: none !important;
2338
+ }
2339
+
2340
+ .agent-knowledge-action-menu button {
2341
+ width: 100%;
2342
+ min-height: 40px;
2343
+ border: 1px solid rgba(148, 163, 184, 0.22);
2344
+ border-radius: 8px;
2345
+ background: rgba(15, 23, 42, 0.74);
2346
+ color: #dbeafe;
2347
+ cursor: pointer;
2348
+ padding: 8px 10px;
2349
+ text-align: left;
2350
+ white-space: nowrap;
2351
+ }
2352
+
2353
+ .agent-knowledge-action-menu button:hover,
2354
+ .agent-knowledge-action-menu button:focus-visible {
2355
+ background: rgba(14, 116, 144, 0.22);
2356
+ border-color: rgba(125, 211, 252, 0.38);
2357
+ }
2358
+
2359
+ .agent-knowledge-action-menu button:disabled {
2360
+ cursor: not-allowed;
2361
+ opacity: 0.46;
2362
+ }
2363
+
2364
+ .agent-knowledge-preview[hidden] {
2365
+ display: none !important;
2366
+ }
2367
+
2368
+ .agent-knowledge-preview {
2369
+ padding: 0 12px 12px;
2370
+ }
2371
+
2372
+ .agent-knowledge-rendered-markdown,
2373
+ .agent-knowledge-preview-loading,
2374
+ .agent-knowledge-preview-fallback {
2375
+ border: 1px solid rgba(148, 163, 184, 0.16);
2376
+ border-radius: 8px;
2377
+ background: rgba(2, 6, 12, 0.46);
2378
+ padding: 12px;
2379
+ }
2380
+
2381
+ .agent-knowledge-rendered-markdown {
2382
+ color: #dbe7f3;
2383
+ font-size: 0.88rem;
2384
+ line-height: 1.6;
2385
+ }
2386
+
2387
+ .agent-knowledge-rendered-markdown :is(h1, h2, h3, h4, h5, h6) {
2388
+ color: #f8fbff;
2389
+ }
2390
+
2391
+ .agent-knowledge-preview-loading,
2392
+ .agent-knowledge-preview-fallback {
2393
+ color: #cbd5e1;
2394
+ font-size: 0.84rem;
2395
+ line-height: 1.55;
2396
+ }
2397
+
2398
+ .agent-knowledge-preview-fallback-text {
2399
+ color: #dbe7f3;
2400
+ }
2401
+
2402
+ .agent-knowledge-preview-path {
2403
+ margin-top: 8px;
2404
+ color: #93a4b8;
2405
+ font-size: 0.76rem;
2406
+ line-height: 1.35;
2407
+ overflow-wrap: anywhere;
2408
+ }
2409
+
2410
+ .agent-knowledge-empty,
2411
+ .agent-pane-empty {
2412
+ padding: 14px;
2413
+ border-radius: 12px;
2414
+ border: 1px dashed rgba(255, 255, 255, 0.12);
2415
+ color: #a9b6c4;
2416
+ background: rgba(255, 255, 255, 0.02);
2417
+ }
2418
+
2419
+ .agent-knowledge-hit-list {
2420
+ margin-top: 10px;
2421
+ display: grid;
2422
+ gap: 8px;
2423
+ }
2424
+
2425
+ .agent-knowledge-hit-heading {
2426
+ color: #cbd5e1;
2427
+ font-size: 0.78rem;
2428
+ font-weight: 700;
2429
+ text-transform: uppercase;
2430
+ letter-spacing: 0;
2431
+ }
2432
+
2433
+ .agent-knowledge-hit {
2434
+ padding: 8px 10px;
2435
+ border: 1px solid rgba(148, 163, 184, 0.18);
2436
+ border-radius: 8px;
2437
+ background: rgba(15, 23, 42, 0.46);
2438
+ }
2439
+
2440
+ .agent-knowledge-hit-title {
2441
+ color: #f8fbff;
2442
+ font-size: 0.84rem;
2443
+ font-weight: 700;
2444
+ }
2445
+
2446
+ .agent-knowledge-hit-snippet {
2447
+ margin-top: 4px;
2448
+ color: #dbe7f3;
2449
+ font-size: 0.82rem;
2450
+ line-height: 1.48;
2451
+ }
2452
+
2453
+ .agent-knowledge-hit-meta {
2454
+ margin-top: 5px;
2455
+ color: #93a4b8;
2456
+ font-size: 0.76rem;
2457
+ line-height: 1.35;
2458
+ }
2459
+
2460
+ .agent-focus-hit-list {
2461
+ margin-top: 14px;
2462
+ display: grid;
2463
+ gap: 10px;
2464
+ }
2465
+
2466
+ .agent-focus-hit-heading {
2467
+ color: #dbeafe;
2468
+ font-size: 0.8rem;
2469
+ font-weight: 700;
2470
+ }
2471
+
2472
+ .agent-focus-relation-map {
2473
+ display: grid;
2474
+ gap: 8px;
2475
+ border: 1px solid rgba(125, 211, 252, 0.18);
2476
+ border-radius: 8px;
2477
+ background: rgba(14, 116, 144, 0.1);
2478
+ padding: 10px 12px;
2479
+ }
2480
+
2481
+ .agent-focus-relation-map--focus-mode {
2482
+ gap: 0;
2483
+ border-color: rgba(148, 163, 184, 0.16);
2484
+ background: transparent;
2485
+ padding: 0;
2486
+ }
2487
+
2488
+ .agent-focus-relation-map--focus-mode .agent-focus-mode-preview {
2489
+ min-height: min(72vh, 760px);
2490
+ }
2491
+
2492
+ .agent-focus-relation-kinds {
2493
+ color: #93c5fd;
2494
+ font-size: 0.76rem;
2495
+ line-height: 1.35;
2496
+ }
2497
+
2498
+ .agent-focus-relation-graph {
2499
+ position: relative;
2500
+ min-height: 220px;
2501
+ overflow: hidden;
2502
+ border: 1px solid rgba(148, 163, 184, 0.18);
2503
+ border-radius: 8px;
2504
+ background: rgba(2, 6, 12, 0.34);
2505
+ }
2506
+
2507
+ .agent-focus-relation-graph-lines {
2508
+ position: absolute;
2509
+ inset: 0;
2510
+ width: 100%;
2511
+ height: 100%;
2512
+ }
2513
+
2514
+ .agent-focus-relation-graph-edge {
2515
+ stroke: rgba(125, 211, 252, 0.42);
2516
+ stroke-width: 0.9;
2517
+ vector-effect: non-scaling-stroke;
2518
+ }
2519
+
2520
+ .agent-focus-relation-graph-lines marker path {
2521
+ fill: rgba(125, 211, 252, 0.72);
2522
+ }
2523
+
2524
+ .agent-focus-relation-graph-node {
2525
+ position: absolute;
2526
+ max-width: min(38%, 190px);
2527
+ transform: translate(-50%, -50%);
2528
+ border: 1px solid rgba(148, 163, 184, 0.28);
2529
+ border-radius: 8px;
2530
+ background: rgba(15, 23, 42, 0.96);
2531
+ color: #dbeafe;
2532
+ font-size: 0.72rem;
2533
+ font-weight: 650;
2534
+ line-height: 1.25;
2535
+ padding: 7px 9px;
2536
+ text-align: center;
2537
+ overflow: hidden;
2538
+ text-overflow: ellipsis;
2539
+ overflow-wrap: anywhere;
2540
+ display: -webkit-box;
2541
+ -webkit-box-orient: vertical;
2542
+ -webkit-line-clamp: 2;
2543
+ }
2544
+
2545
+ .agent-focus-relation-graph-node--anchor {
2546
+ border-color: rgba(251, 191, 36, 0.62);
2547
+ background: rgba(120, 53, 15, 0.88);
2548
+ color: #fef3c7;
2549
+ }
2550
+
2551
+ .agent-focus-relation-graph-node--source {
2552
+ border-color: rgba(45, 212, 191, 0.44);
2553
+ }
2554
+
2555
+ .agent-focus-relation-graph-node--target {
2556
+ border-color: rgba(248, 113, 113, 0.44);
2557
+ }
2558
+
2559
+ .agent-focus-relation-graph-node--incoming {
2560
+ border-color: rgba(45, 212, 191, 0.44);
2561
+ }
2562
+
2563
+ .agent-focus-relation-graph-node--outgoing {
2564
+ border-color: rgba(248, 113, 113, 0.44);
2565
+ }
2566
+
2567
+ .agent-focus-relation-graph-node--related {
2568
+ border-color: rgba(147, 197, 253, 0.34);
2569
+ }
2570
+
2571
+ .agent-focus-mode-preview {
2572
+ position: relative;
2573
+ min-height: 320px;
2574
+ overflow: hidden;
2575
+ border: 1px solid rgba(148, 163, 184, 0.18);
2576
+ border-radius: 8px;
2577
+ background: #202020;
2578
+ isolation: isolate;
2579
+ }
2580
+
2581
+ .agent-focus-mode-preview--hosted {
2582
+ border: 0;
2583
+ border-radius: 0;
2584
+ }
2585
+
2586
+ .agent-focus-mode-hosted-shell {
2587
+ position: relative;
2588
+ min-height: min(58vh, 640px);
2589
+ overflow: hidden;
2590
+ border-radius: 8px;
2591
+ background: #202020;
2592
+ isolation: isolate;
2593
+ }
2594
+
2595
+ .agent-focus-mode-viewport {
2596
+ position: relative;
2597
+ min-height: min(58vh, 640px);
2598
+ overflow: hidden;
2599
+ cursor: grab;
2600
+ touch-action: none;
2601
+ }
2602
+
2603
+ .agent-focus-mode-viewport.is-panning {
2604
+ cursor: grabbing;
2605
+ }
2606
+
2607
+ .agent-focus-mode-viewport .agent-focus-mode-preview--hosted {
2608
+ min-height: inherit;
2609
+ height: 100%;
2610
+ transform:
2611
+ translate(var(--agent-focus-pan-x, 0px), var(--agent-focus-pan-y, 0px))
2612
+ scale(var(--agent-focus-zoom, 1));
2613
+ transform-origin: 0 0;
2614
+ will-change: transform;
2615
+ }
2616
+
2617
+ .agent-focus-mode-pane-controls {
2618
+ position: absolute;
2619
+ top: 8px;
2620
+ right: 8px;
2621
+ z-index: 12;
2622
+ display: inline-flex;
2623
+ align-items: center;
2624
+ gap: 6px;
2625
+ padding: 4px;
2626
+ border: 1px solid rgba(148, 163, 184, 0.18);
2627
+ border-radius: 8px;
2628
+ background: rgba(2, 6, 12, 0.72);
2629
+ backdrop-filter: blur(8px);
2630
+ }
2631
+
2632
+ .agent-focus-mode-icon-button {
2633
+ appearance: none;
2634
+ display: inline-flex;
2635
+ align-items: center;
2636
+ justify-content: center;
2637
+ width: 32px;
2638
+ height: 32px;
2639
+ border: 1px solid rgba(125, 211, 252, 0.26);
2640
+ border-radius: 8px;
2641
+ background: rgba(15, 23, 42, 0.82);
2642
+ color: #dbeafe;
2643
+ cursor: pointer;
2644
+ font-size: 1rem;
2645
+ font-weight: 900;
2646
+ line-height: 1;
2647
+ }
2648
+
2649
+ .agent-focus-mode-icon-button:hover {
2650
+ border-color: rgba(125, 211, 252, 0.54);
2651
+ background: rgba(30, 64, 175, 0.58);
2652
+ }
2653
+
2654
+ .agent-focus-mode-icon-button:focus {
2655
+ outline: none;
2656
+ }
2657
+
2658
+ .agent-focus-mode-icon-button:focus-visible {
2659
+ outline: 2px solid rgba(125, 211, 252, 0.95);
2660
+ outline-offset: 2px;
2661
+ }
2662
+
2663
+ .agent-focus-mode-history-control {
2664
+ position: relative;
2665
+ }
2666
+
2667
+ .agent-focus-mode-history-menu {
2668
+ position: absolute;
2669
+ top: calc(100% + 6px);
2670
+ right: 0;
2671
+ display: grid;
2672
+ gap: 2px;
2673
+ width: min(220px, 54vw);
2674
+ max-height: min(260px, 42vh);
2675
+ overflow: auto;
2676
+ border: 1px solid rgba(148, 163, 184, 0.22);
2677
+ border-radius: 8px;
2678
+ background: rgba(15, 23, 42, 0.96);
2679
+ box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
2680
+ padding: 6px;
2681
+ }
2682
+
2683
+ .agent-focus-mode-history-menu[hidden] {
2684
+ display: none;
2685
+ }
2686
+
2687
+ .agent-focus-mode-history-item {
2688
+ appearance: none;
2689
+ min-width: 0;
2690
+ border: 0;
2691
+ border-radius: 6px;
2692
+ background: transparent;
2693
+ color: #dbeafe;
2694
+ cursor: pointer;
2695
+ font-size: 0.78rem;
2696
+ font-weight: 750;
2697
+ line-height: 1.25;
2698
+ overflow: hidden;
2699
+ padding: 7px 8px;
2700
+ text-align: left;
2701
+ text-overflow: ellipsis;
2702
+ white-space: nowrap;
2703
+ }
2704
+
2705
+ .agent-focus-mode-history-item:hover,
2706
+ .agent-focus-mode-history-item[data-agent-focus-history-current="true"] {
2707
+ background: rgba(37, 99, 235, 0.28);
2708
+ }
2709
+
2710
+ .agent-focus-mode-history-empty {
2711
+ color: #94a3b8;
2712
+ font-size: 0.76rem;
2713
+ line-height: 1.35;
2714
+ padding: 7px 8px;
2715
+ }
2716
+
2717
+ .agent-focus-mode-context {
2718
+ position: absolute;
2719
+ inset: 0;
2720
+ z-index: 0;
2721
+ opacity: 0.34;
2722
+ filter: grayscale(0.4);
2723
+ }
2724
+
2725
+ .agent-focus-mode-context-node {
2726
+ position: absolute;
2727
+ transform: translate(-50%, -50%);
2728
+ color: rgba(203, 213, 225, 0.32);
2729
+ font-size: 0.72rem;
2730
+ white-space: nowrap;
2731
+ }
2732
+
2733
+ .agent-focus-mode-context-node--projection {
2734
+ display: inline-flex;
2735
+ align-items: center;
2736
+ gap: 5px;
2737
+ max-width: 190px;
2738
+ color: rgba(203, 213, 225, 0.34);
2739
+ font-size: 0.64rem;
2740
+ line-height: 1.15;
2741
+ }
2742
+
2743
+ .agent-focus-mode-context-dot {
2744
+ display: inline-block;
2745
+ width: 9px;
2746
+ height: 9px;
2747
+ flex: 0 0 auto;
2748
+ border-radius: 999px;
2749
+ background: rgba(148, 163, 184, 0.46);
2750
+ box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.12);
2751
+ }
2752
+
2753
+ .agent-focus-mode-context-label {
2754
+ min-width: 0;
2755
+ overflow: hidden;
2756
+ text-overflow: ellipsis;
2757
+ white-space: nowrap;
2758
+ }
2759
+
2760
+ .agent-focus-mode-toolbar {
2761
+ position: absolute;
2762
+ left: 14px;
2763
+ right: 14px;
2764
+ top: 12px;
2765
+ z-index: 6;
2766
+ display: flex;
2767
+ align-items: center;
2768
+ justify-content: space-between;
2769
+ gap: 12px;
2770
+ min-height: 52px;
2771
+ border: 1px solid rgba(103, 232, 249, 0.36);
2772
+ border-radius: 8px;
2773
+ background: rgba(32, 32, 32, 0.82);
2774
+ box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
2775
+ color: #dbeafe;
2776
+ padding: 10px 14px;
2777
+ pointer-events: none;
2778
+ }
2779
+
2780
+ .agent-focus-mode-toolbar-node {
2781
+ display: grid;
2782
+ gap: 2px;
2783
+ min-width: 0;
2784
+ }
2785
+
2786
+ .agent-focus-mode-toolbar-title {
2787
+ min-width: 0;
2788
+ color: #61dafb;
2789
+ font-size: 0.95rem;
2790
+ font-weight: 900;
2791
+ line-height: 1.18;
2792
+ overflow: hidden;
2793
+ text-overflow: ellipsis;
2794
+ white-space: nowrap;
2795
+ }
2796
+
2797
+ .agent-focus-mode-toolbar-stats {
2798
+ color: #aeb8c5;
2799
+ font-size: 0.72rem;
2800
+ font-weight: 700;
2801
+ line-height: 1.2;
2802
+ white-space: nowrap;
2803
+ }
2804
+
2805
+ .agent-focus-mode-toolbar-controls {
2806
+ display: flex;
2807
+ align-items: center;
2808
+ justify-content: flex-end;
2809
+ flex-wrap: wrap;
2810
+ gap: 8px;
2811
+ }
2812
+
2813
+ .agent-focus-mode-toolbar-control {
2814
+ display: inline-flex;
2815
+ align-items: center;
2816
+ min-height: 28px;
2817
+ border: 1px solid rgba(148, 163, 184, 0.22);
2818
+ border-radius: 6px;
2819
+ background: rgba(15, 23, 42, 0.48);
2820
+ color: #cbd5e1;
2821
+ font-size: 0.72rem;
2822
+ font-weight: 750;
2823
+ line-height: 1.2;
2824
+ padding: 5px 8px;
2825
+ white-space: nowrap;
2826
+ }
2827
+
2828
+ .agent-focus-mode-lines {
2829
+ position: absolute;
2830
+ inset: 0;
2831
+ z-index: 1;
2832
+ width: 100%;
2833
+ height: 100%;
2834
+ }
2835
+
2836
+ .agent-focus-mode-preview--edge-hidden .agent-focus-mode-lines {
2837
+ display: none;
2838
+ }
2839
+
2840
+ .agent-focus-mode-edge {
2841
+ stroke: rgba(226, 232, 240, 0.2);
2842
+ stroke-width: 1;
2843
+ vector-effect: non-scaling-stroke;
2844
+ }
2845
+
2846
+ .agent-focus-mode-edge--incoming {
2847
+ stroke: rgba(248, 113, 113, 0.38);
2848
+ }
2849
+
2850
+ .agent-focus-mode-edge--outgoing {
2851
+ stroke: rgba(45, 212, 191, 0.4);
2852
+ }
2853
+
2854
+ .agent-focus-mode-edge--associated {
2855
+ stroke: rgba(203, 213, 225, 0.24);
2856
+ }
2857
+
2858
+ .agent-focus-mode-cluster-label {
2859
+ position: absolute;
2860
+ left: 50%;
2861
+ z-index: 3;
2862
+ transform: translateX(-50%);
2863
+ color: #67e8f9;
2864
+ font-size: 1.02rem;
2865
+ font-weight: 900;
2866
+ letter-spacing: 0;
2867
+ text-shadow: 0 0 18px rgba(34, 211, 238, 0.24);
2868
+ white-space: nowrap;
2869
+ }
2870
+
2871
+ .agent-focus-mode-cluster-label--continue {
2872
+ top: 10px;
2873
+ }
2874
+
2875
+ .agent-focus-mode-cluster-label--support {
2876
+ bottom: 14px;
2877
+ }
2878
+
2879
+ .agent-focus-mode-cluster {
2880
+ position: absolute;
2881
+ inset: 0;
2882
+ z-index: 2;
2883
+ pointer-events: none;
2884
+ }
2885
+
2886
+ .agent-focus-mode-node {
2887
+ position: absolute;
2888
+ transform: translate(-50%, -50%);
2889
+ box-sizing: border-box;
2890
+ display: inline-flex;
2891
+ align-items: center;
2892
+ justify-content: center;
2893
+ max-width: min(30%, 136px);
2894
+ min-width: 44px;
2895
+ min-height: 44px;
2896
+ border: 2px solid rgba(255, 255, 255, 0.8);
2897
+ border-radius: 999px;
2898
+ color: #f8fbff;
2899
+ font-size: 0.8rem;
2900
+ font-weight: 700;
2901
+ line-height: 1.2;
2902
+ padding: 6px 12px;
2903
+ text-align: center;
2904
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.38);
2905
+ overflow-wrap: anywhere;
2906
+ }
2907
+
2908
+ button.agent-focus-mode-node {
2909
+ appearance: none;
2910
+ cursor: pointer;
2911
+ pointer-events: auto;
2912
+ transition:
2913
+ border-color 180ms ease,
2914
+ box-shadow 180ms ease,
2915
+ filter 180ms ease;
2916
+ }
2917
+
2918
+ button.agent-focus-mode-node:hover {
2919
+ filter: brightness(1.08);
2920
+ }
2921
+
2922
+ button.agent-focus-mode-node:focus {
2923
+ outline: none;
2924
+ }
2925
+
2926
+ button.agent-focus-mode-node:focus-visible {
2927
+ outline: 2px solid rgba(125, 211, 252, 0.95);
2928
+ outline-offset: 3px;
2929
+ }
2930
+
2931
+ button.agent-focus-mode-node:active {
2932
+ filter: brightness(0.96);
2933
+ }
2934
+
2935
+ .agent-focus-mode-node--anchor {
2936
+ z-index: 4;
2937
+ width: 78px;
2938
+ min-height: 78px;
2939
+ padding: 8px;
2940
+ border-color: rgba(255, 255, 255, 0.9);
2941
+ background: #ffd60a;
2942
+ box-shadow:
2943
+ 0 0 0 18px rgba(255, 214, 10, 0.1),
2944
+ 0 0 0 36px rgba(255, 214, 10, 0.04);
2945
+ color: #1f1300;
2946
+ font-size: 0.74rem;
2947
+ }
2948
+
2949
+ .agent-focus-mode-node--continue {
2950
+ background: #2dd4bf;
2951
+ }
2952
+
2953
+ .agent-focus-mode-node--support {
2954
+ background: #fb7185;
2955
+ }
2956
+
2957
+ .agent-focus-mode-preview--projection {
2958
+ min-height: min(72vh, 760px);
2959
+ background:
2960
+ radial-gradient(circle at 50% 50%, rgba(255, 214, 10, 0.08), transparent 34%),
2961
+ #202020;
2962
+ }
2963
+
2964
+ .agent-focus-mode-viewport .agent-focus-mode-preview--projection {
2965
+ min-height: inherit;
2966
+ }
2967
+
2968
+ .agent-focus-mode-cluster-label--projection {
2969
+ bottom: auto;
2970
+ color: rgba(103, 232, 249, 0.92);
2971
+ font-size: 0.92rem;
2972
+ }
2973
+
2974
+ .agent-focus-mode-node--projection {
2975
+ width: 44px;
2976
+ min-width: 44px;
2977
+ height: 44px;
2978
+ min-height: 44px;
2979
+ max-width: none;
2980
+ border: 0;
2981
+ background: transparent;
2982
+ color: #e5e7eb;
2983
+ padding: 0;
2984
+ overflow: visible;
2985
+ text-shadow: none;
2986
+ }
2987
+
2988
+ .agent-focus-mode-node--projection:hover .agent-focus-mode-node-dot,
2989
+ .agent-focus-mode-node--projection:focus-visible .agent-focus-mode-node-dot {
2990
+ box-shadow:
2991
+ 0 0 0 4px rgba(125, 211, 252, 0.22),
2992
+ 0 0 18px rgba(125, 211, 252, 0.24);
2993
+ }
2994
+
2995
+ .agent-focus-mode-node-dot {
2996
+ position: absolute;
2997
+ left: 50%;
2998
+ top: 50%;
2999
+ width: 16px;
3000
+ height: 16px;
3001
+ border-radius: 999px;
3002
+ transform: translate(-50%, -50%);
3003
+ background: #94a3b8;
3004
+ border: 1.5px solid rgba(255, 255, 255, 0.72);
3005
+ }
3006
+
3007
+ .agent-focus-mode-node-label {
3008
+ position: absolute;
3009
+ left: 50%;
3010
+ top: calc(50% + 15px);
3011
+ width: max-content;
3012
+ max-width: 150px;
3013
+ transform: translateX(-50%);
3014
+ color: #cbd5e1;
3015
+ font-size: 0.72rem;
3016
+ font-weight: 600;
3017
+ line-height: 1.2;
3018
+ white-space: nowrap;
3019
+ overflow: hidden;
3020
+ text-overflow: ellipsis;
3021
+ text-align: center;
3022
+ pointer-events: none;
3023
+ }
3024
+
3025
+ .agent-focus-mode-node--projection.agent-focus-mode-node--anchor {
3026
+ width: 72px;
3027
+ min-width: 72px;
3028
+ height: 72px;
3029
+ min-height: 72px;
3030
+ background: transparent;
3031
+ color: #fef3c7;
3032
+ box-shadow: none;
3033
+ }
3034
+
3035
+ .agent-focus-mode-node--projection.agent-focus-mode-node--anchor .agent-focus-mode-node-dot {
3036
+ width: 50px;
3037
+ height: 50px;
3038
+ background: #ffd700;
3039
+ border: 3px solid rgba(255, 255, 255, 0.92);
3040
+ box-shadow:
3041
+ 0 0 0 14px rgba(255, 215, 0, 0.11),
3042
+ 0 0 0 28px rgba(255, 215, 0, 0.05);
3043
+ }
3044
+
3045
+ .agent-focus-mode-node--projection.agent-focus-mode-node--anchor .agent-focus-mode-node-label {
3046
+ top: calc(50% + 31px);
3047
+ color: #ffffff;
3048
+ font-size: 0.84rem;
3049
+ font-weight: 800;
3050
+ max-width: 180px;
3051
+ }
3052
+
3053
+ .agent-focus-mode-node--projection.agent-focus-mode-node--outgoing .agent-focus-mode-node-dot {
3054
+ background: #4ecdc4;
3055
+ }
3056
+
3057
+ .agent-focus-mode-node--projection.agent-focus-mode-node--incoming .agent-focus-mode-node-dot {
3058
+ background: #ff6b6b;
3059
+ }
3060
+
3061
+ .agent-focus-mode-node--projection.agent-focus-mode-node--associated .agent-focus-mode-node-dot,
3062
+ .agent-focus-mode-node--projection.agent-focus-mode-node--related .agent-focus-mode-node-dot {
3063
+ background: #a3a3a3;
3064
+ }
3065
+
3066
+ .agent-focus-relation-nodes {
3067
+ display: flex;
3068
+ flex-wrap: wrap;
3069
+ gap: 6px;
3070
+ }
3071
+
3072
+ .agent-focus-relation-node {
3073
+ max-width: 100%;
3074
+ border: 1px solid rgba(148, 163, 184, 0.22);
3075
+ border-radius: 999px;
3076
+ background: rgba(2, 6, 12, 0.42);
3077
+ color: #dbeafe;
3078
+ font-size: 0.74rem;
3079
+ line-height: 1.2;
3080
+ padding: 5px 8px;
3081
+ overflow-wrap: anywhere;
3082
+ }
3083
+
3084
+ .agent-focus-relation-node--anchor {
3085
+ border-color: rgba(251, 191, 36, 0.5);
3086
+ color: #fef3c7;
3087
+ }
3088
+
3089
+ .agent-focus-relation-edges {
3090
+ margin: 0;
3091
+ padding: 0;
3092
+ list-style: none;
3093
+ display: grid;
3094
+ gap: 6px;
3095
+ }
3096
+
3097
+ .agent-focus-relation-edge,
3098
+ .agent-focus-relation-empty {
3099
+ display: flex;
3100
+ flex-wrap: wrap;
3101
+ gap: 6px;
3102
+ align-items: center;
3103
+ color: #cbd5e1;
3104
+ font-size: 0.76rem;
3105
+ line-height: 1.35;
3106
+ }
3107
+
3108
+ .agent-focus-relation-kind {
3109
+ border-radius: 999px;
3110
+ background: rgba(125, 211, 252, 0.14);
3111
+ color: #bae6fd;
3112
+ padding: 2px 7px;
3113
+ }
3114
+
3115
+ .agent-focus-relation-confidence {
3116
+ color: #93a4b8;
3117
+ }
3118
+
3119
+ .agent-focus-hit {
3120
+ border: 1px solid rgba(125, 211, 252, 0.2);
3121
+ border-left: 3px solid #7dd3fc;
3122
+ border-radius: 8px;
3123
+ background: rgba(14, 116, 144, 0.12);
3124
+ padding: 10px 12px;
3125
+ }
3126
+
3127
+ .agent-focus-hit-title {
3128
+ color: #f8fbff;
3129
+ font-size: 0.86rem;
3130
+ font-weight: 700;
3131
+ }
3132
+
3133
+ .agent-focus-hit-snippet {
3134
+ margin-top: 5px;
3135
+ color: #dbeafe;
3136
+ font-size: 0.84rem;
3137
+ line-height: 1.52;
3138
+ }
3139
+
3140
+ .agent-focus-hit-meta {
3141
+ margin-top: 6px;
3142
+ color: #93c5fd;
3143
+ font-size: 0.76rem;
3144
+ line-height: 1.35;
3145
+ overflow-wrap: anywhere;
3146
+ }
3147
+
3148
+ .agent-pane-block--graph-focus {
3149
+ display: grid;
3150
+ gap: 12px;
3151
+ }
3152
+
3153
+ .agent-pane-block--focus-runtime {
3154
+ padding: 0;
3155
+ border: 0;
3156
+ background: transparent;
3157
+ }
3158
+
3159
+ .agent-focus-rendered-markdown {
3160
+ color: #dbe7f3;
3161
+ font-size: 0.9rem;
3162
+ line-height: 1.62;
3163
+ }
3164
+
3165
+ .agent-focus-rendered-markdown :is(h1, h2, h3, h4, h5, h6) {
3166
+ color: #f8fbff;
3167
+ }
3168
+
3169
+ .agent-knowledge-rendered-markdown [data-agent-focus-highlight="true"],
3170
+ .agent-knowledge-rendered-markdown .agent-focus-match,
3171
+ .agent-focus-rendered-markdown [data-agent-focus-highlight="true"],
3172
+ .agent-focus-rendered-markdown .agent-focus-match {
3173
+ background: rgba(125, 211, 252, 0.14);
3174
+ box-shadow: inset 3px 0 0 rgba(125, 211, 252, 0.55);
3175
+ border-radius: 4px;
3176
+ padding-inline: 6px;
3177
+ }
3178
+
3179
+ .agent-focus-inline-highlight {
3180
+ background: rgba(251, 191, 36, 0.28);
3181
+ color: inherit;
3182
+ border-radius: 3px;
3183
+ box-shadow: inset 0 -1px 0 rgba(251, 191, 36, 0.48);
3184
+ padding-inline: 1px;
3185
+ }
3186
+
3187
+ .agent-knowledge-rendered-markdown [data-agent-focus-primary-highlight="true"],
3188
+ .agent-focus-rendered-markdown [data-agent-focus-primary-highlight="true"] {
3189
+ outline: 1px solid rgba(251, 191, 36, 0.46);
3190
+ outline-offset: 2px;
3191
+ }
3192
+
3193
+ .agent-side-work-area {
3194
+ display: grid;
3195
+ grid-template-columns: 1fr;
3196
+ align-content: start;
3197
+ gap: 16px;
3198
+ min-height: 0;
3199
+ overflow: auto;
3200
+ padding-right: 6px;
3201
+ }
3202
+
3203
+ .agent-workspace-pane {
3204
+ display: none;
3205
+ flex-direction: column;
3206
+ padding: 14px;
3207
+ }
3208
+
3209
+ .agent-workspace-pane[data-open="true"] {
3210
+ display: flex;
3211
+ }
3212
+
3213
+ .agent-workspace-pane-body {
3214
+ flex: 1;
3215
+ margin-top: 12px;
3216
+ }
3217
+
3218
+ .agent-focus-pane-reader {
3219
+ display: grid;
3220
+ gap: 10px;
3221
+ min-height: 220px;
3222
+ border: 1px solid rgba(148, 163, 184, 0.2);
3223
+ border-radius: 8px;
3224
+ background: rgba(2, 6, 12, 0.44);
3225
+ overflow: hidden;
3226
+ }
3227
+
3228
+ .agent-focus-pane-reader[hidden] {
3229
+ display: none;
3230
+ }
3231
+
3232
+ .agent-focus-pane-reader-header {
3233
+ display: flex;
3234
+ align-items: center;
3235
+ justify-content: space-between;
3236
+ gap: 12px;
3237
+ min-height: 52px;
3238
+ padding: 8px 10px 8px 14px;
3239
+ border-bottom: 1px solid rgba(148, 163, 184, 0.14);
3240
+ background: rgba(15, 23, 42, 0.54);
3241
+ }
3242
+
3243
+ .agent-focus-pane-reader-title {
3244
+ min-width: 0;
3245
+ color: #f8fbff;
3246
+ font-size: 0.92rem;
3247
+ font-weight: 800;
3248
+ line-height: 1.25;
3249
+ overflow-wrap: anywhere;
3250
+ }
3251
+
3252
+ .agent-focus-pane-reader-body {
3253
+ min-height: 0;
3254
+ max-height: min(48vh, 520px);
3255
+ overflow: auto;
3256
+ padding: 12px 14px 14px;
3257
+ }
3258
+
3259
+ .agent-focus-pane-reader-markdown {
3260
+ color: #dbe7f3;
3261
+ font-size: 0.9rem;
3262
+ line-height: 1.62;
3263
+ }
3264
+
3265
+ .agent-learning-path-pending {
3266
+ display: grid;
3267
+ gap: 10px;
3268
+ align-content: start;
3269
+ min-height: 180px;
3270
+ padding: 14px;
3271
+ border: 1px solid rgba(125, 211, 252, 0.22);
3272
+ border-radius: 8px;
3273
+ background: rgba(14, 116, 144, 0.12);
3274
+ color: #dbeafe;
3275
+ }
3276
+
3277
+ .agent-learning-path-pending-title {
3278
+ color: #f8fbff;
3279
+ font-size: 0.96rem;
3280
+ font-weight: 800;
3281
+ }
3282
+
3283
+ .agent-learning-path-pending-copy {
3284
+ color: #c7e9f6;
3285
+ font-size: 0.86rem;
3286
+ line-height: 1.5;
3287
+ }
3288
+
3289
+ .agent-learning-path-pending-meta {
3290
+ display: flex;
3291
+ flex-wrap: wrap;
3292
+ gap: 6px;
3293
+ }
3294
+
3295
+ .agent-learning-path-pending-meta span {
3296
+ max-width: 100%;
3297
+ border: 1px solid rgba(148, 163, 184, 0.22);
3298
+ border-radius: 999px;
3299
+ background: rgba(2, 6, 12, 0.42);
3300
+ color: #bae6fd;
3301
+ font-size: 0.74rem;
3302
+ line-height: 1.25;
3303
+ padding: 4px 8px;
3304
+ overflow-wrap: anywhere;
3305
+ }
3306
+
3307
+ .agent-godot-future-path-shell {
3308
+ display: grid;
3309
+ gap: 12px;
3310
+ min-height: 280px;
3311
+ align-content: start;
3312
+ }
3313
+
3314
+ .agent-godot-future-path-header {
3315
+ display: flex;
3316
+ align-items: start;
3317
+ justify-content: space-between;
3318
+ gap: 12px;
3319
+ }
3320
+
3321
+ .agent-godot-future-path-title {
3322
+ min-width: 0;
3323
+ color: #f8fbff;
3324
+ font-size: 0.95rem;
3325
+ font-weight: 800;
3326
+ line-height: 1.25;
3327
+ overflow-wrap: anywhere;
3328
+ }
3329
+
3330
+ .agent-godot-future-path-status {
3331
+ border: 1px solid rgba(125, 211, 252, 0.2);
3332
+ border-radius: 8px;
3333
+ background: rgba(14, 116, 144, 0.12);
3334
+ color: #c7e9f6;
3335
+ font-size: 0.84rem;
3336
+ line-height: 1.45;
3337
+ padding: 10px 12px;
3338
+ }
3339
+
3340
+ .agent-godot-future-path-viewport {
3341
+ position: relative;
3342
+ min-height: min(58vh, 620px);
3343
+ overflow: auto;
3344
+ cursor: grab;
3345
+ border: 1px solid rgba(148, 163, 184, 0.18);
3346
+ border-radius: 8px;
3347
+ background:
3348
+ linear-gradient(180deg, rgba(15, 23, 42, 0.82), rgba(2, 6, 12, 0.92)),
3349
+ #0b1120;
3350
+ isolation: isolate;
3351
+ touch-action: none;
3352
+ }
3353
+
3354
+ .agent-godot-future-path-viewport.is-panning {
3355
+ cursor: grabbing;
3356
+ }
3357
+
3358
+ .agent-godot-future-path-surface {
3359
+ position: relative;
3360
+ min-width: 100%;
3361
+ min-height: min(58vh, 620px);
3362
+ overflow: visible;
3363
+ isolation: isolate;
3364
+ transform:
3365
+ translate(var(--godot-tree-pan-x, 0px), var(--godot-tree-pan-y, 0px))
3366
+ scale(var(--godot-tree-zoom, 1));
3367
+ transform-origin: 0 0;
3368
+ }
3369
+
3370
+ .agent-godot-future-path-lines {
3371
+ position: absolute;
3372
+ inset: 0;
3373
+ z-index: 1;
3374
+ width: 100%;
3375
+ height: 100%;
3376
+ }
3377
+
3378
+ .agent-godot-future-path-edge {
3379
+ fill: none;
3380
+ stroke: rgba(128, 128, 153, 0.5);
3381
+ stroke-width: 2;
3382
+ vector-effect: non-scaling-stroke;
3383
+ }
3384
+
3385
+ .agent-godot-future-path-edge--active {
3386
+ stroke: rgba(178, 242, 255, 0.82);
3387
+ stroke-width: 2.4;
3388
+ }
3389
+
3390
+ .agent-godot-future-path-hull {
3391
+ display: none;
3392
+ fill: rgba(255, 255, 255, 0.07);
3393
+ stroke: rgba(76, 175, 80, 0.62);
3394
+ stroke-width: 2;
3395
+ vector-effect: non-scaling-stroke;
3396
+ }
3397
+
3398
+ .agent-godot-future-path-hull--active {
3399
+ display: block;
3400
+ }
3401
+
3402
+ .agent-godot-future-path-node {
3403
+ appearance: none;
3404
+ position: absolute;
3405
+ z-index: 2;
3406
+ transform: translate(-50%, -50%);
3407
+ box-sizing: border-box;
3408
+ display: inline-flex;
3409
+ align-items: center;
3410
+ justify-content: center;
3411
+ width: 140px;
3412
+ min-width: 140px;
3413
+ height: 50px;
3414
+ min-height: 50px;
3415
+ border: 0;
3416
+ border-radius: 25px;
3417
+ background: rgba(128, 128, 153, 0.94);
3418
+ color: #ffffff;
3419
+ cursor: pointer;
3420
+ font-size: 0.82rem;
3421
+ font-weight: 750;
3422
+ line-height: 1.22;
3423
+ padding: 6px 10px;
3424
+ text-align: center;
3425
+ overflow: visible;
3426
+ white-space: normal;
3427
+ word-break: normal;
3428
+ overflow-wrap: normal;
3429
+ hyphens: none;
3430
+ transition:
3431
+ border-color 180ms ease,
3432
+ box-shadow 180ms ease,
3433
+ filter 180ms ease;
3434
+ }
3435
+
3436
+ .agent-godot-future-path-node:hover {
3437
+ box-shadow:
3438
+ 0 0 0 3px rgba(125, 211, 252, 0.24),
3439
+ 0 0 18px rgba(125, 211, 252, 0.2);
3440
+ filter: brightness(1.08);
3441
+ }
3442
+
3443
+ .agent-godot-future-path-node:focus {
3444
+ outline: none;
3445
+ }
3446
+
3447
+ .agent-godot-future-path-node:focus-visible {
3448
+ outline: 2px solid rgba(125, 211, 252, 0.95);
3449
+ outline-offset: 3px;
3450
+ }
3451
+
3452
+ .agent-godot-future-path-node:active {
3453
+ filter: brightness(0.96);
3454
+ }
3455
+
3456
+ .agent-godot-future-path-node--spine {
3457
+ box-shadow: inset 0 0 0 2px rgba(255, 214, 0, 0.62);
3458
+ }
3459
+
3460
+ .agent-godot-future-path-node--tributary {
3461
+ background: rgba(128, 128, 153, 0.78);
3462
+ }
3463
+
3464
+ .agent-godot-future-path-node--current {
3465
+ z-index: 3;
3466
+ background: rgba(0, 204, 230, 0.96);
3467
+ color: #ffffff;
3468
+ box-shadow: inset 0 0 0 2px rgba(0, 204, 230, 0.82);
3469
+ }
3470
+
3471
+ .agent-godot-future-path-node--completed {
3472
+ background: rgba(255, 214, 0, 0.96);
3473
+ color: #111827;
3474
+ }
3475
+
3476
+ .agent-godot-future-path-node--expanded {
3477
+ box-shadow:
3478
+ inset 0 0 0 2px rgba(255, 214, 0, 0.62),
3479
+ 0 0 0 20px rgba(255, 214, 0, 0.1),
3480
+ 0 0 0 34px rgba(255, 214, 0, 0.05);
3481
+ }
3482
+
3483
+ .agent-godot-future-path-node--current.agent-godot-future-path-node--expanded {
3484
+ box-shadow:
3485
+ inset 0 0 0 2px rgba(0, 204, 230, 0.82),
3486
+ 0 0 0 20px rgba(0, 204, 230, 0.1),
3487
+ 0 0 0 34px rgba(0, 204, 230, 0.05);
3488
+ }
3489
+
3490
+ .agent-godot-future-path-node--dimmed {
3491
+ opacity: 0.28;
3492
+ }
3493
+
3494
+ .agent-godot-future-path-node--selected {
3495
+ filter: brightness(1.12);
3496
+ box-shadow:
3497
+ inset 0 0 0 2px rgba(125, 211, 252, 0.68),
3498
+ 0 0 0 4px rgba(125, 211, 252, 0.2);
3499
+ }
3500
+
3501
+ .agent-godot-future-path-node-label {
3502
+ display: flex;
3503
+ flex-direction: column;
3504
+ align-items: center;
3505
+ justify-content: center;
3506
+ max-width: 120px;
3507
+ max-height: 38px;
3508
+ overflow: hidden;
3509
+ text-overflow: ellipsis;
3510
+ white-space: normal;
3511
+ word-break: keep-all;
3512
+ overflow-wrap: normal;
3513
+ hyphens: none;
3514
+ }
3515
+
3516
+ .agent-godot-future-path-node-label-line {
3517
+ display: block;
3518
+ max-width: 120px;
3519
+ overflow: hidden;
3520
+ text-overflow: ellipsis;
3521
+ white-space: nowrap;
3522
+ }
3523
+
3524
+ .agent-godot-future-path-node-badge {
3525
+ position: absolute;
3526
+ left: 50%;
3527
+ bottom: -10px;
3528
+ display: inline-flex;
3529
+ align-items: center;
3530
+ justify-content: center;
3531
+ width: 20px;
3532
+ height: 20px;
3533
+ transform: translateX(-50%);
3534
+ border-radius: 999px;
3535
+ border: 1.5px solid rgba(204, 204, 204, 0.82);
3536
+ background: rgba(38, 38, 38, 1);
3537
+ color: #ffffff;
3538
+ font-size: 0.86rem;
3539
+ font-weight: 900;
3540
+ }
3541
+
3542
+ .agent-godot-future-path-node-popover {
3543
+ position: absolute;
3544
+ left: calc(100% + 10px);
3545
+ top: 50%;
3546
+ z-index: 5;
3547
+ display: grid;
3548
+ gap: 3px;
3549
+ min-width: 180px;
3550
+ max-width: 260px;
3551
+ transform: translateY(-50%);
3552
+ border: 1px solid rgba(96, 165, 250, 0.46);
3553
+ border-radius: 8px;
3554
+ background: rgba(15, 23, 42, 0.94);
3555
+ box-shadow: 0 14px 32px rgba(0, 0, 0, 0.32);
3556
+ color: #dbeafe;
3557
+ font-size: 0.72rem;
3558
+ font-weight: 650;
3559
+ line-height: 1.3;
3560
+ opacity: 0;
3561
+ padding: 9px 10px;
3562
+ pointer-events: none;
3563
+ text-align: left;
3564
+ transition: opacity 160ms ease;
3565
+ white-space: normal;
3566
+ }
3567
+
3568
+ .agent-godot-future-path-node-popover strong {
3569
+ color: #67e8f9;
3570
+ font-size: 0.76rem;
3571
+ }
3572
+
3573
+ .agent-godot-future-path-node:hover .agent-godot-future-path-node-popover,
3574
+ .agent-godot-future-path-node:focus-visible .agent-godot-future-path-node-popover {
3575
+ opacity: 1;
3576
+ }
3577
+
3578
+ body[data-agent-workspace-promotion="graph-focus"] #agent-learning-path-pane,
3579
+ body[data-agent-workspace-promotion="graph-focus"] #agent-evidence-pane,
3580
+ body[data-agent-workspace-promotion="evidence"] #agent-graph-focus-pane,
3581
+ body[data-agent-workspace-promotion="evidence"] #agent-learning-path-pane,
3582
+ body[data-agent-workspace-promotion="learning-path"] #agent-graph-focus-pane {
3583
+ display: none !important;
3584
+ }
3585
+
3586
+ body[data-agent-workspace-promotion="graph-focus"] #agent-graph-focus-pane,
3587
+ body[data-agent-workspace-promotion="evidence"] #agent-evidence-pane,
3588
+ body[data-agent-workspace-promotion="learning-path"] #agent-learning-path-pane {
3589
+ display: flex !important;
3590
+ min-height: calc(100vh - 170px);
3591
+ }
3592
+
3593
+ #agent-workspace-api-status[data-agent-inspectable="true"] {
3594
+ cursor: pointer;
3595
+ }
3596
+
3597
+ @media (max-width: 1180px) {
3598
+ .agent-workspace-shell {
3599
+ grid-template-columns: 1fr;
3600
+ align-content: start;
3601
+ overflow-x: hidden;
3602
+ overflow-y: auto;
3603
+ }
3604
+
3605
+ .agent-chat-pane {
3606
+ max-height: none;
3607
+ }
3608
+
3609
+ .agent-side-work-area {
3610
+ overflow: visible;
3611
+ padding-right: 0;
3612
+ }
3613
+ }
3614
+
3615
+ @media (max-width: 768px) {
3616
+ .agent-workspace-drawer {
3617
+ top: 8px;
3618
+ right: 8px;
3619
+ bottom: 8px;
3620
+ width: calc(100vw - 16px);
3621
+ }
3622
+
3623
+ .agent-workspace-drawer-toolbar {
3624
+ grid-template-columns: minmax(0, 1fr) auto;
3625
+ padding: 12px 14px;
3626
+ }
3627
+
3628
+ .agent-scope-control--workspace {
3629
+ grid-template-columns: minmax(0, 1fr);
3630
+ }
3631
+
3632
+ .agent-scope-control--workspace .agent-scope-summary {
3633
+ grid-column: 1;
3634
+ }
3635
+
3636
+ .agent-workspace-shell {
3637
+ padding: 12px;
3638
+ gap: 12px;
3639
+ }
3640
+
3641
+ .agent-focus-mode-preview {
3642
+ min-height: 300px;
3643
+ }
3644
+
3645
+ .agent-focus-mode-cluster-label {
3646
+ font-size: 0.9rem;
3647
+ }
3648
+
3649
+ .agent-focus-mode-node {
3650
+ max-width: 112px;
3651
+ font-size: 0.72rem;
3652
+ padding: 6px 10px;
3653
+ }
3654
+
3655
+ .agent-focus-mode-node--anchor {
3656
+ width: 68px;
3657
+ min-height: 68px;
3658
+ padding: 7px;
3659
+ }
3660
+
3661
+ .agent-focus-mode-node--projection {
3662
+ width: 44px;
3663
+ min-width: 44px;
3664
+ height: 44px;
3665
+ min-height: 44px;
3666
+ max-width: none;
3667
+ padding: 0;
3668
+ }
3669
+
3670
+ .agent-focus-mode-node--projection.agent-focus-mode-node--anchor {
3671
+ width: 72px;
3672
+ min-width: 72px;
3673
+ height: 72px;
3674
+ min-height: 72px;
3675
+ padding: 0;
3676
+ }
3677
+
3678
+ }
3679
+
3680
+ /* --- Mobile Responsiveness (v0.9.2) --- */
3681
+ @media (max-width: 768px) {
3682
+ .settings-modal-overlay {
3683
+ padding: 10px 8px;
3684
+ }
3685
+
3686
+ .modal-content-settings,
3687
+ .modal-content-agent-settings {
3688
+ width: 100%;
3689
+ max-width: none;
3690
+ max-height: calc(100vh - 20px);
3691
+ border-radius: 14px;
3692
+ }
3693
+
3694
+ .settings-modal-body {
3695
+ padding: 14px;
3696
+ }
3697
+
3698
+ .settings-page-grid {
3699
+ grid-template-columns: minmax(0, 1fr);
3700
+ }
3701
+
3702
+ .setting-item {
3703
+ flex-direction: column;
3704
+ align-items: stretch;
3705
+ }
3706
+
3707
+ .setting-item input[type="range"] {
3708
+ margin: 0;
3709
+ }
3710
+
3711
+ .modal-footer-settings {
3712
+ flex-wrap: wrap;
3713
+ justify-content: stretch;
3714
+ }
3715
+
3716
+ .modal-footer-settings .btn {
3717
+ flex: 1 1 100%;
3718
+ }
3719
+
3720
+ .notemd-embed-shell {
3721
+ width: 100vw;
3722
+ height: 100vh;
3723
+ border-radius: 0;
3724
+ border: none;
3725
+ }
3726
+
3727
+ .notemd-embed-header {
3728
+ height: 52px;
3729
+ padding: 0 10px;
3730
+ }
3731
+
3732
+ .notemd-embed-close {
3733
+ padding: 6px 10px;
3734
+ }
3735
+
3736
+ .notemd-embed-frame {
3737
+ height: calc(100% - 52px);
3738
+ }
3739
+
3740
+ /* 1. Main Controls: Collapsible or Compact */
3741
+ #controls {
3742
+ width: 40px;
3743
+ height: 40px;
3744
+ overflow: hidden;
3745
+ padding: 0;
3746
+ border-radius: 50%;
3747
+ transition: all 0.3s ease;
3748
+ background: rgba(45, 45, 45, 0.95)
3749
+ url('data:image/svg+xml;utf8,<svg fill="white" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>')
3750
+ no-repeat center;
3751
+ background-size: 24px;
3752
+ cursor: pointer;
3753
+ }
3754
+
3755
+ #controls.expanded {
3756
+ width: 85%;
3757
+ height: auto;
3758
+ max-height: 80vh;
3759
+ overflow-y: auto;
3760
+ border-radius: 8px;
3761
+ padding: 15px;
3762
+ background: rgba(45, 45, 45, 0.98);
3763
+ }
3764
+
3765
+ /* Hide internal elements when collapsed */
3766
+ #controls:not(.expanded) > * {
3767
+ opacity: 0;
3768
+ pointer-events: none;
3769
+ }
3770
+
3771
+ /* 2. Focus Mode Controls */
3772
+ #focus-exit-btn {
3773
+ top: auto;
3774
+ bottom: 20px; /* Move to bottom for easier thumb reach */
3775
+ width: 90%;
3776
+ left: 50%;
3777
+ flex-direction: column;
3778
+ gap: 10px;
3779
+ padding: 15px;
3780
+ }
3781
+
3782
+ #focus-exit-btn span {
3783
+ font-size: 1.1rem;
3784
+ text-align: center;
3785
+ }
3786
+
3787
+ #focus-exit-btn div {
3788
+ width: 100%;
3789
+ justify-content: space-between;
3790
+ }
3791
+
3792
+ #focus-exit-btn button {
3793
+ width: 100%;
3794
+ padding: 10px;
3795
+ }
3796
+
3797
+ /* 3. Reading Window */
3798
+ .reading-box.window-mode {
3799
+ width: 95%;
3800
+ height: 90%;
3801
+ }
3802
+
3803
+ .reading-layout {
3804
+ flex-direction: column;
3805
+ }
3806
+
3807
+ .reading-outline {
3808
+ width: 100%;
3809
+ max-width: none;
3810
+ min-width: 0;
3811
+ max-height: 180px;
3812
+ border-left: none;
3813
+ border-top: 1px solid #333;
1166
3814
  }
1167
3815
 
1168
3816
  /* 4. Top Bar Adjustments */