duaer-spec 0.27.2 → 0.27.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 (55) hide show
  1. package/.duaer/active-job.json +3 -3
  2. package/.duaer/specs/281-release-0272/delivery.json +8 -0
  3. package/.duaer/specs/281-release-0272/tasks.md +1 -1
  4. package/.duaer/specs/282-dispatch-confirm-lock/delivery.json +12 -0
  5. package/.duaer/specs/282-dispatch-confirm-lock/spec.md +26 -0
  6. package/.duaer/specs/282-dispatch-confirm-lock/tasks.md +5 -0
  7. package/.duaer/specs/283-desk-theme-compact/delivery.json +12 -0
  8. package/.duaer/specs/283-desk-theme-compact/spec.md +26 -0
  9. package/.duaer/specs/283-desk-theme-compact/tasks.md +5 -0
  10. package/.duaer/specs/284-dispatch-graph-regen/delivery.json +12 -0
  11. package/.duaer/specs/284-dispatch-graph-regen/spec.md +33 -0
  12. package/.duaer/specs/284-dispatch-graph-regen/tasks.md +5 -0
  13. package/.duaer/specs/285-desk-light-compact/delivery.json +11 -0
  14. package/.duaer/specs/285-desk-light-compact/spec.md +13 -0
  15. package/.duaer/specs/285-desk-light-compact/tasks.md +5 -0
  16. package/.duaer/specs/286-modules-bug-theme/delivery.json +10 -0
  17. package/.duaer/specs/286-modules-bug-theme/spec.md +26 -0
  18. package/.duaer/specs/286-modules-bug-theme/tasks.md +5 -0
  19. package/.duaer/specs/287-progress-modules-ux/delivery.json +10 -0
  20. package/.duaer/specs/287-progress-modules-ux/spec.md +31 -0
  21. package/.duaer/specs/287-progress-modules-ux/tasks.md +5 -0
  22. package/.duaer/specs/288-settings-close-compact/delivery.json +10 -0
  23. package/.duaer/specs/288-settings-close-compact/spec.md +17 -0
  24. package/.duaer/specs/288-settings-close-compact/tasks.md +5 -0
  25. package/.duaer/specs/289-settings-close-click/delivery.json +10 -0
  26. package/.duaer/specs/289-settings-close-click/spec.md +16 -0
  27. package/.duaer/specs/289-settings-close-click/tasks.md +4 -0
  28. package/.duaer/specs/290-remove-quicknav/delivery.json +10 -0
  29. package/.duaer/specs/290-remove-quicknav/spec.md +11 -0
  30. package/.duaer/specs/290-remove-quicknav/tasks.md +4 -0
  31. package/.duaer/specs/291-release-0273/spec.md +12 -0
  32. package/.duaer/specs/291-release-0273/tasks.md +4 -0
  33. package/CHANGELOG.md +56 -0
  34. package/bin/duaer-live.mjs +11 -20
  35. package/bin/live-modules.mjs +23 -3
  36. package/docs/agent/e2e-test-plan.md +16 -5
  37. package/docs/agent/live-desk.md +24 -11
  38. package/package.json +1 -1
  39. package/web/live-dev/app.js +329 -167
  40. package/web/live-dev/dispatch-center.html +29 -1
  41. package/web/live-dev/dispatch-center.js +25 -1
  42. package/web/live-dev/i18n-de.js +5 -0
  43. package/web/live-dev/i18n-es.js +5 -0
  44. package/web/live-dev/i18n-fr.js +5 -0
  45. package/web/live-dev/i18n-ja.js +5 -0
  46. package/web/live-dev/i18n-ko.js +5 -0
  47. package/web/live-dev/i18n-pt-BR.js +5 -0
  48. package/web/live-dev/i18n-ru.js +5 -0
  49. package/web/live-dev/i18n-vi.js +5 -0
  50. package/web/live-dev/i18n-zh-TW.js +5 -0
  51. package/web/live-dev/i18n.js +10 -0
  52. package/web/live-dev/index.html +31 -32
  53. package/web/live-dev/styles.css +296 -315
  54. package/web/live-dev/task-graph.mjs +4 -1
  55. package/web/live-dev/theme.mjs +63 -0
@@ -1,17 +1,63 @@
1
- :root {
2
- --steel: #121c26;
3
- --plate: #1a2836;
4
- --plate-2: #223445;
5
- --ink: #f2ebe0;
6
- --mute: #8aa0b4;
7
- --line: #3f566c;
8
- --register: #e05a2b;
9
- --lock: #2f9e8f;
10
- --glow: rgba(224, 90, 43, 0.18);
11
- --shadow: 0 20px 48px rgba(0, 0, 0, 0.4);
1
+ :root,
2
+ [data-theme="dark"] {
3
+ color-scheme: dark;
4
+ --steel: #1a1e24;
5
+ --plate: #232830;
6
+ --plate-2: #2c333c;
7
+ --ink: #e4e8ee;
8
+ --mute: #8a93a0;
9
+ --line: #3c4450;
10
+ --register: #6b9fd4;
11
+ --lock: #5aaa8f;
12
+ --on-accent: #ffffff;
13
+ --input-bg: #1c232c;
14
+ --composer-bg: #1c232c;
15
+ --well: #151a20;
16
+ --glow: transparent;
17
+ --shadow: 0 6px 20px rgba(0, 0, 0, 0.32);
18
+ --overlay: rgba(8, 10, 14, 0.52);
19
+ --bg-soft: rgba(255, 255, 255, 0.035);
20
+ --code-bg: rgba(255, 255, 255, 0.06);
21
+ --inset: color-mix(in srgb, var(--ink) 6%, transparent);
22
+ --inset-soft: color-mix(in srgb, var(--ink) 3.5%, transparent);
23
+ --inset-strong: color-mix(in srgb, var(--ink) 9%, transparent);
24
+ --panel-shine: none;
12
25
  --font-display: "Outfit", "Avenir Next", sans-serif;
13
26
  --font-mono: "Chivo Mono", ui-monospace, monospace;
14
- --radius-panel: 2px;
27
+ --radius-panel: 3px;
28
+ --space-shell: 0.08rem 0.16rem 0.12rem;
29
+ --space-layout-gap: 0.16rem;
30
+ --brand-size: clamp(0.92rem, 1.4vw, 1.1rem);
31
+ --top-btn-h: 1.22rem;
32
+ --card-pad: 0.4rem 0.45rem 0.45rem;
33
+ --field-gap: 0.1rem;
34
+ --field-mb: 0.22rem;
35
+ --body-size: 0.76rem;
36
+ }
37
+
38
+ [data-theme="light"] {
39
+ color-scheme: light;
40
+ --steel: #e8ebf0;
41
+ --plate: #ffffff;
42
+ --plate-2: #f3f5f8;
43
+ --ink: #141a22;
44
+ --mute: #4a5563;
45
+ --line: #c5ccd6;
46
+ --register: #2f5f96;
47
+ --lock: #217a5c;
48
+ --on-accent: #ffffff;
49
+ --input-bg: #ffffff;
50
+ --composer-bg: #f3f5f8;
51
+ --well: #eef1f5;
52
+ --glow: transparent;
53
+ --shadow: 0 2px 10px rgba(20, 26, 34, 0.08);
54
+ --overlay: rgba(20, 26, 34, 0.28);
55
+ --bg-soft: rgba(20, 26, 34, 0.04);
56
+ --code-bg: rgba(20, 26, 34, 0.06);
57
+ --inset: color-mix(in srgb, var(--ink) 4.5%, transparent);
58
+ --inset-soft: color-mix(in srgb, var(--ink) 2.5%, transparent);
59
+ --inset-strong: color-mix(in srgb, var(--ink) 7%, transparent);
60
+ --panel-shine: none;
15
61
  }
16
62
 
17
63
  * {
@@ -26,25 +72,16 @@ body {
26
72
  }
27
73
 
28
74
  ::selection {
29
- background: rgba(224, 90, 43, 0.35);
75
+ background: color-mix(in srgb, var(--register) 32%, transparent);
30
76
  color: var(--ink);
31
77
  }
32
78
 
33
79
  body {
34
80
  font-family: var(--font-display);
35
81
  color: var(--ink);
36
- background:
37
- radial-gradient(ellipse 80% 50% at 12% -10%, var(--glow), transparent 55%),
38
- radial-gradient(circle at 88% 0%, rgba(47, 158, 143, 0.12), transparent 40%),
39
- repeating-linear-gradient(
40
- 0deg,
41
- transparent,
42
- transparent 23px,
43
- rgba(127, 149, 168, 0.05) 23px,
44
- rgba(127, 149, 168, 0.05) 24px
45
- ),
46
- var(--steel);
47
- line-height: 1.5;
82
+ background: var(--steel);
83
+ line-height: 1.35;
84
+ font-size: var(--body-size);
48
85
  }
49
86
 
50
87
  /* Thin scrollbars for desk columns */
@@ -62,7 +99,7 @@ body {
62
99
  .progress-col::-webkit-scrollbar,
63
100
  .history-list::-webkit-scrollbar,
64
101
  .repo-list::-webkit-scrollbar {
65
- width: 8px;
102
+ width: 6px;
66
103
  }
67
104
 
68
105
  .log::-webkit-scrollbar-thumb,
@@ -82,13 +119,13 @@ body {
82
119
  z-index: 1;
83
120
  flex-shrink: 0;
84
121
  max-width: none;
85
- margin: 0 0 0.85rem;
86
- padding: 0.55rem 0.85rem;
122
+ margin: 0 0 0.45rem;
123
+ padding: 0.4rem 0.65rem;
87
124
  border: 1px solid var(--line);
88
- background: rgba(222, 90, 44, 0.12);
125
+ background: color-mix(in srgb, var(--register) 12%, var(--plate));
89
126
  color: var(--ink);
90
127
  font-family: var(--font-mono);
91
- font-size: 0.82rem;
128
+ font-size: 0.78rem;
92
129
  }
93
130
 
94
131
  .update-notice code {
@@ -103,7 +140,7 @@ body {
103
140
  width: 100%;
104
141
  max-width: none;
105
142
  margin: 0;
106
- padding: 0.65rem 0.75rem 0.75rem;
143
+ padding: var(--space-shell);
107
144
  height: 100dvh;
108
145
  max-height: 100dvh;
109
146
  min-height: 0;
@@ -116,13 +153,13 @@ body {
116
153
  top: 0;
117
154
  z-index: 30;
118
155
  flex-shrink: 0;
119
- margin: 0 0 0.65rem;
120
- padding: 0.15rem 0 0.35rem;
156
+ margin: 0 0 0.4rem;
157
+ padding: 0.05rem 0 0.2rem;
121
158
  background: linear-gradient(
122
159
  180deg,
123
160
  var(--steel) 0%,
124
- var(--steel) 70%,
125
- rgba(18, 28, 38, 0) 100%
161
+ var(--steel) 72%,
162
+ color-mix(in srgb, var(--steel) 0%, transparent) 100%
126
163
  );
127
164
  }
128
165
 
@@ -130,27 +167,27 @@ body {
130
167
  display: grid;
131
168
  grid-template-columns: minmax(0, 1fr) auto;
132
169
  align-items: center;
133
- gap: 0.75rem 1.25rem;
170
+ gap: 0.45rem 0.75rem;
134
171
  }
135
172
 
136
173
  .top-lead {
137
174
  display: flex;
138
175
  flex-direction: column;
139
- gap: 0.35rem;
176
+ gap: 0.15rem;
140
177
  min-width: 0;
141
178
  justify-self: start;
142
179
  }
143
180
 
144
181
  .top-lead .brand {
145
182
  margin: 0;
146
- font-size: clamp(1.75rem, 3.5vw, 2.4rem);
183
+ font-size: var(--brand-size);
147
184
  font-weight: 700;
148
185
  letter-spacing: 0.01em;
149
186
  line-height: 1.05;
150
187
  display: flex;
151
188
  flex-wrap: wrap;
152
189
  align-items: baseline;
153
- gap: 0.35rem 0.55rem;
190
+ gap: 0.2rem 0.4rem;
154
191
  }
155
192
 
156
193
  .brand-fde {
@@ -193,9 +230,9 @@ body {
193
230
  .top-actions {
194
231
  display: flex;
195
232
  align-items: center;
196
- gap: 0.5rem;
233
+ gap: 0.35rem;
197
234
  flex-shrink: 0;
198
- padding-bottom: 0.15rem;
235
+ padding-bottom: 0.05rem;
199
236
  justify-self: end;
200
237
  }
201
238
 
@@ -204,10 +241,10 @@ body {
204
241
  display: inline-flex;
205
242
  align-items: center;
206
243
  justify-content: center;
207
- gap: 0.3rem;
208
- height: 2rem;
244
+ gap: 0.25rem;
245
+ height: var(--top-btn-h);
209
246
  margin: 0;
210
- padding: 0 0.7rem;
247
+ padding: 0 0.55rem;
211
248
  font-family: var(--font-mono);
212
249
  font-size: 0.75rem;
213
250
  font-weight: 500;
@@ -288,6 +325,20 @@ button.top-btn.project-badge {
288
325
  background-repeat: no-repeat;
289
326
  }
290
327
 
328
+ #themeToggle .theme-icon {
329
+ font-size: 0.95em;
330
+ line-height: 1;
331
+ opacity: 0.9;
332
+ }
333
+
334
+ #themeToggle[data-theme="dark"] .theme-icon-sun {
335
+ display: none;
336
+ }
337
+
338
+ #themeToggle[data-theme="light"] .theme-icon-moon {
339
+ display: none;
340
+ }
341
+
291
342
  .github-btn .github-star {
292
343
  color: var(--lock);
293
344
  font-size: 0.85em;
@@ -380,7 +431,7 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
380
431
  padding: 0;
381
432
  display: flex;
382
433
  flex-direction: column;
383
- background: #0b1118;
434
+ background: var(--well);
384
435
  }
385
436
 
386
437
  .dispatch-center-views {
@@ -430,7 +481,7 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
430
481
  position: fixed;
431
482
  inset: 0;
432
483
  z-index: 40;
433
- background: rgba(8, 14, 20, 0.55);
484
+ background: var(--overlay);
434
485
  }
435
486
 
436
487
  .history-drawer {
@@ -438,10 +489,10 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
438
489
  top: 0;
439
490
  right: 0;
440
491
  z-index: 50;
441
- width: min(26rem, 100vw);
492
+ width: min(24rem, 100vw);
442
493
  height: 100dvh;
443
494
  margin: 0;
444
- padding: 1.15rem 1.1rem 1.35rem;
495
+ padding: 0.7rem 0.7rem 0.85rem;
445
496
  border-left: 1px solid var(--line);
446
497
  border-radius: 0;
447
498
  background: var(--plate);
@@ -453,40 +504,40 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
453
504
  }
454
505
 
455
506
  .settings-drawer.history-drawer {
456
- width: min(28rem, 100vw);
507
+ width: min(25rem, 100vw);
457
508
  }
458
509
 
459
510
  .employee-drawer .employee-list {
460
511
  display: flex;
461
512
  flex-direction: column;
462
- gap: 0.85rem;
513
+ gap: 0.45rem;
463
514
  overflow: auto;
464
515
  flex: 1;
465
516
  min-height: 0;
466
- padding-bottom: 0.5rem;
517
+ padding-bottom: 0.35rem;
467
518
  }
468
519
 
469
520
  .employee-card {
470
521
  margin: 0;
471
- padding: 0.85rem 0.9rem;
522
+ padding: 0.5rem 0.55rem;
472
523
  border: 1px solid var(--line);
473
524
  background: var(--bg-soft, rgba(255, 255, 255, 0.03));
474
525
  }
475
526
 
476
527
  .employee-name {
477
- margin: 0 0 0.2rem;
478
- font-size: 1.05rem;
528
+ margin: 0 0 0.12rem;
529
+ font-size: 0.92rem;
479
530
  font-weight: 700;
480
531
  }
481
532
 
482
533
  .employee-role {
483
- margin: 0 0 0.45rem;
534
+ margin: 0 0 0.28rem;
484
535
  }
485
536
 
486
537
  .employee-cap {
487
- margin: 0 0 0.35rem;
488
- font-size: 0.92rem;
489
- line-height: 1.45;
538
+ margin: 0 0 0.22rem;
539
+ font-size: 0.8rem;
540
+ line-height: 1.35;
490
541
  }
491
542
 
492
543
  .history-drawer[hidden],
@@ -498,31 +549,36 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
498
549
  display: flex;
499
550
  align-items: flex-start;
500
551
  justify-content: space-between;
501
- gap: 0.75rem;
502
- margin-bottom: 0.85rem;
552
+ gap: 0.5rem;
553
+ margin-bottom: 0.5rem;
503
554
  flex-shrink: 0;
504
- position: sticky;
505
- top: -1.15rem;
506
- z-index: 1;
555
+ position: relative;
556
+ z-index: 2;
507
557
  background: var(--plate);
508
- padding-top: 0.15rem;
558
+ padding-top: 0.1rem;
509
559
  }
510
560
 
511
561
  .history-head .mark {
512
- margin: 0 0 0.25rem;
562
+ margin: 0 0 0.15rem;
513
563
  }
514
564
 
515
565
  .history-title {
516
566
  margin: 0;
517
- font-size: 1.25rem;
567
+ font-size: 1.05rem;
518
568
  font-weight: 700;
519
569
  letter-spacing: 0.02em;
520
570
  }
521
571
 
522
572
  .history-close {
523
- min-width: auto;
524
- padding: 0.35rem 0.65rem;
525
- font-size: 0.8rem;
573
+ position: relative;
574
+ z-index: 3;
575
+ flex-shrink: 0;
576
+ min-width: 3.2rem;
577
+ min-height: 1.7rem;
578
+ padding: 0.28rem 0.65rem;
579
+ font-size: 0.78rem;
580
+ pointer-events: auto;
581
+ cursor: pointer;
526
582
  }
527
583
 
528
584
  .settings-drawer {
@@ -532,11 +588,11 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
532
588
  .settings-body {
533
589
  display: flex;
534
590
  flex-direction: column;
535
- gap: 0.4rem;
591
+ gap: 0.28rem;
536
592
  flex: 1 1 auto;
537
593
  min-height: 0;
538
594
  overflow: auto;
539
- padding-right: 0.15rem;
595
+ padding-right: 0.1rem;
540
596
  }
541
597
 
542
598
  .settings-body .hint {
@@ -551,19 +607,19 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
551
607
  }
552
608
 
553
609
  .settings-body .field {
554
- gap: 0.2rem;
555
- margin-bottom: 0.4rem;
610
+ gap: 0.12rem;
611
+ margin-bottom: 0.28rem;
556
612
  }
557
613
 
558
614
  .settings-body .field > span {
559
- letter-spacing: 0.08em;
560
- font-size: 0.64rem;
615
+ letter-spacing: 0.06em;
616
+ font-size: 0.6rem;
561
617
  }
562
618
 
563
619
  .settings-body .btn {
564
- min-height: 2.1rem;
565
- padding: 0 0.75rem;
566
- font-size: 0.85rem;
620
+ min-height: 1.7rem;
621
+ padding: 0 0.55rem;
622
+ font-size: 0.78rem;
567
623
  }
568
624
 
569
625
  .setup-block {
@@ -575,8 +631,8 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
575
631
  .setup-block-sum {
576
632
  cursor: pointer;
577
633
  list-style: none;
578
- padding: 0.45rem 0.6rem;
579
- font-size: 0.88rem;
634
+ padding: 0.32rem 0.45rem;
635
+ font-size: 0.8rem;
580
636
  font-weight: 600;
581
637
  letter-spacing: -0.01em;
582
638
  color: var(--ink);
@@ -603,8 +659,8 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
603
659
  .setup-block-body {
604
660
  display: flex;
605
661
  flex-direction: column;
606
- gap: 0.35rem;
607
- padding: 0 0.6rem 0.55rem;
662
+ gap: 0.22rem;
663
+ padding: 0 0.45rem 0.4rem;
608
664
  }
609
665
 
610
666
  .setup-host-actions {
@@ -625,7 +681,7 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
625
681
  list-style: none;
626
682
  font-size: 0.75rem;
627
683
  font-weight: 600;
628
- color: var(--teal, #2f9e8f);
684
+ color: var(--lock);
629
685
  padding: 0.15rem 0;
630
686
  }
631
687
 
@@ -748,44 +804,44 @@ body.dispatch-center-page #dispatchCenterToggle[aria-current="page"] {
748
804
  display: inline-block;
749
805
  margin-top: 0.15rem;
750
806
  padding: 0.1rem 0.4rem;
751
- border: 1px solid rgba(63, 86, 108, 0.65);
807
+ border: 1px solid var(--line);
752
808
  font-size: 0.68rem;
753
809
  letter-spacing: 0.03em;
754
810
  color: var(--mute);
755
811
  }
756
812
 
757
813
  .project-status.is-drafting {
758
- color: #9fb0c0;
814
+ color: var(--mute);
759
815
  }
760
816
 
761
817
  .project-status.is-confirming {
762
- border-color: rgba(47, 158, 143, 0.55);
763
- color: #9fe8dc;
818
+ border-color: color-mix(in srgb, var(--lock) 55%, transparent);
819
+ color: var(--lock);
764
820
  }
765
821
 
766
822
  .project-status.is-building {
767
823
  border-color: rgba(212, 168, 75, 0.65);
768
- color: #e8c87a;
824
+ color: var(--register);
769
825
  }
770
826
 
771
827
  .project-status.is-delivered {
772
- border-color: rgba(47, 158, 143, 0.8);
773
- background: rgba(47, 158, 143, 0.12);
774
- color: #9fe8dc;
828
+ border-color: color-mix(in srgb, var(--lock) 80%, transparent);
829
+ background: color-mix(in srgb, var(--lock) 12%, transparent);
830
+ color: var(--lock);
775
831
  }
776
832
 
777
833
  .project-status.is-revising {
778
834
  border-color: rgba(127, 149, 168, 0.8);
779
- color: #c5d4e0;
835
+ color: var(--mute);
780
836
  }
781
837
 
782
838
  .project-deliverables {
783
839
  align-self: flex-start;
784
840
  font-size: 0.75rem;
785
841
  padding: 0.25rem 0.55rem;
786
- background: rgba(47, 158, 143, 0.1);
842
+ background: color-mix(in srgb, var(--lock) 10%, transparent);
787
843
  border-color: var(--lock);
788
- color: #9fe8dc;
844
+ color: var(--lock);
789
845
  }
790
846
 
791
847
  .dispatch-project-summary {
@@ -909,7 +965,7 @@ body.history-open {
909
965
 
910
966
  .brand {
911
967
  margin: 0;
912
- font-size: clamp(1.75rem, 3.5vw, 2.35rem);
968
+ font-size: var(--brand-size);
913
969
  font-weight: 700;
914
970
  letter-spacing: 0.02em;
915
971
  line-height: 1.05;
@@ -934,7 +990,7 @@ body.history-open {
934
990
  minmax(calc(12rem + 50px), 1fr)
935
991
  minmax(22rem, 2.2fr)
936
992
  minmax(12rem, 0.75fr);
937
- gap: 0.75rem;
993
+ gap: var(--space-layout-gap);
938
994
  width: 100%;
939
995
  max-width: none;
940
996
  margin: 0;
@@ -954,11 +1010,7 @@ body.history-open {
954
1010
  border-radius: var(--radius-panel);
955
1011
  min-width: 0;
956
1012
  max-width: 100%;
957
- background-image: linear-gradient(
958
- 180deg,
959
- rgba(255, 255, 255, 0.03) 0%,
960
- transparent 12px
961
- );
1013
+ background-image: var(--panel-shine);
962
1014
  }
963
1015
 
964
1016
  .chat-panel,
@@ -978,90 +1030,6 @@ body.history-open {
978
1030
  overflow: hidden;
979
1031
  }
980
1032
 
981
- .chat-quicknav {
982
- position: absolute;
983
- top: 50%;
984
- right: 0.4rem;
985
- z-index: 24;
986
- transform: translateY(-50%);
987
- display: flex;
988
- flex-direction: column;
989
- align-items: center;
990
- pointer-events: none;
991
- }
992
-
993
- .chat-quicknav-btn,
994
- .chat-quicknav-menu {
995
- pointer-events: auto;
996
- }
997
-
998
- .chat-quicknav-btn {
999
- margin: 0;
1000
- padding: 0.5rem 0.4rem;
1001
- writing-mode: vertical-rl;
1002
- text-orientation: mixed;
1003
- letter-spacing: 0.12em;
1004
- font-family: var(--font-ui);
1005
- font-size: 0.72rem;
1006
- font-weight: 600;
1007
- line-height: 1;
1008
- color: var(--ink);
1009
- background: var(--plate);
1010
- border: 1px solid var(--line);
1011
- border-radius: 999px;
1012
- box-shadow: var(--shadow);
1013
- cursor: pointer;
1014
- }
1015
-
1016
- .chat-quicknav-btn:hover,
1017
- .chat-quicknav-btn:focus-visible,
1018
- .chat-quicknav-btn[aria-expanded="true"] {
1019
- border-color: var(--register);
1020
- color: var(--register);
1021
- outline: none;
1022
- }
1023
-
1024
- .chat-quicknav-menu {
1025
- position: absolute;
1026
- right: calc(100% + 0.4rem);
1027
- left: auto;
1028
- top: 50%;
1029
- transform: translateY(-50%);
1030
- min-width: 7.5rem;
1031
- padding: 0.35rem;
1032
- display: flex;
1033
- flex-direction: column;
1034
- gap: 0.2rem;
1035
- background: var(--plate);
1036
- border: 1px solid var(--line);
1037
- border-radius: var(--radius-panel);
1038
- box-shadow: var(--shadow);
1039
- z-index: 25;
1040
- }
1041
-
1042
- .chat-quicknav-menu[hidden] {
1043
- display: none !important;
1044
- }
1045
-
1046
- .chat-quicknav-menu button {
1047
- margin: 0;
1048
- padding: 0.4rem 0.55rem;
1049
- text-align: left;
1050
- font: inherit;
1051
- font-size: 0.8rem;
1052
- color: var(--ink);
1053
- background: transparent;
1054
- border: 0;
1055
- border-radius: 0.35rem;
1056
- cursor: pointer;
1057
- }
1058
-
1059
- .chat-quicknav-menu button:hover,
1060
- .chat-quicknav-menu button:focus-visible {
1061
- background: rgba(47, 158, 143, 0.12);
1062
- color: var(--register);
1063
- outline: none;
1064
- }
1065
1033
 
1066
1034
  .log {
1067
1035
  flex: 1;
@@ -1100,7 +1068,7 @@ body.history-open {
1100
1068
  margin: 0;
1101
1069
  padding: 0.55rem 0.7rem 0.55rem 2.15rem;
1102
1070
  border-left: 2px solid var(--register);
1103
- background: rgba(47, 158, 143, 0.08);
1071
+ background: color-mix(in srgb, var(--lock) 8%, transparent);
1104
1072
  font-size: 0.88rem;
1105
1073
  line-height: 1.4;
1106
1074
  color: var(--mute);
@@ -1132,10 +1100,10 @@ body.history-open {
1132
1100
 
1133
1101
  .bubble {
1134
1102
  max-width: 92%;
1135
- padding: 0.7rem 0.9rem;
1103
+ padding: 0.35rem 0.55rem;
1136
1104
  white-space: normal;
1137
1105
  word-break: break-word;
1138
- animation: rise 0.32s cubic-bezier(0.2, 0.8, 0.2, 1) both;
1106
+ animation: rise 0.28s cubic-bezier(0.2, 0.8, 0.2, 1) both;
1139
1107
  }
1140
1108
 
1141
1109
  @keyframes rise {
@@ -1157,7 +1125,7 @@ body.history-open {
1157
1125
 
1158
1126
  .bubble.user {
1159
1127
  align-self: flex-end;
1160
- background: #13202b;
1128
+ background: var(--input-bg);
1161
1129
  border: 1px solid var(--register);
1162
1130
  color: var(--ink);
1163
1131
  }
@@ -1186,7 +1154,7 @@ body.history-open {
1186
1154
  font-size: 0.9em;
1187
1155
  padding: 0.05em 0.3em;
1188
1156
  border-radius: 3px;
1189
- background: rgba(0, 0, 0, 0.06);
1157
+ background: var(--code-bg);
1190
1158
  }
1191
1159
 
1192
1160
  .bubble-body pre.chat-code {
@@ -1194,13 +1162,13 @@ body.history-open {
1194
1162
  padding: 0.5em 0.65em;
1195
1163
  overflow-x: auto;
1196
1164
  border-radius: 4px;
1197
- background: rgba(0, 0, 0, 0.06);
1165
+ background: var(--code-bg);
1198
1166
  white-space: pre-wrap;
1199
1167
  font-size: 0.85em;
1200
1168
  }
1201
1169
 
1202
1170
  .bubble-body a {
1203
- color: var(--register, #0d6e6e);
1171
+ color: var(--register);
1204
1172
  text-decoration: underline;
1205
1173
  text-underline-offset: 2px;
1206
1174
  cursor: pointer;
@@ -1276,7 +1244,7 @@ body.history-open {
1276
1244
  }
1277
1245
 
1278
1246
  .bug-hotfix-row input {
1279
- accent-color: var(--accent, #7f95a8);
1247
+ accent-color: var(--register);
1280
1248
  }
1281
1249
 
1282
1250
  .desk-bottom-actions {
@@ -1302,7 +1270,7 @@ body.history-open {
1302
1270
  .action-chip:focus-visible {
1303
1271
  border-color: var(--lock);
1304
1272
  color: var(--ink);
1305
- background: rgba(47, 158, 143, 0.15);
1273
+ background: color-mix(in srgb, var(--lock) 15%, transparent);
1306
1274
  }
1307
1275
 
1308
1276
  .chip:focus-visible {
@@ -1312,10 +1280,10 @@ body.history-open {
1312
1280
  .composer {
1313
1281
  display: grid;
1314
1282
  grid-template-columns: minmax(0, 1fr) auto;
1315
- gap: 0.4rem;
1316
- padding: 0.55rem 0.65rem;
1283
+ gap: 0.3rem;
1284
+ padding: 0.4rem 0.5rem;
1317
1285
  border-top: 1px solid var(--line);
1318
- background: linear-gradient(180deg, #162331 0%, #13202b 100%);
1286
+ background: var(--composer-bg);
1319
1287
  align-items: end;
1320
1288
  }
1321
1289
 
@@ -1353,15 +1321,15 @@ input[type="text"] {
1353
1321
  resize: vertical;
1354
1322
  border: 1px solid var(--line);
1355
1323
  border-radius: 0;
1356
- padding: 0.65rem 0.75rem;
1324
+ padding: 0.45rem 0.55rem;
1357
1325
  font: inherit;
1358
- background: #13202b;
1326
+ background: var(--input-bg);
1359
1327
  color: var(--ink);
1360
1328
  }
1361
1329
 
1362
1330
  textarea::placeholder,
1363
1331
  input::placeholder {
1364
- color: #5f7386;
1332
+ color: var(--mute);
1365
1333
  }
1366
1334
 
1367
1335
  textarea:focus,
@@ -1376,27 +1344,27 @@ input:focus {
1376
1344
  display: inline-flex;
1377
1345
  align-items: center;
1378
1346
  justify-content: center;
1379
- gap: 0.35rem;
1347
+ gap: 0.28rem;
1380
1348
  appearance: none;
1381
1349
  -webkit-appearance: none;
1382
1350
  border: 1px solid var(--line);
1383
1351
  border-radius: 0;
1384
- padding: 0.65rem 1.1rem;
1352
+ padding: 0.42rem 0.75rem;
1385
1353
  font: inherit;
1386
- font-size: 0.88rem;
1354
+ font-size: 0.78rem;
1387
1355
  font-weight: 700;
1388
- letter-spacing: 0.08em;
1356
+ letter-spacing: 0.06em;
1389
1357
  text-transform: uppercase;
1390
- line-height: 1.2;
1358
+ line-height: 1.15;
1391
1359
  cursor: pointer;
1392
1360
  background: var(--plate);
1393
1361
  color: var(--ink);
1394
1362
  text-decoration: none;
1395
1363
  white-space: nowrap;
1396
1364
  transition:
1397
- border-color 180ms ease,
1398
- background-color 180ms ease,
1399
- color 180ms ease;
1365
+ border-color 140ms ease,
1366
+ background-color 140ms ease,
1367
+ color 140ms ease;
1400
1368
  }
1401
1369
 
1402
1370
  .btn[hidden],
@@ -1419,27 +1387,27 @@ a.btn[hidden] {
1419
1387
  align-self: end;
1420
1388
  background: var(--register);
1421
1389
  border-color: var(--register);
1422
- color: #1a100c;
1390
+ color: var(--on-accent);
1423
1391
  }
1424
1392
 
1425
1393
  .btn.primary:hover,
1426
1394
  .btn.primary:focus-visible {
1427
- background: #f06a3a;
1428
- border-color: #f06a3a;
1429
- color: #1a100c;
1395
+ background: color-mix(in srgb, var(--register) 88%, #000);
1396
+ border-color: color-mix(in srgb, var(--register) 88%, #000);
1397
+ color: var(--on-accent);
1430
1398
  }
1431
1399
 
1432
1400
  .btn.confirm {
1433
1401
  width: 100%;
1434
1402
  margin-top: 0.55rem;
1435
- background: rgba(47, 158, 143, 0.14);
1403
+ background: color-mix(in srgb, var(--lock) 14%, transparent);
1436
1404
  border-color: var(--lock);
1437
- color: #9fe8dc;
1405
+ color: var(--lock);
1438
1406
  }
1439
1407
 
1440
1408
  .btn.confirm:not(:disabled):hover,
1441
1409
  .btn.confirm:not(:disabled):focus-visible {
1442
- background: rgba(47, 158, 143, 0.28);
1410
+ background: color-mix(in srgb, var(--lock) 28%, transparent);
1443
1411
  border-color: var(--lock);
1444
1412
  color: var(--ink);
1445
1413
  }
@@ -1447,14 +1415,14 @@ a.btn[hidden] {
1447
1415
  .auto-handle-btn {
1448
1416
  width: 100%;
1449
1417
  margin: 0.45rem 0 0.15rem;
1450
- background: rgba(224, 90, 43, 0.12);
1418
+ background: color-mix(in srgb, var(--register) 14%, transparent);
1451
1419
  border-color: var(--register);
1452
- color: #f0b39a;
1420
+ color: var(--register);
1453
1421
  }
1454
1422
 
1455
1423
  .auto-handle-btn:hover,
1456
1424
  .auto-handle-btn:focus-visible {
1457
- background: rgba(224, 90, 43, 0.22);
1425
+ background: color-mix(in srgb, var(--register) 24%, transparent);
1458
1426
  border-color: var(--register);
1459
1427
  color: var(--ink);
1460
1428
  }
@@ -1469,7 +1437,7 @@ a.btn[hidden] {
1469
1437
  }
1470
1438
 
1471
1439
  .card-panel {
1472
- padding: 1.15rem 1.2rem 1.25rem;
1440
+ padding: var(--card-pad);
1473
1441
  align-self: stretch;
1474
1442
  overflow-x: hidden;
1475
1443
  overflow-y: auto;
@@ -1493,11 +1461,13 @@ a.btn[hidden] {
1493
1461
  background: transparent;
1494
1462
  color: var(--mute);
1495
1463
  font: inherit;
1496
- font-size: 0.8rem;
1497
- padding: 0.25rem 0.55rem;
1498
- border-radius: 4px;
1464
+ font-size: 0.74rem;
1465
+ padding: 0.18rem 0.42rem;
1466
+ border-radius: 3px;
1499
1467
  cursor: pointer;
1500
1468
  opacity: 0.72;
1469
+ transition: color 0.12s ease, opacity 0.12s ease, border-color 0.12s ease,
1470
+ background 0.12s ease;
1501
1471
  }
1502
1472
 
1503
1473
  .module-tab:hover,
@@ -1521,6 +1491,10 @@ a.btn[hidden] {
1521
1491
  opacity: 0.78;
1522
1492
  }
1523
1493
 
1494
+ .module-tab.is-bug {
1495
+ border-color: color-mix(in srgb, var(--register) 45%, var(--line));
1496
+ }
1497
+
1524
1498
  .module-meta {
1525
1499
  margin: 0 0 0.5rem;
1526
1500
  font-size: 0.8rem;
@@ -1550,7 +1524,7 @@ a.btn[hidden] {
1550
1524
  line-height: 1.4;
1551
1525
  max-height: 14rem;
1552
1526
  overflow: auto;
1553
- border: 1px solid var(--border, #c9c4b8);
1527
+ border: 1px solid var(--line);
1554
1528
  border-radius: 4px;
1555
1529
  background: transparent;
1556
1530
  }
@@ -1561,7 +1535,7 @@ a.btn[hidden] {
1561
1535
  align-items: baseline;
1562
1536
  gap: 0.35rem 0.5rem;
1563
1537
  padding: 0.35rem 0;
1564
- border-bottom: 1px solid color-mix(in srgb, var(--border, #c9c4b8) 70%, transparent);
1538
+ border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
1565
1539
  }
1566
1540
 
1567
1541
  .task-pool-item:last-child {
@@ -1582,14 +1556,14 @@ a.btn[hidden] {
1582
1556
  font-size: 0.68rem;
1583
1557
  font-weight: 650;
1584
1558
  padding: 0.1rem 0.35rem;
1585
- border: 1px solid var(--register, #2f9e8f);
1586
- color: var(--register, #2f9e8f);
1559
+ border: 1px solid var(--register);
1560
+ color: var(--register);
1587
1561
  border-radius: 2px;
1588
1562
  }
1589
1563
 
1590
1564
  .worker-recommend {
1591
1565
  margin: 0.25rem 0 0;
1592
- color: var(--register, #2f9e8f);
1566
+ color: var(--register);
1593
1567
  }
1594
1568
 
1595
1569
  #confirmWorkersGraph {
@@ -1597,6 +1571,10 @@ a.btn[hidden] {
1597
1571
  position: relative;
1598
1572
  }
1599
1573
 
1574
+ #confirmWorkersGraph.is-locked {
1575
+ opacity: 0.85;
1576
+ }
1577
+
1600
1578
  #confirmWorkersGraph.is-busy::before {
1601
1579
  content: "";
1602
1580
  display: inline-block;
@@ -1652,8 +1630,8 @@ a.btn[hidden] {
1652
1630
  .worker-count-chip[aria-pressed="true"] {
1653
1631
  border-color: var(--register);
1654
1632
  color: var(--register);
1655
- background: rgba(47, 158, 143, 0.14);
1656
- box-shadow: inset 0 0 0 1px rgba(47, 158, 143, 0.35);
1633
+ background: color-mix(in srgb, var(--lock) 14%, transparent);
1634
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lock) 35%, transparent);
1657
1635
  }
1658
1636
 
1659
1637
  .worker-count-chip .w-label {
@@ -1677,7 +1655,7 @@ a.btn[hidden] {
1677
1655
  height: auto;
1678
1656
  margin: 0.45rem 0 0.65rem;
1679
1657
  border: 1px solid var(--line);
1680
- background: #0b1118;
1658
+ background: var(--well);
1681
1659
  overflow: visible;
1682
1660
  }
1683
1661
 
@@ -1694,7 +1672,7 @@ a.btn[hidden] {
1694
1672
  }
1695
1673
 
1696
1674
  .progress-col {
1697
- padding: 1.05rem 0.95rem 1.15rem;
1675
+ padding: 0.55rem 0.55rem 0.7rem;
1698
1676
  align-self: stretch;
1699
1677
  overflow-x: hidden;
1700
1678
  overflow-y: auto;
@@ -1703,18 +1681,20 @@ a.btn[hidden] {
1703
1681
  scroll-behavior: smooth;
1704
1682
  display: flex;
1705
1683
  flex-direction: column;
1706
- gap: 0.65rem;
1707
- background-image:
1708
- linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, transparent 14px),
1709
- linear-gradient(165deg, rgba(47, 158, 143, 0.06), transparent 42%);
1684
+ gap: 0.4rem;
1685
+ background-image: linear-gradient(
1686
+ 165deg,
1687
+ color-mix(in srgb, var(--lock) 5%, transparent),
1688
+ transparent 42%
1689
+ );
1710
1690
  }
1711
1691
 
1712
1692
  .progress-head {
1713
1693
  flex-shrink: 0;
1714
1694
  min-width: 0;
1715
1695
  max-width: 100%;
1716
- padding: 0 0.15rem 0.55rem;
1717
- border-bottom: 1px solid rgba(63, 86, 108, 0.55);
1696
+ padding: 0 0.1rem 0.35rem;
1697
+ border-bottom: 1px solid var(--line);
1718
1698
  }
1719
1699
 
1720
1700
  .deliverables-open {
@@ -1722,14 +1702,14 @@ a.btn[hidden] {
1722
1702
  width: 100%;
1723
1703
  margin: 0.45rem 0 0.15rem;
1724
1704
  font-size: 0.82rem;
1725
- background: rgba(47, 158, 143, 0.12);
1705
+ background: color-mix(in srgb, var(--lock) 12%, transparent);
1726
1706
  border-color: var(--lock);
1727
- color: #9fe8dc;
1707
+ color: var(--lock);
1728
1708
  }
1729
1709
 
1730
1710
  .deliverables-open:not(:disabled):hover,
1731
1711
  .deliverables-open:not(:disabled):focus-visible {
1732
- background: rgba(47, 158, 143, 0.24);
1712
+ background: color-mix(in srgb, var(--lock) 24%, transparent);
1733
1713
  color: var(--ink);
1734
1714
  }
1735
1715
 
@@ -1743,10 +1723,10 @@ a.btn[hidden] {
1743
1723
 
1744
1724
  .delivery-cockpit {
1745
1725
  flex-shrink: 0;
1746
- margin: 0.55rem 0 0.35rem;
1747
- padding: 0.5rem 0.55rem;
1748
- border: 1px solid rgba(63, 86, 108, 0.55);
1749
- background: rgba(8, 14, 20, 0.35);
1726
+ margin: 0.35rem 0 0.2rem;
1727
+ padding: 0.35rem 0.4rem;
1728
+ border: 1px solid var(--line);
1729
+ background: var(--inset);
1750
1730
  }
1751
1731
 
1752
1732
  .delivery-cockpit[hidden] {
@@ -1765,7 +1745,7 @@ a.btn[hidden] {
1765
1745
  .delivery-stage {
1766
1746
  margin: 0;
1767
1747
  padding: 0.15rem 0.4rem;
1768
- border: 1px solid rgba(63, 86, 108, 0.55);
1748
+ border: 1px solid var(--line);
1769
1749
  font-size: 0.68rem;
1770
1750
  letter-spacing: 0.02em;
1771
1751
  color: var(--mute);
@@ -1773,13 +1753,13 @@ a.btn[hidden] {
1773
1753
 
1774
1754
  .delivery-stage.is-partial {
1775
1755
  border-color: rgba(212, 168, 75, 0.65);
1776
- color: #e8c87a;
1756
+ color: var(--register);
1777
1757
  }
1778
1758
 
1779
1759
  .delivery-stage.is-done {
1780
- border-color: rgba(47, 158, 143, 0.75);
1781
- background: rgba(47, 158, 143, 0.14);
1782
- color: #9fe8dc;
1760
+ border-color: color-mix(in srgb, var(--lock) 75%, transparent);
1761
+ background: color-mix(in srgb, var(--lock) 14%, transparent);
1762
+ color: var(--lock);
1783
1763
  }
1784
1764
 
1785
1765
  .delivery-next {
@@ -1811,7 +1791,7 @@ a.btn[hidden] {
1811
1791
  margin: 0.35rem 0 0;
1812
1792
  padding: 1.1rem 0.95rem;
1813
1793
  border: 1px solid var(--line);
1814
- background: rgba(8, 14, 20, 0.35);
1794
+ background: var(--inset);
1815
1795
  color: var(--mute);
1816
1796
  }
1817
1797
 
@@ -1841,16 +1821,16 @@ a.btn[hidden] {
1841
1821
  }
1842
1822
 
1843
1823
  .card-title {
1844
- margin: 0 0 0.35rem;
1845
- font-size: 1.55rem;
1824
+ margin: 0 0 0.25rem;
1825
+ font-size: 1.2rem;
1846
1826
  font-weight: 700;
1847
- letter-spacing: 0.04em;
1827
+ letter-spacing: 0.03em;
1848
1828
  }
1849
1829
 
1850
1830
  .meta {
1851
- margin: 0 0 1rem;
1831
+ margin: 0 0 0.65rem;
1852
1832
  font-family: var(--font-mono);
1853
- font-size: 0.68rem;
1833
+ font-size: 0.64rem;
1854
1834
  letter-spacing: 0.12em;
1855
1835
  text-transform: uppercase;
1856
1836
  color: var(--mute);
@@ -1858,9 +1838,9 @@ a.btn[hidden] {
1858
1838
 
1859
1839
  .field {
1860
1840
  display: grid;
1861
- gap: 0.35rem;
1862
- margin-bottom: 0.8rem;
1863
- font-size: 0.92rem;
1841
+ gap: var(--field-gap);
1842
+ margin-bottom: var(--field-mb);
1843
+ font-size: 0.84rem;
1864
1844
  color: var(--ink);
1865
1845
  }
1866
1846
 
@@ -1873,8 +1853,8 @@ a.btn[hidden] {
1873
1853
  }
1874
1854
 
1875
1855
  .req-section {
1876
- margin-bottom: 1rem;
1877
- padding: 0.75rem 0.85rem 0.85rem;
1856
+ margin-bottom: 0.65rem;
1857
+ padding: 0.5rem 0.6rem 0.55rem;
1878
1858
  border: 1px solid var(--line);
1879
1859
  background: var(--plate-2);
1880
1860
  }
@@ -1933,7 +1913,7 @@ a.btn[hidden] {
1933
1913
  margin: 0;
1934
1914
  padding: 0.5rem 0.65rem 0.5rem 1.55rem;
1935
1915
  border: 1px solid var(--line);
1936
- background: rgba(8, 14, 20, 0.4);
1916
+ background: var(--inset);
1937
1917
  color: var(--ink);
1938
1918
  font-size: 0.9rem;
1939
1919
  line-height: 1.45;
@@ -1966,7 +1946,7 @@ a.btn[hidden] {
1966
1946
  width: 1.15rem;
1967
1947
  height: 1.15rem;
1968
1948
  border-radius: 2px;
1969
- background: rgba(47, 158, 143, 0.2);
1949
+ background: color-mix(in srgb, var(--lock) 20%, transparent);
1970
1950
  border: 1px solid var(--lock);
1971
1951
  color: var(--lock);
1972
1952
  font-family: var(--font-mono);
@@ -1977,14 +1957,14 @@ a.btn[hidden] {
1977
1957
 
1978
1958
  .req-structured .req-empty {
1979
1959
  margin: 0;
1980
- color: #5f7386;
1960
+ color: var(--mute);
1981
1961
  }
1982
1962
 
1983
1963
  .req-structured .req-mod {
1984
1964
  margin: 0 0 0.65rem;
1985
1965
  padding: 0.45rem 0.55rem 0.5rem;
1986
- border: 1px solid rgba(63, 86, 108, 0.55);
1987
- background: rgba(8, 14, 20, 0.35);
1966
+ border: 1px solid var(--line);
1967
+ background: var(--inset);
1988
1968
  }
1989
1969
 
1990
1970
  .req-structured .req-mod:last-child {
@@ -2119,7 +2099,7 @@ a.btn[hidden] {
2119
2099
  .result {
2120
2100
  margin-top: 1rem;
2121
2101
  padding: 0.85rem;
2122
- background: #0f1822;
2102
+ background: var(--well);
2123
2103
  border: 1px solid var(--line);
2124
2104
  color: var(--ink);
2125
2105
  white-space: pre-wrap;
@@ -2191,7 +2171,7 @@ a.btn[hidden] {
2191
2171
 
2192
2172
  .repo-chip[aria-pressed="true"] {
2193
2173
  border-color: var(--lock);
2194
- background: rgba(47, 158, 143, 0.1);
2174
+ background: color-mix(in srgb, var(--lock) 10%, transparent);
2195
2175
  }
2196
2176
 
2197
2177
  .repo-chip strong {
@@ -2265,7 +2245,7 @@ a.btn[hidden] {
2265
2245
  .architecture-slot-main {
2266
2246
  margin: 1rem 0 0.35rem;
2267
2247
  padding: 0.85rem 0.15rem 0.35rem;
2268
- border-top: 1px solid rgba(63, 86, 108, 0.55);
2248
+ border-top: 1px solid var(--line);
2269
2249
  }
2270
2250
 
2271
2251
  .architecture-slot-main .architecture-panel {
@@ -2319,7 +2299,7 @@ a.btn[hidden] {
2319
2299
  height: auto;
2320
2300
  margin: 0.45rem 0 0.65rem;
2321
2301
  border: 1px solid var(--line);
2322
- background: #0b1118;
2302
+ background: var(--well);
2323
2303
  /* Content-driven height — no iframe, no inner scrollbar. */
2324
2304
  overflow: visible;
2325
2305
  }
@@ -2400,7 +2380,7 @@ a.btn[hidden] {
2400
2380
  .deploy-target-chip[aria-pressed="true"] {
2401
2381
  border-color: var(--register);
2402
2382
  color: var(--register);
2403
- background: rgba(47, 158, 143, 0.12);
2383
+ background: color-mix(in srgb, var(--lock) 12%, transparent);
2404
2384
  }
2405
2385
 
2406
2386
  .agent-chip {
@@ -2424,7 +2404,7 @@ a.btn[hidden] {
2424
2404
 
2425
2405
  .agent-chip[aria-pressed="true"] {
2426
2406
  border-color: var(--lock);
2427
- background: rgba(47, 158, 143, 0.12);
2407
+ background: color-mix(in srgb, var(--lock) 12%, transparent);
2428
2408
  }
2429
2409
 
2430
2410
  .agent-chip.is-missing {
@@ -2457,7 +2437,7 @@ a.btn[hidden] {
2457
2437
  font-size: 0.65rem;
2458
2438
  line-height: 1.35;
2459
2439
  color: var(--ink);
2460
- background: rgba(8, 14, 20, 0.55);
2440
+ background: var(--inset-strong);
2461
2441
  border: 1px solid var(--line);
2462
2442
  word-break: break-all;
2463
2443
  white-space: pre-wrap;
@@ -2484,7 +2464,7 @@ a.btn[hidden] {
2484
2464
  font-size: 0.72rem;
2485
2465
  white-space: pre-wrap;
2486
2466
  word-break: break-all;
2487
- background: rgba(8, 14, 20, 0.55);
2467
+ background: var(--inset-strong);
2488
2468
  border: 1px solid var(--line);
2489
2469
  color: var(--ink);
2490
2470
  }
@@ -2506,30 +2486,31 @@ a.btn[hidden] {
2506
2486
  margin-top: 0;
2507
2487
  display: flex;
2508
2488
  flex-direction: column;
2509
- gap: 0.75rem;
2489
+ gap: 0.45rem;
2510
2490
  min-width: 0;
2511
2491
  max-width: 100%;
2512
2492
  }
2513
2493
 
2514
2494
  .run-block {
2515
- padding: 0.85rem 0.85rem 0.9rem;
2495
+ padding: 0.5rem 0.55rem 0.55rem;
2516
2496
  border: 1px solid var(--line);
2517
2497
  border-left: 2px solid var(--line);
2518
- background: rgba(26, 40, 54, 0.55);
2498
+ background: var(--inset);
2519
2499
  min-width: 0;
2520
2500
  max-width: 100%;
2521
2501
  overflow: hidden;
2522
2502
  box-sizing: border-box;
2503
+ transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
2523
2504
  }
2524
2505
 
2525
2506
  .run-block[data-active="true"] {
2526
2507
  border-left-color: var(--lock);
2527
- background: rgba(34, 52, 69, 0.72);
2528
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
2508
+ background: color-mix(in srgb, var(--lock) 10%, var(--inset));
2509
+ box-shadow: none;
2529
2510
  }
2530
2511
 
2531
2512
  .run-block[data-active="false"] {
2532
- opacity: 0.78;
2513
+ opacity: 0.88;
2533
2514
  }
2534
2515
 
2535
2516
  .run-block .mark {
@@ -2584,14 +2565,14 @@ a.btn[hidden] {
2584
2565
  .progress-meter {
2585
2566
  height: 3px;
2586
2567
  margin: 0 0 0.65rem;
2587
- background: rgba(63, 86, 108, 0.55);
2568
+ background: color-mix(in srgb, var(--register) 28%, transparent);
2588
2569
  overflow: hidden;
2589
2570
  }
2590
2571
 
2591
2572
  .progress-meter-fill {
2592
2573
  height: 100%;
2593
2574
  width: 0%;
2594
- background: linear-gradient(90deg, var(--lock), #4ec4b4);
2575
+ background: linear-gradient(90deg, var(--lock), color-mix(in srgb, var(--lock) 70%, #fff));
2595
2576
  transition: width 280ms ease;
2596
2577
  }
2597
2578
 
@@ -2612,17 +2593,17 @@ a.btn[hidden] {
2612
2593
  }
2613
2594
 
2614
2595
  .progress-activity {
2615
- margin: 0 0 0.7rem;
2616
- padding: 0.45rem 0.55rem;
2596
+ margin: 0 0 0.45rem;
2597
+ padding: 0.3rem 0.4rem;
2617
2598
  font-family: var(--font-mono);
2618
- font-size: 0.7rem;
2599
+ font-size: 0.65rem;
2619
2600
  letter-spacing: 0.02em;
2620
2601
  color: var(--mute);
2621
- line-height: 1.45;
2602
+ line-height: 1.4;
2622
2603
  overflow-wrap: anywhere;
2623
2604
  word-break: break-word;
2624
- border: 1px solid rgba(63, 86, 108, 0.65);
2625
- background: rgba(8, 14, 20, 0.35);
2605
+ border: 1px solid var(--line);
2606
+ background: var(--inset);
2626
2607
  max-width: 100%;
2627
2608
  box-sizing: border-box;
2628
2609
  }
@@ -2633,21 +2614,21 @@ a.btn[hidden] {
2633
2614
  padding: 0;
2634
2615
  display: flex;
2635
2616
  flex-direction: column;
2636
- gap: 0.35rem;
2617
+ gap: 0.22rem;
2637
2618
  min-width: 0;
2638
2619
  max-width: 100%;
2639
2620
  }
2640
2621
 
2641
2622
  .progress-tasks li {
2642
- font-size: 0.8rem;
2623
+ font-size: 0.76rem;
2643
2624
  display: flex;
2644
- gap: 0.55rem;
2625
+ gap: 0.4rem;
2645
2626
  align-items: flex-start;
2646
2627
  color: var(--mute);
2647
- padding: 0.4rem 0.5rem;
2628
+ padding: 0.28rem 0.4rem;
2648
2629
  border: 1px solid transparent;
2649
- background: rgba(8, 14, 20, 0.2);
2650
- line-height: 1.4;
2630
+ background: var(--inset-soft);
2631
+ line-height: 1.35;
2651
2632
  min-width: 0;
2652
2633
  max-width: 100%;
2653
2634
  box-sizing: border-box;
@@ -2657,7 +2638,7 @@ a.btn[hidden] {
2657
2638
 
2658
2639
  .progress-tasks li[data-done="true"] {
2659
2640
  color: var(--ink);
2660
- background: rgba(47, 158, 143, 0.08);
2641
+ background: color-mix(in srgb, var(--lock) 8%, transparent);
2661
2642
  }
2662
2643
 
2663
2644
  .progress-tasks li .mark {
@@ -2682,8 +2663,8 @@ a.btn[hidden] {
2682
2663
 
2683
2664
  .progress-tasks li[data-current="true"] {
2684
2665
  color: var(--ink);
2685
- border-color: rgba(224, 90, 43, 0.35);
2686
- background: rgba(224, 90, 43, 0.08);
2666
+ border-color: color-mix(in srgb, var(--register) 40%, transparent);
2667
+ background: color-mix(in srgb, var(--register) 10%, transparent);
2687
2668
  font-weight: 600;
2688
2669
  }
2689
2670
 
@@ -2692,17 +2673,17 @@ a.btn[hidden] {
2692
2673
  }
2693
2674
 
2694
2675
  .progress-log {
2695
- margin: 0.7rem 0 0;
2696
- padding: 0.55rem 0.6rem;
2697
- max-height: 7.5rem;
2676
+ margin: 0.45rem 0 0;
2677
+ padding: 0.4rem 0.45rem;
2678
+ max-height: 6rem;
2698
2679
  max-width: 100%;
2699
2680
  box-sizing: border-box;
2700
2681
  overflow: auto;
2701
2682
  font-family: var(--font-mono);
2702
- font-size: 0.65rem;
2703
- line-height: 1.4;
2683
+ font-size: 0.62rem;
2684
+ line-height: 1.35;
2704
2685
  color: var(--mute);
2705
- background: rgba(8, 14, 20, 0.55);
2686
+ background: var(--inset-strong);
2706
2687
  border: 1px solid var(--line);
2707
2688
  white-space: pre-wrap;
2708
2689
  overflow-wrap: anywhere;
@@ -2711,14 +2692,14 @@ a.btn[hidden] {
2711
2692
 
2712
2693
  .worker-lanes {
2713
2694
  display: grid;
2714
- gap: 0.65rem;
2715
- margin: 0.65rem 0 0;
2695
+ gap: 0.4rem;
2696
+ margin: 0.4rem 0 0;
2716
2697
  }
2717
2698
 
2718
2699
  .worker-lane {
2719
- padding: 0.55rem 0.6rem 0.65rem;
2700
+ padding: 0.4rem 0.45rem 0.45rem;
2720
2701
  border: 1px solid var(--line);
2721
- background: rgba(8, 14, 20, 0.35);
2702
+ background: var(--inset);
2722
2703
  min-width: 0;
2723
2704
  }
2724
2705
 
@@ -2778,7 +2759,7 @@ a.btn[hidden] {
2778
2759
  .worker-lane-meter {
2779
2760
  height: 0.28rem;
2780
2761
  margin: 0 0 0.45rem;
2781
- background: rgba(255, 255, 255, 0.06);
2762
+ background: var(--inset-strong);
2782
2763
  border: 1px solid var(--line);
2783
2764
  }
2784
2765
 
@@ -2862,9 +2843,9 @@ a.btn[hidden] {
2862
2843
  }
2863
2844
 
2864
2845
  .preview-actions .btn.confirm {
2865
- background: rgba(47, 158, 143, 0.18);
2846
+ background: color-mix(in srgb, var(--lock) 18%, transparent);
2866
2847
  border-color: var(--lock);
2867
- color: #9fe8dc;
2848
+ color: var(--lock);
2868
2849
  }
2869
2850
 
2870
2851
  .preview-actions .btn.revise-cta {
@@ -3056,7 +3037,7 @@ a.btn[hidden] {
3056
3037
  font-weight: 700;
3057
3038
  color: var(--ink);
3058
3039
  border-color: var(--lock);
3059
- background: rgba(47, 158, 143, 0.16);
3040
+ background: color-mix(in srgb, var(--lock) 16%, transparent);
3060
3041
  }
3061
3042
 
3062
3043
  .preview-panel > .hint {
@@ -3131,7 +3112,7 @@ a.btn[hidden] {
3131
3112
 
3132
3113
  .revise-version-item {
3133
3114
  border: 1px solid var(--line);
3134
- background: rgba(0, 0, 0, 0.12);
3115
+ background: var(--code-bg);
3135
3116
  padding: 0;
3136
3117
  }
3137
3118
 
@@ -3168,7 +3149,7 @@ a.btn[hidden] {
3168
3149
 
3169
3150
  .revise-version-body {
3170
3151
  padding: 0 0.65rem 0.65rem;
3171
- border-top: 1px solid rgba(63, 86, 108, 0.45);
3152
+ border-top: 1px solid var(--line);
3172
3153
  }
3173
3154
 
3174
3155
  .revise-version-fields {
@@ -3281,7 +3262,7 @@ a.btn[hidden] {
3281
3262
  font-weight: 700;
3282
3263
  color: var(--ink);
3283
3264
  border-color: var(--lock);
3284
- background: rgba(47, 158, 143, 0.16);
3265
+ background: color-mix(in srgb, var(--lock) 16%, transparent);
3285
3266
  }
3286
3267
 
3287
3268
  .revise-panel .hint {
@@ -3389,7 +3370,7 @@ a.btn[hidden] {
3389
3370
  .setup-guide-cmd {
3390
3371
  margin: 0 0 0.35rem;
3391
3372
  padding: 0.55rem 0.7rem;
3392
- background: rgba(8, 14, 20, 0.55);
3373
+ background: var(--inset-strong);
3393
3374
  border: 1px solid var(--line);
3394
3375
  color: var(--ink);
3395
3376
  font-family: var(--font-mono);
@@ -3432,7 +3413,7 @@ a.btn[hidden] {
3432
3413
  .provider-chip[aria-pressed="true"] {
3433
3414
  border-color: var(--lock);
3434
3415
  color: var(--lock);
3435
- background: rgba(47, 158, 143, 0.1);
3416
+ background: color-mix(in srgb, var(--lock) 10%, transparent);
3436
3417
  }
3437
3418
 
3438
3419
  code {