@researai/deepscientist 1.5.1 → 1.5.3

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 (116) hide show
  1. package/README.md +69 -1
  2. package/bin/ds.js +2239 -153
  3. package/docs/en/00_QUICK_START.md +60 -20
  4. package/docs/en/01_SETTINGS_REFERENCE.md +20 -20
  5. package/docs/en/02_START_RESEARCH_GUIDE.md +11 -11
  6. package/docs/en/03_QQ_CONNECTOR_GUIDE.md +10 -10
  7. package/docs/en/05_TUI_GUIDE.md +1 -1
  8. package/docs/en/09_DOCTOR.md +48 -4
  9. package/docs/en/90_ARCHITECTURE.md +4 -2
  10. package/docs/zh/00_QUICK_START.md +60 -20
  11. package/docs/zh/01_SETTINGS_REFERENCE.md +21 -21
  12. package/docs/zh/02_START_RESEARCH_GUIDE.md +19 -19
  13. package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +10 -10
  14. package/docs/zh/05_TUI_GUIDE.md +1 -1
  15. package/docs/zh/09_DOCTOR.md +46 -4
  16. package/install.sh +125 -8
  17. package/package.json +2 -1
  18. package/pyproject.toml +1 -1
  19. package/src/deepscientist/__init__.py +6 -1
  20. package/src/deepscientist/artifact/service.py +553 -26
  21. package/src/deepscientist/bash_exec/monitor.py +23 -4
  22. package/src/deepscientist/bash_exec/runtime.py +3 -0
  23. package/src/deepscientist/bash_exec/service.py +132 -4
  24. package/src/deepscientist/bridges/base.py +10 -19
  25. package/src/deepscientist/channels/discord_gateway.py +25 -2
  26. package/src/deepscientist/channels/feishu_long_connection.py +41 -3
  27. package/src/deepscientist/channels/qq.py +524 -64
  28. package/src/deepscientist/channels/qq_gateway.py +22 -3
  29. package/src/deepscientist/channels/relay.py +429 -90
  30. package/src/deepscientist/channels/slack_socket.py +29 -5
  31. package/src/deepscientist/channels/telegram_polling.py +25 -2
  32. package/src/deepscientist/channels/whatsapp_local_session.py +32 -4
  33. package/src/deepscientist/cli.py +27 -0
  34. package/src/deepscientist/config/models.py +6 -40
  35. package/src/deepscientist/config/service.py +165 -156
  36. package/src/deepscientist/connector_profiles.py +346 -0
  37. package/src/deepscientist/connector_runtime.py +88 -43
  38. package/src/deepscientist/daemon/api/handlers.py +65 -11
  39. package/src/deepscientist/daemon/api/router.py +4 -2
  40. package/src/deepscientist/daemon/app.py +772 -219
  41. package/src/deepscientist/doctor.py +69 -2
  42. package/src/deepscientist/gitops/diff.py +3 -0
  43. package/src/deepscientist/home.py +25 -2
  44. package/src/deepscientist/mcp/context.py +3 -1
  45. package/src/deepscientist/mcp/server.py +66 -7
  46. package/src/deepscientist/migration.py +114 -0
  47. package/src/deepscientist/prompts/builder.py +71 -3
  48. package/src/deepscientist/qq_profiles.py +186 -0
  49. package/src/deepscientist/quest/layout.py +1 -0
  50. package/src/deepscientist/quest/service.py +70 -12
  51. package/src/deepscientist/quest/stage_views.py +46 -0
  52. package/src/deepscientist/runners/codex.py +2 -0
  53. package/src/deepscientist/shared.py +44 -17
  54. package/src/prompts/connectors/lingzhu.md +3 -0
  55. package/src/prompts/connectors/qq.md +42 -2
  56. package/src/prompts/system.md +123 -10
  57. package/src/skills/analysis-campaign/SKILL.md +35 -6
  58. package/src/skills/baseline/SKILL.md +73 -32
  59. package/src/skills/decision/SKILL.md +4 -3
  60. package/src/skills/experiment/SKILL.md +28 -6
  61. package/src/skills/finalize/SKILL.md +5 -2
  62. package/src/skills/idea/SKILL.md +2 -2
  63. package/src/skills/intake-audit/SKILL.md +2 -2
  64. package/src/skills/rebuttal/SKILL.md +4 -2
  65. package/src/skills/review/SKILL.md +4 -2
  66. package/src/skills/scout/SKILL.md +2 -2
  67. package/src/skills/write/SKILL.md +2 -2
  68. package/src/tui/package.json +1 -1
  69. package/src/ui/dist/assets/{AiManusChatView-w5lF2Ttt.js → AiManusChatView-qzChi9uh.js} +67 -94
  70. package/src/ui/dist/assets/{AnalysisPlugin-DJOED79I.js → AnalysisPlugin-CcC_-UqN.js} +1 -1
  71. package/src/ui/dist/assets/{AutoFigurePlugin-DaG61Y0M.js → AutoFigurePlugin-DD8LkJLe.js} +5 -5
  72. package/src/ui/dist/assets/{CliPlugin-CV4LqUB_.js → CliPlugin-DJJFfVmW.js} +17 -110
  73. package/src/ui/dist/assets/{CodeEditorPlugin-DylfAea4.js → CodeEditorPlugin-CrjkHNLh.js} +8 -8
  74. package/src/ui/dist/assets/{CodeViewerPlugin-F7saY0LM.js → CodeViewerPlugin-obnD6G5R.js} +5 -5
  75. package/src/ui/dist/assets/{DocViewerPlugin-COP0c7jf.js → DocViewerPlugin-DB9SUQVd.js} +3 -3
  76. package/src/ui/dist/assets/{GitDiffViewerPlugin-CAS05pT9.js → GitDiffViewerPlugin-DZLlNlD2.js} +1 -1
  77. package/src/ui/dist/assets/{ImageViewerPlugin-Bco1CN_w.js → ImageViewerPlugin-BGwfDZ0Y.js} +5 -5
  78. package/src/ui/dist/assets/{LabCopilotPanel-CvMlCD99.js → LabCopilotPanel-dfLptQcR.js} +10 -10
  79. package/src/ui/dist/assets/{LabPlugin-BYankkE4.js → LabPlugin-CeGjAl3A.js} +1 -1
  80. package/src/ui/dist/assets/{LatexPlugin-LDSMR-t-.js → LatexPlugin-BBJ7kd1V.js} +7 -7
  81. package/src/ui/dist/assets/{MarkdownViewerPlugin-B7o80jgm.js → MarkdownViewerPlugin-DKZi7BcB.js} +4 -4
  82. package/src/ui/dist/assets/{MarketplacePlugin-CM6ZOcpC.js → MarketplacePlugin-C_k-9jD0.js} +3 -3
  83. package/src/ui/dist/assets/{NotebookEditor-Dc61cXmK.js → NotebookEditor-4R88_BMO.js} +1 -1
  84. package/src/ui/dist/assets/{PdfLoader-DWowuQwx.js → PdfLoader-DwEFQLrw.js} +1 -1
  85. package/src/ui/dist/assets/{PdfMarkdownPlugin-BsJM1q_a.js → PdfMarkdownPlugin-D-jdsqF8.js} +3 -3
  86. package/src/ui/dist/assets/{PdfViewerPlugin-DB2eEEFQ.js → PdfViewerPlugin-CmeBGDY0.js} +10 -10
  87. package/src/ui/dist/assets/{SearchPlugin-CraThSvt.js → SearchPlugin-Dlz2WKJ4.js} +1 -1
  88. package/src/ui/dist/assets/{Stepper-CgocRTPq.js → Stepper-ClOgzWM3.js} +1 -1
  89. package/src/ui/dist/assets/{TextViewerPlugin-B1JGhKtd.js → TextViewerPlugin-DDQWxibk.js} +4 -4
  90. package/src/ui/dist/assets/{VNCViewer-CclFC7FM.js → VNCViewer-CJXT0Nm8.js} +9 -9
  91. package/src/ui/dist/assets/{bibtex-D3IKsMl7.js → bibtex-DLr4Rtk4.js} +1 -1
  92. package/src/ui/dist/assets/{code-BP37Xx0p.js → code-DgKK408Y.js} +1 -1
  93. package/src/ui/dist/assets/{file-content-BAJSu-9r.js → file-content-6HBqQnvQ.js} +1 -1
  94. package/src/ui/dist/assets/{file-diff-panel-DUGeCTuy.js → file-diff-panel-Dhu0TbBM.js} +1 -1
  95. package/src/ui/dist/assets/{file-socket-CXc1Ojf7.js → file-socket-CP3iwVZG.js} +1 -1
  96. package/src/ui/dist/assets/{file-utils-2J21jt7M.js → file-utils-BsS-Aw68.js} +1 -1
  97. package/src/ui/dist/assets/{image-CMMmgvcn.js → image-ByeK-Zcv.js} +1 -1
  98. package/src/ui/dist/assets/{index-DmwmJmbW.js → index-BLjo5--a.js} +33610 -31016
  99. package/src/ui/dist/assets/{index-CWgMgpow.js → index-BdsE0uRz.js} +11 -11
  100. package/src/ui/dist/assets/{index-s7aHnNQ4.js → index-C-eX-N6A.js} +1 -1
  101. package/src/ui/dist/assets/{index-KGt-z-dD.css → index-CuQhlrR-.css} +2747 -2
  102. package/src/ui/dist/assets/{index-BaVumsQT.js → index-DyremSIv.js} +2 -2
  103. package/src/ui/dist/assets/{message-square-CQRfX0Am.js → message-square-DnagiLnc.js} +1 -1
  104. package/src/ui/dist/assets/{monaco-B4TbdsrF.js → monaco-4kBFeprs.js} +1 -1
  105. package/src/ui/dist/assets/{popover-B8Rokodk.js → popover-hRCXZzs2.js} +1 -1
  106. package/src/ui/dist/assets/{project-sync-D_i96KH4.js → project-sync-O_85YuP6.js} +1 -1
  107. package/src/ui/dist/assets/{sigma-D12PnzCN.js → sigma-DvKopSnL.js} +1 -1
  108. package/src/ui/dist/assets/{tooltip-B6YrI4aJ.js → tooltip-BmlPc6kc.js} +1 -1
  109. package/src/ui/dist/assets/{trash-Bc8jGp0V.js → trash-n-UvdZFR.js} +1 -1
  110. package/src/ui/dist/assets/{useCliAccess-mXVCYSZ-.js → useCliAccess-WDd3_wIh.js} +1 -1
  111. package/src/ui/dist/assets/{useFileDiffOverlay-Bg6b9H9K.js → useFileDiffOverlay-rXLIL2NF.js} +1 -1
  112. package/src/ui/dist/assets/{wrap-text-Drh5GEnL.js → wrap-text-qIYQ4a_W.js} +1 -1
  113. package/src/ui/dist/assets/{zoom-out-CJj9DZLn.js → zoom-out-fZXCEFsy.js} +1 -1
  114. package/src/ui/dist/index.html +2 -2
  115. package/uv.lock +1155 -0
  116. package/src/ui/dist/assets/LabPlugin-D9jVIo0A.css +0 -2698
@@ -1,2698 +0,0 @@
1
- .lab-root {
2
- position: relative;
3
- display: flex;
4
- flex-direction: column;
5
- min-height: 0;
6
- flex: 1 1 auto;
7
- height: 100%;
8
- width: 100%;
9
- overflow: visible;
10
- border-radius: 0;
11
- background: transparent;
12
- --lab-bg: #f6f6f6;
13
- --lab-surface: #ffffff;
14
- --lab-surface-muted: #f0f0f0;
15
- --lab-surface-strong: #e9e9e9;
16
- --lab-background: var(--lab-surface-muted);
17
- --lab-border: #e2e2e2;
18
- --lab-border-strong: #cfcfcf;
19
- --lab-text-primary: #111111;
20
- --lab-text-secondary: #4f4f4f;
21
- --lab-text-muted: #8a8a8a;
22
- --lab-accent: #c4a066;
23
- --lab-accent-strong: #b48d4f;
24
- --lab-danger: #b42318;
25
- --lab-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 12px 26px rgba(0, 0, 0, 0.06);
26
- --lab-dark: rgba(32, 33, 38, 0.78);
27
- --lab-radius: 14px;
28
- --lab-spacing-xs: 4px;
29
- --lab-spacing-sm: 8px;
30
- --lab-spacing-md: 12px;
31
- --lab-spacing-lg: 16px;
32
- --lab-spacing-xl: 24px;
33
- --lab-text-xs: 10px;
34
- --lab-text-sm: 12px;
35
- --lab-text-base: 14px;
36
- --lab-text-lg: 16px;
37
- --lab-duration-fast: 150ms;
38
- --lab-duration-normal: 250ms;
39
- --lab-duration-slow: 400ms;
40
- --lab-z-dropdown: 100;
41
- --lab-z-modal: 200;
42
- --lab-z-toast: 300;
43
- --lab-avatar-palette: #c7c7c7, #b6b6b6, #a5a5a5, #949494, #838383, #727272, #616161, #505050, #3f3f3f;
44
- }
45
-
46
- :is(.dark, [data-theme="dark"]) .lab-root {
47
- background: transparent;
48
- --lab-bg: #141518;
49
- --lab-surface: #1c1d22;
50
- --lab-surface-muted: #17181c;
51
- --lab-surface-strong: #23252b;
52
- --lab-background: var(--lab-surface-muted);
53
- --lab-border: rgba(255, 255, 255, 0.08);
54
- --lab-border-strong: rgba(255, 255, 255, 0.16);
55
- --lab-text-primary: #f1e9de;
56
- --lab-text-secondary: #c5bdb2;
57
- --lab-text-muted: #9a9389;
58
- --lab-accent: #d2b077;
59
- --lab-accent-strong: #e0bf88;
60
- --lab-danger: #f08c84;
61
- --lab-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 18px 36px rgba(0, 0, 0, 0.45);
62
- --lab-dark: rgba(12, 13, 16, 0.85);
63
- --lab-avatar-palette: #504b45, #5a5450, #65605c, #706a66, #7b746f, #87807b, #928a85, #9d958f, #a89f99;
64
- }
65
-
66
- :is(.dark, [data-theme="dark"]) .lab-card-hover:hover {
67
- box-shadow: 0 26px 70px rgba(0, 0, 0, 0.55);
68
- }
69
-
70
- :is(.dark, [data-theme="dark"]) .lab-status-dot {
71
- background: #6a6d73;
72
- }
73
-
74
- :is(.dark, [data-theme="dark"]) .lab-status-dot-idle, :is(.dark, [data-theme="dark"]) .lab-status-dot-running {
75
- background: #82bca0;
76
- }
77
-
78
- :is(.dark, [data-theme="dark"]) .lab-status-dot-busy {
79
- background: #d2b077;
80
- }
81
-
82
- #workspace-root[data-lab-onboarding='true']::after {
83
- content: '';
84
- position: absolute;
85
- inset: 0;
86
- background: rgba(12, 12, 12, 0.38);
87
- z-index: 70;
88
- pointer-events: auto;
89
- }
90
-
91
- #workspace-root[data-lab-onboarding='true'] {
92
- position: relative;
93
- }
94
-
95
- #workspace-root[data-lab-onboarding='true'] .ds-copilot-dock .ds-copilot-glass {
96
- border-color: rgba(212, 175, 55, 0.7);
97
- box-shadow:
98
- 0 0 0 1px rgba(212, 175, 55, 0.5),
99
- 0 18px 42px rgba(34, 28, 12, 0.35);
100
- }
101
-
102
- #workspace-root[data-lab-onboarding='true'] .ds-copilot-dock {
103
- filter: drop-shadow(0 20px 48px rgba(212, 175, 55, 0.2));
104
- position: relative;
105
- z-index: 80;
106
- pointer-events: auto;
107
- }
108
-
109
- .lab-onboarding-exit {
110
- margin-left: auto;
111
- border-radius: 999px;
112
- border: 1px solid rgba(212, 175, 55, 0.5);
113
- padding: 4px 10px;
114
- font-size: 11px;
115
- color: rgba(68, 52, 20, 0.85);
116
- background: rgba(212, 175, 55, 0.12);
117
- transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
118
- }
119
-
120
- .lab-onboarding-exit:hover {
121
- background: rgba(212, 175, 55, 0.2);
122
- border-color: rgba(212, 175, 55, 0.7);
123
- color: rgba(48, 36, 10, 0.95);
124
- }
125
-
126
- .lab-pi-onboarding-banner {
127
- display: flex;
128
- align-items: center;
129
- justify-content: space-between;
130
- gap: 12px;
131
- margin: 12px 16px 0 16px;
132
- padding: 10px 12px;
133
- border-radius: 12px;
134
- border: 1px solid rgba(212, 175, 55, 0.4);
135
- background: rgba(255, 247, 232, 0.7);
136
- color: var(--lab-text-primary);
137
- font-size: 12px;
138
- }
139
-
140
- .lab-pi-onboarding-banner button {
141
- border-radius: 8px;
142
- border: 1px solid rgba(30, 20, 8, 0.2);
143
- padding: 4px 10px;
144
- font-size: 11px;
145
- background: rgba(255, 255, 255, 0.7);
146
- color: rgba(38, 26, 10, 0.9);
147
- transition: background 150ms ease, border-color 150ms ease;
148
- }
149
-
150
- .lab-pi-onboarding-banner button:hover {
151
- background: rgba(255, 255, 255, 0.9);
152
- border-color: rgba(30, 20, 8, 0.35);
153
- }
154
-
155
- .lab-pi-onboarding-title {
156
- font-weight: 600;
157
- font-size: 12px;
158
- }
159
-
160
- .lab-pi-onboarding-subtitle {
161
- margin-top: 2px;
162
- color: var(--lab-text-secondary);
163
- font-size: 11px;
164
- }
165
-
166
- .lab-card {
167
- border-radius: 14px;
168
- border: 1px solid var(--lab-border);
169
- background: var(--lab-surface);
170
- box-shadow: var(--lab-shadow);
171
- }
172
-
173
- .lab-panel {
174
- display: flex;
175
- flex: 1 1 auto;
176
- min-height: 0;
177
- border-radius: 14px;
178
- border: 1px solid var(--lab-border);
179
- background: var(--lab-surface);
180
- box-shadow: var(--lab-shadow);
181
- }
182
-
183
- .lab-card-hover {
184
- transition: transform 240ms ease, box-shadow 240ms ease;
185
- }
186
-
187
- .lab-root button {
188
- transition: transform var(--lab-duration-fast) ease;
189
- }
190
-
191
- .lab-root button:active {
192
- transform: scale(0.97);
193
- }
194
-
195
- [data-motion='off'] .lab-root button:active {
196
- transform: none;
197
- }
198
-
199
- .lab-card-hover:hover {
200
- transform: translateY(-2px);
201
- box-shadow: 0 24px 60px rgba(51, 48, 40, 0.18);
202
- }
203
-
204
- @keyframes labEnterScale {
205
- from {
206
- transform: scale(0.95);
207
- opacity: 0;
208
- }
209
- to {
210
- transform: scale(1);
211
- opacity: 1;
212
- }
213
- }
214
-
215
- [data-motion='off'] .lab-card-hover {
216
- transition: none;
217
- }
218
-
219
- [data-motion='off'] .lab-card-hover:hover {
220
- transform: none;
221
- box-shadow: var(--lab-shadow);
222
- }
223
-
224
- .lab-card-hover:focus-visible {
225
- outline: 2px solid var(--lab-accent);
226
- outline-offset: 2px;
227
- }
228
-
229
- @keyframes labTerminalProgressIndeterminate {
230
- 0% {
231
- transform: translateX(0);
232
- }
233
- 100% {
234
- transform: translateX(240%);
235
- }
236
- }
237
-
238
- @keyframes labTerminalProgressPulse {
239
- 0%,
240
- 100% {
241
- background: var(--lab-border);
242
- }
243
- 50% {
244
- background: color-mix(in srgb, var(--lab-accent) 30%, var(--lab-border));
245
- }
246
- }
247
-
248
- .lab-avatar {
249
- position: relative;
250
- display: grid;
251
- place-items: center;
252
- border-radius: 16px;
253
- background: var(--lab-surface-muted);
254
- border: 1px solid var(--lab-border);
255
- width: 44px;
256
- height: 44px;
257
- flex-shrink: 0;
258
- }
259
-
260
- .lab-avatar::before {
261
- display: none;
262
- }
263
-
264
- .lab-avatar img {
265
- width: 100%;
266
- height: 100%;
267
- -o-object-fit: cover;
268
- object-fit: cover;
269
- border-radius: inherit;
270
- opacity: 1;
271
- position: relative;
272
- z-index: 1;
273
- }
274
-
275
- .lab-avatar-ring {
276
- position: absolute;
277
- inset: -4px;
278
- border-radius: 18px;
279
- border: 2px solid transparent;
280
- transition: border-color 300ms ease, box-shadow 300ms ease;
281
- }
282
-
283
- .lab-avatar-sm {
284
- width: 32px;
285
- height: 32px;
286
- border-radius: 12px;
287
- }
288
-
289
- .lab-avatar-sm img {
290
- width: 100%;
291
- height: 100%;
292
- }
293
-
294
- .lab-status-dot {
295
- width: 8px;
296
- height: 8px;
297
- border-radius: 999px;
298
- background: #b6b6b6;
299
- }
300
-
301
- .lab-status-dot-idle, .lab-status-dot-running {
302
- background: #7a7a7a;
303
- }
304
-
305
- .lab-status-dot-busy {
306
- background: #8a8a8a;
307
- }
308
-
309
- .lab-status-indicator {
310
- display: inline-flex;
311
- align-items: center;
312
- justify-content: center;
313
- width: 22px;
314
- height: 22px;
315
- border-radius: 999px;
316
- border: 1px solid var(--lab-border);
317
- background: var(--lab-surface-muted);
318
- color: var(--lab-text-secondary);
319
- flex-shrink: 0;
320
- }
321
-
322
- .lab-status-indicator-working {
323
- border-color: transparent;
324
- background: transparent;
325
- }
326
-
327
- .lab-status-indicator-waiting {
328
- border-color: rgba(173, 134, 82, 0.35);
329
- background: rgba(173, 134, 82, 0.14);
330
- color: #7c5a2e;
331
- }
332
-
333
- .lab-status-orbit {
334
- gap: 0;
335
- line-height: 0;
336
- }
337
-
338
- @keyframes labStatusSpin {
339
- from {
340
- transform: rotate(0deg);
341
- }
342
- to {
343
- transform: rotate(360deg);
344
- }
345
- }
346
-
347
- .lab-status-waiting .lab-avatar-ring {
348
- animation: labWaitingPulse 2.8s ease-in-out infinite;
349
- }
350
-
351
- [data-motion='off'] .lab-status-waiting .lab-avatar-ring {
352
- animation: none;
353
- }
354
-
355
-
356
- .lab-section-tabs {
357
- display: flex;
358
- align-items: center;
359
- gap: 18px;
360
- }
361
-
362
- .lab-section-tab {
363
- position: relative;
364
- padding: 8px 2px 12px;
365
- font-size: 15px;
366
- color: var(--lab-text-secondary);
367
- transition: color 160ms ease;
368
- }
369
-
370
- .lab-section-tab:hover {
371
- color: var(--lab-text-primary);
372
- }
373
-
374
- .lab-section-tab-active {
375
- color: var(--lab-text-primary);
376
- font-weight: 600;
377
- }
378
-
379
- .lab-section-tab-indicator {
380
- position: absolute;
381
- left: 0;
382
- right: 0;
383
- bottom: -1px;
384
- height: 2px;
385
- border-radius: 999px;
386
- background: var(--lab-accent);
387
- }
388
-
389
- .lab-copilot-header {
390
- display: flex;
391
- align-items: center;
392
- gap: 16px;
393
- width: 100%;
394
- min-width: 0;
395
- flex-wrap: wrap;
396
- container-type: inline-size;
397
- container-name: lab-copilot-header;
398
- }
399
-
400
- .lab-copilot-tabs {
401
- flex: 1 1 auto;
402
- min-width: 0;
403
- flex-wrap: wrap;
404
- -moz-column-gap: 18px;
405
- column-gap: 18px;
406
- row-gap: 6px;
407
- }
408
-
409
- .lab-copilot-agent {
410
- display: inline-flex;
411
- align-items: center;
412
- gap: 10px;
413
- flex: 0 0 auto;
414
- margin-left: auto;
415
- }
416
-
417
- .lab-copilot-agent-meta {
418
- display: flex;
419
- flex-direction: column;
420
- gap: 2px;
421
- min-width: 0;
422
- }
423
-
424
- .lab-copilot-agent-name {
425
- max-width: 220px;
426
- font-size: 13px;
427
- font-weight: 600;
428
- color: var(--lab-text-primary);
429
- white-space: nowrap;
430
- overflow: hidden;
431
- text-overflow: ellipsis;
432
- }
433
-
434
- .lab-copilot-agent-status {
435
- display: inline-flex;
436
- align-items: center;
437
- gap: 6px;
438
- font-size: 11px;
439
- font-weight: 500;
440
- color: var(--lab-text-secondary);
441
- white-space: nowrap;
442
- }
443
-
444
- @container lab-copilot-header (max-width: 440px) {
445
- .lab-copilot-agent-name {
446
- display: none;
447
- }
448
- }
449
-
450
- .lab-copilot-menu {
451
- width: min(420px, 92vw);
452
- border-radius: 16px;
453
- border: 1px solid var(--lab-border-strong);
454
- background: var(--lab-surface);
455
- background: color-mix(in srgb, var(--lab-surface) 86%, transparent);
456
- backdrop-filter: blur(18px) saturate(140%);
457
- -webkit-backdrop-filter: blur(18px) saturate(140%);
458
- box-shadow: var(--lab-shadow);
459
- padding: 14px;
460
- }
461
-
462
- .lab-copilot-menu-section {
463
- display: flex;
464
- flex-direction: column;
465
- gap: 10px;
466
- }
467
-
468
- .lab-copilot-menu-section + .lab-copilot-menu-section {
469
- margin-top: 12px;
470
- padding-top: 12px;
471
- border-top: 1px solid var(--lab-border);
472
- }
473
-
474
- .lab-copilot-menu-title {
475
- font-size: 11px;
476
- text-transform: uppercase;
477
- letter-spacing: 0.08em;
478
- color: var(--lab-text-muted);
479
- }
480
-
481
- .lab-copilot-menu-muted {
482
- font-size: 12px;
483
- color: var(--lab-text-muted);
484
- }
485
-
486
- .lab-copilot-entity-list {
487
- display: flex;
488
- flex-wrap: wrap;
489
- gap: 8px;
490
- }
491
-
492
- .lab-copilot-entity {
493
- display: inline-flex;
494
- align-items: center;
495
- gap: 6px;
496
- max-width: 160px;
497
- padding: 4px 8px 4px 4px;
498
- border-radius: 999px;
499
- border: 1px solid var(--lab-border);
500
- background: var(--lab-surface-muted);
501
- transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
502
- }
503
-
504
- .lab-copilot-entity.is-manageable {
505
- cursor: context-menu;
506
- }
507
-
508
- .lab-copilot-entity.is-manageable:hover {
509
- border-color: var(--lab-border-strong);
510
- background: var(--lab-surface-strong);
511
- }
512
-
513
- .lab-copilot-entity-name {
514
- max-width: 110px;
515
- font-size: 11px;
516
- color: var(--lab-text-secondary);
517
- white-space: nowrap;
518
- overflow: hidden;
519
- text-overflow: ellipsis;
520
- }
521
-
522
- .lab-copilot-entity-add {
523
- width: 34px;
524
- height: 34px;
525
- padding: 0;
526
- justify-content: center;
527
- border-style: dashed;
528
- color: var(--lab-text-muted);
529
- cursor: pointer;
530
- }
531
-
532
- .lab-copilot-entity-add:hover:not(:disabled) {
533
- color: var(--lab-text-primary);
534
- }
535
-
536
- .lab-copilot-entity-add:disabled {
537
- opacity: 0.5;
538
- cursor: not-allowed;
539
- }
540
-
541
- .lab-copilot-search {
542
- display: flex;
543
- align-items: center;
544
- gap: 8px;
545
- padding: 6px 10px;
546
- border-radius: 12px;
547
- border: 1px solid var(--lab-border);
548
- background: var(--lab-surface-muted);
549
- color: var(--lab-text-muted);
550
- }
551
-
552
- .lab-copilot-search-input {
553
- flex: 1;
554
- border: none;
555
- background: transparent;
556
- font-size: 12px;
557
- color: var(--lab-text-primary);
558
- }
559
-
560
- .lab-copilot-search-input:focus {
561
- outline: none;
562
- }
563
-
564
- .lab-copilot-search-results {
565
- display: flex;
566
- flex-direction: column;
567
- gap: 6px;
568
- max-height: 220px;
569
- overflow-y: auto;
570
- }
571
-
572
- .lab-copilot-search-result {
573
- text-align: left;
574
- border-radius: 12px;
575
- border: 1px solid transparent;
576
- padding: 8px 10px;
577
- background: var(--lab-surface);
578
- transition: border-color 180ms ease, background 180ms ease, color 180ms ease;
579
- }
580
-
581
- .lab-copilot-search-result:hover {
582
- border-color: var(--lab-border-strong);
583
- background: var(--lab-surface-strong);
584
- }
585
-
586
- .lab-copilot-search-title {
587
- font-size: 12px;
588
- font-weight: 600;
589
- color: var(--lab-text-primary);
590
- }
591
-
592
- .lab-copilot-search-excerpt {
593
- margin-top: 2px;
594
- font-size: 11px;
595
- color: var(--lab-text-secondary);
596
- }
597
-
598
- .lab-copilot-menu-select {
599
- min-height: 38px;
600
- width: 100%;
601
- font-size: 12px;
602
- }
603
-
604
- .lab-copilot-overflow-trigger {
605
- border-color: var(--lab-border);
606
- }
607
-
608
- .lab-copilot-context-menu {
609
- position: fixed;
610
- z-index: 10020;
611
- min-width: 160px;
612
- padding: 6px;
613
- border-radius: 10px;
614
- border: 1px solid color-mix(in srgb, var(--lab-border, #cfcfcf) 80%, #c8c8c8);
615
- background: color-mix(in srgb, var(--lab-surface, #ffffff) 90%, #f2f2f2);
616
- box-shadow: var(--lab-shadow);
617
- }
618
-
619
- .lab-copilot-context-item {
620
- display: flex;
621
- width: 100%;
622
- align-items: center;
623
- gap: 8px;
624
- border-radius: 8px;
625
- padding: 8px 10px;
626
- font-size: 12px;
627
- text-align: left;
628
- color: var(--lab-text-primary);
629
- }
630
-
631
- .lab-copilot-context-menu button {
632
- display: flex;
633
- width: 100%;
634
- align-items: center;
635
- gap: 8px;
636
- background: transparent;
637
- border: none;
638
- cursor: pointer;
639
- border-radius: 8px;
640
- padding: 8px 10px;
641
- font-size: 12px;
642
- text-align: left;
643
- color: var(--lab-text-primary);
644
- }
645
-
646
- .lab-copilot-context-menu button:hover:not(:disabled) {
647
- background: var(--lab-surface-strong);
648
- }
649
-
650
- .lab-copilot-context-menu button:disabled {
651
- opacity: 0.5;
652
- cursor: not-allowed;
653
- }
654
-
655
- .lab-copilot-add-dialog {
656
- max-width: 520px;
657
- width: min(520px, 92vw);
658
- }
659
-
660
- .lab-copilot-add-title {
661
- font-size: 16px;
662
- color: var(--lab-text-primary);
663
- }
664
-
665
- .lab-copilot-add-subtitle {
666
- margin-top: 4px;
667
- font-size: 12px;
668
- color: var(--lab-text-secondary);
669
- }
670
-
671
- .lab-copilot-add-list {
672
- margin-top: 12px;
673
- display: grid;
674
- gap: 8px;
675
- max-height: 320px;
676
- overflow-y: auto;
677
- }
678
-
679
- .lab-copilot-add-row {
680
- display: flex;
681
- align-items: center;
682
- gap: 10px;
683
- border-radius: 12px;
684
- border: 1px solid var(--lab-border);
685
- padding: 8px 12px;
686
- background: var(--lab-surface);
687
- text-align: left;
688
- width: 100%;
689
- cursor: pointer;
690
- transition: border-color 160ms ease, background 160ms ease;
691
- }
692
-
693
- .lab-copilot-add-row:hover {
694
- border-color: var(--lab-border-strong);
695
- background: var(--lab-surface-strong);
696
- }
697
-
698
- .lab-copilot-add-row.is-selected {
699
- border-color: var(--lab-accent);
700
- background: rgba(196, 160, 102, 0.12);
701
- }
702
-
703
- .lab-copilot-add-check {
704
- display: inline-flex;
705
- align-items: center;
706
- justify-content: center;
707
- width: 18px;
708
- height: 18px;
709
- border-radius: 6px;
710
- border: 1px solid var(--lab-border);
711
- color: var(--lab-text-secondary);
712
- }
713
-
714
- .lab-copilot-add-row.is-selected .lab-copilot-add-check {
715
- border-color: var(--lab-accent);
716
- color: var(--lab-accent);
717
- }
718
-
719
- .lab-copilot-add-name {
720
- flex: 1;
721
- font-size: 12px;
722
- color: var(--lab-text-primary);
723
- white-space: nowrap;
724
- overflow: hidden;
725
- text-overflow: ellipsis;
726
- }
727
-
728
- .lab-copilot-add-empty {
729
- margin-top: 12px;
730
- font-size: 12px;
731
- color: var(--lab-text-muted);
732
- }
733
-
734
- .lab-copilot-add-footer {
735
- margin-top: 8px;
736
- gap: 8px;
737
- }
738
-
739
- [data-motion='off'] .magicui-border-beam,
740
- [data-motion='off'] .magicui-grid-pattern,
741
- [data-motion='off'] .aceternity-moving-border {
742
- animation: none;
743
- }
744
-
745
- .lab-moment-card {
746
- display: grid;
747
- grid-template-columns: 48px minmax(0, 1fr);
748
- gap: 18px;
749
- padding: 22px 8px 24px;
750
- border-bottom: 1px solid rgba(0, 0, 0, 0.05);
751
- background: transparent;
752
- align-items: flex-start;
753
- }
754
-
755
- .lab-moment-main {
756
- display: flex;
757
- flex-direction: column;
758
- gap: 12px;
759
- min-width: 0;
760
- }
761
-
762
- .lab-moment-card:last-child {
763
- border-bottom-color: transparent;
764
- }
765
-
766
- .lab-moment-avatar {
767
- width: 38px;
768
- height: 38px;
769
- border-radius: 12px;
770
- }
771
-
772
- .lab-moment-avatar img {
773
- border-radius: inherit;
774
- }
775
-
776
- .lab-moment-avatar span {
777
- font-size: 12px;
778
- font-weight: 600;
779
- color: var(--lab-text-secondary);
780
- position: relative;
781
- z-index: 1;
782
- }
783
-
784
- .lab-moment-name {
785
- font-size: 13px;
786
- font-weight: 600;
787
- color: var(--lab-text-secondary);
788
- }
789
-
790
- .lab-moment-timestamp {
791
- font-size: 10px;
792
- color: var(--lab-text-muted);
793
- }
794
-
795
- .lab-message-timestamp {
796
- margin-top: 6px;
797
- font-size: 10px;
798
- color: var(--lab-text-muted);
799
- }
800
-
801
- .lab-moment-content {
802
- font-size: var(--lab-text-base);
803
- color: var(--lab-text-primary);
804
- line-height: 1.7;
805
- }
806
-
807
- .lab-moment-content :is(p, ul, ol) {
808
- margin: 0 0 6px;
809
- }
810
-
811
- .lab-moment-content :is(ul, ol) {
812
- padding-left: var(--lab-spacing-lg);
813
- }
814
-
815
- .lab-moment-media {
816
- display: grid;
817
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
818
- gap: var(--lab-spacing-sm);
819
- }
820
-
821
- .lab-moment-media-item {
822
- border-radius: 12px;
823
- overflow: hidden;
824
- border: 1px solid var(--lab-border);
825
- background: var(--lab-surface-muted);
826
- aspect-ratio: 1 / 1;
827
- }
828
-
829
- .lab-moment-media-item img {
830
- width: 100%;
831
- height: 100%;
832
- -o-object-fit: cover;
833
- object-fit: cover;
834
- display: block;
835
- }
836
-
837
- .lab-moment-meta-row {
838
- display: flex;
839
- align-items: center;
840
- justify-content: space-between;
841
- gap: 14px;
842
- margin-top: 4px;
843
- }
844
-
845
- .lab-moment-actions {
846
- display: inline-flex;
847
- align-items: center;
848
- gap: 12px;
849
- }
850
-
851
- .lab-moment-action {
852
- display: inline-flex;
853
- align-items: center;
854
- gap: 6px;
855
- font-size: 11px;
856
- font-weight: 600;
857
- border-radius: 999px;
858
- padding: 2px 8px;
859
- border: 1px solid transparent;
860
- color: var(--lab-text-secondary);
861
- background: transparent;
862
- transition: background-color var(--lab-duration-fast) ease, border-color var(--lab-duration-fast) ease, color var(--lab-duration-fast) ease;
863
- }
864
-
865
- .lab-moment-action:hover:not(:disabled) {
866
- background: var(--lab-surface-muted);
867
- border-color: var(--lab-border-strong);
868
- color: var(--lab-text-primary);
869
- }
870
-
871
- .lab-moment-action.is-active {
872
- border-color: var(--lab-accent);
873
- color: var(--lab-text-primary);
874
- }
875
-
876
- .lab-moment-action:disabled {
877
- opacity: 0.55;
878
- cursor: not-allowed;
879
- }
880
-
881
- .lab-moment-reactions {
882
- display: flex;
883
- flex-direction: column;
884
- gap: 6px;
885
- background: var(--lab-surface-muted);
886
- border: 1px solid var(--lab-border);
887
- border-radius: 10px;
888
- padding: 8px 10px;
889
- font-size: 11px;
890
- color: var(--lab-text-secondary);
891
- }
892
-
893
- .lab-moment-like-row {
894
- display: flex;
895
- align-items: center;
896
- gap: 6px;
897
- font-weight: 600;
898
- color: var(--lab-text-secondary);
899
- flex-wrap: wrap;
900
- }
901
-
902
- .lab-moment-like-names {
903
- color: var(--lab-text-primary);
904
- }
905
-
906
- .lab-moment-comment-row {
907
- display: flex;
908
- flex-wrap: wrap;
909
- gap: 4px;
910
- line-height: 1.4;
911
- }
912
-
913
- .lab-moment-comment-name {
914
- font-weight: 600;
915
- color: var(--lab-text-primary);
916
- }
917
-
918
- .lab-moment-comment-sep {
919
- color: var(--lab-text-muted);
920
- }
921
-
922
- .lab-moment-comment-text {
923
- color: var(--lab-text-secondary);
924
- }
925
-
926
- .lab-moment-comment {
927
- display: flex;
928
- flex-direction: column;
929
- gap: var(--lab-spacing-xs);
930
- margin-top: 8px;
931
- }
932
-
933
- .lab-friends-list {
934
- display: flex;
935
- flex-direction: column;
936
- }
937
-
938
- .lab-moment-comment-input {
939
- width: 100%;
940
- border-radius: 12px;
941
- border: 1px solid var(--lab-border);
942
- background: var(--lab-surface-muted);
943
- padding: 8px 10px;
944
- font-size: 12px;
945
- color: var(--lab-text-primary);
946
- resize: vertical;
947
- min-height: 64px;
948
- }
949
-
950
- .lab-moment-comment-input:focus {
951
- outline: 2px solid color-mix(in srgb, var(--lab-accent) 50%, transparent);
952
- outline-offset: 2px;
953
- }
954
-
955
- .lab-moment-comment-actions {
956
- display: flex;
957
- gap: var(--lab-spacing-xs);
958
- justify-content: flex-end;
959
- }
960
-
961
- .lab-moment-action-secondary {
962
- background: transparent;
963
- border-color: var(--lab-border);
964
- }
965
-
966
- .lab-moment-action-primary {
967
- background: var(--lab-accent);
968
- border-color: transparent;
969
- color: #111111;
970
- }
971
-
972
- .lab-moment-action-primary:hover:not(:disabled) {
973
- background: var(--lab-accent-strong);
974
- color: #111111;
975
- }
976
-
977
- .lab-message-highlight {
978
- animation: labMessageFlash 1.2s ease;
979
- box-shadow: 0 0 0 1px rgba(196, 160, 102, 0.3), 0 0 12px rgba(196, 160, 102, 0.35);
980
- }
981
-
982
- [data-motion='off'] .lab-message-highlight {
983
- animation: none;
984
- }
985
-
986
- @keyframes labLinkFlow {
987
- 0% {
988
- transform: translateX(-60%);
989
- opacity: 0;
990
- }
991
- 30% {
992
- opacity: 1;
993
- }
994
- 100% {
995
- transform: translateX(60%);
996
- opacity: 0;
997
- }
998
- }
999
-
1000
- @keyframes labNodePulse {
1001
- 0%, 100% {
1002
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.0);
1003
- }
1004
- 50% {
1005
- box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.08);
1006
- }
1007
- }
1008
-
1009
- @keyframes labNodeBlocked {
1010
- 0%, 100% {
1011
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.0);
1012
- }
1013
- 50% {
1014
- box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.12);
1015
- }
1016
- }
1017
-
1018
- @keyframes labTopProgress {
1019
- 0% {
1020
- transform: translateX(-60%);
1021
- opacity: 0.2;
1022
- }
1023
- 50% {
1024
- opacity: 1;
1025
- }
1026
- 100% {
1027
- transform: translateX(260%);
1028
- opacity: 0.3;
1029
- }
1030
- }
1031
-
1032
- @keyframes labSkeletonShimmer {
1033
- 0% {
1034
- transform: translateX(-100%);
1035
- }
1036
- 100% {
1037
- transform: translateX(100%);
1038
- }
1039
- }
1040
-
1041
- @keyframes labMessageFlash {
1042
- 0% {
1043
- background-color: rgba(196, 160, 102, 0.15);
1044
- }
1045
- 100% {
1046
- background-color: transparent;
1047
- }
1048
- }
1049
-
1050
- @keyframes labCheckPop {
1051
- 0% {
1052
- transform: scale(0.9);
1053
- opacity: 0.4;
1054
- }
1055
- 60% {
1056
- transform: scale(1.2);
1057
- opacity: 1;
1058
- }
1059
- 100% {
1060
- transform: scale(1);
1061
- opacity: 0.9;
1062
- }
1063
- }
1064
-
1065
- @keyframes labNodeComplete {
1066
- 0% {
1067
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.0);
1068
- }
1069
- 50% {
1070
- box-shadow: 0 0 0 10px rgba(196, 160, 102, 0.2);
1071
- }
1072
- 100% {
1073
- box-shadow: 0 0 0 1px rgba(196, 160, 102, 0.2);
1074
- }
1075
- }
1076
-
1077
- @keyframes labGradientShift {
1078
- 0% {
1079
- background-position: 0% 0%;
1080
- }
1081
- 50% {
1082
- background-position: 80% 40%;
1083
- }
1084
- 100% {
1085
- background-position: 0% 0%;
1086
- }
1087
- }
1088
-
1089
- @keyframes labIdlePulse {
1090
- 0%, 100% {
1091
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.0);
1092
- }
1093
- 50% {
1094
- box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.1);
1095
- }
1096
- }
1097
-
1098
- @keyframes labWorkingPulse {
1099
- 0%, 100% {
1100
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.0);
1101
- }
1102
- 50% {
1103
- box-shadow: 0 0 0 8px rgba(0, 0, 0, 0.12);
1104
- }
1105
- }
1106
-
1107
- @keyframes labWaitingPulse {
1108
- 0%, 100% {
1109
- box-shadow: 0 0 0 0 rgba(160, 120, 70, 0.0);
1110
- }
1111
- 50% {
1112
- box-shadow: 0 0 0 7px rgba(160, 120, 70, 0.2);
1113
- }
1114
- }
1115
-
1116
- @keyframes labTerminalBreath {
1117
- 0%, 100% {
1118
- box-shadow: 0 6px 16px -14px rgba(0, 0, 0, 0.35);
1119
- transform: translateY(0);
1120
- }
1121
- 50% {
1122
- box-shadow: 0 12px 24px -18px rgba(0, 0, 0, 0.45);
1123
- transform: translateY(-1px);
1124
- }
1125
- }
1126
-
1127
- @keyframes labTerminalDot {
1128
- 0%, 100% {
1129
- box-shadow: 0 0 0 0 rgba(196, 160, 102, 0.0);
1130
- }
1131
- 50% {
1132
- box-shadow: 0 0 0 6px rgba(196, 160, 102, 0.25);
1133
- }
1134
- }
1135
-
1136
- .lab-decision-filter {
1137
- display: flex;
1138
- flex-wrap: wrap;
1139
- gap: 6px;
1140
- }
1141
-
1142
- .lab-decision-filter__chip {
1143
- font-size: 10px;
1144
- text-transform: uppercase;
1145
- letter-spacing: 0.08em;
1146
- padding: 4px 8px;
1147
- border-radius: 999px;
1148
- border: 1px solid var(--lab-border);
1149
- background: transparent;
1150
- color: var(--lab-text-secondary);
1151
- cursor: pointer;
1152
- }
1153
-
1154
- .lab-decision-filter__chip.is-active {
1155
- background: rgba(17, 17, 17, 0.9);
1156
- color: #ffffff;
1157
- border-color: rgba(17, 17, 17, 0.9);
1158
- }
1159
-
1160
- @keyframes labDecisionPulse {
1161
- 0% {
1162
- box-shadow: 0 0 0 0 rgba(196, 160, 102, 0.2);
1163
- }
1164
- 100% {
1165
- box-shadow: 0 0 0 14px rgba(196, 160, 102, 0);
1166
- }
1167
- }
1168
-
1169
- @keyframes labDecisionEmblemFloat {
1170
- 0%,
1171
- 100% {
1172
- transform: translateY(0) rotate(0deg);
1173
- }
1174
- 50% {
1175
- transform: translateY(-2px) rotate(-2deg);
1176
- }
1177
- }
1178
-
1179
- @keyframes labOrbDrift {
1180
- 0%,
1181
- 100% {
1182
- transform: translate3d(0, 0, 0);
1183
- }
1184
- 50% {
1185
- transform: translate3d(18px, -12px, 0) scale(1.02);
1186
- }
1187
- }
1188
-
1189
- @keyframes labCardMorph {
1190
- 0%,
1191
- 100% {
1192
- transform: translateY(0) scale(1);
1193
- border-radius: 18px;
1194
- }
1195
- 50% {
1196
- transform: translateY(-3px) scale(1.01);
1197
- border-radius: 24px;
1198
- }
1199
- }
1200
-
1201
- @keyframes labDecisionCardMorph {
1202
- 0%,
1203
- 100% {
1204
- transform: translateY(0) scale(1);
1205
- border-radius: 10px;
1206
- }
1207
- 50% {
1208
- transform: translateY(-2px) scale(1.01);
1209
- border-radius: 14px;
1210
- }
1211
- }
1212
-
1213
- @keyframes labHistoryReveal {
1214
- 0% {
1215
- opacity: 0;
1216
- transform: translateY(6px) scale(0.98);
1217
- }
1218
- 100% {
1219
- opacity: 1;
1220
- transform: translateY(0) scale(1);
1221
- }
1222
- }
1223
-
1224
- @keyframes labBlockedPulse {
1225
- 0%, 100% {
1226
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.0);
1227
- }
1228
- 50% {
1229
- box-shadow: 0 0 0 8px rgba(0, 0, 0, 0.14);
1230
- }
1231
- }
1232
-
1233
- @media (prefers-reduced-motion: reduce) {
1234
- .lab-status-waiting .lab-avatar-ring {
1235
- animation: none;
1236
- }
1237
- .lab-card-hover {
1238
- transition: none;
1239
- }
1240
- .lab-root .animated-gradient-text .text-content {
1241
- animation: none;
1242
- }
1243
- .lab-root .magicui-border-beam, .lab-root .magicui-grid-pattern, .lab-root .aceternity-moving-border {
1244
- animation: none;
1245
- }
1246
- .lab-message-highlight {
1247
- animation: none;
1248
- }
1249
- }
1250
-
1251
- /* Quest Canvas + Details */
1252
-
1253
- .lab-quest-canvas {
1254
- position: relative;
1255
- padding: 0;
1256
- height: 100%;
1257
- min-height: 0;
1258
- overflow: hidden;
1259
- background:
1260
- radial-gradient(circle at top, rgba(83, 176, 174, 0.08), transparent 34%),
1261
- var(--lab-surface-muted);
1262
- }
1263
-
1264
- .lab-quest-canvas--minimal {
1265
- background: var(--lab-surface-muted);
1266
- }
1267
-
1268
- .lab-overview-canvas {
1269
- position: relative;
1270
- padding: 0;
1271
- height: 100%;
1272
- min-height: 0;
1273
- overflow: hidden;
1274
- background: var(--lab-surface-muted);
1275
- }
1276
-
1277
- .lab-overview-canvas--ops .lab-quest-graph-shell {
1278
- filter: saturate(0.75) opacity(0.9);
1279
- }
1280
-
1281
- :is(.dark, [data-theme="dark"]) .lab-overview-canvas--ops .lab-quest-graph-shell {
1282
- filter: saturate(0.7) opacity(0.92);
1283
- }
1284
-
1285
- .lab-quest-panel__header {
1286
- display: flex;
1287
- align-items: center;
1288
- justify-content: space-between;
1289
- gap: 12px;
1290
- margin-bottom: 10px;
1291
- }
1292
-
1293
- .lab-quest-panel__subtitle {
1294
- font-size: 12px;
1295
- color: var(--lab-text-secondary);
1296
- }
1297
-
1298
- .lab-quest-panel__toggle {
1299
- border: 0;
1300
- background: rgba(255, 255, 255, 0.4);
1301
- padding: 4px 8px;
1302
- border-radius: 999px;
1303
- font-size: 11px;
1304
- color: var(--lab-text-secondary);
1305
- }
1306
-
1307
- :is(.dark, [data-theme="dark"]) .lab-quest-panel__toggle {
1308
- background: rgba(24, 26, 32, 0.6);
1309
- }
1310
-
1311
- .lab-quest-search {
1312
- margin-bottom: 10px;
1313
- font-size: 12px;
1314
- }
1315
-
1316
- .lab-quest-buckets {
1317
- display: grid;
1318
- grid-template-columns: repeat(2, minmax(0, 1fr));
1319
- gap: 6px;
1320
- margin-bottom: 10px;
1321
- }
1322
-
1323
- .lab-quest-bucket-item {
1324
- border: 1px solid var(--lab-border);
1325
- border-radius: 10px;
1326
- padding: 6px 8px;
1327
- background: rgba(255, 255, 255, 0.35);
1328
- display: flex;
1329
- align-items: center;
1330
- justify-content: space-between;
1331
- gap: 8px;
1332
- font-size: 11px;
1333
- color: var(--lab-text-secondary);
1334
- }
1335
-
1336
- .lab-quest-bucket-item strong {
1337
- color: var(--lab-text-primary);
1338
- font-size: 12px;
1339
- }
1340
-
1341
- :is(.dark, [data-theme="dark"]) .lab-quest-bucket-item {
1342
- background: rgba(24, 26, 32, 0.58);
1343
- }
1344
-
1345
- .lab-quest-process-rail {
1346
- display: flex;
1347
- flex-direction: column;
1348
- gap: 8px;
1349
- border: 1px solid rgba(148, 163, 184, 0.18);
1350
- border-radius: 16px;
1351
- padding: 10px;
1352
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(248, 250, 252, 0.58));
1353
- box-shadow: 0 14px 32px rgba(15, 23, 42, 0.06);
1354
- }
1355
-
1356
- .lab-quest-process-rail__header {
1357
- display: flex;
1358
- align-items: flex-start;
1359
- justify-content: space-between;
1360
- gap: 10px;
1361
- }
1362
-
1363
- .lab-quest-process-rail__title {
1364
- font-size: 11px;
1365
- font-weight: 700;
1366
- letter-spacing: 0.08em;
1367
- text-transform: uppercase;
1368
- color: var(--lab-text-muted);
1369
- }
1370
-
1371
- .lab-quest-process-rail__subtitle {
1372
- margin-top: 2px;
1373
- font-size: 11px;
1374
- color: var(--lab-text-secondary);
1375
- }
1376
-
1377
- .lab-quest-process-rail__stage {
1378
- flex-shrink: 0;
1379
- max-width: 130px;
1380
- padding: 2px 8px;
1381
- border-radius: 999px;
1382
- border: 1px solid rgba(196, 160, 102, 0.45);
1383
- background: rgba(196, 160, 102, 0.12);
1384
- color: var(--lab-text-primary);
1385
- font-size: 10px;
1386
- font-weight: 600;
1387
- text-align: center;
1388
- white-space: nowrap;
1389
- overflow: hidden;
1390
- text-overflow: ellipsis;
1391
- }
1392
-
1393
- .lab-quest-process-rail__steps {
1394
- display: grid;
1395
- grid-auto-flow: column;
1396
- grid-auto-columns: minmax(116px, 1fr);
1397
- gap: 6px;
1398
- overflow-x: auto;
1399
- padding-bottom: 2px;
1400
- }
1401
-
1402
- .lab-quest-process-rail__step {
1403
- display: flex;
1404
- flex-direction: column;
1405
- gap: 4px;
1406
- border-radius: 10px;
1407
- border: 1px solid var(--lab-border);
1408
- background: rgba(255, 255, 255, 0.72);
1409
- padding: 7px;
1410
- min-height: 94px;
1411
- }
1412
-
1413
- .lab-quest-process-rail__step-head {
1414
- display: flex;
1415
- align-items: center;
1416
- gap: 6px;
1417
- min-width: 0;
1418
- }
1419
-
1420
- .lab-quest-process-rail__step-index {
1421
- width: 16px;
1422
- height: 16px;
1423
- border-radius: 999px;
1424
- border: 1px solid var(--lab-border-strong);
1425
- font-size: 10px;
1426
- font-weight: 700;
1427
- color: var(--lab-text-secondary);
1428
- display: inline-flex;
1429
- align-items: center;
1430
- justify-content: center;
1431
- flex: 0 0 auto;
1432
- }
1433
-
1434
- .lab-quest-process-rail__step-title {
1435
- min-width: 0;
1436
- font-size: 11px;
1437
- font-weight: 600;
1438
- color: var(--lab-text-primary);
1439
- white-space: nowrap;
1440
- overflow: hidden;
1441
- text-overflow: ellipsis;
1442
- }
1443
-
1444
- .lab-quest-process-rail__step-desc {
1445
- font-size: 10px;
1446
- line-height: 1.35;
1447
- color: var(--lab-text-secondary);
1448
- flex: 1;
1449
- }
1450
-
1451
- .lab-quest-process-rail__step-status {
1452
- align-self: flex-start;
1453
- padding: 1px 7px;
1454
- border-radius: 999px;
1455
- font-size: 10px;
1456
- font-weight: 600;
1457
- letter-spacing: 0.04em;
1458
- text-transform: uppercase;
1459
- color: var(--lab-text-secondary);
1460
- border: 1px solid var(--lab-border);
1461
- background: rgba(255, 255, 255, 0.75);
1462
- }
1463
-
1464
- .lab-quest-process-rail__step.is-done {
1465
- border-color: rgba(83, 176, 174, 0.45);
1466
- background: linear-gradient(160deg, rgba(213, 243, 239, 0.6), rgba(243, 251, 250, 0.6));
1467
- }
1468
-
1469
- .lab-quest-process-rail__step.is-done .lab-quest-process-rail__step-index {
1470
- border-color: rgba(83, 176, 174, 0.68);
1471
- background: rgba(83, 176, 174, 0.2);
1472
- }
1473
-
1474
- .lab-quest-process-rail__step.is-done .lab-quest-process-rail__step-status {
1475
- color: #2d6e67;
1476
- border-color: rgba(83, 176, 174, 0.45);
1477
- background: rgba(83, 176, 174, 0.14);
1478
- }
1479
-
1480
- .lab-quest-process-rail__step.is-active {
1481
- border-color: rgba(98, 136, 214, 0.46);
1482
- background: linear-gradient(160deg, rgba(215, 228, 250, 0.65), rgba(248, 251, 255, 0.62));
1483
- box-shadow: 0 0 0 1px rgba(98, 136, 214, 0.16);
1484
- }
1485
-
1486
- .lab-quest-process-rail__step.is-active .lab-quest-process-rail__step-index {
1487
- border-color: rgba(98, 136, 214, 0.7);
1488
- background: rgba(98, 136, 214, 0.18);
1489
- }
1490
-
1491
- .lab-quest-process-rail__step.is-active .lab-quest-process-rail__step-status {
1492
- color: #36548f;
1493
- border-color: rgba(98, 136, 214, 0.45);
1494
- background: rgba(98, 136, 214, 0.14);
1495
- }
1496
-
1497
- .lab-quest-process-rail__recommended {
1498
- display: grid;
1499
- gap: 6px;
1500
- border-top: 1px dashed var(--lab-border);
1501
- padding-top: 7px;
1502
- }
1503
-
1504
- .lab-quest-process-rail__recommended-head {
1505
- display: flex;
1506
- align-items: center;
1507
- justify-content: space-between;
1508
- gap: 8px;
1509
- }
1510
-
1511
- .lab-quest-process-rail__recommended-title {
1512
- font-size: 10px;
1513
- font-weight: 700;
1514
- letter-spacing: 0.06em;
1515
- text-transform: uppercase;
1516
- color: var(--lab-text-muted);
1517
- }
1518
-
1519
- .lab-quest-process-rail__recommended-trail {
1520
- display: flex;
1521
- align-items: center;
1522
- flex-wrap: wrap;
1523
- gap: 4px;
1524
- }
1525
-
1526
- .lab-quest-process-rail__recommended-chip {
1527
- border: 1px solid var(--lab-border);
1528
- border-radius: 999px;
1529
- background: rgba(255, 255, 255, 0.72);
1530
- color: var(--lab-text-secondary);
1531
- font-size: 10px;
1532
- font-weight: 600;
1533
- padding: 2px 8px;
1534
- }
1535
-
1536
- .lab-quest-process-rail__recommended-chip.is-active {
1537
- border-color: rgba(98, 136, 214, 0.46);
1538
- background: rgba(98, 136, 214, 0.12);
1539
- color: #36548f;
1540
- }
1541
-
1542
- .lab-quest-process-rail__recommended-arrow {
1543
- font-size: 10px;
1544
- color: var(--lab-text-muted);
1545
- }
1546
-
1547
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail {
1548
- background: linear-gradient(150deg, rgba(24, 26, 32, 0.82), rgba(17, 19, 25, 0.72));
1549
- }
1550
-
1551
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__stage {
1552
- border-color: rgba(196, 160, 102, 0.58);
1553
- background: rgba(196, 160, 102, 0.18);
1554
- }
1555
-
1556
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__step {
1557
- background: rgba(24, 26, 32, 0.8);
1558
- }
1559
-
1560
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__step-status {
1561
- background: rgba(24, 26, 32, 0.84);
1562
- }
1563
-
1564
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__step.is-done {
1565
- background: linear-gradient(160deg, rgba(23, 58, 56, 0.64), rgba(20, 34, 35, 0.72));
1566
- }
1567
-
1568
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__step.is-done .lab-quest-process-rail__step-status {
1569
- color: #99d5ce;
1570
- }
1571
-
1572
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__step.is-active {
1573
- background: linear-gradient(160deg, rgba(30, 45, 73, 0.7), rgba(23, 31, 50, 0.78));
1574
- }
1575
-
1576
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__step.is-active .lab-quest-process-rail__step-status {
1577
- color: #b8cbf2;
1578
- }
1579
-
1580
- :is(.dark, [data-theme="dark"]) .lab-quest-process-rail__recommended-chip {
1581
- background: rgba(24, 26, 32, 0.84);
1582
- }
1583
-
1584
- .lab-quest-branch-list,
1585
- .lab-quest-event-list {
1586
- flex: 1 1 auto;
1587
- min-height: 0;
1588
- overflow: auto;
1589
- display: flex;
1590
- flex-direction: column;
1591
- gap: 8px;
1592
- }
1593
-
1594
- .lab-quest-branch-item {
1595
- text-align: left;
1596
- border: 0;
1597
- background: transparent;
1598
- border-radius: 0;
1599
- padding: 10px 0;
1600
- display: flex;
1601
- flex-direction: column;
1602
- gap: 4px;
1603
- border-top: 1px solid rgba(47, 52, 55, 0.08);
1604
- transition: background 150ms ease, color 150ms ease;
1605
- }
1606
-
1607
- .lab-quest-branch-item.is-active {
1608
- background: rgba(47, 52, 55, 0.035);
1609
- }
1610
-
1611
- :is(.dark, [data-theme="dark"]) .lab-quest-branch-item {
1612
- border-top-color: rgba(255, 255, 255, 0.08);
1613
- }
1614
-
1615
- :is(.dark, [data-theme="dark"]) .lab-quest-branch-item.is-active {
1616
- background: rgba(255, 255, 255, 0.04);
1617
- }
1618
-
1619
- .lab-quest-branch-item__title {
1620
- font-size: 13px;
1621
- font-weight: 600;
1622
- color: var(--lab-text-primary);
1623
- line-height: 1.45;
1624
- }
1625
-
1626
- .lab-quest-branch-item__meta {
1627
- font-size: 11px;
1628
- color: var(--lab-text-secondary);
1629
- display: flex;
1630
- gap: 6px;
1631
- flex-wrap: wrap;
1632
- text-transform: lowercase;
1633
- }
1634
-
1635
- .lab-quest-branch-item__line {
1636
- display: grid;
1637
- grid-template-columns: 44px minmax(0, 1fr);
1638
- gap: 6px;
1639
- font-size: 11px;
1640
- color: var(--lab-text-secondary);
1641
- align-items: start;
1642
- }
1643
-
1644
- .lab-quest-branch-item__line--meta {
1645
- grid-template-columns: 1fr;
1646
- justify-items: end;
1647
- color: var(--lab-text-muted);
1648
- }
1649
-
1650
- .lab-quest-branch-item__label {
1651
- font-weight: 600;
1652
- color: var(--lab-text-muted);
1653
- text-transform: uppercase;
1654
- letter-spacing: 0.08em;
1655
- }
1656
-
1657
- .lab-quest-graph-shell {
1658
- position: relative;
1659
- height: 100%;
1660
- width: 100%;
1661
- border: 0;
1662
- border-radius: 0;
1663
- background: var(--lab-surface-muted);
1664
- overflow: hidden;
1665
- }
1666
-
1667
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-shell {
1668
- background: var(--lab-surface-muted);
1669
- }
1670
-
1671
- .lab-quest-graph-shell--full {
1672
- position: absolute;
1673
- inset: 0;
1674
- }
1675
-
1676
- .lab-quest-graph-shell--minimal .react-flow__attribution {
1677
- display: none;
1678
- }
1679
-
1680
- .lab-floating-panel {
1681
- position: absolute;
1682
- left: 0;
1683
- top: 0;
1684
- will-change: transform;
1685
- width: 320px;
1686
- max-width: calc(100% - 24px);
1687
- height: 520px;
1688
- max-height: calc(100% - 24px);
1689
- display: flex;
1690
- flex-direction: column;
1691
- border-radius: 16px;
1692
- border: 1px solid var(--lab-border);
1693
- background: rgba(255, 255, 255, 0.82);
1694
- backdrop-filter: blur(12px);
1695
- box-shadow: 0 18px 44px rgba(0, 0, 0, 0.08);
1696
- overflow: hidden;
1697
- }
1698
-
1699
- :is(.dark, [data-theme="dark"]) .lab-floating-panel {
1700
- background: rgba(24, 26, 32, 0.82);
1701
- box-shadow: 0 22px 52px rgba(0, 0, 0, 0.35);
1702
- }
1703
-
1704
- .lab-floating-panel--events {
1705
- width: 340px;
1706
- height: 460px;
1707
- }
1708
-
1709
- .lab-floating-panel--papers {
1710
- width: 320px;
1711
- height: 420px;
1712
- }
1713
-
1714
- .lab-overview-panel--action {
1715
- width: 420px;
1716
- height: 600px;
1717
- }
1718
-
1719
- .lab-overview-panel--overview {
1720
- width: 420px;
1721
- height: 520px;
1722
- }
1723
-
1724
- .lab-floating-panel__header {
1725
- display: flex;
1726
- align-items: center;
1727
- justify-content: space-between;
1728
- gap: 12px;
1729
- padding: 10px 10px 8px;
1730
- border-bottom: 1px solid var(--lab-border);
1731
- cursor: grab;
1732
- -webkit-user-select: none;
1733
- -moz-user-select: none;
1734
- user-select: none;
1735
- color: var(--lab-text-primary);
1736
- }
1737
-
1738
- .lab-floating-panel__header:active {
1739
- cursor: grabbing;
1740
- }
1741
-
1742
- .lab-floating-panel__title {
1743
- display: flex;
1744
- align-items: center;
1745
- gap: 8px;
1746
- font-size: 12px;
1747
- font-weight: 600;
1748
- }
1749
-
1750
- .lab-floating-panel__icon {
1751
- display: flex;
1752
- align-items: center;
1753
- justify-content: center;
1754
- width: 28px;
1755
- height: 28px;
1756
- border-radius: 999px;
1757
- border: 1px solid var(--lab-border);
1758
- background: rgba(255, 255, 255, 0.55);
1759
- }
1760
-
1761
- :is(.dark, [data-theme="dark"]) .lab-floating-panel__icon {
1762
- background: rgba(24, 26, 32, 0.7);
1763
- }
1764
-
1765
- .lab-floating-panel__collapse {
1766
- width: 32px;
1767
- height: 32px;
1768
- border-radius: 999px;
1769
- border: 1px solid var(--lab-border);
1770
- background: rgba(255, 255, 255, 0.55);
1771
- color: var(--lab-text-secondary);
1772
- display: flex;
1773
- align-items: center;
1774
- justify-content: center;
1775
- transition: background 150ms ease, color 150ms ease;
1776
- }
1777
-
1778
- .lab-floating-panel__collapse:hover {
1779
- background: rgba(255, 255, 255, 0.78);
1780
- color: var(--lab-text-primary);
1781
- }
1782
-
1783
- :is(.dark, [data-theme="dark"]) .lab-floating-panel__collapse {
1784
- background: rgba(24, 26, 32, 0.7);
1785
- }
1786
-
1787
- .lab-floating-panel__content {
1788
- flex: 1 1 auto;
1789
- min-height: 0;
1790
- overflow: hidden;
1791
- padding: 10px 10px 12px;
1792
- display: flex;
1793
- flex-direction: column;
1794
- gap: 10px;
1795
- }
1796
-
1797
- .lab-floating-panel__footer {
1798
- border-top: 1px solid var(--lab-border);
1799
- padding-top: 10px;
1800
- }
1801
-
1802
- .lab-floating-orb {
1803
- position: absolute;
1804
- left: 0;
1805
- top: 0;
1806
- will-change: transform;
1807
- width: 44px;
1808
- height: 44px;
1809
- border-radius: 999px;
1810
- border: 1px solid var(--lab-border);
1811
- background: rgba(255, 255, 255, 0.82);
1812
- backdrop-filter: blur(12px);
1813
- box-shadow: 0 18px 44px rgba(0, 0, 0, 0.08);
1814
- display: flex;
1815
- align-items: center;
1816
- justify-content: center;
1817
- color: var(--lab-text-primary);
1818
- cursor: grab;
1819
- }
1820
-
1821
- .lab-floating-orb:active {
1822
- cursor: grabbing;
1823
- }
1824
-
1825
- :is(.dark, [data-theme="dark"]) .lab-floating-orb {
1826
- background: rgba(24, 26, 32, 0.82);
1827
- box-shadow: 0 22px 52px rgba(0, 0, 0, 0.35);
1828
- }
1829
-
1830
- .lab-quest-graph-overlay {
1831
- position: absolute;
1832
- inset: 0;
1833
- display: flex;
1834
- align-items: center;
1835
- justify-content: center;
1836
- pointer-events: none;
1837
- }
1838
-
1839
- .lab-quest-graph-controls {
1840
- display: flex;
1841
- gap: 6px;
1842
- }
1843
-
1844
- .lab-quest-time-filter {
1845
- border: 1px solid var(--lab-border);
1846
- background: var(--lab-surface);
1847
- color: var(--lab-text-primary);
1848
- border-radius: 8px;
1849
- font-size: 11px;
1850
- padding: 4px 8px;
1851
- }
1852
-
1853
- .lab-quest-time-filter:focus {
1854
- outline: 2px solid rgba(83, 176, 174, 0.5);
1855
- outline-offset: 2px;
1856
- }
1857
-
1858
- .lab-quest-graph-node {
1859
- min-width: 176px;
1860
- max-width: 228px;
1861
- padding: 12px 14px;
1862
- border-radius: 16px;
1863
- border: 1px solid rgba(148, 163, 184, 0.2);
1864
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(248, 250, 252, 0.84));
1865
- backdrop-filter: blur(10px);
1866
- box-shadow: 0 14px 34px rgba(15, 23, 42, 0.09);
1867
- color: var(--lab-text-primary);
1868
- transition: transform 150ms ease, box-shadow 150ms ease, border-color 150ms ease;
1869
- }
1870
-
1871
- .lab-quest-graph-node:hover {
1872
- transform: translateY(-1px);
1873
- box-shadow: 0 20px 38px rgba(15, 23, 42, 0.12);
1874
- }
1875
-
1876
- .lab-quest-graph-node__eyebrow {
1877
- display: flex;
1878
- align-items: center;
1879
- justify-content: space-between;
1880
- gap: 8px;
1881
- margin-bottom: 6px;
1882
- }
1883
-
1884
- .lab-quest-graph-node__kind {
1885
- display: inline-flex;
1886
- align-items: center;
1887
- min-height: 20px;
1888
- padding: 0 8px;
1889
- border-radius: 999px;
1890
- border: 1px solid rgba(148, 163, 184, 0.22);
1891
- background: rgba(255, 255, 255, 0.72);
1892
- font-size: 10px;
1893
- font-weight: 600;
1894
- color: var(--lab-text-secondary);
1895
- }
1896
-
1897
- .lab-quest-agent-node {
1898
- min-width: 140px;
1899
- padding: 10px 12px;
1900
- border-radius: 14px;
1901
- border: 1px solid rgba(148, 163, 184, 0.18);
1902
- background: rgba(255, 255, 255, 0.76);
1903
- color: var(--lab-text-primary);
1904
- box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
1905
- }
1906
-
1907
- .lab-quest-agent-node__title {
1908
- font-size: 12px;
1909
- font-weight: 600;
1910
- color: var(--lab-text-primary);
1911
- white-space: nowrap;
1912
- overflow: hidden;
1913
- text-overflow: ellipsis;
1914
- }
1915
-
1916
- .lab-quest-agent-node__meta {
1917
- margin-top: 4px;
1918
- font-size: 11px;
1919
- color: var(--lab-text-secondary);
1920
- }
1921
-
1922
- .lab-quest-agent-node__status {
1923
- margin-top: 4px;
1924
- font-size: 10px;
1925
- color: var(--lab-text-secondary);
1926
- letter-spacing: 0.08em;
1927
- text-transform: uppercase;
1928
- }
1929
-
1930
- .lab-overview-quest-node {
1931
- min-width: 210px;
1932
- padding: 12px 14px;
1933
- border-radius: 14px;
1934
- border: 1px solid var(--lab-border);
1935
- background: rgba(255, 255, 255, 0.82);
1936
- backdrop-filter: blur(10px);
1937
- box-shadow: 0 14px 34px rgba(0, 0, 0, 0.08);
1938
- color: var(--lab-text-primary);
1939
- }
1940
-
1941
- :is(.dark, [data-theme="dark"]) .lab-overview-quest-node {
1942
- background: rgba(24, 26, 32, 0.82);
1943
- box-shadow: 0 22px 52px rgba(0, 0, 0, 0.35);
1944
- }
1945
-
1946
- .lab-overview-quest-node.is-active {
1947
- box-shadow: 0 0 0 1px rgba(196, 160, 102, 0.22), 0 14px 34px rgba(0, 0, 0, 0.12);
1948
- }
1949
-
1950
- .lab-overview-quest-node__title {
1951
- font-size: 13px;
1952
- font-weight: 600;
1953
- color: var(--lab-text-primary);
1954
- white-space: nowrap;
1955
- overflow: hidden;
1956
- text-overflow: ellipsis;
1957
- }
1958
-
1959
- .lab-overview-quest-node__meta {
1960
- margin-top: 6px;
1961
- font-size: 11px;
1962
- color: var(--lab-text-secondary);
1963
- display: flex;
1964
- gap: 10px;
1965
- flex-wrap: wrap;
1966
- }
1967
-
1968
- .lab-overview-quest-node__chips {
1969
- margin-top: 8px;
1970
- display: flex;
1971
- flex-wrap: wrap;
1972
- gap: 6px;
1973
- }
1974
-
1975
- .lab-overview-quest-chip {
1976
- display: inline-flex;
1977
- align-items: center;
1978
- height: 20px;
1979
- padding: 0 8px;
1980
- border-radius: 999px;
1981
- border: 1px solid var(--lab-border);
1982
- background: var(--lab-surface-muted);
1983
- color: var(--lab-text-secondary);
1984
- font-size: 10px;
1985
- line-height: 1;
1986
- }
1987
-
1988
- .lab-overview-quest-chip--attention {
1989
- border-color: rgba(196, 160, 102, 0.48);
1990
- color: var(--lab-text-primary);
1991
- background: rgba(196, 160, 102, 0.12);
1992
- }
1993
-
1994
- :is(.dark, [data-theme="dark"]) .lab-overview-quest-chip--attention {
1995
- border-color: rgba(196, 160, 102, 0.62);
1996
- background: rgba(196, 160, 102, 0.16);
1997
- }
1998
-
1999
- .lab-overview-agent-node {
2000
- min-width: 200px;
2001
- max-width: 240px;
2002
- padding: 10px 12px;
2003
- border-radius: 14px;
2004
- border: 1px solid var(--lab-border);
2005
- background: rgba(255, 255, 255, 0.88);
2006
- backdrop-filter: blur(10px);
2007
- box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
2008
- color: var(--lab-text-primary);
2009
- display: flex;
2010
- align-items: center;
2011
- gap: 10px;
2012
- }
2013
-
2014
- :is(.dark, [data-theme="dark"]) .lab-overview-agent-node {
2015
- background: rgba(24, 26, 32, 0.88);
2016
- box-shadow: 0 20px 46px rgba(0, 0, 0, 0.35);
2017
- }
2018
-
2019
- .lab-overview-agent-node__meta {
2020
- min-width: 0;
2021
- display: flex;
2022
- flex-direction: column;
2023
- gap: 4px;
2024
- }
2025
-
2026
- .lab-overview-agent-node__name {
2027
- font-size: 12px;
2028
- font-weight: 600;
2029
- color: var(--lab-text-primary);
2030
- white-space: nowrap;
2031
- overflow: hidden;
2032
- text-overflow: ellipsis;
2033
- }
2034
-
2035
- .lab-overview-agent-node__status {
2036
- display: inline-flex;
2037
- align-items: center;
2038
- gap: 6px;
2039
- font-size: 10px;
2040
- color: var(--lab-text-secondary);
2041
- }
2042
-
2043
- .lab-overview-agent-node__status-label {
2044
- white-space: nowrap;
2045
- }
2046
-
2047
- .lab-flow-handle {
2048
- opacity: 0;
2049
- width: 1px;
2050
- height: 1px;
2051
- border: 0;
2052
- background: transparent;
2053
- pointer-events: none;
2054
- }
2055
-
2056
- .lab-overview-quest-node__title-row {
2057
- display: flex;
2058
- align-items: center;
2059
- gap: 10px;
2060
- }
2061
-
2062
- .lab-overview-quest-node__title-row .lab-overview-quest-node__title {
2063
- flex: 1 1 auto;
2064
- min-width: 0;
2065
- }
2066
-
2067
- .lab-overview-pi-chip {
2068
- display: inline-flex;
2069
- align-items: center;
2070
- gap: 6px;
2071
- height: 26px;
2072
- padding: 0 10px 0 6px;
2073
- border-radius: 999px;
2074
- border: 1px solid rgba(196, 160, 102, 0.5);
2075
- background: rgba(255, 255, 255, 0.62);
2076
- color: var(--lab-text-secondary);
2077
- max-width: 180px;
2078
- }
2079
-
2080
- :is(.dark, [data-theme="dark"]) .lab-overview-pi-chip {
2081
- background: rgba(20, 22, 28, 0.7);
2082
- }
2083
-
2084
- .lab-overview-pi-avatar {
2085
- width: 18px;
2086
- height: 18px;
2087
- border-radius: 999px;
2088
- border: 1px solid var(--lab-accent);
2089
- overflow: hidden;
2090
- display: inline-flex;
2091
- align-items: center;
2092
- justify-content: center;
2093
- background: rgba(255, 255, 255, 0.62);
2094
- flex: 0 0 auto;
2095
- }
2096
-
2097
- :is(.dark, [data-theme="dark"]) .lab-overview-pi-avatar {
2098
- background: rgba(24, 26, 32, 0.7);
2099
- }
2100
-
2101
- .lab-overview-pi-avatar img {
2102
- display: block;
2103
- width: 100%;
2104
- height: 100%;
2105
- -o-object-fit: cover;
2106
- object-fit: cover;
2107
- }
2108
-
2109
- .lab-overview-pi-avatar__fallback {
2110
- font-size: 9px;
2111
- font-weight: 700;
2112
- letter-spacing: 0.04em;
2113
- color: var(--lab-text-secondary);
2114
- }
2115
-
2116
- .lab-overview-pi-label {
2117
- min-width: 0;
2118
- overflow: hidden;
2119
- text-overflow: ellipsis;
2120
- white-space: nowrap;
2121
- font-size: 11px;
2122
- font-weight: 600;
2123
- color: var(--lab-text-primary);
2124
- }
2125
-
2126
- .lab-overview-pending-node {
2127
- width: 100%;
2128
- height: 100%;
2129
- border-radius: 16px;
2130
- border: 1px solid var(--lab-border);
2131
- background: rgba(255, 255, 255, 0.86);
2132
- backdrop-filter: blur(10px);
2133
- box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
2134
- display: flex;
2135
- flex-direction: column;
2136
- overflow: hidden;
2137
- color: var(--lab-text-primary);
2138
- }
2139
-
2140
- :is(.dark, [data-theme="dark"]) .lab-overview-pending-node {
2141
- background: rgba(24, 26, 32, 0.86);
2142
- box-shadow: 0 22px 52px rgba(0, 0, 0, 0.35);
2143
- }
2144
-
2145
- .lab-overview-pending-node__header {
2146
- display: flex;
2147
- align-items: center;
2148
- justify-content: space-between;
2149
- gap: 12px;
2150
- padding: 10px 14px;
2151
- border-bottom: 1px solid var(--lab-border);
2152
- cursor: grab;
2153
- -webkit-user-select: none;
2154
- -moz-user-select: none;
2155
- user-select: none;
2156
- }
2157
-
2158
- .lab-overview-pending-node__header:active {
2159
- cursor: grabbing;
2160
- }
2161
-
2162
- .lab-overview-pending-node__title {
2163
- font-size: 11px;
2164
- font-weight: 700;
2165
- letter-spacing: 0.08em;
2166
- text-transform: uppercase;
2167
- color: var(--lab-text-secondary);
2168
- }
2169
-
2170
- .lab-overview-pending-node__subtitle {
2171
- font-size: 12px;
2172
- color: var(--lab-text-secondary);
2173
- }
2174
-
2175
- .lab-overview-pending-node__count {
2176
- display: inline-flex;
2177
- align-items: center;
2178
- justify-content: center;
2179
- min-width: 26px;
2180
- height: 26px;
2181
- border-radius: 999px;
2182
- border: 1px solid var(--lab-border-strong);
2183
- background: rgba(196, 160, 102, 0.16);
2184
- color: var(--lab-text-primary);
2185
- font-size: 12px;
2186
- font-weight: 700;
2187
- }
2188
-
2189
- .lab-overview-pending-node__content {
2190
- flex: 1;
2191
- min-height: 0;
2192
- overflow: auto;
2193
- padding: 8px 10px 12px;
2194
- }
2195
-
2196
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node {
2197
- border-color: rgba(255, 255, 255, 0.08);
2198
- background: linear-gradient(160deg, rgba(27, 29, 34, 0.92), rgba(18, 20, 25, 0.88));
2199
- box-shadow: 0 16px 36px rgba(0, 0, 0, 0.32);
2200
- }
2201
-
2202
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node__kind {
2203
- background: rgba(24, 26, 32, 0.72);
2204
- border-color: rgba(255, 255, 255, 0.08);
2205
- }
2206
-
2207
- :is(.dark, [data-theme="dark"]) .lab-quest-agent-node {
2208
- background: rgba(24, 26, 32, 0.7);
2209
- border-color: rgba(255, 255, 255, 0.18);
2210
- }
2211
-
2212
- .lab-quest-graph-node.is-head {
2213
- box-shadow: 0 0 0 1px rgba(196, 160, 102, 0.22), 0 12px 26px rgba(0, 0, 0, 0.12);
2214
- }
2215
-
2216
- .lab-quest-graph-node.is-positive {
2217
- box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.2), 0 14px 30px rgba(22, 101, 52, 0.12);
2218
- }
2219
-
2220
- .lab-quest-graph-node.is-root {
2221
- min-width: 200px;
2222
- padding: 14px 16px;
2223
- z-index: 2;
2224
- box-shadow: 0 18px 34px rgba(0, 0, 0, 0.14);
2225
- }
2226
-
2227
- .lab-quest-graph-node.is-root .lab-quest-graph-node__title {
2228
- font-size: 13px;
2229
- }
2230
-
2231
- .lab-quest-graph-node.is-placeholder {
2232
- border-style: dashed;
2233
- border-color: rgba(155, 131, 82, 0.46);
2234
- background: linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(246, 240, 232, 0.88));
2235
- box-shadow: 0 12px 28px rgba(155, 131, 82, 0.12);
2236
- }
2237
-
2238
- .lab-quest-graph-node.is-waived {
2239
- border-color: rgba(148, 163, 184, 0.3);
2240
- background: linear-gradient(180deg, rgba(246, 248, 250, 0.92), rgba(237, 242, 247, 0.88));
2241
- }
2242
-
2243
- .lab-quest-graph-node.is-selected {
2244
- outline: 2px solid rgba(83, 176, 174, 0.45);
2245
- box-shadow: 0 0 0 4px rgba(83, 176, 174, 0.12), 0 20px 38px rgba(15, 23, 42, 0.12);
2246
- }
2247
-
2248
- .lab-quest-graph-node.is-event {
2249
- background: linear-gradient(140deg, rgba(244, 246, 247, 0.92), rgba(232, 236, 240, 0.86));
2250
- }
2251
-
2252
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node.is-event {
2253
- background: linear-gradient(140deg, rgba(34, 36, 42, 0.92), rgba(24, 26, 32, 0.9));
2254
- }
2255
-
2256
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node.is-placeholder {
2257
- border-color: rgba(196, 160, 102, 0.45);
2258
- background: linear-gradient(160deg, rgba(45, 40, 32, 0.92), rgba(28, 24, 20, 0.88));
2259
- }
2260
-
2261
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node.is-waived {
2262
- background: linear-gradient(160deg, rgba(30, 33, 38, 0.92), rgba(22, 24, 29, 0.9));
2263
- }
2264
-
2265
- .lab-quest-graph-node.is-decision {
2266
- border-style: solid;
2267
- padding: 12px 14px;
2268
- text-align: left;
2269
- }
2270
-
2271
- .lab-quest-graph-node.is-decision .lab-quest-graph-node__title {
2272
- justify-content: flex-start;
2273
- }
2274
-
2275
- .lab-quest-graph-node.is-decision .lab-quest-graph-node__meta {
2276
- justify-content: flex-start;
2277
- }
2278
-
2279
- .lab-quest-graph-node__decision-target {
2280
- font-size: 10px;
2281
- color: var(--lab-text-muted);
2282
- margin-top: 4px;
2283
- }
2284
-
2285
- .lab-quest-graph-node.decision-explore {
2286
- background: linear-gradient(140deg, rgba(187, 221, 228, 0.95), rgba(168, 204, 216, 0.9));
2287
- }
2288
-
2289
- .lab-quest-graph-node.decision-evolve {
2290
- background: linear-gradient(140deg, rgba(191, 214, 241, 0.95), rgba(167, 195, 228, 0.9));
2291
- }
2292
-
2293
- .lab-quest-graph-node.decision-pivot {
2294
- background: linear-gradient(140deg, rgba(246, 205, 190, 0.95), rgba(231, 181, 165, 0.9));
2295
- }
2296
-
2297
- .lab-quest-graph-node.decision-validate,
2298
- .lab-quest-graph-node.decision-go {
2299
- background: linear-gradient(140deg, rgba(192, 229, 207, 0.95), rgba(174, 214, 191, 0.9));
2300
- }
2301
-
2302
- .lab-quest-graph-node.decision-hold {
2303
- background: linear-gradient(140deg, rgba(237, 230, 197, 0.95), rgba(223, 213, 175, 0.9));
2304
- }
2305
-
2306
- .lab-quest-graph-node.decision-drop {
2307
- background: linear-gradient(140deg, rgba(232, 198, 198, 0.95), rgba(217, 175, 175, 0.9));
2308
- }
2309
-
2310
- .lab-quest-graph-node__title {
2311
- font-size: 13px;
2312
- font-weight: 600;
2313
- display: block;
2314
- line-height: 1.35;
2315
- }
2316
-
2317
- .lab-quest-graph-node__subtitle {
2318
- font-size: 11px;
2319
- color: var(--lab-text-secondary);
2320
- margin-top: 4px;
2321
- white-space: nowrap;
2322
- overflow: hidden;
2323
- text-overflow: ellipsis;
2324
- }
2325
-
2326
- .lab-quest-graph-node__meta {
2327
- font-size: 10px;
2328
- color: var(--lab-text-muted);
2329
- margin-top: 6px;
2330
- display: flex;
2331
- gap: 6px;
2332
- flex-wrap: wrap;
2333
- align-items: center;
2334
- }
2335
-
2336
- .lab-quest-graph-node__summary {
2337
- font-size: 11px;
2338
- color: var(--lab-text-secondary);
2339
- margin-top: 6px;
2340
- line-height: 1.35;
2341
- display: -webkit-box;
2342
- -webkit-line-clamp: 2;
2343
- -webkit-box-orient: vertical;
2344
- overflow: hidden;
2345
- }
2346
-
2347
- .lab-quest-graph-node__memory {
2348
- margin-top: 8px;
2349
- border-radius: 12px;
2350
- border: 1px solid rgba(83, 176, 174, 0.18);
2351
- background: linear-gradient(180deg, rgba(83, 176, 174, 0.12), rgba(83, 176, 174, 0.05));
2352
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
2353
- padding: 8px 9px;
2354
- }
2355
-
2356
- .lab-quest-graph-node__memory-header {
2357
- display: flex;
2358
- align-items: center;
2359
- gap: 6px;
2360
- }
2361
-
2362
- .lab-quest-graph-node__memory-dot {
2363
- width: 7px;
2364
- height: 7px;
2365
- flex: 0 0 auto;
2366
- border-radius: 999px;
2367
- background: linear-gradient(180deg, rgba(83, 176, 174, 1), rgba(38, 139, 136, 0.92));
2368
- box-shadow: 0 0 0 3px rgba(83, 176, 174, 0.12);
2369
- }
2370
-
2371
- .lab-quest-graph-node__memory-label {
2372
- min-width: 0;
2373
- font-size: 10px;
2374
- font-weight: 600;
2375
- line-height: 1.35;
2376
- color: #0f766e;
2377
- }
2378
-
2379
- .lab-quest-graph-node__memory-summary {
2380
- margin-top: 4px;
2381
- font-size: 10px;
2382
- line-height: 1.45;
2383
- color: var(--lab-text-secondary);
2384
- display: -webkit-box;
2385
- -webkit-line-clamp: 2;
2386
- -webkit-box-orient: vertical;
2387
- overflow: hidden;
2388
- }
2389
-
2390
- .lab-quest-graph-node__signal {
2391
- display: inline-flex;
2392
- align-items: center;
2393
- height: 18px;
2394
- padding: 0 7px;
2395
- border-radius: 999px;
2396
- background: rgba(34, 197, 94, 0.12);
2397
- color: #15803d;
2398
- font-weight: 600;
2399
- letter-spacing: 0.01em;
2400
- }
2401
-
2402
- .lab-quest-graph-node__delta {
2403
- font-weight: 600;
2404
- color: var(--lab-accent-strong);
2405
- }
2406
-
2407
- .lab-quest-sparkline {
2408
- margin-top: 6px;
2409
- }
2410
-
2411
- .lab-quest-hover-card {
2412
- position: absolute;
2413
- z-index: 35;
2414
- width: min(320px, calc(100% - 32px));
2415
- pointer-events: none;
2416
- border-radius: 16px;
2417
- border: 1px solid rgba(148, 163, 184, 0.22);
2418
- background: rgba(255, 255, 255, 0.9);
2419
- backdrop-filter: blur(14px);
2420
- box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
2421
- padding: 12px 14px;
2422
- }
2423
-
2424
- .lab-quest-hover-card.is-positive {
2425
- border-color: rgba(34, 197, 94, 0.25);
2426
- }
2427
-
2428
- .lab-quest-hover-card.is-overlay {
2429
- border-color: rgba(83, 176, 174, 0.32);
2430
- }
2431
-
2432
- .lab-quest-hover-card__header {
2433
- display: flex;
2434
- align-items: flex-start;
2435
- justify-content: space-between;
2436
- gap: 10px;
2437
- }
2438
-
2439
- .lab-quest-hover-card__title {
2440
- font-size: 12px;
2441
- font-weight: 700;
2442
- color: var(--lab-text-primary);
2443
- line-height: 1.35;
2444
- }
2445
-
2446
- .lab-quest-hover-card__badge {
2447
- display: inline-flex;
2448
- align-items: center;
2449
- height: 20px;
2450
- padding: 0 8px;
2451
- border-radius: 999px;
2452
- background: rgba(83, 176, 174, 0.1);
2453
- color: var(--lab-text-primary);
2454
- font-size: 10px;
2455
- font-weight: 600;
2456
- white-space: nowrap;
2457
- }
2458
-
2459
- .lab-quest-hover-card__subtitle {
2460
- margin-top: 6px;
2461
- font-size: 11px;
2462
- color: var(--lab-text-secondary);
2463
- line-height: 1.45;
2464
- }
2465
-
2466
- .lab-quest-hover-card__lines {
2467
- margin-top: 10px;
2468
- display: grid;
2469
- gap: 7px;
2470
- }
2471
-
2472
- .lab-quest-hover-card__line {
2473
- display: grid;
2474
- grid-template-columns: 64px minmax(0, 1fr);
2475
- gap: 8px;
2476
- font-size: 10px;
2477
- line-height: 1.4;
2478
- color: var(--lab-text-secondary);
2479
- }
2480
-
2481
- .lab-quest-hover-card__line span:first-child {
2482
- color: var(--lab-text-primary);
2483
- font-weight: 600;
2484
- }
2485
-
2486
- .lab-quest-hover-card__footer {
2487
- margin-top: 10px;
2488
- padding-top: 8px;
2489
- border-top: 1px dashed rgba(148, 163, 184, 0.24);
2490
- font-size: 10px;
2491
- color: var(--lab-text-muted);
2492
- }
2493
-
2494
- :is(.dark, [data-theme="dark"]) .lab-quest-hover-card {
2495
- border-color: rgba(255, 255, 255, 0.08);
2496
- background: rgba(22, 24, 29, 0.9);
2497
- box-shadow: 0 22px 46px rgba(0, 0, 0, 0.38);
2498
- }
2499
-
2500
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node__memory {
2501
- border-color: rgba(94, 234, 212, 0.18);
2502
- background: linear-gradient(180deg, rgba(45, 212, 191, 0.14), rgba(45, 212, 191, 0.05));
2503
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
2504
- }
2505
-
2506
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node__memory-dot {
2507
- box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.12);
2508
- }
2509
-
2510
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node__memory-label {
2511
- color: #8be4db;
2512
- }
2513
-
2514
- :is(.dark, [data-theme="dark"]) .lab-quest-graph-node__signal {
2515
- background: rgba(34, 197, 94, 0.18);
2516
- color: #86efac;
2517
- }
2518
-
2519
- .lab-quest-curve {
2520
- position: relative;
2521
- width: 100%;
2522
- height: 42px;
2523
- border-radius: 8px;
2524
- border: 1px solid rgba(102, 198, 189, 0.25);
2525
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.52), rgba(246, 250, 255, 0.28));
2526
- overflow: hidden;
2527
- }
2528
-
2529
- .lab-quest-curve.is-expanded {
2530
- height: 96px;
2531
- border-radius: 10px;
2532
- }
2533
-
2534
- .lab-quest-curve__svg {
2535
- width: 100%;
2536
- height: 100%;
2537
- display: block;
2538
- }
2539
-
2540
- .lab-quest-curve__guide {
2541
- stroke: rgba(0, 0, 0, 0.07);
2542
- stroke-width: 1;
2543
- stroke-dasharray: 2 4;
2544
- }
2545
-
2546
- .lab-quest-curve__area {
2547
- opacity: 0.95;
2548
- }
2549
-
2550
- .lab-quest-curve__line {
2551
- fill: none;
2552
- stroke-width: 2.4;
2553
- stroke-linecap: round;
2554
- stroke-linejoin: round;
2555
- filter: drop-shadow(0 2px 6px rgba(78, 135, 210, 0.24));
2556
- }
2557
-
2558
- .lab-quest-curve__dot {
2559
- fill: #e6fbf8;
2560
- stroke: #54bbb1;
2561
- stroke-width: 1.4;
2562
- }
2563
-
2564
- :is(.dark, [data-theme="dark"]) .lab-quest-curve {
2565
- border-color: rgba(102, 198, 189, 0.3);
2566
- background: linear-gradient(180deg, rgba(24, 26, 32, 0.82), rgba(19, 21, 28, 0.7));
2567
- }
2568
-
2569
- :is(.dark, [data-theme="dark"]) .lab-quest-curve__guide {
2570
- stroke: rgba(255, 255, 255, 0.12);
2571
- }
2572
-
2573
- :is(.dark, [data-theme="dark"]) .lab-quest-curve__line {
2574
- filter: drop-shadow(0 2px 7px rgba(44, 119, 210, 0.32));
2575
- }
2576
-
2577
- :is(.dark, [data-theme="dark"]) .lab-quest-curve__dot {
2578
- fill: #1a2629;
2579
- stroke: #73d4ca;
2580
- }
2581
-
2582
- .lab-quest-graph-node__verdict {
2583
- font-size: 10px;
2584
- padding: 2px 6px;
2585
- border-radius: 999px;
2586
- text-transform: uppercase;
2587
- }
2588
-
2589
- .lab-quest-graph-node__verdict.is-good {
2590
- background: rgba(130, 188, 160, 0.2);
2591
- color: #3e6b55;
2592
- }
2593
-
2594
- .lab-quest-graph-node__verdict.is-bad {
2595
- background: rgba(201, 122, 122, 0.2);
2596
- color: #7b4242;
2597
- }
2598
-
2599
- .lab-quest-graph-node__verdict.is-neutral {
2600
- background: rgba(196, 160, 102, 0.18);
2601
- color: #7d5b2e;
2602
- }
2603
-
2604
- .lab-quest-event-item {
2605
- text-align: left;
2606
- border: 0;
2607
- background: rgba(255, 255, 255, 0.45);
2608
- border-radius: 12px;
2609
- padding: 10px 12px;
2610
- display: flex;
2611
- flex-direction: column;
2612
- gap: 4px;
2613
- }
2614
-
2615
- :is(.dark, [data-theme="dark"]) .lab-quest-event-item {
2616
- background: rgba(24, 26, 32, 0.7);
2617
- }
2618
-
2619
- .lab-quest-minimap {
2620
- border-radius: 10px;
2621
- border: 0;
2622
- background: rgba(255, 255, 255, 0.55);
2623
- box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
2624
- }
2625
-
2626
- :is(.dark, [data-theme="dark"]) .lab-quest-minimap {
2627
- background: rgba(20, 22, 28, 0.8);
2628
- }
2629
-
2630
- .lab-quest-event-item__title {
2631
- font-size: 12px;
2632
- font-weight: 600;
2633
- color: var(--lab-text-primary);
2634
- }
2635
-
2636
- .lab-quest-event-item__meta {
2637
- font-size: 11px;
2638
- color: var(--lab-text-secondary);
2639
- display: flex;
2640
- gap: 8px;
2641
- }
2642
-
2643
- .lab-quest-event-item__summary {
2644
- font-size: 11px;
2645
- color: var(--lab-text-secondary);
2646
- }
2647
-
2648
- .lab-quest-section {
2649
- border-top: 1px dashed var(--lab-border);
2650
- padding-top: 8px;
2651
- }
2652
-
2653
- .lab-quest-section__title {
2654
- font-size: 11px;
2655
- font-weight: 600;
2656
- color: var(--lab-text-secondary);
2657
- margin-bottom: 6px;
2658
- text-transform: uppercase;
2659
- letter-spacing: 0.04em;
2660
- }
2661
-
2662
- .lab-quest-empty {
2663
- font-size: 12px;
2664
- color: var(--lab-text-secondary);
2665
- text-align: center;
2666
- padding: 12px;
2667
- }
2668
-
2669
- /* Branch page */
2670
-
2671
- .lab-quest-artifact {
2672
- border: 1px solid rgba(148, 163, 184, 0.18);
2673
- border-radius: 16px;
2674
- padding: 12px;
2675
- background: var(--lab-surface);
2676
- }
2677
-
2678
- /* Snapshot */
2679
- .lab-quest-snapshot {
2680
- padding: 20px;
2681
- height: 100%;
2682
- overflow: auto;
2683
- color: var(--lab-text-primary);
2684
- }
2685
-
2686
- /* Memory */
2687
-
2688
- @media (max-width: 640px) {
2689
- .lab-floating-panel {
2690
- width: calc(100% - 24px);
2691
- }
2692
- .lab-floating-panel--events {
2693
- width: calc(100% - 24px);
2694
- }
2695
- .lab-floating-panel--papers {
2696
- width: calc(100% - 24px);
2697
- }
2698
- }