loadtoagent 1.1.0 → 1.3.2

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 (86) hide show
  1. package/README.ko.md +14 -5
  2. package/README.md +7 -0
  3. package/README.zh-CN.md +7 -0
  4. package/docs/PROVIDER-CONTRACTS.md +25 -1
  5. package/docs/UI-AUDIT-100.md +118 -0
  6. package/docs/UI-AUDIT-101-200.md +120 -0
  7. package/docs/UI-AUDIT-201-300.md +120 -0
  8. package/main.js +157 -38
  9. package/package.json +13 -4
  10. package/preload.js +13 -2
  11. package/renderer/app-agent-actions.js +125 -53
  12. package/renderer/app-bootstrap.js +54 -19
  13. package/renderer/app-dashboard.js +196 -55
  14. package/renderer/app-drawer-content.js +48 -44
  15. package/renderer/app-drawer-data.js +26 -13
  16. package/renderer/app-drawer.js +72 -54
  17. package/renderer/app-events-dialogs.js +146 -37
  18. package/renderer/app-events-filters.js +172 -13
  19. package/renderer/app-events-navigation.js +77 -30
  20. package/renderer/app-events-sessions.js +156 -9
  21. package/renderer/app-events.js +2 -1
  22. package/renderer/app-graph-model.js +20 -38
  23. package/renderer/app-graph-orchestration.js +15 -13
  24. package/renderer/app-graph-view.js +228 -113
  25. package/renderer/app-management.js +257 -0
  26. package/renderer/app-provider-visibility.js +124 -0
  27. package/renderer/app-quality.js +568 -0
  28. package/renderer/app-run-modal.js +104 -34
  29. package/renderer/app-runtime-overview.js +312 -0
  30. package/renderer/app-session-render.js +94 -37
  31. package/renderer/app-tmux-render.js +52 -44
  32. package/renderer/app.js +153 -75
  33. package/renderer/i18n-messages.js +867 -37
  34. package/renderer/i18n.js +104 -0
  35. package/renderer/index.html +154 -67
  36. package/renderer/shared.js +17 -0
  37. package/renderer/styles-agent-map.css +16 -10
  38. package/renderer/styles-cards.css +44 -18
  39. package/renderer/styles-collaboration.css +23 -23
  40. package/renderer/styles-components.css +122 -45
  41. package/renderer/styles-management.css +364 -0
  42. package/renderer/styles-onboarding.css +8 -8
  43. package/renderer/styles-overlays.css +13 -7
  44. package/renderer/styles-product.css +48 -40
  45. package/renderer/styles-quality.css +312 -0
  46. package/renderer/styles-readability.css +1040 -0
  47. package/renderer/styles-responsive-product.css +84 -12
  48. package/renderer/styles-responsive-runtime.css +25 -17
  49. package/renderer/styles-responsive-shell.css +44 -48
  50. package/renderer/styles-responsive-workflows.css +39 -5
  51. package/renderer/styles-run-composer.css +28 -23
  52. package/renderer/styles-runtime-overview.css +285 -0
  53. package/renderer/styles-settings.css +176 -16
  54. package/renderer/styles-terminal.css +374 -37
  55. package/renderer/styles-tmux.css +49 -49
  56. package/renderer/styles-workflow-map.css +362 -15
  57. package/renderer/styles-workflows.css +116 -49
  58. package/renderer/styles.css +34 -19
  59. package/renderer/terminal-agent.js +17 -13
  60. package/renderer/terminal-events.js +253 -37
  61. package/renderer/terminal-workbench.js +208 -89
  62. package/renderer/terminal.js +350 -35
  63. package/src/agentMonitor/claudeParser.js +96 -7
  64. package/src/agentMonitor/codexParser.js +59 -4
  65. package/src/agentMonitor/executionActivity.js +282 -0
  66. package/src/agentMonitor/genericParser.js +56 -13
  67. package/src/agentMonitor/hierarchy.js +17 -0
  68. package/src/agentMonitor/responseIntent.js +51 -0
  69. package/src/agentMonitor.js +21 -3
  70. package/src/agentRunner.js +66 -1
  71. package/src/attentionNotifier.js +14 -10
  72. package/src/automationMonitor.js +258 -0
  73. package/src/contracts.js +10 -1
  74. package/src/ipc/registerAgentIpc.js +9 -3
  75. package/src/ipc/registerAppIpc.js +4 -1
  76. package/src/ipc/registerTerminalIpc.js +12 -14
  77. package/src/macUpdateHelper.js +210 -0
  78. package/src/monitorWorker.js +65 -6
  79. package/src/platformPath.js +80 -0
  80. package/src/processMonitor.js +80 -22
  81. package/src/providerVisibilityStore.js +45 -0
  82. package/src/sessionIntelligence.js +261 -0
  83. package/src/terminalHost.js +453 -0
  84. package/src/terminalHostDaemon.js +61 -0
  85. package/src/terminalManager.js +218 -6
  86. package/src/updateInstaller.js +175 -0
@@ -13,10 +13,11 @@
13
13
  box-shadow: 0 0 10px rgba(76,227,154,.7);
14
14
  }
15
15
 
16
- .live-section-head>div {
16
+ .live-section-title {
17
17
  display: flex;
18
18
  align-items: center;
19
19
  gap: 11px;
20
+ min-width: 0;
20
21
  }
21
22
 
22
23
  .live-section-head .eyebrow {
@@ -46,6 +47,72 @@
46
47
  font-size: 22px;
47
48
  }
48
49
 
50
+ .live-section-tools {
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: flex-end;
54
+ gap: 14px;
55
+ min-width: 0;
56
+ margin-left: auto;
57
+ }
58
+
59
+ .live-tmux-shortcut {
60
+ flex: 0 0 auto;
61
+ min-height: 40px;
62
+ padding: 0 11px 0 10px;
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ gap: 8px;
67
+ border: 0;
68
+ border-radius: 11px;
69
+ color: #c5d8d1;
70
+ background: rgba(76,227,154,.07);
71
+ box-shadow: 0 0 0 1px rgba(76,227,154,.24),0 8px 22px rgba(0,0,0,.16);
72
+ font: inherit;
73
+ font-size: 12px;
74
+ font-weight: 700;
75
+ cursor: pointer;
76
+ transition-property: color,background-color,box-shadow,scale;
77
+ transition-duration: 150ms;
78
+ transition-timing-function: ease;
79
+ }
80
+
81
+ .live-tmux-shortcut:hover {
82
+ color: #ecfff7;
83
+ background: rgba(76,227,154,.12);
84
+ box-shadow: 0 0 0 1px rgba(76,227,154,.38),0 10px 25px rgba(0,0,0,.2);
85
+ }
86
+
87
+ .live-tmux-shortcut:active {
88
+ scale: .96;
89
+ }
90
+
91
+ .live-tmux-shortcut:focus-visible {
92
+ outline: 2px solid rgba(105,238,175,.92);
93
+ outline-offset: 3px;
94
+ }
95
+
96
+ .live-tmux-shortcut-icon {
97
+ color: #63dba0;
98
+ font-size: 15px;
99
+ line-height: 1;
100
+ }
101
+
102
+ .live-tmux-shortcut b {
103
+ min-width: 22px;
104
+ height: 22px;
105
+ padding: 0 6px;
106
+ display: inline-flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ border-radius: 999px;
110
+ color: #09140f;
111
+ background: #63dba0;
112
+ font-size: 12px;
113
+ font-variant-numeric: tabular-nums;
114
+ }
115
+
49
116
  .live-beacon {
50
117
  border: 2px solid rgba(76,227,154,.28);
51
118
  border-radius: 50%;
@@ -146,7 +213,7 @@
146
213
  .agent-node-top .provider-mark {
147
214
  width: 40px;
148
215
  height: 40px;
149
- font-size: 11px;
216
+ font-size: 12px;
150
217
  }
151
218
 
152
219
  .agent-identity {
@@ -170,11 +237,11 @@
170
237
  white-space: nowrap;
171
238
  margin-top: 4px;
172
239
  color: #7c899c;
173
- font-size: 10px;
240
+ font-size: 12px;
174
241
  }
175
242
 
176
243
  .agent-node .status-pill {
177
- font-size: 9px;
244
+ font-size: 12px;
178
245
  padding: 5px 8px;
179
246
  }
180
247
 
@@ -182,7 +249,7 @@
182
249
  display: block;
183
250
  margin-top: 17px;
184
251
  color: var(--provider);
185
- font-size: 10px;
252
+ font-size: 12px;
186
253
  font-weight: 750;
187
254
  letter-spacing: .13em;
188
255
  }
@@ -223,13 +290,13 @@
223
290
  border-radius: 6px;
224
291
  background: rgba(76,227,154,.1);
225
292
  color: #67e9a6;
226
- font-size: 10px;
293
+ font-size: 12px;
227
294
  font-style: normal;
228
295
  }
229
296
 
230
297
  .agent-current b {
231
298
  color: #76e8ac;
232
- font-size: 11px;
299
+ font-size: 12px;
233
300
  }
234
301
 
235
302
  .agent-current>strong {
@@ -258,7 +325,7 @@
258
325
  .agent-node-metrics small {
259
326
  display: block;
260
327
  color: #6f7c8f;
261
- font-size: 9px;
328
+ font-size: 12px;
262
329
  }
263
330
 
264
331
  .agent-node-metrics b {
@@ -292,7 +359,7 @@
292
359
  border-top: 1px solid #192230;
293
360
  background: rgba(5,8,13,.5);
294
361
  color: #748195;
295
- font-size: 10px;
362
+ font-size: 12px;
296
363
  }
297
364
 
298
365
  .agent-node-footer button {
@@ -302,7 +369,7 @@
302
369
  border-radius: 7px;
303
370
  background: transparent;
304
371
  color: #aab7c7;
305
- font-size: 10px;
372
+ font-size: 12px;
306
373
  cursor: pointer;
307
374
  }
308
375
 
@@ -361,7 +428,7 @@
361
428
  .agent-flow-lane-head .provider-mark {
362
429
  width: 32px;
363
430
  height: 32px;
364
- font-size: 8px;
431
+ font-size: 12px;
365
432
  }
366
433
 
367
434
  .agent-flow-lane-head>span:nth-child(2) {
@@ -473,7 +540,7 @@
473
540
  white-space: nowrap;
474
541
  margin-top: 3px;
475
542
  color: #667587;
476
- font-size: 11px;
543
+ font-size: 12px;
477
544
  }
478
545
 
479
546
  .agent-flow-lane-head em {
@@ -483,7 +550,7 @@
483
550
  color: #65dba9;
484
551
  font-style: normal;
485
552
  font-weight: 750;
486
- font-size: 11px;
553
+ font-size: 12px;
487
554
  }
488
555
 
489
556
  .agent-flow-copy small {
@@ -495,7 +562,7 @@
495
562
  color: var(--provider);
496
563
  font-weight: 700;
497
564
  letter-spacing: .05em;
498
- font-size: 10px;
565
+ font-size: 12px;
499
566
  }
500
567
 
501
568
  .agent-flow-copy b {
@@ -516,7 +583,7 @@
516
583
  margin-top: 4px;
517
584
  color: #5f6f82;
518
585
  font-style: normal;
519
- font-size: 11px;
586
+ font-size: 12px;
520
587
  }
521
588
 
522
589
  .agent-flow-provider small {
@@ -525,7 +592,7 @@
525
592
  color: #718092;
526
593
  text-overflow: ellipsis;
527
594
  white-space: nowrap;
528
- font-size: 11px;
595
+ font-size: 12px;
529
596
  }
530
597
 
531
598
  .agent-flow-provider i {
@@ -538,7 +605,7 @@
538
605
  font-weight: 800;
539
606
  width: 27px;
540
607
  height: 23px;
541
- font-size: 9px;
608
+ font-size: 12px;
542
609
  }
543
610
 
544
611
  .agent-flow-more {
@@ -549,7 +616,7 @@
549
616
  color: #7894a1;
550
617
  cursor: pointer;
551
618
  height: 40px;
552
- font-size: 11px;
619
+ font-size: 12px;
553
620
  }
554
621
 
555
622
  .agent-relation-block>header b {
@@ -559,7 +626,7 @@
559
626
 
560
627
  .agent-relation-block>header span {
561
628
  color: #657587;
562
- font-size: 11px;
629
+ font-size: 12px;
563
630
  }
564
631
 
565
632
  .agent-relation-empty {
@@ -569,7 +636,7 @@
569
636
  padding: 14px;
570
637
  color: #596a7d;
571
638
  text-align: center;
572
- font-size: 11px;
639
+ font-size: 12px;
573
640
  }
574
641
 
575
642
  .agent-relation-block .agent-flow-copy b {
@@ -577,7 +644,7 @@
577
644
  }
578
645
 
579
646
  .agent-relation-block .agent-flow-copy em {
580
- font-size: 11px;
647
+ font-size: 12px;
581
648
  }
582
649
 
583
650
  .workflow-origin-icon {
@@ -672,7 +739,7 @@
672
739
  background: color-mix(in srgb,var(--command-accent) 10%,#111c22);
673
740
  color: var(--command-accent);
674
741
  font-family: "Cascadia Code",Consolas,monospace;
675
- font-size: 11px;
742
+ font-size: 12px;
676
743
  font-weight: 800;
677
744
  }
678
745
 
@@ -691,7 +758,7 @@
691
758
  white-space: nowrap;
692
759
  margin-top: 4px;
693
760
  color: #7f918f;
694
- font-size: 10px;
761
+ font-size: 12px;
695
762
  }
696
763
 
697
764
  .agent-command-panel header>i {
@@ -755,7 +822,7 @@
755
822
 
756
823
  .agent-command-target>span {
757
824
  color: #849493;
758
- font-size: 10px;
825
+ font-size: 12px;
759
826
  }
760
827
 
761
828
  .agent-command-target select {
@@ -766,7 +833,7 @@
766
833
  border-radius: 8px;
767
834
  background: #0b1518;
768
835
  color: #b8ccc8;
769
- font-size: 10px;
836
+ font-size: 12px;
770
837
  outline: none;
771
838
  }
772
839
 
@@ -786,7 +853,7 @@
786
853
  border-radius: 10px;
787
854
  background: #071013;
788
855
  color: #dbe9e6;
789
- font-size: 11px;
856
+ font-size: 12px;
790
857
  line-height: 1.5;
791
858
  outline: none;
792
859
  transition: border-color var(--motion-fast) ease,box-shadow var(--motion-medium) ease;
@@ -817,7 +884,7 @@
817
884
  min-width: 0;
818
885
  margin-right: auto;
819
886
  color: #647672;
820
- font-size: 9px;
887
+ font-size: 12px;
821
888
  line-height: 1.4;
822
889
  }
823
890
 
@@ -828,7 +895,7 @@
828
895
  border-radius: 8px;
829
896
  background: #111d1f;
830
897
  color: #9cc9bd;
831
- font-size: 10px;
898
+ font-size: 12px;
832
899
  font-weight: 650;
833
900
  cursor: pointer;
834
901
  transition: transform var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,color var(--motion-fast) ease;
@@ -864,7 +931,7 @@
864
931
  display: block;
865
932
  margin-top: 5px;
866
933
  color: #6f9f91;
867
- font-size: 8px;
934
+ font-size: 12px;
868
935
  letter-spacing: .01em;
869
936
  }
870
937
 
@@ -875,7 +942,7 @@
875
942
  text-overflow: ellipsis;
876
943
  white-space: nowrap;
877
944
  color: #71879a;
878
- font-size: 8px;
945
+ font-size: 12px;
879
946
  }
880
947
 
881
948
  .agent-flow-copy .agent-flow-outcome {
@@ -887,14 +954,14 @@
887
954
  padding-top: 5px;
888
955
  border-top: 1px solid rgba(92,132,145,.12);
889
956
  color: #9fb1bf;
890
- font-size: 9px;
957
+ font-size: 12px;
891
958
  }
892
959
 
893
960
  .agent-flow-copy .agent-flow-outcome b {
894
961
  display: inline;
895
962
  margin-right: 6px;
896
963
  color: #67dfb0;
897
- font-size: 8px;
964
+ font-size: 12px;
898
965
  }
899
966
 
900
967
  .agent-flow-copy .agent-flow-outcome.done b {
@@ -923,7 +990,7 @@
923
990
  .child-session .agent-flow-kicker small {
924
991
  margin: 0;
925
992
  color: var(--provider);
926
- font-size: 9px;
993
+ font-size: 12px;
927
994
  font-weight: 800;
928
995
  letter-spacing: .08em;
929
996
  }
@@ -931,7 +998,7 @@
931
998
  .child-session .agent-flow-kicker time {
932
999
  flex: 0 0 auto;
933
1000
  color: #60727e;
934
- font-size: 8px;
1001
+ font-size: 12px;
935
1002
  }
936
1003
 
937
1004
  .child-session .agent-flow-agent {
@@ -951,7 +1018,7 @@
951
1018
  border-radius: 5px;
952
1019
  background: color-mix(in srgb,var(--provider) 13%,#17212b);
953
1020
  color: var(--provider);
954
- font-size: 6px;
1021
+ font-size: 12px;
955
1022
  font-style: normal;
956
1023
  font-weight: 850;
957
1024
  }
@@ -959,7 +1026,7 @@
959
1026
  .child-session .agent-flow-agent strong {
960
1027
  flex: 0 0 auto;
961
1028
  color: #b9c7cf;
962
- font-size: 9px;
1029
+ font-size: 12px;
963
1030
  }
964
1031
 
965
1032
  .child-session .agent-flow-agent small {
@@ -967,7 +1034,7 @@
967
1034
  margin: 0;
968
1035
  overflow: hidden;
969
1036
  color: #627581;
970
- font-size: 8px;
1037
+ font-size: 12px;
971
1038
  font-weight: 500;
972
1039
  letter-spacing: 0;
973
1040
  text-overflow: ellipsis;
@@ -985,7 +1052,7 @@
985
1052
  .child-session .agent-flow-assignment small {
986
1053
  margin: 0 0 4px;
987
1054
  color: #6e8791;
988
- font-size: 8px;
1055
+ font-size: 12px;
989
1056
  letter-spacing: .04em;
990
1057
  }
991
1058
 
@@ -993,7 +1060,7 @@
993
1060
  display: -webkit-box;
994
1061
  overflow: hidden;
995
1062
  color: #aebdc5;
996
- font-size: 9px;
1063
+ font-size: 12px;
997
1064
  font-weight: 520;
998
1065
  line-height: 1.45;
999
1066
  white-space: normal;
@@ -1012,7 +1079,7 @@
1012
1079
  border-radius: 8px;
1013
1080
  background: rgba(109,174,204,.055);
1014
1081
  color: #c1d0d8;
1015
- font-size: 10px;
1082
+ font-size: 12px;
1016
1083
  white-space: normal;
1017
1084
  }
1018
1085
 
@@ -1021,7 +1088,7 @@
1021
1088
  flex: 0 0 auto;
1022
1089
  margin: 0;
1023
1090
  color: #79dfb6;
1024
- font-size: 8px;
1091
+ font-size: 12px;
1025
1092
  }
1026
1093
 
1027
1094
  .child-session .agent-flow-outcome.done b {
@@ -1035,7 +1102,7 @@
1035
1102
  .child-session .agent-flow-provider .status-pill {
1036
1103
  margin: 0;
1037
1104
  padding: 4px 6px;
1038
- font-size: 8px;
1105
+ font-size: 12px;
1039
1106
  letter-spacing: 0;
1040
1107
  text-transform: none;
1041
1108
  }
@@ -1063,7 +1130,7 @@
1063
1130
  display: block;
1064
1131
  overflow: hidden;
1065
1132
  color: #7b9099;
1066
- font-size: 8px;
1133
+ font-size: 12px;
1067
1134
  text-overflow: ellipsis;
1068
1135
  white-space: nowrap;
1069
1136
  }
@@ -1079,7 +1146,7 @@
1079
1146
  .workflow-metric-grid em {
1080
1147
  margin-left: 3px;
1081
1148
  color: #73918d;
1082
- font-size: 8px;
1149
+ font-size: 12px;
1083
1150
  font-style: normal;
1084
1151
  }
1085
1152
 
@@ -1114,7 +1181,7 @@
1114
1181
  .child-session .agent-flow-provider em {
1115
1182
  max-width: 76px;
1116
1183
  color: #607884;
1117
- font-size: 7px;
1184
+ font-size: 12px;
1118
1185
  font-style: normal;
1119
1186
  line-height: 1.3;
1120
1187
  text-align: right;
@@ -1124,7 +1191,7 @@
1124
1191
  display: block;
1125
1192
  margin-top: 9px;
1126
1193
  color: #6f9f9a;
1127
- font-size: 8px;
1194
+ font-size: 12px;
1128
1195
  font-weight: 750;
1129
1196
  text-align: right;
1130
1197
  }
@@ -1157,7 +1224,7 @@
1157
1224
  .agent-flow-provider .execution-mode-badge {
1158
1225
  margin-bottom: 2px;
1159
1226
  padding: 3px 5px;
1160
- font-size: 7px;
1227
+ font-size: 12px;
1161
1228
  }
1162
1229
 
1163
1230
  .agent-node-top .execution-mode-badge {
@@ -1174,7 +1241,7 @@
1174
1241
  gap: 6px;
1175
1242
  margin-top: 7px;
1176
1243
  color: #728695;
1177
- font-size: 9px;
1244
+ font-size: 12px;
1178
1245
  line-height: 1.4;
1179
1246
  }
1180
1247
 
@@ -1200,7 +1267,7 @@
1200
1267
  min-width: 0;
1201
1268
  }
1202
1269
 
1203
- .live-section-head>p {
1270
+ .live-section-description {
1204
1271
  margin: 0;
1205
1272
  text-align: right;
1206
1273
  max-width: 660px;
@@ -30,11 +30,23 @@
30
30
 
31
31
  .sidebar>.workspace-section {
32
32
  flex: none;
33
+ width: 100%;
34
+ min-width: 0;
33
35
  overflow: visible;
34
36
  }
35
37
 
36
38
  .sidebar>.workspace-section .workspace-list {
37
- max-height: 180px;
39
+ width: 100%;
40
+ min-width: 0;
41
+ max-height: none;
42
+ overflow: visible;
43
+ }
44
+
45
+ body[data-current-view="runtime"] .sidebar>.workspace-section,
46
+ body[data-current-view="terminal"] .sidebar>.workspace-section,
47
+ body[data-current-view="tmux"] .sidebar>.workspace-section,
48
+ body[data-current-view="settings"] .sidebar>.workspace-section {
49
+ display: none;
38
50
  }
39
51
 
40
52
  .brand {
@@ -131,7 +143,7 @@
131
143
  height: 100vh;
132
144
  display: flex;
133
145
  flex-direction: column;
134
- background: linear-gradient(180deg,rgba(14,18,28,.98),rgba(9,12,19,.98));
146
+ background: linear-gradient(180deg,#0a111a,#070c13 72%,#060a10);
135
147
  border-right: 1px solid var(--line);
136
148
  overflow-x: hidden;
137
149
  overflow-y: auto;
@@ -150,13 +162,13 @@
150
162
  color: #657187;
151
163
  font-weight: 700;
152
164
  letter-spacing: .18em;
153
- font-size: 9px;
165
+ font-size: 12px;
154
166
  }
155
167
 
156
168
  .nav-group-label {
157
169
  margin: 18px 10px 6px;
158
170
  color: #718096;
159
- font-size: 11px;
171
+ font-size: 12px;
160
172
  font-weight: 700;
161
173
  letter-spacing: .08em;
162
174
  }
@@ -183,7 +195,7 @@ body {
183
195
  background: #101923;
184
196
  color: #7f929d;
185
197
  font-family: "Geist Mono","Cascadia Code",Consolas,monospace;
186
- font-size: 8px;
198
+ font-size: 12px;
187
199
  font-weight: 700;
188
200
  letter-spacing: .02em;
189
201
  white-space: nowrap;
@@ -202,13 +214,13 @@ html {
202
214
 
203
215
  :root {
204
216
  color-scheme: dark;
205
- --bg: #070910;
206
- --panel: #0d111a;
207
- --panel-2: #111722;
208
- --panel-3: #151c28;
209
- --line: #202838;
210
- --line-soft: #171e2b;
211
- --text: #f4f7fb;
217
+ --bg: #060a10;
218
+ --panel: #0b121a;
219
+ --panel-2: #101923;
220
+ --panel-3: #15212c;
221
+ --line: #263643;
222
+ --line-soft: #192630;
223
+ --text: #f4f8fa;
212
224
  --cyan: #59d8ff;
213
225
  --green: #4ce39a;
214
226
  --amber: #f6bd55;
@@ -220,8 +232,8 @@ html {
220
232
  --motion-slow: 440ms;
221
233
  --motion-ease: cubic-bezier(.22,1,.36,1);
222
234
  --motion-standard: cubic-bezier(.2,.8,.2,1);
223
- --muted: #aab6c5;
224
- --dim: #8794a6;
235
+ --muted: #b7c3cc;
236
+ --dim: #93a3af;
225
237
  --focus: #8ae8ff;
226
238
  }
227
239
 
@@ -230,7 +242,7 @@ html {
230
242
  font-weight: 760;
231
243
  letter-spacing: .17em;
232
244
  color: #8d9bad;
233
- font-size: 11px;
245
+ font-size: 12px;
234
246
  }
235
247
 
236
248
  .nav-item b {
@@ -240,27 +252,27 @@ html {
240
252
  border-radius: 10px;
241
253
  background: #1c2431;
242
254
  color: #aeb9c7;
243
- font-size: 11px;
255
+ font-size: 12px;
244
256
  }
245
257
 
246
258
  .sidebar-footer strong {
247
259
  display: block;
248
260
  color: #aeb9c7;
249
- font-size: 11px;
261
+ font-size: 12px;
250
262
  }
251
263
 
252
264
  .sidebar-footer small {
253
265
  display: block;
254
266
  margin-top: 3px;
255
267
  color: #8795a6;
256
- font-size: 10px;
268
+ font-size: 12px;
257
269
  }
258
270
 
259
271
  .app-shell {
260
272
  height: 100vh;
261
273
  display: grid;
262
274
  grid-template-columns: var(--sidebar) minmax(0,1fr);
263
- background: radial-gradient(circle at 76% -12%,rgba(58,115,160,.16),transparent 35%),var(--bg);
275
+ background: radial-gradient(circle at 76% -12%,rgba(46,151,129,.12),transparent 34%),linear-gradient(180deg,#070b12,var(--bg));
264
276
  max-width: 100%;
265
277
  min-width: 0;
266
278
  }
@@ -268,10 +280,13 @@ html {
268
280
  .main-stage {
269
281
  height: 100vh;
270
282
  overflow: auto;
283
+ overflow-anchor: none;
284
+ overscroll-behavior: contain;
271
285
  scrollbar-color: #283244 transparent;
272
286
  padding: 28px clamp(24px,2.5vw,44px) 64px;
273
287
  max-width: 100%;
274
288
  min-width: 0;
289
+ background: linear-gradient(180deg,rgba(9,15,23,.28),rgba(6,10,16,.08));
275
290
  }
276
291
 
277
292
  .topbar>div {