@cccarv82/freya 3.4.1 → 3.5.1

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.
package/cli/web-ui.css CHANGED
@@ -6,54 +6,69 @@
6
6
  :root {
7
7
  --radius: 16px;
8
8
  --radius2: 12px;
9
- --shadow: 0 20px 60px rgba(16, 24, 40, .08);
10
- --shadow2: 0 8px 30px rgba(16, 24, 40, .04);
11
- --shadow-hover: 0 12px 40px rgba(16, 24, 40, .08);
12
- --ring: 0 0 0 4px rgba(37, 99, 235, .18);
13
- --glass-bg: rgba(255, 255, 255, 0.4);
14
- --glass-border: rgba(255, 255, 255, 0.3);
15
-
16
- /* Warm cream palette (light-first) */
17
- --bg: #fdfbf7;
18
- --paper: rgba(255, 255, 255, 0.75);
19
- --paper2: rgba(255, 255, 255, 0.5);
20
- --line: rgba(30, 41, 59, .06);
21
- --line2: rgba(30, 41, 59, .12);
22
- --text: #1e293b;
23
- --muted: rgba(30, 41, 59, .74);
24
- --faint: rgba(30, 41, 59, .50);
25
-
26
- --accent: #f97316;
27
- --primary: #3b82f6;
28
- --chip: rgba(59, 130, 246, .10);
29
- --chip2: rgba(249, 115, 22, .12);
9
+ --radius3: 8px;
10
+ --shadow: 0 4px 24px rgba(0, 0, 0, .06);
11
+ --shadow2: 0 2px 12px rgba(0, 0, 0, .04);
12
+ --shadow-hover: 0 8px 32px rgba(0, 0, 0, .08);
13
+ --ring: 0 0 0 3px rgba(99, 102, 241, .16);
14
+ --glass-bg: rgba(255, 255, 255, 0.85);
15
+ --glass-border: rgba(0, 0, 0, .06);
16
+
17
+ /* Pastel light palette */
18
+ --bg: #f8f8fc;
19
+ --bg2: #f0f0f6;
20
+ --paper: #ffffff;
21
+ --paper2: #fafafc;
22
+ --line: rgba(0, 0, 0, .06);
23
+ --line2: rgba(0, 0, 0, .10);
24
+ --text: #1a1a2e;
25
+ --muted: #64648c;
26
+ --faint: #9898b0;
27
+
28
+ --accent: #e8856c;
29
+ --primary: #6366f1;
30
+ --chip: rgba(99, 102, 241, .08);
31
+ --chip2: rgba(232, 133, 108, .10);
32
+
33
+ /* Pastel semantic colors */
34
+ --pastel-green: #a8d8b9;
35
+ --pastel-blue: #a5b4fc;
36
+ --pastel-coral: #f0b4a8;
37
+ --pastel-gold: #f0d98c;
38
+ --pastel-lavender: #c4b5fd;
39
+ --pastel-mint: #86efac;
40
+ --pastel-rose: #fda4af;
41
+ --pastel-sky: #7dd3fc;
30
42
 
31
43
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
32
44
  --sans: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
33
45
  --display: 'Outfit', var(--sans);
34
46
 
35
47
  --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
48
+ --bounce: cubic-bezier(0.16, 1, 0.3, 1);
36
49
  }
37
50
 
38
51
  [data-theme="dark"] {
39
- --bg: #0f1115;
40
- --paper: rgba(20, 22, 26, 0.65);
41
- --paper2: rgba(30, 33, 39, 0.5);
52
+ --bg: #111118;
53
+ --bg2: #18182a;
54
+ --paper: #1e1e2e;
55
+ --paper2: #252538;
42
56
  --line: rgba(255, 255, 255, .06);
43
- --line2: rgba(255, 255, 255, .12);
44
- --text: #f1f5f9;
45
- --muted: rgba(241, 245, 249, .70);
46
- --faint: rgba(241, 245, 249, .45);
47
- --chip: rgba(45, 212, 191, .15);
48
- --chip2: rgba(56, 189, 248, .15);
49
- --accent: #2dd4bf;
50
- --primary: #38bdf8;
51
-
52
- --glass-bg: rgba(20, 22, 26, 0.4);
53
- --glass-border: rgba(255, 255, 255, 0.05);
54
- --shadow: 0 20px 60px rgba(0, 0, 0, .4);
55
- --shadow2: 0 8px 30px rgba(0, 0, 0, .3);
56
- --shadow-hover: 0 12px 40px rgba(0, 0, 0, .5);
57
+ --line2: rgba(255, 255, 255, .10);
58
+ --text: #e8e8f0;
59
+ --muted: #a0a0bc;
60
+ --faint: #6e6e88;
61
+ --chip: rgba(129, 140, 248, .15);
62
+ --chip2: rgba(251, 146, 122, .12);
63
+ --accent: #fb9a82;
64
+ --primary: #818cf8;
65
+
66
+ --glass-bg: rgba(30, 30, 46, 0.85);
67
+ --glass-border: rgba(255, 255, 255, .06);
68
+ --shadow: 0 4px 24px rgba(0, 0, 0, .35);
69
+ --shadow2: 0 2px 12px rgba(0, 0, 0, .25);
70
+ --shadow-hover: 0 8px 32px rgba(0, 0, 0, .4);
71
+ --bounce: cubic-bezier(0.16, 1, 0.3, 1);
57
72
  }
58
73
 
59
74
  * {
@@ -112,7 +127,7 @@ body {
112
127
  }
113
128
 
114
129
  [data-theme="dark"] body {
115
- background: radial-gradient(800px 360px at 65% 10%, rgba(45, 212, 191, .10), transparent 55%), var(--bg);
130
+ background: radial-gradient(800px 360px at 65% 10%, rgba(99, 102, 241, .06), transparent 55%), var(--bg);
116
131
  }
117
132
 
118
133
  .app {
@@ -145,16 +160,6 @@ body {
145
160
  }
146
161
  }
147
162
 
148
- @media (max-width: 860px) {
149
- .shell {
150
- grid-template-columns: 1fr;
151
- }
152
-
153
- .rail {
154
- display: none;
155
- }
156
- }
157
-
158
163
  /* LEFT RAIL */
159
164
  .rail {
160
165
  background: var(--paper);
@@ -162,8 +167,18 @@ body {
162
167
  display: flex;
163
168
  flex-direction: column;
164
169
  align-items: center;
165
- padding: 16px 10px;
166
- gap: 14px;
170
+ padding: 18px 10px;
171
+ gap: 6px;
172
+ }
173
+
174
+ @media (max-width: 860px) {
175
+ .shell {
176
+ grid-template-columns: 1fr;
177
+ }
178
+
179
+ .rail {
180
+ display: none !important;
181
+ }
167
182
  }
168
183
 
169
184
  .railTop {
@@ -177,13 +192,14 @@ body {
177
192
  width: 38px;
178
193
  height: 38px;
179
194
  border-radius: 14px;
180
- background: rgba(45, 212, 191, .18);
181
- color: var(--text);
195
+ background: var(--primary);
196
+ color: #fff;
182
197
  display: grid;
183
198
  place-items: center;
184
199
  font-weight: 700;
185
200
  font-size: 14px;
186
- border: 1px solid var(--line2);
201
+ border: none;
202
+ box-shadow: 0 2px 8px rgba(99, 102, 241, .25);
187
203
  }
188
204
 
189
205
  .railNav {
@@ -209,15 +225,19 @@ body {
209
225
  }
210
226
 
211
227
  .railBtn.active {
212
- background: var(--glass-bg);
213
- border-color: var(--glass-border);
228
+ background: var(--chip);
229
+ border-color: transparent;
214
230
  color: var(--primary);
215
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
216
231
  }
217
232
 
218
233
  .railBtn:hover:not(.active) {
219
- background: rgba(0, 0, 0, 0.03);
234
+ background: var(--bg2);
220
235
  color: var(--text);
236
+ transform: scale(1.06);
237
+ }
238
+
239
+ .railBtn:active {
240
+ transform: scale(0.92);
221
241
  }
222
242
 
223
243
  [data-theme="dark"] .railBtn:hover:not(.active) {
@@ -344,7 +364,7 @@ body {
344
364
  border-radius: 8px;
345
365
  display: grid;
346
366
  place-items: center;
347
- background: rgba(45, 212, 191, .18);
367
+ background: rgba(99, 102, 241, .10);
348
368
  border: 1px solid var(--line);
349
369
  color: var(--primary);
350
370
  font-weight: 800;
@@ -403,9 +423,9 @@ body {
403
423
  .spark {
404
424
  width: 10px;
405
425
  height: 10px;
406
- border-radius: 4px;
407
- background: linear-gradient(135deg, var(--accent), var(--primary));
408
- box-shadow: 0 0 0 6px rgba(45, 212, 191, .10);
426
+ border-radius: 50%;
427
+ background: linear-gradient(135deg, var(--pastel-lavender), var(--primary));
428
+ box-shadow: 0 0 0 5px rgba(99, 102, 241, .10);
409
429
  }
410
430
 
411
431
  .chip {
@@ -430,8 +450,9 @@ body {
430
450
  .chip.clickable:hover {
431
451
  background: var(--primary);
432
452
  color: white;
453
+ border-color: var(--primary);
433
454
  transform: translateY(-1px);
434
- box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
455
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.2);
435
456
  }
436
457
 
437
458
  /* Documentation Styles */
@@ -524,9 +545,9 @@ body {
524
545
  font-size: 12px;
525
546
  padding: 7px 10px;
526
547
  border-radius: 999px;
527
- border: 1px solid var(--line);
528
- background: rgba(0, 0, 0, .22);
529
- color: var(--faint);
548
+ border: 1px solid var(--line2);
549
+ background: var(--bg2);
550
+ color: var(--muted);
530
551
  }
531
552
 
532
553
  .pill {
@@ -613,9 +634,7 @@ body {
613
634
  .promptBar {
614
635
  width: 100%;
615
636
  background: var(--paper);
616
- backdrop-filter: blur(16px);
617
- -webkit-backdrop-filter: blur(16px);
618
- border: 1px solid var(--glass-border);
637
+ border: 1px solid var(--line2);
619
638
  border-radius: var(--radius);
620
639
  padding: 16px;
621
640
  display: flex;
@@ -627,7 +646,7 @@ body {
627
646
 
628
647
  .promptBar:focus-within {
629
648
  box-shadow: var(--shadow-hover);
630
- border-color: var(--line2);
649
+ border-color: var(--primary);
631
650
  }
632
651
 
633
652
  .promptMeta {
@@ -768,9 +787,9 @@ body {
768
787
  }
769
788
 
770
789
  .miniCard:hover {
771
- background: linear-gradient(180deg, var(--paper), var(--paper2));
772
- border-color: rgba(45, 212, 191, 0.4);
773
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(45, 212, 191, 0.1);
790
+ background: var(--paper);
791
+ border-color: rgba(99, 102, 241, 0.3);
792
+ box-shadow: var(--shadow-hover);
774
793
  transform: translateY(-2px);
775
794
  }
776
795
 
@@ -778,7 +797,7 @@ body {
778
797
  width: 30px;
779
798
  height: 30px;
780
799
  border-radius: 50%;
781
- background: rgba(45, 212, 191, 0.15);
800
+ background: var(--chip);
782
801
  color: var(--primary);
783
802
  display: flex;
784
803
  align-items: center;
@@ -819,13 +838,19 @@ body {
819
838
  }
820
839
 
821
840
  .iconBtn {
822
- border: 1px solid var(--line);
823
- background: rgba(0, 0, 0, .25);
841
+ border: 1px solid var(--line2);
842
+ background: var(--bg2);
824
843
  color: var(--muted);
825
844
  border-radius: 10px;
826
845
  padding: 2px 8px;
827
846
  cursor: pointer;
828
847
  font-size: 12px;
848
+ transition: var(--transition);
849
+ }
850
+
851
+ .iconBtn:hover {
852
+ background: var(--paper);
853
+ color: var(--text);
829
854
  }
830
855
 
831
856
  .reportBody {
@@ -841,7 +866,7 @@ body {
841
866
  border: 1px solid var(--line);
842
867
  border-radius: 12px;
843
868
  padding: 12px;
844
- background: rgba(0, 0, 0, .18);
869
+ background: var(--bg2);
845
870
  min-height: 120px;
846
871
  outline: none;
847
872
  white-space: pre-wrap;
@@ -928,7 +953,7 @@ h1 {
928
953
  justify-content: space-between;
929
954
  padding: 12px 12px;
930
955
  border-bottom: 1px solid var(--line);
931
- background: linear-gradient(180deg, var(--paper2), var(--paper));
956
+ background: var(--bg2);
932
957
  }
933
958
 
934
959
  .panelHead b {
@@ -954,11 +979,7 @@ h1 {
954
979
  margin-top: 14px;
955
980
  border: 1px dashed var(--line2);
956
981
  border-radius: var(--radius);
957
- background: rgba(255, 250, 242, .42);
958
- }
959
-
960
- [data-theme="dark"] .devDrawer {
961
- background: rgba(0, 0, 0, .18);
982
+ background: var(--bg2);
962
983
  }
963
984
 
964
985
  .devDrawer>summary {
@@ -1001,9 +1022,8 @@ input {
1001
1022
  width: 100%;
1002
1023
  padding: 11px 14px;
1003
1024
  border-radius: var(--radius2);
1004
- border: 1px solid var(--line);
1005
- background: rgba(255, 255, 255, 0.4);
1006
- backdrop-filter: blur(4px);
1025
+ border: 1px solid var(--line2);
1026
+ background: var(--paper);
1007
1027
  color: var(--text);
1008
1028
  outline: none;
1009
1029
  transition: var(--transition);
@@ -1011,32 +1031,32 @@ input {
1011
1031
  }
1012
1032
 
1013
1033
  [data-theme="dark"] input {
1014
- background: rgba(0, 0, 0, .22);
1034
+ background: var(--bg2);
1015
1035
  }
1016
1036
 
1017
1037
  input:focus {
1018
1038
  box-shadow: var(--ring);
1019
- border-color: rgba(45, 212, 191, .35);
1039
+ border-color: var(--primary);
1020
1040
  }
1021
1041
 
1022
1042
  textarea {
1023
1043
  width: 100%;
1024
1044
  padding: 10px 12px;
1025
1045
  border-radius: 12px;
1026
- border: 1px solid var(--line);
1027
- background: rgba(0, 0, 0, .22);
1046
+ border: 1px solid var(--line2);
1047
+ background: var(--paper);
1028
1048
  color: var(--text);
1029
1049
  outline: none;
1030
1050
  resize: vertical;
1031
1051
  }
1032
1052
 
1033
1053
  [data-theme="dark"] textarea {
1034
- background: rgba(0, 0, 0, .22);
1054
+ background: var(--bg2);
1035
1055
  }
1036
1056
 
1037
1057
  textarea:focus {
1038
1058
  box-shadow: var(--ring);
1039
- border-color: rgba(45, 212, 191, .35);
1059
+ border-color: var(--primary);
1040
1060
  }
1041
1061
 
1042
1062
  .row {
@@ -1065,10 +1085,9 @@ textarea:focus {
1065
1085
 
1066
1086
  /* BUTTONS */
1067
1087
  .btn {
1068
- border: 1px solid var(--line);
1088
+ border: 1px solid var(--line2);
1069
1089
  border-radius: var(--radius2);
1070
- background: rgba(255, 255, 255, 0.4);
1071
- backdrop-filter: blur(4px);
1090
+ background: var(--paper);
1072
1091
  padding: 10px 14px;
1073
1092
  cursor: pointer;
1074
1093
  font-weight: 600;
@@ -1077,7 +1096,7 @@ textarea:focus {
1077
1096
  }
1078
1097
 
1079
1098
  [data-theme="dark"] .btn {
1080
- background: rgba(0, 0, 0, 0.2);
1099
+ background: var(--paper2);
1081
1100
  }
1082
1101
 
1083
1102
  .btn:hover {
@@ -1087,6 +1106,16 @@ textarea:focus {
1087
1106
  transform: translateY(-1px);
1088
1107
  }
1089
1108
 
1109
+ .btn:active {
1110
+ transform: translateY(0) scale(0.97);
1111
+ box-shadow: none;
1112
+ }
1113
+
1114
+ .btn:focus-visible {
1115
+ box-shadow: var(--ring);
1116
+ outline: none;
1117
+ }
1118
+
1090
1119
  .btn.small {
1091
1120
  padding: 7px 10px;
1092
1121
  border-radius: 10px;
@@ -1094,9 +1123,21 @@ textarea:focus {
1094
1123
  }
1095
1124
 
1096
1125
  .btn.primary {
1097
- background: rgba(45, 212, 191, .18);
1098
- border-color: rgba(45, 212, 191, .45);
1099
- color: rgba(45, 212, 191, .95);
1126
+ background: var(--primary);
1127
+ border-color: var(--primary);
1128
+ color: #fff;
1129
+ box-shadow: 0 2px 8px rgba(99, 102, 241, .2);
1130
+ }
1131
+
1132
+ .btn.primary:hover {
1133
+ box-shadow: 0 4px 16px rgba(99, 102, 241, .3);
1134
+ transform: translateY(-1px);
1135
+ }
1136
+
1137
+ [data-theme="dark"] .btn.primary {
1138
+ background: var(--primary);
1139
+ border-color: var(--primary);
1140
+ color: #fff;
1100
1141
  }
1101
1142
 
1102
1143
  .sideBtn {
@@ -1110,22 +1151,18 @@ textarea:focus {
1110
1151
  padding: 2px 6px;
1111
1152
  border: 1px solid var(--line);
1112
1153
  border-radius: 8px;
1113
- background: rgba(255, 250, 242, .75);
1154
+ background: var(--bg2);
1114
1155
  font-family: var(--mono);
1115
1156
  font-size: 12px;
1116
1157
  color: var(--muted);
1117
1158
  }
1118
1159
 
1119
- [data-theme="dark"] .k {
1120
- background: rgba(0, 0, 0, .18);
1121
- }
1122
-
1123
1160
  /* REPORT/TODAY ITEMS + PREVIEW */
1124
1161
  .log {
1125
1162
  padding: 12px;
1126
1163
  border: 1px solid var(--line);
1127
1164
  border-radius: var(--radius);
1128
- background: rgba(255, 250, 242, .65);
1165
+ background: var(--bg2);
1129
1166
  font-family: var(--mono);
1130
1167
  font-size: 12px;
1131
1168
  color: var(--muted);
@@ -1135,10 +1172,6 @@ textarea:focus {
1135
1172
  overflow: auto;
1136
1173
  }
1137
1174
 
1138
- [data-theme="dark"] .log {
1139
- background: rgba(0, 0, 0, .18);
1140
- }
1141
-
1142
1175
  .rep {
1143
1176
  width: 100%;
1144
1177
  text-align: left;
@@ -1195,25 +1228,17 @@ textarea:focus {
1195
1228
  padding: 2px 6px;
1196
1229
  border: 1px solid var(--line);
1197
1230
  border-radius: 8px;
1198
- background: rgba(255, 250, 242, .60);
1199
- }
1200
-
1201
- [data-theme="dark"] .md-inline {
1202
- background: rgba(0, 0, 0, .18);
1231
+ background: var(--bg2);
1203
1232
  }
1204
1233
 
1205
1234
  .md-code {
1206
- background: rgba(0, 0, 0, .05);
1235
+ background: var(--bg2);
1207
1236
  border: 1px solid var(--line);
1208
1237
  border-radius: var(--radius);
1209
1238
  padding: 12px;
1210
1239
  overflow: auto;
1211
1240
  }
1212
1241
 
1213
- [data-theme="dark"] .md-code {
1214
- background: rgba(0, 0, 0, .22);
1215
- }
1216
-
1217
1242
  .md-sp {
1218
1243
  height: 10px;
1219
1244
  }
@@ -1266,17 +1291,17 @@ textarea:focus {
1266
1291
 
1267
1292
  .bubble.user {
1268
1293
  align-self: flex-end;
1269
- background: rgba(37, 99, 235, .10);
1270
- border-color: rgba(37, 99, 235, .22);
1294
+ background: rgba(99, 102, 241, .08);
1295
+ border-color: rgba(99, 102, 241, .15);
1271
1296
  }
1272
1297
 
1273
1298
  .bubble.assistant {
1274
1299
  align-self: flex-start;
1275
- background: rgba(255, 250, 242, .82);
1300
+ background: var(--bg2);
1276
1301
  }
1277
1302
 
1278
1303
  [data-theme="dark"] .bubble.assistant {
1279
- background: rgba(0, 0, 0, .18);
1304
+ background: var(--paper2);
1280
1305
  }
1281
1306
 
1282
1307
  .chatComposer {
@@ -1367,6 +1392,7 @@ textarea:focus {
1367
1392
  font-weight: 700;
1368
1393
  padding: 3px 10px;
1369
1394
  border: 1px solid;
1395
+ border-radius: 99px;
1370
1396
  letter-spacing: 0.3px;
1371
1397
  }
1372
1398
 
@@ -1434,8 +1460,10 @@ textarea:focus {
1434
1460
  pointer-events: auto;
1435
1461
  padding: 10px 16px;
1436
1462
  border: 1px solid var(--line2);
1463
+ border-radius: var(--radius2);
1437
1464
  background: var(--paper);
1438
1465
  backdrop-filter: blur(12px);
1466
+ -webkit-backdrop-filter: blur(12px);
1439
1467
  color: var(--text);
1440
1468
  font-size: 13px;
1441
1469
  font-weight: 500;
@@ -1444,7 +1472,7 @@ textarea:focus {
1444
1472
  max-width: 360px;
1445
1473
  opacity: 0;
1446
1474
  transform: translateX(100%);
1447
- animation: toastIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
1475
+ animation: toastIn 0.3s var(--bounce) forwards;
1448
1476
  }
1449
1477
 
1450
1478
  .toast.out {
@@ -1511,29 +1539,35 @@ textarea:focus {
1511
1539
  /* ── Companion Dashboard Styles ── */
1512
1540
  .companionTabs {
1513
1541
  display: flex;
1514
- gap: 8px;
1542
+ gap: 4px;
1515
1543
  margin: 16px 0;
1516
- border-bottom: 1px solid var(--border);
1544
+ padding: 4px;
1545
+ background: var(--paper2);
1546
+ border: 1px solid var(--line);
1547
+ border-radius: var(--radius2);
1517
1548
  }
1518
1549
 
1519
1550
  .companionTabs .tab {
1520
- padding: 8px 12px;
1551
+ padding: 8px 14px;
1521
1552
  background: transparent;
1522
1553
  border: none;
1523
- border-bottom: 2px solid transparent;
1554
+ border-radius: var(--radius3);
1524
1555
  cursor: pointer;
1525
1556
  font-size: 12px;
1526
- color: var(--textMuted);
1527
- transition: color 0.2s, border-color 0.2s;
1557
+ font-weight: 600;
1558
+ color: var(--muted);
1559
+ transition: var(--transition);
1528
1560
  }
1529
1561
 
1530
1562
  .companionTabs .tab:hover {
1531
1563
  color: var(--text);
1564
+ background: var(--paper);
1532
1565
  }
1533
1566
 
1534
1567
  .companionTabs .tab.active {
1535
- color: var(--accent);
1536
- border-bottom-color: var(--accent);
1568
+ color: var(--primary);
1569
+ background: var(--paper);
1570
+ box-shadow: var(--shadow2);
1537
1571
  }
1538
1572
 
1539
1573
  .consolidatedView {
@@ -1545,10 +1579,17 @@ textarea:focus {
1545
1579
  .kpiCard {
1546
1580
  background: var(--paper);
1547
1581
  padding: 16px;
1548
- border: 1px solid var(--border);
1582
+ border: 1px solid var(--line2);
1583
+ border-radius: var(--radius2);
1549
1584
  display: flex;
1550
1585
  flex-direction: column;
1551
1586
  gap: 4px;
1587
+ transition: var(--transition);
1588
+ }
1589
+
1590
+ .kpiCard:hover {
1591
+ box-shadow: var(--shadow2);
1592
+ transform: translateY(-1px);
1552
1593
  }
1553
1594
 
1554
1595
  .projectCardsGrid {
@@ -1570,16 +1611,18 @@ textarea:focus {
1570
1611
  .projectCard {
1571
1612
  background: var(--paper);
1572
1613
  padding: 16px;
1614
+ border: 1px solid var(--line2);
1573
1615
  border-left: 3px solid #4ade80;
1574
- border: 1px solid var(--border);
1575
- border-left: 3px solid #4ade80;
1616
+ border-radius: var(--radius2);
1576
1617
  cursor: pointer;
1577
- transition: background 0.2s, border-color 0.2s;
1618
+ transition: var(--transition);
1578
1619
  }
1579
1620
 
1580
1621
  .projectCard:hover {
1581
- background: rgba(255, 255, 255, 0.02);
1622
+ background: var(--paper2);
1582
1623
  border-color: var(--accent);
1624
+ box-shadow: var(--shadow2);
1625
+ transform: translateY(-1px);
1583
1626
  }
1584
1627
 
1585
1628
  .projectCard.at_risk {
@@ -1593,24 +1636,31 @@ textarea:focus {
1593
1636
  .streamItem {
1594
1637
  padding: 12px;
1595
1638
  margin: 4px 0;
1596
- border: 1px solid var(--border);
1639
+ border: 1px solid var(--line2);
1640
+ border-radius: var(--radius3);
1597
1641
  background: transparent;
1598
- transition: background 0.2s;
1642
+ transition: var(--transition);
1599
1643
  font-size: 11px;
1600
1644
  }
1601
1645
 
1602
1646
  .streamItem:hover {
1603
- background: rgba(255, 255, 255, 0.01);
1647
+ background: var(--paper2);
1648
+ box-shadow: var(--shadow2);
1604
1649
  }
1605
1650
 
1606
1651
  .alertItem {
1607
1652
  padding: 12px;
1608
1653
  margin: 8px 0;
1654
+ border: 1px solid var(--line2);
1609
1655
  border-left: 3px solid #ef4444;
1656
+ border-radius: var(--radius3);
1610
1657
  background: rgba(239, 68, 68, 0.05);
1611
- border: 1px solid var(--border);
1612
- border-left: 3px solid #ef4444;
1613
1658
  font-size: 11px;
1659
+ transition: var(--transition);
1660
+ }
1661
+
1662
+ .alertItem:hover {
1663
+ box-shadow: var(--shadow2);
1614
1664
  }
1615
1665
 
1616
1666
  /* ── Kanban Board ── */
@@ -1631,9 +1681,11 @@ textarea:focus {
1631
1681
  .kanban-col {
1632
1682
  display: flex;
1633
1683
  flex-direction: column;
1634
- background: var(--bg);
1684
+ background: var(--paper);
1635
1685
  border: 1px solid var(--line2);
1686
+ border-radius: var(--radius2);
1636
1687
  min-height: 300px;
1688
+ overflow: hidden;
1637
1689
  }
1638
1690
 
1639
1691
  .kanban-col-head {
@@ -1649,10 +1701,15 @@ textarea:focus {
1649
1701
  flex-shrink: 0;
1650
1702
  }
1651
1703
 
1652
- .kanban-col-head.do-now { border-bottom-color: #ef4444; color: #ef4444; }
1653
- .kanban-col-head.schedule { border-bottom-color: #3b82f6; color: #3b82f6; }
1654
- .kanban-col-head.delegate { border-bottom-color: #f97316; color: #f97316; }
1655
- .kanban-col-head.done { border-bottom-color: #22c55e; color: #22c55e; }
1704
+ .kanban-col-head.do-now { border-bottom-color: var(--pastel-rose); color: #e11d48; }
1705
+ .kanban-col-head.schedule { border-bottom-color: var(--pastel-blue); color: var(--primary); }
1706
+ .kanban-col-head.delegate { border-bottom-color: var(--pastel-gold); color: #b45309; }
1707
+ .kanban-col-head.done { border-bottom-color: var(--pastel-green); color: #16a34a; }
1708
+
1709
+ [data-theme="dark"] .kanban-col-head.do-now { color: var(--pastel-rose); }
1710
+ [data-theme="dark"] .kanban-col-head.schedule { color: var(--pastel-blue); }
1711
+ [data-theme="dark"] .kanban-col-head.delegate { color: var(--pastel-gold); }
1712
+ [data-theme="dark"] .kanban-col-head.done { color: var(--pastel-green); }
1656
1713
 
1657
1714
  .kanban-col-count {
1658
1715
  font-size: 12px;
@@ -1660,6 +1717,7 @@ textarea:focus {
1660
1717
  padding: 1px 8px;
1661
1718
  background: var(--paper2);
1662
1719
  border: 1px solid var(--line2);
1720
+ border-radius: var(--radius3);
1663
1721
  }
1664
1722
 
1665
1723
  .kanban-col-body {
@@ -1686,9 +1744,10 @@ body:not([data-page="kanban"]) .kanban-col-body {
1686
1744
  .kanban-card {
1687
1745
  background: var(--paper);
1688
1746
  border: 1px solid var(--line2);
1747
+ border-radius: var(--radius3);
1689
1748
  padding: 10px 12px;
1690
1749
  cursor: grab;
1691
- transition: box-shadow 0.15s, opacity 0.15s;
1750
+ transition: box-shadow 0.2s ease, opacity 0.15s, transform 0.2s ease;
1692
1751
  display: flex;
1693
1752
  flex-direction: column;
1694
1753
  gap: 6px;
@@ -1696,6 +1755,7 @@ body:not([data-page="kanban"]) .kanban-col-body {
1696
1755
 
1697
1756
  .kanban-card:hover {
1698
1757
  box-shadow: var(--shadow2);
1758
+ transform: translateY(-1px);
1699
1759
  }
1700
1760
 
1701
1761
  .kanban-card.dragging {
@@ -1737,6 +1797,7 @@ body:not([data-page="kanban"]) .kanban-col-body {
1737
1797
  background: var(--chip);
1738
1798
  color: var(--primary);
1739
1799
  border: 1px solid var(--line2);
1800
+ border-radius: 6px;
1740
1801
  font-family: var(--mono);
1741
1802
  }
1742
1803
 
@@ -1746,6 +1807,7 @@ body:not([data-page="kanban"]) .kanban-col-body {
1746
1807
  padding: 1px 6px;
1747
1808
  color: var(--muted);
1748
1809
  border: 1px solid var(--line2);
1810
+ border-radius: 6px;
1749
1811
  }
1750
1812
 
1751
1813
  .kanban-due.overdue {
@@ -1767,8 +1829,9 @@ body:not([data-page="kanban"]) .kanban-col-body {
1767
1829
  }
1768
1830
 
1769
1831
  .kanban-action-btn {
1770
- background: var(--bg);
1832
+ background: var(--paper);
1771
1833
  border: 1px solid var(--line2);
1834
+ border-radius: 6px;
1772
1835
  color: var(--muted);
1773
1836
  padding: 2px 8px;
1774
1837
  font-size: 12px;
@@ -1783,8 +1846,9 @@ body:not([data-page="kanban"]) .kanban-col-body {
1783
1846
 
1784
1847
  .kanban-action-btn.complete-btn:hover,
1785
1848
  .kanban-action-btn.resolve-btn:hover {
1786
- color: #22c55e;
1787
- border-color: #22c55e;
1849
+ color: #16a34a;
1850
+ border-color: var(--pastel-green);
1851
+ background: rgba(168, 216, 185, .15);
1788
1852
  }
1789
1853
 
1790
1854
  .kanban-owner {
@@ -1795,8 +1859,9 @@ body:not([data-page="kanban"]) .kanban-col-body {
1795
1859
 
1796
1860
  /* Kanban filter */
1797
1861
  .kanban-filter {
1798
- background: var(--bg);
1862
+ background: var(--paper);
1799
1863
  border: 1px solid var(--line2);
1864
+ border-radius: var(--radius3);
1800
1865
  color: var(--text);
1801
1866
  padding: 5px 10px;
1802
1867
  font-size: 12px;
@@ -1819,9 +1884,11 @@ body:not([data-page="kanban"]) .kanban-col-body {
1819
1884
  .blocker-kanban-col {
1820
1885
  display: flex;
1821
1886
  flex-direction: column;
1822
- background: var(--bg);
1887
+ background: var(--paper);
1823
1888
  border: 1px solid var(--line2);
1889
+ border-radius: var(--radius2);
1824
1890
  min-height: 80px;
1891
+ overflow: hidden;
1825
1892
  }
1826
1893
 
1827
1894
  .blocker-kanban-col-body {
@@ -1841,19 +1908,23 @@ body:not([data-page="kanban"]) .kanban-col-body {
1841
1908
  }
1842
1909
 
1843
1910
  /* Blocker column header colors */
1844
- .kanban-col-head.blocker-open { border-bottom-color: #ef4444; }
1845
- .kanban-col-head.blocker-open .kanban-col-title { color: #ef4444; }
1846
- .kanban-col-head.blocker-open .kanban-col-count { background: #ef444422; color: #ef4444; }
1847
- .kanban-col-head.blocker-mitigating { border-bottom-color: #f59e0b; }
1848
- .kanban-col-head.blocker-mitigating .kanban-col-title { color: #f59e0b; }
1849
- .kanban-col-head.blocker-mitigating .kanban-col-count { background: #f59e0b22; color: #f59e0b; }
1850
- .kanban-col-head.blocker-resolved { border-bottom-color: #22c55e; }
1851
- .kanban-col-head.blocker-resolved .kanban-col-title { color: #22c55e; }
1852
- .kanban-col-head.blocker-resolved .kanban-col-count { background: #22c55e22; color: #22c55e; }
1911
+ .kanban-col-head.blocker-open { border-bottom-color: var(--pastel-rose); }
1912
+ .kanban-col-head.blocker-open .kanban-col-title { color: #e11d48; }
1913
+ .kanban-col-head.blocker-open .kanban-col-count { background: rgba(253, 164, 175, .2); color: #e11d48; }
1914
+ .kanban-col-head.blocker-mitigating { border-bottom-color: var(--pastel-gold); }
1915
+ .kanban-col-head.blocker-mitigating .kanban-col-title { color: #b45309; }
1916
+ .kanban-col-head.blocker-mitigating .kanban-col-count { background: rgba(240, 217, 140, .2); color: #b45309; }
1917
+ .kanban-col-head.blocker-resolved { border-bottom-color: var(--pastel-green); }
1918
+ .kanban-col-head.blocker-resolved .kanban-col-title { color: #16a34a; }
1919
+ .kanban-col-head.blocker-resolved .kanban-col-count { background: rgba(168, 216, 185, .2); color: #16a34a; }
1920
+
1921
+ [data-theme="dark"] .kanban-col-head.blocker-open .kanban-col-title { color: var(--pastel-rose); }
1922
+ [data-theme="dark"] .kanban-col-head.blocker-mitigating .kanban-col-title { color: var(--pastel-gold); }
1923
+ [data-theme="dark"] .kanban-col-head.blocker-resolved .kanban-col-title { color: var(--pastel-green); }
1853
1924
 
1854
1925
  /* Blocker card in kanban (reuses .kanban-card) */
1855
1926
  .kanban-card.blocker-card {
1856
- border-left: 3px solid #ef4444;
1927
+ border-left: 3px solid var(--pastel-rose);
1857
1928
  }
1858
1929
 
1859
1930
  /* ── Quick-Add Modal ── */
@@ -1870,13 +1941,20 @@ body:not([data-page="kanban"]) .kanban-col-body {
1870
1941
  .qa-modal {
1871
1942
  background: var(--bg);
1872
1943
  border: 1px solid var(--line2);
1944
+ border-radius: var(--radius);
1873
1945
  box-shadow: var(--shadow);
1874
1946
  width: 440px;
1875
1947
  max-width: 95vw;
1876
- padding: 16px;
1948
+ padding: 20px;
1877
1949
  display: flex;
1878
1950
  flex-direction: column;
1879
- gap: 10px;
1951
+ gap: 12px;
1952
+ animation: modalEnter 0.25s var(--bounce) both;
1953
+ }
1954
+
1955
+ @keyframes modalEnter {
1956
+ from { opacity: 0; transform: scale(0.95) translateY(8px); }
1957
+ to { opacity: 1; transform: scale(1) translateY(0); }
1880
1958
  }
1881
1959
 
1882
1960
  .qa-header {
@@ -1888,26 +1966,31 @@ body:not([data-page="kanban"]) .kanban-col-body {
1888
1966
  .qa-input {
1889
1967
  background: var(--paper);
1890
1968
  border: 1px solid var(--line2);
1969
+ border-radius: var(--radius3);
1891
1970
  color: var(--text);
1892
- padding: 8px 10px;
1971
+ padding: 10px 12px;
1893
1972
  font-size: 13px;
1894
1973
  font-family: var(--sans);
1895
1974
  width: 100%;
1896
1975
  resize: none;
1976
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1897
1977
  }
1898
1978
 
1899
1979
  .qa-input:focus {
1900
1980
  outline: none;
1901
1981
  border-color: var(--primary);
1982
+ box-shadow: var(--ring);
1902
1983
  }
1903
1984
 
1904
1985
  .qa-select {
1905
1986
  background: var(--paper);
1906
1987
  border: 1px solid var(--line2);
1988
+ border-radius: var(--radius3);
1907
1989
  color: var(--text);
1908
- padding: 6px 10px;
1990
+ padding: 8px 10px;
1909
1991
  font-size: 12px;
1910
1992
  flex: 1;
1993
+ transition: border-color 0.2s ease;
1911
1994
  }
1912
1995
 
1913
1996
  .qa-row {
@@ -1963,13 +2046,15 @@ body:not([data-page="kanban"]) .kanban-col-body {
1963
2046
  display: flex;
1964
2047
  align-items: center;
1965
2048
  gap: 8px;
1966
- padding: 8px 14px;
2049
+ padding: 10px 14px;
1967
2050
  margin-bottom: 12px;
1968
2051
  background: var(--chip);
1969
2052
  border: 1px solid var(--line2);
2053
+ border-radius: var(--radius3);
1970
2054
  font-size: 12px;
1971
2055
  color: var(--text);
1972
2056
  border-left: 3px solid var(--primary);
2057
+ animation: fadeIn 0.2s ease-out;
1973
2058
  }
1974
2059
 
1975
2060
  /* ── Detail Panel (click-to-view on kanban cards) ── */
@@ -1985,14 +2070,17 @@ body:not([data-page="kanban"]) .kanban-col-body {
1985
2070
  }
1986
2071
  .detail-panel {
1987
2072
  background: var(--paper);
2073
+ backdrop-filter: blur(20px);
2074
+ -webkit-backdrop-filter: blur(20px);
1988
2075
  border: 1px solid var(--line2);
1989
- border-radius: 12px;
2076
+ border-radius: var(--radius);
1990
2077
  width: 520px;
1991
2078
  max-width: 95vw;
1992
2079
  max-height: 85vh;
1993
2080
  overflow-y: auto;
1994
2081
  padding: 20px 24px;
1995
2082
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
2083
+ animation: modalEnter 0.25s var(--bounce) both;
1996
2084
  }
1997
2085
  .detail-panel-header {
1998
2086
  display: flex;
@@ -2077,3 +2165,286 @@ body:not([data-page="kanban"]) .kanban-col-body {
2077
2165
  to { opacity: 1; }
2078
2166
  }
2079
2167
 
2168
+ /* ── Page Transition ── */
2169
+ .center {
2170
+ animation: pageEnter 0.35s var(--bounce) both;
2171
+ }
2172
+
2173
+ @keyframes pageEnter {
2174
+ from { opacity: 0; transform: translateY(10px); }
2175
+ to { opacity: 1; transform: translateY(0); }
2176
+ }
2177
+
2178
+ body.navigating .center {
2179
+ animation: pageExit 0.18s ease-in forwards;
2180
+ }
2181
+
2182
+ @keyframes pageExit {
2183
+ from { opacity: 1; transform: translateY(0); }
2184
+ to { opacity: 0; transform: translateY(-6px); }
2185
+ }
2186
+
2187
+ /* ── Mobile Hamburger Menu ── */
2188
+ .mobileMenuBtn {
2189
+ display: none;
2190
+ position: fixed;
2191
+ bottom: 20px;
2192
+ left: 20px;
2193
+ z-index: 10001;
2194
+ width: 48px;
2195
+ height: 48px;
2196
+ border-radius: 50%;
2197
+ border: 1px solid var(--line2);
2198
+ background: var(--paper);
2199
+ backdrop-filter: blur(16px);
2200
+ -webkit-backdrop-filter: blur(16px);
2201
+ box-shadow: var(--shadow);
2202
+ color: var(--text);
2203
+ cursor: pointer;
2204
+ align-items: center;
2205
+ justify-content: center;
2206
+ transition: var(--transition);
2207
+ }
2208
+
2209
+ .mobileMenuBtn:hover {
2210
+ transform: scale(1.08);
2211
+ box-shadow: var(--shadow-hover);
2212
+ }
2213
+
2214
+ .mobileMenuBtn:active {
2215
+ transform: scale(0.95);
2216
+ }
2217
+
2218
+ .mobileMenuBtn svg {
2219
+ transition: transform 0.25s var(--bounce);
2220
+ }
2221
+
2222
+ .mobileMenuBtn.open svg {
2223
+ transform: rotate(90deg);
2224
+ }
2225
+
2226
+ @media (max-width: 860px) {
2227
+ .mobileMenuBtn {
2228
+ display: flex;
2229
+ }
2230
+ }
2231
+
2232
+ .mobileNav {
2233
+ display: none;
2234
+ position: fixed;
2235
+ inset: 0;
2236
+ z-index: 10000;
2237
+ background: rgba(0, 0, 0, 0.5);
2238
+ backdrop-filter: blur(4px);
2239
+ -webkit-backdrop-filter: blur(4px);
2240
+ opacity: 0;
2241
+ transition: opacity 0.25s ease;
2242
+ }
2243
+
2244
+ .mobileNav.visible {
2245
+ opacity: 1;
2246
+ }
2247
+
2248
+ .mobileNav-panel {
2249
+ position: absolute;
2250
+ bottom: 80px;
2251
+ left: 20px;
2252
+ background: var(--paper);
2253
+ backdrop-filter: blur(20px);
2254
+ -webkit-backdrop-filter: blur(20px);
2255
+ border: 1px solid var(--glass-border);
2256
+ border-radius: var(--radius);
2257
+ box-shadow: var(--shadow);
2258
+ padding: 12px;
2259
+ display: flex;
2260
+ flex-direction: column;
2261
+ gap: 4px;
2262
+ min-width: 200px;
2263
+ transform: translateY(12px) scale(0.95);
2264
+ transition: transform 0.25s var(--bounce), opacity 0.2s ease;
2265
+ opacity: 0;
2266
+ }
2267
+
2268
+ .mobileNav.visible .mobileNav-panel {
2269
+ transform: translateY(0) scale(1);
2270
+ opacity: 1;
2271
+ }
2272
+
2273
+ .mobileNav-item {
2274
+ display: flex;
2275
+ align-items: center;
2276
+ gap: 12px;
2277
+ padding: 10px 14px;
2278
+ border-radius: var(--radius2);
2279
+ border: none;
2280
+ background: transparent;
2281
+ color: var(--muted);
2282
+ font-family: var(--sans);
2283
+ font-size: 13px;
2284
+ font-weight: 600;
2285
+ cursor: pointer;
2286
+ transition: var(--transition);
2287
+ text-align: left;
2288
+ width: 100%;
2289
+ }
2290
+
2291
+ .mobileNav-item:hover {
2292
+ background: var(--chip);
2293
+ color: var(--text);
2294
+ }
2295
+
2296
+ .mobileNav-item.active {
2297
+ background: var(--chip);
2298
+ color: var(--primary);
2299
+ }
2300
+
2301
+ .mobileNav-item svg {
2302
+ flex-shrink: 0;
2303
+ }
2304
+
2305
+ /* ── Staggered Card Animations ── */
2306
+ @keyframes cardEnter {
2307
+ from { opacity: 0; transform: translateY(8px); }
2308
+ to { opacity: 1; transform: translateY(0); }
2309
+ }
2310
+
2311
+ .kanban-card {
2312
+ animation: cardEnter 0.3s var(--bounce) both;
2313
+ }
2314
+
2315
+ .kanban-col-body .kanban-card:nth-child(1) { animation-delay: 0ms; }
2316
+ .kanban-col-body .kanban-card:nth-child(2) { animation-delay: 30ms; }
2317
+ .kanban-col-body .kanban-card:nth-child(3) { animation-delay: 60ms; }
2318
+ .kanban-col-body .kanban-card:nth-child(4) { animation-delay: 90ms; }
2319
+ .kanban-col-body .kanban-card:nth-child(5) { animation-delay: 120ms; }
2320
+ .kanban-col-body .kanban-card:nth-child(n+6) { animation-delay: 150ms; }
2321
+
2322
+ /* ── Visual Hierarchy Improvements ── */
2323
+
2324
+ /* Section headers get more breathing room */
2325
+ .reportsTitle,
2326
+ .utilityHead,
2327
+ .panelHead b {
2328
+ font-family: var(--display);
2329
+ }
2330
+
2331
+ /* Better section spacing */
2332
+ .centerBody > section,
2333
+ .centerBody > div {
2334
+ animation: fadeIn 0.2s ease-out both;
2335
+ }
2336
+
2337
+ .centerBody > *:nth-child(1) { animation-delay: 0ms; }
2338
+ .centerBody > *:nth-child(2) { animation-delay: 40ms; }
2339
+ .centerBody > *:nth-child(3) { animation-delay: 80ms; }
2340
+ .centerBody > *:nth-child(4) { animation-delay: 120ms; }
2341
+ .centerBody > *:nth-child(5) { animation-delay: 160ms; }
2342
+
2343
+ /* Focus-visible for accessibility across all interactive elements */
2344
+ button:focus-visible,
2345
+ input:focus-visible,
2346
+ textarea:focus-visible,
2347
+ select:focus-visible,
2348
+ a:focus-visible {
2349
+ outline: none;
2350
+ box-shadow: var(--ring);
2351
+ }
2352
+
2353
+ /* Kanban drag-over improved visual */
2354
+ .kanban-col-body.drag-over {
2355
+ background: var(--chip);
2356
+ border-radius: 0 0 calc(var(--radius2) - 1px) calc(var(--radius2) - 1px);
2357
+ outline: 2px dashed var(--primary);
2358
+ outline-offset: -2px;
2359
+ }
2360
+
2361
+ /* Better report card interaction */
2362
+ .reportCard {
2363
+ cursor: default;
2364
+ }
2365
+
2366
+ .reportCard .reportHead {
2367
+ transition: color 0.2s ease;
2368
+ }
2369
+
2370
+ .reportCard .reportHead:hover .reportName {
2371
+ color: var(--primary);
2372
+ }
2373
+
2374
+ /* Improved prompt bar focus state */
2375
+ .promptBar:focus-within {
2376
+ border-color: rgba(99, 102, 241, .35);
2377
+ }
2378
+
2379
+ /* Rail tooltip on hover */
2380
+ .railBtn {
2381
+ position: relative;
2382
+ }
2383
+
2384
+ .railBtn[title]:hover::after {
2385
+ content: attr(title);
2386
+ position: absolute;
2387
+ left: calc(100% + 8px);
2388
+ top: 50%;
2389
+ transform: translateY(-50%);
2390
+ padding: 4px 10px;
2391
+ background: var(--text);
2392
+ color: var(--bg);
2393
+ font-size: 11px;
2394
+ font-weight: 600;
2395
+ font-family: var(--sans);
2396
+ border-radius: 6px;
2397
+ white-space: nowrap;
2398
+ pointer-events: none;
2399
+ z-index: 100;
2400
+ animation: tooltipIn 0.15s ease-out;
2401
+ }
2402
+
2403
+ @keyframes tooltipIn {
2404
+ from { opacity: 0; transform: translateY(-50%) translateX(-4px); }
2405
+ to { opacity: 1; transform: translateY(-50%) translateX(0); }
2406
+ }
2407
+
2408
+ /* Hide tooltip on mobile (rail is hidden anyway) */
2409
+ @media (max-width: 860px) {
2410
+ .railBtn[title]:hover::after {
2411
+ display: none;
2412
+ }
2413
+ }
2414
+
2415
+ /* Smoother scrollbar transitions */
2416
+ .centerBody,
2417
+ .kanban-col-body,
2418
+ .blocker-kanban-col-body,
2419
+ .chatThread {
2420
+ scroll-behavior: smooth;
2421
+ }
2422
+
2423
+ /* Improved sparkle effect */
2424
+ .spark {
2425
+ animation: sparkPulse 3s ease-in-out infinite;
2426
+ }
2427
+
2428
+ @keyframes sparkPulse {
2429
+ 0%, 100% { box-shadow: 0 0 0 5px rgba(99, 102, 241, .10); }
2430
+ 50% { box-shadow: 0 0 0 9px rgba(99, 102, 241, .05); }
2431
+ }
2432
+
2433
+ /* Better chip clickable interaction */
2434
+ .chip.clickable:active {
2435
+ transform: translateY(0) scale(0.96);
2436
+ }
2437
+
2438
+ /* Consistent border-radius on the detail panel sections */
2439
+ .detail-panel-comment {
2440
+ border-radius: var(--radius3);
2441
+ }
2442
+
2443
+ .detail-panel-header {
2444
+ border-bottom: 1px solid var(--line);
2445
+ }
2446
+
2447
+ .detail-panel-section {
2448
+ border-top: 1px solid var(--line);
2449
+ }
2450
+