codexmate 0.0.40 → 0.0.41

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 (155) hide show
  1. package/README.md +168 -156
  2. package/README.zh.md +168 -156
  3. package/cli/agents-files.js +230 -230
  4. package/cli/analytics-export-args.js +68 -68
  5. package/cli/archive-helpers.js +453 -453
  6. package/cli/auth-profiles.js +375 -375
  7. package/cli/builtin-proxy.js +2144 -2144
  8. package/cli/claude-proxy.js +1022 -1022
  9. package/cli/config-bootstrap.js +407 -407
  10. package/cli/config-health.js +454 -454
  11. package/cli/doctor-core.js +903 -903
  12. package/cli/import-skills-url.js +356 -356
  13. package/cli/local-bridge.js +556 -556
  14. package/cli/openai-bridge.js +1984 -1984
  15. package/cli/openclaw-config.js +629 -629
  16. package/cli/session-convert-args.js +69 -69
  17. package/cli/session-convert-io.js +82 -82
  18. package/cli/session-convert.js +150 -150
  19. package/cli/session-usage.concurrent.js +28 -28
  20. package/cli/session-usage.js +304 -304
  21. package/cli/session-usage.models.js +176 -176
  22. package/cli/skills.js +1141 -1141
  23. package/cli/update.js +171 -171
  24. package/cli/zip-commands.js +510 -510
  25. package/cli.js +16458 -16341
  26. package/lib/automation.js +404 -404
  27. package/lib/cli-file-utils.js +151 -151
  28. package/lib/cli-models-utils.js +440 -440
  29. package/lib/cli-network-utils.js +190 -190
  30. package/lib/cli-path-utils.js +85 -85
  31. package/lib/cli-session-utils.js +121 -121
  32. package/lib/cli-sessions.js +427 -427
  33. package/lib/cli-utils.js +155 -155
  34. package/lib/cli-webhook.js +154 -154
  35. package/lib/download-artifacts.js +92 -92
  36. package/lib/mcp-stdio.js +453 -453
  37. package/lib/task-orchestrator.js +869 -869
  38. package/lib/text-diff.js +303 -303
  39. package/lib/win-tray.js +119 -119
  40. package/lib/workflow-engine.js +340 -340
  41. package/package.json +77 -77
  42. package/plugins/README.md +20 -20
  43. package/plugins/README.zh-CN.md +20 -20
  44. package/plugins/prompt-templates/comment-polish/index.mjs +25 -25
  45. package/plugins/prompt-templates/computed.mjs +311 -311
  46. package/plugins/prompt-templates/index.mjs +8 -8
  47. package/plugins/prompt-templates/manifest.mjs +18 -18
  48. package/plugins/prompt-templates/methods.mjs +553 -553
  49. package/plugins/prompt-templates/overview.mjs +91 -91
  50. package/plugins/prompt-templates/ownership.mjs +19 -19
  51. package/plugins/prompt-templates/rule-ack/index.mjs +21 -21
  52. package/plugins/prompt-templates/storage.mjs +64 -64
  53. package/plugins/registry.mjs +16 -16
  54. package/web-ui/app.js +695 -695
  55. package/web-ui/index.html +37 -37
  56. package/web-ui/logic.agents-diff.mjs +386 -386
  57. package/web-ui/logic.claude.mjs +172 -172
  58. package/web-ui/logic.codex.mjs +69 -69
  59. package/web-ui/logic.mjs +5 -5
  60. package/web-ui/logic.runtime.mjs +128 -128
  61. package/web-ui/logic.session-convert.mjs +70 -70
  62. package/web-ui/logic.sessions.mjs +782 -782
  63. package/web-ui/modules/api.mjs +90 -90
  64. package/web-ui/modules/app.computed.dashboard.mjs +252 -252
  65. package/web-ui/modules/app.computed.index.mjs +17 -17
  66. package/web-ui/modules/app.computed.main-tabs.mjs +214 -214
  67. package/web-ui/modules/app.computed.session.mjs +876 -876
  68. package/web-ui/modules/app.constants.mjs +15 -15
  69. package/web-ui/modules/app.methods.agents.mjs +651 -651
  70. package/web-ui/modules/app.methods.claude-config.mjs +412 -412
  71. package/web-ui/modules/app.methods.codex-config.mjs +869 -869
  72. package/web-ui/modules/app.methods.index.mjs +96 -96
  73. package/web-ui/modules/app.methods.install.mjs +205 -205
  74. package/web-ui/modules/app.methods.navigation.mjs +804 -804
  75. package/web-ui/modules/app.methods.openclaw-core.mjs +814 -814
  76. package/web-ui/modules/app.methods.openclaw-editing.mjs +420 -420
  77. package/web-ui/modules/app.methods.openclaw-persist.mjs +375 -375
  78. package/web-ui/modules/app.methods.providers.mjs +601 -601
  79. package/web-ui/modules/app.methods.runtime.mjs +420 -420
  80. package/web-ui/modules/app.methods.session-actions.mjs +591 -591
  81. package/web-ui/modules/app.methods.session-browser.mjs +1018 -1018
  82. package/web-ui/modules/app.methods.session-timeline.mjs +479 -479
  83. package/web-ui/modules/app.methods.session-trash.mjs +468 -468
  84. package/web-ui/modules/app.methods.startup-claude.mjs +554 -554
  85. package/web-ui/modules/app.methods.task-orchestration.mjs +556 -556
  86. package/web-ui/modules/app.methods.tool-config-permissions.mjs +87 -87
  87. package/web-ui/modules/app.methods.webhook.mjs +87 -87
  88. package/web-ui/modules/config-mode.computed.mjs +124 -124
  89. package/web-ui/modules/config-template-confirm-pref.mjs +33 -33
  90. package/web-ui/modules/i18n/locales/en.mjs +1140 -1140
  91. package/web-ui/modules/i18n/locales/ja.mjs +1130 -1130
  92. package/web-ui/modules/i18n/locales/vi.mjs +239 -239
  93. package/web-ui/modules/i18n/locales/zh.mjs +1143 -1143
  94. package/web-ui/modules/i18n.dict.mjs +14 -14
  95. package/web-ui/modules/i18n.mjs +111 -111
  96. package/web-ui/modules/plugins.computed.mjs +3 -3
  97. package/web-ui/modules/plugins.methods.mjs +3 -3
  98. package/web-ui/modules/plugins.storage.mjs +11 -11
  99. package/web-ui/modules/provider-url-display.mjs +17 -17
  100. package/web-ui/modules/sessions-filters-url.mjs +138 -138
  101. package/web-ui/modules/skills.computed.mjs +107 -107
  102. package/web-ui/modules/skills.methods.mjs +513 -513
  103. package/web-ui/partials/index/layout-footer.html +13 -13
  104. package/web-ui/partials/index/layout-header.html +478 -478
  105. package/web-ui/partials/index/modal-config-template-agents.html +185 -185
  106. package/web-ui/partials/index/modal-confirm-toast.html +32 -32
  107. package/web-ui/partials/index/modal-health-check.html +45 -45
  108. package/web-ui/partials/index/modal-openclaw-config.html +344 -344
  109. package/web-ui/partials/index/modal-skills.html +200 -200
  110. package/web-ui/partials/index/modal-webhook.html +42 -42
  111. package/web-ui/partials/index/modals-basic.html +263 -263
  112. package/web-ui/partials/index/panel-config-claude.html +187 -187
  113. package/web-ui/partials/index/panel-config-codex.html +205 -205
  114. package/web-ui/partials/index/panel-config-openclaw.html +89 -89
  115. package/web-ui/partials/index/panel-dashboard.html +171 -171
  116. package/web-ui/partials/index/panel-docs.html +114 -114
  117. package/web-ui/partials/index/panel-market.html +104 -104
  118. package/web-ui/partials/index/panel-orchestration.html +391 -391
  119. package/web-ui/partials/index/panel-plugins.html +253 -253
  120. package/web-ui/partials/index/panel-sessions.html +319 -319
  121. package/web-ui/partials/index/panel-settings.html +181 -181
  122. package/web-ui/partials/index/panel-trash.html +82 -82
  123. package/web-ui/partials/index/panel-usage.html +181 -181
  124. package/web-ui/res/json5.min.js +1 -1
  125. package/web-ui/res/vue.global.prod.js +13 -13
  126. package/web-ui/res/vue.runtime.global.prod.js +7 -7
  127. package/web-ui/res/web-ui-render.precompiled.js +7666 -7666
  128. package/web-ui/session-helpers.mjs +602 -602
  129. package/web-ui/source-bundle.cjs +305 -305
  130. package/web-ui/styles/base-theme.css +291 -291
  131. package/web-ui/styles/bridge-pool.css +266 -266
  132. package/web-ui/styles/controls-forms.css +532 -532
  133. package/web-ui/styles/dashboard.css +438 -438
  134. package/web-ui/styles/docs-panel.css +245 -245
  135. package/web-ui/styles/feedback.css +108 -108
  136. package/web-ui/styles/health-check-dialog.css +144 -144
  137. package/web-ui/styles/layout-shell.css +711 -711
  138. package/web-ui/styles/modals-core.css +499 -499
  139. package/web-ui/styles/navigation-panels.css +399 -399
  140. package/web-ui/styles/openclaw-structured.css +616 -616
  141. package/web-ui/styles/plugins-panel.css +564 -564
  142. package/web-ui/styles/responsive.css +501 -501
  143. package/web-ui/styles/sessions-list.css +683 -683
  144. package/web-ui/styles/sessions-preview.css +407 -407
  145. package/web-ui/styles/sessions-toolbar-trash.css +518 -518
  146. package/web-ui/styles/sessions-usage.css +849 -849
  147. package/web-ui/styles/settings-panel.css +419 -419
  148. package/web-ui/styles/skills-list.css +305 -305
  149. package/web-ui/styles/skills-market.css +723 -723
  150. package/web-ui/styles/task-orchestration.css +822 -822
  151. package/web-ui/styles/titles-cards.css +486 -486
  152. package/web-ui/styles/trash-panel.css +90 -90
  153. package/web-ui/styles/webhook.css +115 -115
  154. package/web-ui/styles.css +24 -24
  155. package/web-ui.html +17 -17
@@ -1,822 +1,822 @@
1
- .task-layout-grid {
2
- display: grid;
3
- gap: 16px;
4
- margin-bottom: 16px;
5
- }
6
-
7
- .task-layout-grid-primary {
8
- grid-template-columns: minmax(0, 1fr);
9
- }
10
-
11
- .task-layout-grid-secondary {
12
- grid-template-columns: minmax(0, 1fr);
13
- }
14
-
15
- .task-hero-card,
16
- .task-compose-flow-card,
17
- .task-sidebar-card,
18
- .task-plan-card,
19
- .task-workbench-card,
20
- .task-template-block,
21
- .task-readiness-card,
22
- .task-action-help,
23
- .task-empty-state {
24
- min-width: 0;
25
- border: 1px solid var(--color-border-soft);
26
- border-radius: 18px;
27
- background: var(--color-surface);
28
- box-shadow: var(--shadow-subtle);
29
- }
30
-
31
- .task-hero-card {
32
- padding: 18px;
33
- margin-bottom: 16px;
34
- background: linear-gradient(180deg, rgba(199, 116, 98, 0.10) 0%, rgba(199, 116, 98, 0.03) 100%), var(--color-surface);
35
- }
36
-
37
- .task-hero-main {
38
- display: flex;
39
- align-items: flex-start;
40
- justify-content: space-between;
41
- gap: 16px;
42
- }
43
-
44
- .task-hero-kicker {
45
- font-size: 11px;
46
- font-weight: 700;
47
- letter-spacing: 0.08em;
48
- text-transform: uppercase;
49
- color: var(--color-text-secondary);
50
- margin-bottom: 8px;
51
- }
52
-
53
- .task-hero-copy {
54
- margin-top: 8px;
55
- max-width: 760px;
56
- line-height: 1.65;
57
- }
58
-
59
- .task-hero-actions {
60
- flex: 0 0 auto;
61
- flex-wrap: nowrap;
62
- align-self: flex-start;
63
- }
64
-
65
- .task-hero-actions > .btn-tool + .btn-tool,
66
- .task-hero-actions > .btn-tool-compact + .btn-tool,
67
- .task-hero-actions > .btn-tool + .btn-tool-compact,
68
- .task-hero-actions > .btn-tool-compact + .btn-tool-compact {
69
- margin-top: 0;
70
- }
71
-
72
- .task-section-header .task-header-actions > .btn-tool + .btn-tool,
73
- .task-section-header .task-header-actions > .btn-tool-compact + .btn-tool,
74
- .task-section-header .task-header-actions > .btn-tool + .btn-tool-compact,
75
- .task-section-header .task-header-actions > .btn-tool-compact + .btn-tool-compact {
76
- margin-top: 0;
77
- }
78
-
79
- .task-action-row > .btn-tool + .btn-tool,
80
- .task-action-row > .btn-tool-compact + .btn-tool,
81
- .task-action-row > .btn-tool + .btn-tool-compact,
82
- .task-action-row > .btn-tool-compact + .btn-tool-compact,
83
- .task-action-row-right > .btn-tool + .btn-tool,
84
- .task-action-row-right > .btn-tool-compact + .btn-tool,
85
- .task-action-row-right > .btn-tool + .btn-tool-compact,
86
- .task-action-row-right > .btn-tool-compact + .btn-tool-compact {
87
- margin-top: 0;
88
- }
89
-
90
- .task-detail-toolbar > .btn-tool + .btn-tool,
91
- .task-detail-toolbar > .btn-tool-compact + .btn-tool,
92
- .task-detail-toolbar > .btn-tool + .btn-tool-compact,
93
- .task-detail-toolbar > .btn-tool-compact + .btn-tool-compact {
94
- margin-top: 0;
95
- }
96
-
97
- .task-hero-meta-strip {
98
- display: flex;
99
- flex-wrap: wrap;
100
- gap: 8px;
101
- margin-top: 14px;
102
- }
103
-
104
- .task-hero-meta {
105
- display: inline-flex;
106
- align-items: center;
107
- gap: 6px;
108
- min-height: 34px;
109
- padding: 0 12px;
110
- border-radius: 999px;
111
- background: rgba(255, 255, 255, 0.56);
112
- border: 1px solid rgba(199, 116, 98, 0.14);
113
- color: var(--color-text-secondary);
114
- font-size: 12px;
115
- font-weight: 600;
116
- }
117
-
118
- .task-hero-meta strong {
119
- color: var(--color-text-primary);
120
- }
121
-
122
- .task-compose-flow-card,
123
- .task-sidebar-card,
124
- .task-plan-card,
125
- .task-workbench-card {
126
- padding: 18px;
127
- }
128
-
129
- .task-flow-section + .task-flow-section,
130
- .task-sidebar-group + .task-sidebar-group {
131
- margin-top: 18px;
132
- padding-top: 18px;
133
- border-top: 1px solid var(--color-border-soft);
134
- }
135
-
136
- .task-flow-section-compact {
137
- margin-top: 0;
138
- }
139
-
140
- .task-flow-head {
141
- display: flex;
142
- align-items: flex-start;
143
- gap: 12px;
144
- margin-bottom: 14px;
145
- }
146
-
147
- .task-flow-step {
148
- width: 28px;
149
- height: 28px;
150
- border-radius: 999px;
151
- background: var(--color-brand-light);
152
- color: var(--color-brand-dark);
153
- font-size: 13px;
154
- font-weight: 700;
155
- display: inline-flex;
156
- align-items: center;
157
- justify-content: center;
158
- flex: 0 0 auto;
159
- }
160
-
161
- .task-flow-title,
162
- .task-sidebar-title,
163
- .task-readiness-title,
164
- .task-empty-title,
165
- .task-template-label {
166
- font-size: 14px;
167
- font-weight: 700;
168
- color: var(--color-text-primary);
169
- }
170
-
171
- .task-flow-copy,
172
- .task-readiness-copy,
173
- .task-field-hint,
174
- .task-empty-copy,
175
- .task-action-help-item {
176
- font-size: 12px;
177
- line-height: 1.6;
178
- color: var(--color-text-secondary);
179
- }
180
-
181
- .task-template-block {
182
- padding: 12px 14px;
183
- background: var(--color-surface-alt);
184
- }
185
-
186
- .task-template-panel {
187
- margin-bottom: 14px;
188
- padding: 12px 14px;
189
- border: 1px solid var(--color-border-soft);
190
- border-radius: 16px;
191
- background: var(--color-surface-alt);
192
- }
193
-
194
- .task-template-chip-group,
195
- .task-workflow-suggestions {
196
- display: flex;
197
- flex-wrap: wrap;
198
- gap: 8px;
199
- margin-top: 10px;
200
- }
201
-
202
- .task-template-chip,
203
- .task-workflow-chip,
204
- .task-workbench-tab {
205
- border: 1px solid var(--color-border);
206
- background: var(--color-surface);
207
- color: var(--color-text-primary);
208
- border-radius: 999px;
209
- padding: 7px 12px;
210
- font-size: 12px;
211
- font-weight: 600;
212
- cursor: pointer;
213
- transition:
214
- background var(--transition-fast) var(--ease-smooth),
215
- border-color var(--transition-fast) var(--ease-smooth),
216
- color var(--transition-fast) var(--ease-smooth),
217
- box-shadow var(--transition-fast) var(--ease-smooth);
218
- }
219
-
220
- .task-template-chip:hover,
221
- .task-workflow-chip:hover,
222
- .task-workbench-tab:hover {
223
- background: var(--color-brand-light);
224
- border-color: var(--color-brand);
225
- color: var(--color-brand-dark);
226
- }
227
-
228
- .task-workflow-chip {
229
- display: inline-flex;
230
- align-items: center;
231
- gap: 8px;
232
- }
233
-
234
- .task-workflow-chip small {
235
- color: var(--color-text-secondary);
236
- font-size: 11px;
237
- }
238
-
239
- .task-composer-grid {
240
- display: grid;
241
- grid-template-columns: repeat(2, minmax(0, 1fr));
242
- gap: 12px;
243
- }
244
-
245
- .task-composer-grid-primary {
246
- grid-template-columns: minmax(0, 1fr);
247
- }
248
-
249
- .task-composer-grid-compact {
250
- grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
251
- align-items: stretch;
252
- }
253
-
254
- .task-composer-grid-inline {
255
- grid-template-columns: repeat(2, minmax(0, 1fr));
256
- }
257
-
258
- .task-field-wide {
259
- grid-column: 1 / -1;
260
- }
261
-
262
- .task-goal-field {
263
- padding: 16px;
264
- border-radius: 16px;
265
- background: var(--color-surface-alt);
266
- border: 1px solid var(--color-border-soft);
267
- }
268
-
269
- .task-textarea,
270
- .task-log-block {
271
- width: 100%;
272
- min-height: 92px;
273
- resize: vertical;
274
- padding: 10px 12px;
275
- border-radius: 12px;
276
- border: 1px solid var(--color-border);
277
- background: var(--color-surface);
278
- color: var(--color-text-primary);
279
- font: inherit;
280
- box-sizing: border-box;
281
- }
282
-
283
- .task-textarea-goal {
284
- min-height: 132px;
285
- font-size: 14px;
286
- line-height: 1.65;
287
- }
288
-
289
- .task-toggle-card {
290
- padding: 14px;
291
- border-radius: 16px;
292
- border: 1px solid var(--color-border-soft);
293
- background: var(--color-surface-alt);
294
- }
295
-
296
- .task-toggle-stack {
297
- display: flex;
298
- flex-direction: column;
299
- gap: 10px;
300
- margin-top: 8px;
301
- }
302
-
303
- .task-toggle-inline {
304
- display: flex;
305
- flex-wrap: wrap;
306
- gap: 12px;
307
- margin-top: 8px;
308
- }
309
-
310
- .task-toggle-card-inline {
311
- min-height: 100%;
312
- }
313
-
314
- .task-toggle {
315
- display: inline-flex;
316
- align-items: center;
317
- gap: 8px;
318
- color: var(--color-text-secondary);
319
- font-size: 13px;
320
- }
321
-
322
- .task-config-strip {
323
- display: flex;
324
- flex-wrap: wrap;
325
- gap: 10px;
326
- }
327
-
328
- .task-config-strip-vertical {
329
- flex-direction: column;
330
- }
331
-
332
- .task-config-pill {
333
- display: inline-flex;
334
- align-items: center;
335
- min-height: 34px;
336
- padding: 0 12px;
337
- border-radius: 999px;
338
- background: var(--color-surface-alt);
339
- border: 1px solid var(--color-border);
340
- color: var(--color-text-secondary);
341
- font-size: 12px;
342
- font-weight: 600;
343
- }
344
-
345
- .task-readiness-card,
346
- .task-action-help,
347
- .task-empty-state,
348
- .task-stage-card {
349
- padding: 14px;
350
- background: var(--color-surface-alt);
351
- }
352
-
353
- .task-draft-overview,
354
- .task-draft-inline,
355
- .task-advanced-panel {
356
- margin-top: 14px;
357
- padding: 14px;
358
- border: 1px solid var(--color-border-soft);
359
- border-radius: 16px;
360
- background: var(--color-surface-alt);
361
- }
362
-
363
- .task-draft-inline {
364
- display: flex;
365
- flex-direction: column;
366
- gap: 12px;
367
- }
368
-
369
- .task-draft-inline-head {
370
- display: flex;
371
- align-items: center;
372
- gap: 10px;
373
- flex-wrap: wrap;
374
- }
375
-
376
- .task-draft-inline-copy {
377
- min-width: 0;
378
- }
379
-
380
- .task-draft-overview-head {
381
- display: flex;
382
- align-items: flex-start;
383
- justify-content: space-between;
384
- gap: 12px;
385
- }
386
-
387
- .task-checklist-inline {
388
- display: grid;
389
- grid-template-columns: repeat(2, minmax(0, 1fr));
390
- gap: 10px;
391
- margin-top: 12px;
392
- }
393
-
394
- .task-check-chip {
395
- display: flex;
396
- flex-direction: column;
397
- gap: 4px;
398
- padding: 12px;
399
- border-radius: 14px;
400
- border: 1px solid var(--color-border);
401
- background: var(--color-surface);
402
- }
403
-
404
- .task-check-chip strong {
405
- font-size: 12px;
406
- color: var(--color-text-primary);
407
- }
408
-
409
- .task-check-chip span {
410
- font-size: 12px;
411
- line-height: 1.5;
412
- color: var(--color-text-secondary);
413
- }
414
-
415
- .task-check-chip.done {
416
- border-color: rgba(81, 154, 91, 0.24);
417
- background: rgba(81, 154, 91, 0.08);
418
- }
419
-
420
- .task-draft-overview .task-config-strip {
421
- margin-top: 12px;
422
- }
423
-
424
- .task-advanced-panel[open] {
425
- box-shadow: var(--shadow-subtle);
426
- }
427
-
428
- .task-advanced-summary {
429
- display: flex;
430
- align-items: center;
431
- justify-content: space-between;
432
- cursor: pointer;
433
- font-size: 13px;
434
- font-weight: 700;
435
- color: var(--color-text-primary);
436
- list-style: none;
437
- min-height: 36px;
438
- padding: 0 10px;
439
- border-radius: 12px;
440
- background: rgba(255, 255, 255, 0.64);
441
- border: 1px solid var(--color-border-soft);
442
- transition:
443
- border-color var(--transition-fast) var(--ease-smooth),
444
- background var(--transition-fast) var(--ease-smooth),
445
- box-shadow var(--transition-fast) var(--ease-smooth);
446
- }
447
-
448
- .task-advanced-summary:hover {
449
- border-color: var(--color-border-strong);
450
- background: rgba(255, 255, 255, 0.86);
451
- }
452
-
453
- .task-advanced-panel[open] > .task-advanced-summary {
454
- border-color: rgba(199, 116, 98, 0.4);
455
- box-shadow: var(--shadow-subtle);
456
- }
457
-
458
- .task-advanced-summary::-webkit-details-marker {
459
- display: none;
460
- }
461
-
462
- .task-advanced-panel > .task-composer-grid,
463
- .task-advanced-panel > .selector-grid {
464
- margin-top: 12px;
465
- }
466
-
467
- .task-readiness-head {
468
- display: flex;
469
- align-items: flex-start;
470
- justify-content: space-between;
471
- gap: 12px;
472
- }
473
-
474
- .task-readiness-grid {
475
- display: grid;
476
- grid-template-columns: repeat(2, minmax(0, 1fr));
477
- gap: 10px;
478
- margin-top: 12px;
479
- }
480
-
481
- .task-readiness-item {
482
- display: flex;
483
- flex-direction: column;
484
- gap: 4px;
485
- padding: 12px;
486
- border-radius: 14px;
487
- border: 1px solid var(--color-border);
488
- background: var(--color-surface);
489
- }
490
-
491
- .task-readiness-item strong {
492
- font-size: 12px;
493
- color: var(--color-text-primary);
494
- }
495
-
496
- .task-readiness-item span {
497
- font-size: 12px;
498
- color: var(--color-text-secondary);
499
- line-height: 1.5;
500
- }
501
-
502
- .task-readiness-item.done {
503
- border-color: rgba(81, 154, 91, 0.24);
504
- background: rgba(81, 154, 91, 0.08);
505
- }
506
-
507
- .task-action-row,
508
- .task-plan-summary-strip,
509
- .task-detail-summary-strip {
510
- display: flex;
511
- flex-wrap: wrap;
512
- gap: 10px;
513
- }
514
-
515
- .task-action-row-prominent {
516
- align-items: center;
517
- margin-top: 4px;
518
- }
519
-
520
- .task-action-row > .btn-tool,
521
- .task-action-row-right > .btn-tool {
522
- width: auto;
523
- min-height: 36px;
524
- height: 36px;
525
- display: inline-flex;
526
- align-items: center;
527
- justify-content: center;
528
- box-sizing: border-box;
529
- }
530
-
531
- .task-action-preview {
532
- min-width: 104px;
533
- }
534
-
535
- .task-action-row-right {
536
- display: flex;
537
- flex-wrap: wrap;
538
- gap: 10px;
539
- }
540
-
541
- .task-action-row-right-prominent > .btn-tool {
542
- min-width: 104px;
543
- }
544
-
545
- .task-action-help-prominent,
546
- .task-action-help-sidebar {
547
- display: flex;
548
- flex-direction: column;
549
- gap: 8px;
550
- margin-top: 12px;
551
- }
552
-
553
- .task-section-header {
554
- align-items: center;
555
- justify-content: space-between;
556
- gap: 12px;
557
- }
558
-
559
- .task-section-header > :first-child {
560
- flex: 1 1 auto;
561
- min-width: 0;
562
- }
563
-
564
- .task-header-actions,
565
- .task-section-header .settings-tab-actions,
566
- .task-detail-toolbar {
567
- display: flex;
568
- flex-wrap: wrap;
569
- gap: 8px;
570
- align-items: center;
571
- justify-content: flex-end;
572
- margin-left: auto;
573
- }
574
-
575
- .task-workbench-tabs {
576
- display: flex;
577
- flex-wrap: wrap;
578
- gap: 8px;
579
- margin-top: 14px;
580
- }
581
-
582
- .task-workbench-tab.active {
583
- background: var(--color-brand-light);
584
- border-color: var(--color-brand);
585
- color: var(--color-brand-dark);
586
- box-shadow: var(--shadow-subtle);
587
- }
588
-
589
- .task-workbench-panel {
590
- margin-top: 14px;
591
- }
592
-
593
- .task-action-caption {
594
- margin-top: 12px;
595
- font-size: 12px;
596
- line-height: 1.6;
597
- color: var(--color-text-secondary);
598
- }
599
-
600
- .task-stage-empty {
601
- display: flex;
602
- align-items: center;
603
- justify-content: space-between;
604
- gap: 16px;
605
- }
606
-
607
- .task-stage-strip {
608
- display: flex;
609
- flex-wrap: wrap;
610
- gap: 8px;
611
- justify-content: flex-end;
612
- }
613
-
614
- .task-stage-pill {
615
- padding: 8px 12px;
616
- border-radius: 999px;
617
- border: 1px solid var(--color-border-soft);
618
- background: var(--color-surface);
619
- font-size: 12px;
620
- font-weight: 600;
621
- color: var(--color-text-secondary);
622
- }
623
-
624
- .task-plan-summary-item {
625
- min-width: 120px;
626
- padding: 12px;
627
- border-radius: 14px;
628
- border: 1px solid var(--color-border);
629
- background: var(--color-surface-alt);
630
- display: flex;
631
- flex-direction: column;
632
- gap: 4px;
633
- }
634
-
635
- .task-plan-summary-label {
636
- font-size: 11px;
637
- color: var(--color-text-muted);
638
- text-transform: uppercase;
639
- letter-spacing: 0.06em;
640
- }
641
-
642
- .task-wave-list,
643
- .task-node-list,
644
- .task-runtime-list,
645
- .task-warning-list,
646
- .task-issues-list {
647
- display: flex;
648
- flex-direction: column;
649
- gap: 10px;
650
- margin-top: 12px;
651
- }
652
-
653
- .task-wave-card,
654
- .task-node-card,
655
- .task-runtime-item,
656
- .task-warning-item,
657
- .task-issue-item {
658
- border: 1px solid var(--color-border);
659
- border-radius: 14px;
660
- background: var(--color-surface-alt);
661
- }
662
-
663
- .task-wave-card,
664
- .task-node-card {
665
- padding: 14px;
666
- }
667
-
668
- .task-warning-item,
669
- .task-issue-item {
670
- padding: 10px 12px;
671
- font-size: 13px;
672
- }
673
-
674
- .task-warning-item {
675
- color: var(--color-text-secondary);
676
- background: rgba(255, 244, 220, 0.7);
677
- }
678
-
679
- .task-issue-item {
680
- color: #8f2d21;
681
- background: rgba(255, 232, 228, 0.75);
682
- }
683
-
684
- .task-wave-title,
685
- .task-node-title,
686
- .task-runtime-item-title {
687
- font-weight: 700;
688
- color: var(--color-text-primary);
689
- }
690
-
691
- .task-wave-nodes,
692
- .task-node-meta,
693
- .task-node-deps,
694
- .task-runtime-item-meta,
695
- .task-runtime-item-summary {
696
- font-size: 12px;
697
- color: var(--color-text-secondary);
698
- line-height: 1.55;
699
- }
700
-
701
- .task-node-head,
702
- .task-runtime-item,
703
- .task-runtime-item-actions {
704
- display: flex;
705
- align-items: flex-start;
706
- justify-content: space-between;
707
- gap: 10px;
708
- }
709
-
710
- .task-runtime-item {
711
- width: 100%;
712
- padding: 14px;
713
- cursor: default;
714
- text-align: left;
715
- }
716
-
717
- .task-runtime-item.clickable {
718
- cursor: pointer;
719
- }
720
-
721
- .task-runtime-item.active {
722
- border-color: rgba(199, 116, 98, 0.3);
723
- background: var(--color-brand-light);
724
- }
725
-
726
- .task-runtime-item-main {
727
- min-width: 0;
728
- flex: 1;
729
- display: flex;
730
- flex-direction: column;
731
- gap: 4px;
732
- }
733
-
734
- .task-runtime-item-actions {
735
- flex-direction: row;
736
- align-items: center;
737
- justify-content: flex-end;
738
- flex-wrap: nowrap;
739
- flex: 0 0 auto;
740
- }
741
-
742
- .task-runtime-item-actions .btn-mini {
743
- min-width: 72px;
744
- min-height: 30px;
745
- height: 30px;
746
- display: inline-flex;
747
- align-items: center;
748
- justify-content: center;
749
- box-sizing: border-box;
750
- }
751
-
752
- .pill.success {
753
- background: rgba(81, 154, 91, 0.14);
754
- color: #285d31;
755
- }
756
-
757
- .pill.warn {
758
- background: rgba(214, 153, 58, 0.16);
759
- color: #7a5110;
760
- }
761
-
762
- .pill.error {
763
- background: rgba(194, 73, 63, 0.16);
764
- color: #8f2d21;
765
- }
766
-
767
- .pill.neutral {
768
- background: rgba(116, 126, 138, 0.14);
769
- color: #45515e;
770
- }
771
-
772
- .task-log-block {
773
- margin: 10px 0 0;
774
- min-height: 120px;
775
- white-space: pre-wrap;
776
- word-break: break-word;
777
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
778
- font-size: 12px;
779
- line-height: 1.55;
780
- }
781
-
782
- @media (max-width: 1200px) {
783
- .task-layout-grid-primary,
784
- .task-layout-grid-secondary {
785
- grid-template-columns: 1fr;
786
- }
787
- }
788
-
789
- @media (max-width: 720px) {
790
- .task-composer-grid,
791
- .task-readiness-grid,
792
- .task-checklist-inline,
793
- .task-composer-grid-compact {
794
- grid-template-columns: 1fr;
795
- }
796
-
797
- .task-hero-main,
798
- .task-flow-head,
799
- .task-draft-overview-head,
800
- .task-stage-empty,
801
- .task-readiness-head,
802
- .task-section-header,
803
- .task-node-head,
804
- .task-runtime-item,
805
- .task-runtime-item-actions {
806
- flex-direction: column;
807
- align-items: stretch;
808
- }
809
-
810
- .task-header-actions,
811
- .task-section-header .settings-tab-actions,
812
- .task-detail-toolbar,
813
- .task-action-row-right {
814
- margin-left: 0;
815
- width: 100%;
816
- justify-content: flex-start;
817
- }
818
-
819
- .task-hero-actions {
820
- flex-wrap: wrap;
821
- }
822
- }
1
+ .task-layout-grid {
2
+ display: grid;
3
+ gap: 16px;
4
+ margin-bottom: 16px;
5
+ }
6
+
7
+ .task-layout-grid-primary {
8
+ grid-template-columns: minmax(0, 1fr);
9
+ }
10
+
11
+ .task-layout-grid-secondary {
12
+ grid-template-columns: minmax(0, 1fr);
13
+ }
14
+
15
+ .task-hero-card,
16
+ .task-compose-flow-card,
17
+ .task-sidebar-card,
18
+ .task-plan-card,
19
+ .task-workbench-card,
20
+ .task-template-block,
21
+ .task-readiness-card,
22
+ .task-action-help,
23
+ .task-empty-state {
24
+ min-width: 0;
25
+ border: 1px solid var(--color-border-soft);
26
+ border-radius: 18px;
27
+ background: var(--color-surface);
28
+ box-shadow: var(--shadow-subtle);
29
+ }
30
+
31
+ .task-hero-card {
32
+ padding: 18px;
33
+ margin-bottom: 16px;
34
+ background: linear-gradient(180deg, rgba(199, 116, 98, 0.10) 0%, rgba(199, 116, 98, 0.03) 100%), var(--color-surface);
35
+ }
36
+
37
+ .task-hero-main {
38
+ display: flex;
39
+ align-items: flex-start;
40
+ justify-content: space-between;
41
+ gap: 16px;
42
+ }
43
+
44
+ .task-hero-kicker {
45
+ font-size: 11px;
46
+ font-weight: 700;
47
+ letter-spacing: 0.08em;
48
+ text-transform: uppercase;
49
+ color: var(--color-text-secondary);
50
+ margin-bottom: 8px;
51
+ }
52
+
53
+ .task-hero-copy {
54
+ margin-top: 8px;
55
+ max-width: 760px;
56
+ line-height: 1.65;
57
+ }
58
+
59
+ .task-hero-actions {
60
+ flex: 0 0 auto;
61
+ flex-wrap: nowrap;
62
+ align-self: flex-start;
63
+ }
64
+
65
+ .task-hero-actions > .btn-tool + .btn-tool,
66
+ .task-hero-actions > .btn-tool-compact + .btn-tool,
67
+ .task-hero-actions > .btn-tool + .btn-tool-compact,
68
+ .task-hero-actions > .btn-tool-compact + .btn-tool-compact {
69
+ margin-top: 0;
70
+ }
71
+
72
+ .task-section-header .task-header-actions > .btn-tool + .btn-tool,
73
+ .task-section-header .task-header-actions > .btn-tool-compact + .btn-tool,
74
+ .task-section-header .task-header-actions > .btn-tool + .btn-tool-compact,
75
+ .task-section-header .task-header-actions > .btn-tool-compact + .btn-tool-compact {
76
+ margin-top: 0;
77
+ }
78
+
79
+ .task-action-row > .btn-tool + .btn-tool,
80
+ .task-action-row > .btn-tool-compact + .btn-tool,
81
+ .task-action-row > .btn-tool + .btn-tool-compact,
82
+ .task-action-row > .btn-tool-compact + .btn-tool-compact,
83
+ .task-action-row-right > .btn-tool + .btn-tool,
84
+ .task-action-row-right > .btn-tool-compact + .btn-tool,
85
+ .task-action-row-right > .btn-tool + .btn-tool-compact,
86
+ .task-action-row-right > .btn-tool-compact + .btn-tool-compact {
87
+ margin-top: 0;
88
+ }
89
+
90
+ .task-detail-toolbar > .btn-tool + .btn-tool,
91
+ .task-detail-toolbar > .btn-tool-compact + .btn-tool,
92
+ .task-detail-toolbar > .btn-tool + .btn-tool-compact,
93
+ .task-detail-toolbar > .btn-tool-compact + .btn-tool-compact {
94
+ margin-top: 0;
95
+ }
96
+
97
+ .task-hero-meta-strip {
98
+ display: flex;
99
+ flex-wrap: wrap;
100
+ gap: 8px;
101
+ margin-top: 14px;
102
+ }
103
+
104
+ .task-hero-meta {
105
+ display: inline-flex;
106
+ align-items: center;
107
+ gap: 6px;
108
+ min-height: 34px;
109
+ padding: 0 12px;
110
+ border-radius: 999px;
111
+ background: rgba(255, 255, 255, 0.56);
112
+ border: 1px solid rgba(199, 116, 98, 0.14);
113
+ color: var(--color-text-secondary);
114
+ font-size: 12px;
115
+ font-weight: 600;
116
+ }
117
+
118
+ .task-hero-meta strong {
119
+ color: var(--color-text-primary);
120
+ }
121
+
122
+ .task-compose-flow-card,
123
+ .task-sidebar-card,
124
+ .task-plan-card,
125
+ .task-workbench-card {
126
+ padding: 18px;
127
+ }
128
+
129
+ .task-flow-section + .task-flow-section,
130
+ .task-sidebar-group + .task-sidebar-group {
131
+ margin-top: 18px;
132
+ padding-top: 18px;
133
+ border-top: 1px solid var(--color-border-soft);
134
+ }
135
+
136
+ .task-flow-section-compact {
137
+ margin-top: 0;
138
+ }
139
+
140
+ .task-flow-head {
141
+ display: flex;
142
+ align-items: flex-start;
143
+ gap: 12px;
144
+ margin-bottom: 14px;
145
+ }
146
+
147
+ .task-flow-step {
148
+ width: 28px;
149
+ height: 28px;
150
+ border-radius: 999px;
151
+ background: var(--color-brand-light);
152
+ color: var(--color-brand-dark);
153
+ font-size: 13px;
154
+ font-weight: 700;
155
+ display: inline-flex;
156
+ align-items: center;
157
+ justify-content: center;
158
+ flex: 0 0 auto;
159
+ }
160
+
161
+ .task-flow-title,
162
+ .task-sidebar-title,
163
+ .task-readiness-title,
164
+ .task-empty-title,
165
+ .task-template-label {
166
+ font-size: 14px;
167
+ font-weight: 700;
168
+ color: var(--color-text-primary);
169
+ }
170
+
171
+ .task-flow-copy,
172
+ .task-readiness-copy,
173
+ .task-field-hint,
174
+ .task-empty-copy,
175
+ .task-action-help-item {
176
+ font-size: 12px;
177
+ line-height: 1.6;
178
+ color: var(--color-text-secondary);
179
+ }
180
+
181
+ .task-template-block {
182
+ padding: 12px 14px;
183
+ background: var(--color-surface-alt);
184
+ }
185
+
186
+ .task-template-panel {
187
+ margin-bottom: 14px;
188
+ padding: 12px 14px;
189
+ border: 1px solid var(--color-border-soft);
190
+ border-radius: 16px;
191
+ background: var(--color-surface-alt);
192
+ }
193
+
194
+ .task-template-chip-group,
195
+ .task-workflow-suggestions {
196
+ display: flex;
197
+ flex-wrap: wrap;
198
+ gap: 8px;
199
+ margin-top: 10px;
200
+ }
201
+
202
+ .task-template-chip,
203
+ .task-workflow-chip,
204
+ .task-workbench-tab {
205
+ border: 1px solid var(--color-border);
206
+ background: var(--color-surface);
207
+ color: var(--color-text-primary);
208
+ border-radius: 999px;
209
+ padding: 7px 12px;
210
+ font-size: 12px;
211
+ font-weight: 600;
212
+ cursor: pointer;
213
+ transition:
214
+ background var(--transition-fast) var(--ease-smooth),
215
+ border-color var(--transition-fast) var(--ease-smooth),
216
+ color var(--transition-fast) var(--ease-smooth),
217
+ box-shadow var(--transition-fast) var(--ease-smooth);
218
+ }
219
+
220
+ .task-template-chip:hover,
221
+ .task-workflow-chip:hover,
222
+ .task-workbench-tab:hover {
223
+ background: var(--color-brand-light);
224
+ border-color: var(--color-brand);
225
+ color: var(--color-brand-dark);
226
+ }
227
+
228
+ .task-workflow-chip {
229
+ display: inline-flex;
230
+ align-items: center;
231
+ gap: 8px;
232
+ }
233
+
234
+ .task-workflow-chip small {
235
+ color: var(--color-text-secondary);
236
+ font-size: 11px;
237
+ }
238
+
239
+ .task-composer-grid {
240
+ display: grid;
241
+ grid-template-columns: repeat(2, minmax(0, 1fr));
242
+ gap: 12px;
243
+ }
244
+
245
+ .task-composer-grid-primary {
246
+ grid-template-columns: minmax(0, 1fr);
247
+ }
248
+
249
+ .task-composer-grid-compact {
250
+ grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
251
+ align-items: stretch;
252
+ }
253
+
254
+ .task-composer-grid-inline {
255
+ grid-template-columns: repeat(2, minmax(0, 1fr));
256
+ }
257
+
258
+ .task-field-wide {
259
+ grid-column: 1 / -1;
260
+ }
261
+
262
+ .task-goal-field {
263
+ padding: 16px;
264
+ border-radius: 16px;
265
+ background: var(--color-surface-alt);
266
+ border: 1px solid var(--color-border-soft);
267
+ }
268
+
269
+ .task-textarea,
270
+ .task-log-block {
271
+ width: 100%;
272
+ min-height: 92px;
273
+ resize: vertical;
274
+ padding: 10px 12px;
275
+ border-radius: 12px;
276
+ border: 1px solid var(--color-border);
277
+ background: var(--color-surface);
278
+ color: var(--color-text-primary);
279
+ font: inherit;
280
+ box-sizing: border-box;
281
+ }
282
+
283
+ .task-textarea-goal {
284
+ min-height: 132px;
285
+ font-size: 14px;
286
+ line-height: 1.65;
287
+ }
288
+
289
+ .task-toggle-card {
290
+ padding: 14px;
291
+ border-radius: 16px;
292
+ border: 1px solid var(--color-border-soft);
293
+ background: var(--color-surface-alt);
294
+ }
295
+
296
+ .task-toggle-stack {
297
+ display: flex;
298
+ flex-direction: column;
299
+ gap: 10px;
300
+ margin-top: 8px;
301
+ }
302
+
303
+ .task-toggle-inline {
304
+ display: flex;
305
+ flex-wrap: wrap;
306
+ gap: 12px;
307
+ margin-top: 8px;
308
+ }
309
+
310
+ .task-toggle-card-inline {
311
+ min-height: 100%;
312
+ }
313
+
314
+ .task-toggle {
315
+ display: inline-flex;
316
+ align-items: center;
317
+ gap: 8px;
318
+ color: var(--color-text-secondary);
319
+ font-size: 13px;
320
+ }
321
+
322
+ .task-config-strip {
323
+ display: flex;
324
+ flex-wrap: wrap;
325
+ gap: 10px;
326
+ }
327
+
328
+ .task-config-strip-vertical {
329
+ flex-direction: column;
330
+ }
331
+
332
+ .task-config-pill {
333
+ display: inline-flex;
334
+ align-items: center;
335
+ min-height: 34px;
336
+ padding: 0 12px;
337
+ border-radius: 999px;
338
+ background: var(--color-surface-alt);
339
+ border: 1px solid var(--color-border);
340
+ color: var(--color-text-secondary);
341
+ font-size: 12px;
342
+ font-weight: 600;
343
+ }
344
+
345
+ .task-readiness-card,
346
+ .task-action-help,
347
+ .task-empty-state,
348
+ .task-stage-card {
349
+ padding: 14px;
350
+ background: var(--color-surface-alt);
351
+ }
352
+
353
+ .task-draft-overview,
354
+ .task-draft-inline,
355
+ .task-advanced-panel {
356
+ margin-top: 14px;
357
+ padding: 14px;
358
+ border: 1px solid var(--color-border-soft);
359
+ border-radius: 16px;
360
+ background: var(--color-surface-alt);
361
+ }
362
+
363
+ .task-draft-inline {
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 12px;
367
+ }
368
+
369
+ .task-draft-inline-head {
370
+ display: flex;
371
+ align-items: center;
372
+ gap: 10px;
373
+ flex-wrap: wrap;
374
+ }
375
+
376
+ .task-draft-inline-copy {
377
+ min-width: 0;
378
+ }
379
+
380
+ .task-draft-overview-head {
381
+ display: flex;
382
+ align-items: flex-start;
383
+ justify-content: space-between;
384
+ gap: 12px;
385
+ }
386
+
387
+ .task-checklist-inline {
388
+ display: grid;
389
+ grid-template-columns: repeat(2, minmax(0, 1fr));
390
+ gap: 10px;
391
+ margin-top: 12px;
392
+ }
393
+
394
+ .task-check-chip {
395
+ display: flex;
396
+ flex-direction: column;
397
+ gap: 4px;
398
+ padding: 12px;
399
+ border-radius: 14px;
400
+ border: 1px solid var(--color-border);
401
+ background: var(--color-surface);
402
+ }
403
+
404
+ .task-check-chip strong {
405
+ font-size: 12px;
406
+ color: var(--color-text-primary);
407
+ }
408
+
409
+ .task-check-chip span {
410
+ font-size: 12px;
411
+ line-height: 1.5;
412
+ color: var(--color-text-secondary);
413
+ }
414
+
415
+ .task-check-chip.done {
416
+ border-color: rgba(81, 154, 91, 0.24);
417
+ background: rgba(81, 154, 91, 0.08);
418
+ }
419
+
420
+ .task-draft-overview .task-config-strip {
421
+ margin-top: 12px;
422
+ }
423
+
424
+ .task-advanced-panel[open] {
425
+ box-shadow: var(--shadow-subtle);
426
+ }
427
+
428
+ .task-advanced-summary {
429
+ display: flex;
430
+ align-items: center;
431
+ justify-content: space-between;
432
+ cursor: pointer;
433
+ font-size: 13px;
434
+ font-weight: 700;
435
+ color: var(--color-text-primary);
436
+ list-style: none;
437
+ min-height: 36px;
438
+ padding: 0 10px;
439
+ border-radius: 12px;
440
+ background: rgba(255, 255, 255, 0.64);
441
+ border: 1px solid var(--color-border-soft);
442
+ transition:
443
+ border-color var(--transition-fast) var(--ease-smooth),
444
+ background var(--transition-fast) var(--ease-smooth),
445
+ box-shadow var(--transition-fast) var(--ease-smooth);
446
+ }
447
+
448
+ .task-advanced-summary:hover {
449
+ border-color: var(--color-border-strong);
450
+ background: rgba(255, 255, 255, 0.86);
451
+ }
452
+
453
+ .task-advanced-panel[open] > .task-advanced-summary {
454
+ border-color: rgba(199, 116, 98, 0.4);
455
+ box-shadow: var(--shadow-subtle);
456
+ }
457
+
458
+ .task-advanced-summary::-webkit-details-marker {
459
+ display: none;
460
+ }
461
+
462
+ .task-advanced-panel > .task-composer-grid,
463
+ .task-advanced-panel > .selector-grid {
464
+ margin-top: 12px;
465
+ }
466
+
467
+ .task-readiness-head {
468
+ display: flex;
469
+ align-items: flex-start;
470
+ justify-content: space-between;
471
+ gap: 12px;
472
+ }
473
+
474
+ .task-readiness-grid {
475
+ display: grid;
476
+ grid-template-columns: repeat(2, minmax(0, 1fr));
477
+ gap: 10px;
478
+ margin-top: 12px;
479
+ }
480
+
481
+ .task-readiness-item {
482
+ display: flex;
483
+ flex-direction: column;
484
+ gap: 4px;
485
+ padding: 12px;
486
+ border-radius: 14px;
487
+ border: 1px solid var(--color-border);
488
+ background: var(--color-surface);
489
+ }
490
+
491
+ .task-readiness-item strong {
492
+ font-size: 12px;
493
+ color: var(--color-text-primary);
494
+ }
495
+
496
+ .task-readiness-item span {
497
+ font-size: 12px;
498
+ color: var(--color-text-secondary);
499
+ line-height: 1.5;
500
+ }
501
+
502
+ .task-readiness-item.done {
503
+ border-color: rgba(81, 154, 91, 0.24);
504
+ background: rgba(81, 154, 91, 0.08);
505
+ }
506
+
507
+ .task-action-row,
508
+ .task-plan-summary-strip,
509
+ .task-detail-summary-strip {
510
+ display: flex;
511
+ flex-wrap: wrap;
512
+ gap: 10px;
513
+ }
514
+
515
+ .task-action-row-prominent {
516
+ align-items: center;
517
+ margin-top: 4px;
518
+ }
519
+
520
+ .task-action-row > .btn-tool,
521
+ .task-action-row-right > .btn-tool {
522
+ width: auto;
523
+ min-height: 36px;
524
+ height: 36px;
525
+ display: inline-flex;
526
+ align-items: center;
527
+ justify-content: center;
528
+ box-sizing: border-box;
529
+ }
530
+
531
+ .task-action-preview {
532
+ min-width: 104px;
533
+ }
534
+
535
+ .task-action-row-right {
536
+ display: flex;
537
+ flex-wrap: wrap;
538
+ gap: 10px;
539
+ }
540
+
541
+ .task-action-row-right-prominent > .btn-tool {
542
+ min-width: 104px;
543
+ }
544
+
545
+ .task-action-help-prominent,
546
+ .task-action-help-sidebar {
547
+ display: flex;
548
+ flex-direction: column;
549
+ gap: 8px;
550
+ margin-top: 12px;
551
+ }
552
+
553
+ .task-section-header {
554
+ align-items: center;
555
+ justify-content: space-between;
556
+ gap: 12px;
557
+ }
558
+
559
+ .task-section-header > :first-child {
560
+ flex: 1 1 auto;
561
+ min-width: 0;
562
+ }
563
+
564
+ .task-header-actions,
565
+ .task-section-header .settings-tab-actions,
566
+ .task-detail-toolbar {
567
+ display: flex;
568
+ flex-wrap: wrap;
569
+ gap: 8px;
570
+ align-items: center;
571
+ justify-content: flex-end;
572
+ margin-left: auto;
573
+ }
574
+
575
+ .task-workbench-tabs {
576
+ display: flex;
577
+ flex-wrap: wrap;
578
+ gap: 8px;
579
+ margin-top: 14px;
580
+ }
581
+
582
+ .task-workbench-tab.active {
583
+ background: var(--color-brand-light);
584
+ border-color: var(--color-brand);
585
+ color: var(--color-brand-dark);
586
+ box-shadow: var(--shadow-subtle);
587
+ }
588
+
589
+ .task-workbench-panel {
590
+ margin-top: 14px;
591
+ }
592
+
593
+ .task-action-caption {
594
+ margin-top: 12px;
595
+ font-size: 12px;
596
+ line-height: 1.6;
597
+ color: var(--color-text-secondary);
598
+ }
599
+
600
+ .task-stage-empty {
601
+ display: flex;
602
+ align-items: center;
603
+ justify-content: space-between;
604
+ gap: 16px;
605
+ }
606
+
607
+ .task-stage-strip {
608
+ display: flex;
609
+ flex-wrap: wrap;
610
+ gap: 8px;
611
+ justify-content: flex-end;
612
+ }
613
+
614
+ .task-stage-pill {
615
+ padding: 8px 12px;
616
+ border-radius: 999px;
617
+ border: 1px solid var(--color-border-soft);
618
+ background: var(--color-surface);
619
+ font-size: 12px;
620
+ font-weight: 600;
621
+ color: var(--color-text-secondary);
622
+ }
623
+
624
+ .task-plan-summary-item {
625
+ min-width: 120px;
626
+ padding: 12px;
627
+ border-radius: 14px;
628
+ border: 1px solid var(--color-border);
629
+ background: var(--color-surface-alt);
630
+ display: flex;
631
+ flex-direction: column;
632
+ gap: 4px;
633
+ }
634
+
635
+ .task-plan-summary-label {
636
+ font-size: 11px;
637
+ color: var(--color-text-muted);
638
+ text-transform: uppercase;
639
+ letter-spacing: 0.06em;
640
+ }
641
+
642
+ .task-wave-list,
643
+ .task-node-list,
644
+ .task-runtime-list,
645
+ .task-warning-list,
646
+ .task-issues-list {
647
+ display: flex;
648
+ flex-direction: column;
649
+ gap: 10px;
650
+ margin-top: 12px;
651
+ }
652
+
653
+ .task-wave-card,
654
+ .task-node-card,
655
+ .task-runtime-item,
656
+ .task-warning-item,
657
+ .task-issue-item {
658
+ border: 1px solid var(--color-border);
659
+ border-radius: 14px;
660
+ background: var(--color-surface-alt);
661
+ }
662
+
663
+ .task-wave-card,
664
+ .task-node-card {
665
+ padding: 14px;
666
+ }
667
+
668
+ .task-warning-item,
669
+ .task-issue-item {
670
+ padding: 10px 12px;
671
+ font-size: 13px;
672
+ }
673
+
674
+ .task-warning-item {
675
+ color: var(--color-text-secondary);
676
+ background: rgba(255, 244, 220, 0.7);
677
+ }
678
+
679
+ .task-issue-item {
680
+ color: #8f2d21;
681
+ background: rgba(255, 232, 228, 0.75);
682
+ }
683
+
684
+ .task-wave-title,
685
+ .task-node-title,
686
+ .task-runtime-item-title {
687
+ font-weight: 700;
688
+ color: var(--color-text-primary);
689
+ }
690
+
691
+ .task-wave-nodes,
692
+ .task-node-meta,
693
+ .task-node-deps,
694
+ .task-runtime-item-meta,
695
+ .task-runtime-item-summary {
696
+ font-size: 12px;
697
+ color: var(--color-text-secondary);
698
+ line-height: 1.55;
699
+ }
700
+
701
+ .task-node-head,
702
+ .task-runtime-item,
703
+ .task-runtime-item-actions {
704
+ display: flex;
705
+ align-items: flex-start;
706
+ justify-content: space-between;
707
+ gap: 10px;
708
+ }
709
+
710
+ .task-runtime-item {
711
+ width: 100%;
712
+ padding: 14px;
713
+ cursor: default;
714
+ text-align: left;
715
+ }
716
+
717
+ .task-runtime-item.clickable {
718
+ cursor: pointer;
719
+ }
720
+
721
+ .task-runtime-item.active {
722
+ border-color: rgba(199, 116, 98, 0.3);
723
+ background: var(--color-brand-light);
724
+ }
725
+
726
+ .task-runtime-item-main {
727
+ min-width: 0;
728
+ flex: 1;
729
+ display: flex;
730
+ flex-direction: column;
731
+ gap: 4px;
732
+ }
733
+
734
+ .task-runtime-item-actions {
735
+ flex-direction: row;
736
+ align-items: center;
737
+ justify-content: flex-end;
738
+ flex-wrap: nowrap;
739
+ flex: 0 0 auto;
740
+ }
741
+
742
+ .task-runtime-item-actions .btn-mini {
743
+ min-width: 72px;
744
+ min-height: 30px;
745
+ height: 30px;
746
+ display: inline-flex;
747
+ align-items: center;
748
+ justify-content: center;
749
+ box-sizing: border-box;
750
+ }
751
+
752
+ .pill.success {
753
+ background: rgba(81, 154, 91, 0.14);
754
+ color: #285d31;
755
+ }
756
+
757
+ .pill.warn {
758
+ background: rgba(214, 153, 58, 0.16);
759
+ color: #7a5110;
760
+ }
761
+
762
+ .pill.error {
763
+ background: rgba(194, 73, 63, 0.16);
764
+ color: #8f2d21;
765
+ }
766
+
767
+ .pill.neutral {
768
+ background: rgba(116, 126, 138, 0.14);
769
+ color: #45515e;
770
+ }
771
+
772
+ .task-log-block {
773
+ margin: 10px 0 0;
774
+ min-height: 120px;
775
+ white-space: pre-wrap;
776
+ word-break: break-word;
777
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
778
+ font-size: 12px;
779
+ line-height: 1.55;
780
+ }
781
+
782
+ @media (max-width: 1200px) {
783
+ .task-layout-grid-primary,
784
+ .task-layout-grid-secondary {
785
+ grid-template-columns: 1fr;
786
+ }
787
+ }
788
+
789
+ @media (max-width: 720px) {
790
+ .task-composer-grid,
791
+ .task-readiness-grid,
792
+ .task-checklist-inline,
793
+ .task-composer-grid-compact {
794
+ grid-template-columns: 1fr;
795
+ }
796
+
797
+ .task-hero-main,
798
+ .task-flow-head,
799
+ .task-draft-overview-head,
800
+ .task-stage-empty,
801
+ .task-readiness-head,
802
+ .task-section-header,
803
+ .task-node-head,
804
+ .task-runtime-item,
805
+ .task-runtime-item-actions {
806
+ flex-direction: column;
807
+ align-items: stretch;
808
+ }
809
+
810
+ .task-header-actions,
811
+ .task-section-header .settings-tab-actions,
812
+ .task-detail-toolbar,
813
+ .task-action-row-right {
814
+ margin-left: 0;
815
+ width: 100%;
816
+ justify-content: flex-start;
817
+ }
818
+
819
+ .task-hero-actions {
820
+ flex-wrap: wrap;
821
+ }
822
+ }