filecat 7.9.0 → 7.10.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.
Files changed (125) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +182 -182
  3. package/build/dist/{4967.3fd3bd40a2b5a3b52428.js → 1060.198d91e2dfc174317c3a.js} +1 -1
  4. package/build/dist/1075.05eed88707339ca32044.js +1 -0
  5. package/build/dist/{1142.121454b1de53689b7367.js → 1142.bc43fae2e5e38d9359df.js} +1 -1
  6. package/build/dist/1384.edbad9c24d883a59724d.js +1 -0
  7. package/build/dist/1417.d390b18dd58ff5c28160.js +1 -0
  8. package/build/dist/1448.4db495e1389c0c8445b3.js +1 -0
  9. package/build/dist/{3324.22efcb1c431177b1cf5f.js → 1455.26a021eb94e5bdd5bec2.js} +1 -1
  10. package/build/dist/{1636.b6a17252dfd0d22f09a7.js → 1636.b80b1883358e132d3424.js} +1 -1
  11. package/build/dist/{1832.8ea5c3e8288df0b7fd5c.js → 1832.a01933ba5df99576ecc2.js} +1 -1
  12. package/build/dist/2300.c99b1dd4e752cdfd5e32.js +2 -0
  13. package/build/dist/{2300.9e1baa1c0368abe53d96.js.LICENSE.txt → 2300.c99b1dd4e752cdfd5e32.js.LICENSE.txt} +1 -1
  14. package/build/dist/239.f570f06d4b9c020f1013.js +1 -0
  15. package/build/dist/{2479.dcc88b3370f0f1d66e02.js → 2479.294792ef5d360ad64abc.js} +1 -1
  16. package/build/dist/2542.26cb302b60de23166227.js +1 -0
  17. package/build/dist/{259.81bb9e049e5ef587a96f.js → 259.3c0eb22e9b43ffb63c9c.js} +1 -1
  18. package/build/dist/2626.3bcfe1f26d9cb796a925.js +1 -0
  19. package/build/dist/{2674.7fd28dae86ccdb247851.js → 2674.15ca3c6ac911cf6e6e2f.js} +1 -1
  20. package/build/dist/3233.43bdd7c12ca829d56116.js +1 -0
  21. package/build/dist/3299.6ab0d94f02171cd762cc.js +1 -0
  22. package/build/dist/{6992.f6a07311a638794c24f7.js → 3471.ef3b5dcfe37963034187.js} +1 -1
  23. package/build/dist/{3528.56eeefab6fca5884e2a6.js → 3528.0f8f34028d92fa87c518.js} +1 -1
  24. package/build/dist/{3659.8a31495bb8f38c0ffa7c.js → 3659.dd03dc2ac52a3ff19105.js} +1 -1
  25. package/build/dist/4004.f0193c43fb891fdfb0e4.js +1 -0
  26. package/build/dist/{4560.8ef2e4b60cc86d019dd6.js → 4560.fd9f8cf2d6022b1d3a94.js} +1 -1
  27. package/build/dist/{4903.b5451ed0802b3f7c07b2.js → 4903.070aaa53a243baf05133.js} +1 -1
  28. package/build/dist/{4946.c95d4f426146e0180172.js → 4946.d578f6ba367a742d80bf.js} +2 -2
  29. package/build/dist/4986.f244efce9cf6be21f846.js +1 -0
  30. package/build/dist/5272.1f0dfac07ba202e7d323.js +1 -0
  31. package/build/dist/{5308.052f45c15785487b3766.js → 5308.d1e5ccb49396fc1b026d.js} +1 -1
  32. package/build/dist/{5516.645e4a900df9bdc1806c.js → 5516.88521f3a3c7101c46df3.js} +1 -1
  33. package/build/dist/5614.43bdd7c12ca829d56116.js +1 -0
  34. package/build/dist/{5139.adf9574d9b54a216e041.js → 5709.81f43e3c021fafdfe36f.js} +1 -1
  35. package/build/dist/{5744.e9f1efb88a617b05b709.js → 5744.0f8a0432b73b2eb0a7ff.js} +1 -1
  36. package/build/dist/{5877.ca081c4798194230243c.js → 5877.98d0475aaf4058b9a715.js} +1 -1
  37. package/build/dist/{6247.917e3fbef5dc5fbaf937.js → 6247.525b0b68872036ac2fa6.js} +1 -1
  38. package/build/dist/{7520.fbb0bc2a05cf94e15418.js → 6322.552511b5cb12cd0c821c.js} +1 -1
  39. package/build/dist/6492.17ecd8515fa512ce9306.js +1 -0
  40. package/build/dist/{676.a75318a8b598d8daadf0.js → 676.356039ef6f28f96b8c8b.js} +1 -1
  41. package/build/dist/{6805.bf0c964ab84f0fcc78be.js → 6805.373ac0e7d6555e4a6459.js} +1 -1
  42. package/build/dist/{6919.8cf13c01184b7148b28e.js → 6919.c7cc8617b658198d4924.js} +1 -1
  43. package/build/dist/{7038.4e4fc8e405c56d3080e2.js → 7038.166f915547d27e4dc5e4.js} +1 -1
  44. package/build/dist/{7759.0b68912ff9ef10869f59.js → 7759.7cd3fe8e5d37df25804c.js} +1 -1
  45. package/build/dist/7873.e3098bc6f510e5bea55f.js +1 -0
  46. package/build/dist/7923.d44556578af4d3d7cea3.js +2 -0
  47. package/build/dist/{7943.19d2de387eeb7f513d8e.js → 7943.acf25a5e98dd13290985.js} +1 -1
  48. package/build/dist/8090.8977224618a14ae42159.js +2 -0
  49. package/build/dist/8302.ce97557b7cf7c8387942.js +1 -0
  50. package/build/dist/8319.6a6b9651c87a1bb4cbb9.js +1 -0
  51. package/build/dist/{8603.4142ce42c1635f493eca.js → 8603.f1cbcfd64cde885f9809.js} +1 -1
  52. package/build/dist/8649.d6055ad75975b803bbc1.js +1 -0
  53. package/build/dist/{8727.3628c746061aed7a4077.js → 8727.8658835acb7e0b6e5acc.js} +1 -1
  54. package/build/dist/{8765.a5633d054abb67142fc3.js → 8765.8758c290a6b132f2ce7f.js} +1 -1
  55. package/build/dist/8772.2c35012c25ac9eb5f74d.js +2 -0
  56. package/build/dist/{8772.e8f9731c1c061f1cdf56.js.LICENSE.txt → 8772.2c35012c25ac9eb5f74d.js.LICENSE.txt} +1 -1
  57. package/build/dist/8781.6bd14487d172e004e3d3.js +1 -0
  58. package/build/dist/{9299.6c06dad1abe098b61766.js → 9299.7358ccf05b1415ed7959.js} +1 -1
  59. package/build/dist/9334.a25983aafdcbde63ae5e.js +1 -0
  60. package/build/dist/{9546.e7206c968e92371ae2b1.js → 9546.2cecad04cf676a6616cd.js} +1 -1
  61. package/build/dist/dark.css +839 -839
  62. package/build/dist/filerobot-image-editor.min.js +42445 -42445
  63. package/build/dist/google-dark.css +2032 -2032
  64. package/build/dist/google.css +1719 -1719
  65. package/build/dist/index.html +1 -1
  66. package/build/dist/main.ab3398f34c41e61310ae.js +2 -0
  67. package/build/dist/{main.3a12152528aff6ae213a.js.LICENSE.txt → main.ab3398f34c41e61310ae.js.LICENSE.txt} +1 -1
  68. package/build/dist/rle.js +17867 -17867
  69. package/build/main.js +1 -1
  70. package/build/plugin/core.type.d.ts +62 -0
  71. package/build/threads.work.filecat.js +1 -1
  72. package/env +26 -26
  73. package/package.json +211 -211
  74. package/shell/build.js +161 -161
  75. package/shell/config/.babelrc +14 -14
  76. package/shell/config/base.webpack.config.js +78 -78
  77. package/shell/config/common-bin.config.js +44 -44
  78. package/shell/config/env.js +10 -10
  79. package/shell/config/prebuild-file-path.js +17 -17
  80. package/shell/config/webpack.exe.config.js +36 -36
  81. package/shell/config/webpack.npm.config.js +44 -44
  82. package/shell/config/webpack.web.config.js +152 -152
  83. package/shell/dev.js +51 -51
  84. package/shell/docker-build.sh +2 -2
  85. package/shell/filecat +1 -1
  86. package/shell/filecat-watch +1 -1
  87. package/shell/install.js +48 -48
  88. package/shell/net-agent/git-clone.bat +23 -23
  89. package/shell/net-agent/git-pull.bat +17 -17
  90. package/shell/net-agent/git-push.bat +17 -17
  91. package/shell/pkg.ts +50 -50
  92. package/shell/postinstall-optional.js +29 -29
  93. package/shell/start/filecat-install.sh +22 -22
  94. package/shell/start/filecat-run.sh +2 -2
  95. package/shell/start/windows-install.js +178 -178
  96. package/shell/start/windows-uninstall.js +131 -131
  97. package/shell/util/file.js +46 -46
  98. package/build/dist/1075.40103ec059c6b23b056e.js +0 -1
  99. package/build/dist/1384.0d0fc5faa899c9eddcbe.js +0 -1
  100. package/build/dist/1417.7e511043474084a2a65b.js +0 -1
  101. package/build/dist/1448.0710f04bed1c52e6a5db.js +0 -1
  102. package/build/dist/2300.9e1baa1c0368abe53d96.js +0 -2
  103. package/build/dist/2542.23fb13b1623c9f7c3fc1.js +0 -1
  104. package/build/dist/2626.05d1faa293e0a3318b9b.js +0 -1
  105. package/build/dist/2851.2195b5906b2c224c7bf7.js +0 -1
  106. package/build/dist/3140.794a212da633caf38b3a.js +0 -2
  107. package/build/dist/3233.fb6bffd5e097e4ac9423.js +0 -1
  108. package/build/dist/3299.f37767d30b6999df4014.js +0 -1
  109. package/build/dist/4004.5d68418ad5c2321cb11f.js +0 -1
  110. package/build/dist/4986.78047106f3a0d2d71199.js +0 -1
  111. package/build/dist/5272.0b70ee8ec5f083fb9f5b.js +0 -1
  112. package/build/dist/5614.fb6bffd5e097e4ac9423.js +0 -1
  113. package/build/dist/6492.3ee4060598de873d8e8f.js +0 -1
  114. package/build/dist/7756.2f851693ba030c42dde8.js +0 -1
  115. package/build/dist/7873.11d04b741d2b499d9cb9.js +0 -1
  116. package/build/dist/7923.861345fd55941e8089a1.js +0 -2
  117. package/build/dist/8014.28b5cf8c3787dc829aa4.js +0 -1
  118. package/build/dist/8302.5ae5bfe8baa0084204bb.js +0 -1
  119. package/build/dist/8319.c15a3674ec7abc493595.js +0 -1
  120. package/build/dist/8772.e8f9731c1c061f1cdf56.js +0 -2
  121. package/build/dist/8781.58f0c51870d3dd2689d7.js +0 -1
  122. package/build/dist/main.3a12152528aff6ae213a.js +0 -2
  123. /package/build/dist/{4946.c95d4f426146e0180172.js.LICENSE.txt → 4946.d578f6ba367a742d80bf.js.LICENSE.txt} +0 -0
  124. /package/build/dist/{7923.861345fd55941e8089a1.js.LICENSE.txt → 7923.d44556578af4d3d7cea3.js.LICENSE.txt} +0 -0
  125. /package/build/dist/{3140.794a212da633caf38b3a.js.LICENSE.txt → 8090.8977224618a14ae42159.js.LICENSE.txt} +0 -0
@@ -1,2032 +1,2032 @@
1
- :root {
2
- /* 深色 Google Material Design 风格主题 */
3
- --background: #121212;
4
- --surfacePrimary: #1e1e1e;
5
- --surfaceSecondary: #2d2d2d;
6
- --divider: rgba(255, 255, 255, 0.12);
7
- --icon: #ffffff;
8
- --textPrimary: rgba(255, 255, 255, 0.87);
9
- --textSecondary: rgba(255, 255, 255, 0.6);
10
-
11
- /* 圆角设计 */
12
- --border-radius: 12px;
13
- --border-radius-sm: 8px;
14
- --border-radius-lg: 16px;
15
-
16
- /* 现代化阴影 (深色版本) */
17
- --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.15);
18
- --shadow-md: 0 1px 2px 0 rgba(0, 0, 0, 0.3), 0 2px 6px 2px rgba(0, 0, 0, 0.15);
19
- --shadow-lg: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 4px 8px 3px rgba(0, 0, 0, 0.15);
20
-
21
- /* Google 风格色彩 (深色适配) */
22
- --primary: #8ab4f8;
23
- --primary-light: #1a2a3a;
24
- --primary-dark: #4285f4;
25
- --secondary: #81c995;
26
- --secondary-light: #1a2e1a;
27
- --accent: #f28b82;
28
- --accent-light: #2e1a1a;
29
- --warning: #fdd663;
30
- --warning-light: #2e2a1a;
31
-
32
- /* 渐变色 */
33
- --gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
34
- --gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
35
- --gradient-accent: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
36
-
37
- /* 现代化图标颜色 (深色适配) */
38
- --icon-blue: #8ab4f8;
39
- --icon-green: #81c995;
40
- --icon-yellow: #fdd663;
41
- --icon-red: #f28b82;
42
- --icon-purple: #d7aefb;
43
- --icon-teal: #78d9ec;
44
- }
45
-
46
- body {
47
- background: var(--background);
48
- color: var(--textPrimary);
49
- font-family: 'Google Sans', 'Segoe UI', Roboto, sans-serif;
50
- }
51
-
52
- #loading {
53
- background: var(--background);
54
- }
55
- #loading .spinner div, main .spinner div {
56
- background: var(--icon-blue);
57
- }
58
-
59
- #login {
60
- background: var(--background);
61
- }
62
-
63
- .header {
64
- background: var(--surfacePrimary);
65
- border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
66
- box-shadow: var(--shadow-sm);
67
- }
68
-
69
- .filecat-search-box__inner {
70
- background: var(--surfaceSecondary);
71
- border-color: var(--divider);
72
- border-radius: var(--border-radius);
73
- }
74
- .filecat-search-box__inner input::placeholder {
75
- color: var(--textSecondary);
76
- }
77
-
78
- .action {
79
- color: var(--textPrimary) !important;
80
- border-radius: var(--border-radius-sm);
81
- transition: all 0.2s ease;
82
- }
83
- .action:hover {
84
- background-color: var(--primary-light);
85
- /*transform: translateY(-1px);*/
86
- }
87
-
88
- .action .counter {
89
- border-color: var(--divider);
90
- background: var(--accent-light);
91
- color: var(--accent);
92
- }
93
-
94
- nav > div {
95
- border-color: var(--divider);
96
- }
97
-
98
- .breadcrumbs {
99
- border-color: var(--divider);
100
- color: var(--textPrimary) !important;
101
- }
102
- .breadcrumbs span {
103
- color: var(--textPrimary) !important;
104
- }
105
- .breadcrumbs a:hover {
106
- background-color: var(--primary-light);
107
- border-radius: var(--border-radius-sm);
108
- }
109
-
110
- #listing .item {
111
- background: var(--surfacePrimary);
112
- color: var(--textSecondary);
113
- border-color: var(--divider) !important;
114
- border-radius: var(--border-radius);
115
- box-shadow: var(--shadow-sm);
116
- transition: all 0.2s ease;
117
- }
118
- #listing .item:hover {
119
- box-shadow: var(--shadow-md);
120
- /*transform: translateY(-2px);*/
121
- }
122
- #listing .item .modified {
123
- color: var(--textSecondary);
124
- }
125
- #listing h2,
126
- #listing.list .header span {
127
- color: var(--textPrimary) !important;
128
- }
129
- #listing.list .header span {
130
- color: var(--textPrimary);
131
- }
132
- #listing.list .header i {
133
- color: var(--icon-blue);
134
- }
135
- #listing.list .item.header {
136
- background: var(--background);
137
- box-shadow: none;
138
- }
139
-
140
- .message {
141
- color: var(--textPrimary);
142
- }
143
-
144
- .card {
145
- background: var(--surfacePrimary);
146
- color: var(--textPrimary);
147
- border-radius: var(--border-radius);
148
- box-shadow: var(--shadow-sm);
149
- }
150
- .button--flat:hover {
151
- background: var(--primary-light);
152
- border-radius: var(--border-radius-sm);
153
- }
154
-
155
- .dashboard #nav ul li {
156
- color: var(--textSecondary);
157
- border-radius: var(--border-radius-sm);
158
- }
159
- .dashboard #nav ul li:hover {
160
- background: var(--primary-light);
161
- }
162
-
163
- .card h3,
164
- .dashboard #nav,
165
- .dashboard p label {
166
- color: var(--textPrimary);
167
- }
168
-
169
- td .input {
170
- background: transparent;
171
- border: 0px ;
172
- }
173
- td .input:focus {
174
- background: var(--surfaceSecondary);
175
- }
176
-
177
- .select_dropdown,
178
- .card#share input,
179
- .card#share select,
180
- .input {
181
- background: var(--surfaceSecondary);
182
- color: var(--textPrimary);
183
- border: 1px solid var(--divider);
184
- border-radius: var(--border-radius-sm);
185
- }
186
- .input:hover,
187
- .input:focus {
188
- border-color: var(--primary);
189
- box-shadow: 0 0 0 2px var(--primary-light);
190
- }
191
- .input--red {
192
- background: var(--accent-light);
193
- color: var(--accent);
194
- }
195
-
196
- .input--green {
197
- background: var(--secondary-light);
198
- color: var(--secondary);
199
- }
200
-
201
- .select_option:hover {
202
- background: var(--primary-light);
203
- }
204
-
205
- .select_option--selected {
206
- background: var(--primary-light);
207
- }
208
-
209
-
210
- .dashboard #nav .wrapper,
211
- .collapsible {
212
- border-color: var(--divider);
213
- }
214
- .collapsible > label * {
215
- color: var(--textPrimary);
216
- }
217
-
218
- table th {
219
- color: var(--textSecondary);
220
- }
221
-
222
- .file-list li:hover {
223
- background: var(--primary-light);
224
- border-radius: var(--border-radius-sm);
225
- }
226
- .file-list li:before {
227
- color: var(--textSecondary);
228
- }
229
- .file-list li[aria-selected=true]:before {
230
- color: var(--icon-blue);
231
- }
232
-
233
- .shell {
234
- background: var(--surfacePrimary);
235
- color: var(--textPrimary);
236
- border-radius: var(--border-radius);
237
- }
238
- .shell__divider {
239
- background: var(--divider);
240
- border-radius: 2px;
241
- }
242
- .shell__divider:hover {
243
- background: var(--primary);
244
- }
245
- .shell__result {
246
- border-top: 1px solid var(--divider);
247
- }
248
- .xterm-screen {
249
- background: var(--surfacePrimary);
250
- border-radius: var(--border-radius);
251
- }
252
-
253
-
254
- #editor-container {
255
- background: var(--background) !important;
256
- }
257
-
258
- #editor-container .bar {
259
- background: var(--surfacePrimary);
260
- border-radius: var(--border-radius) var(--border-radius) 0 0;
261
- }
262
-
263
- @media (max-width: 736px) {
264
- #file-selection {
265
- background: var(--surfaceSecondary) !important;
266
- border-radius: var(--border-radius);
267
- }
268
- #file-selection span {
269
- color: var(--textPrimary) !important;
270
- }
271
- nav {
272
- background: var(--surfaceSecondary) !important;
273
- border-radius: var(--border-radius);
274
- }
275
- #dropdown {
276
- background: var(--surfaceSecondary) !important;
277
- border-radius: var(--border-radius);
278
- }
279
- }
280
-
281
- .share__box {
282
- background: var(--surfacePrimary) !important;
283
- color: var(--textPrimary);
284
- border-radius: var(--border-radius);
285
- box-shadow: var(--shadow-md);
286
- }
287
-
288
- .share__box__element {
289
- border-top-color: var(--divider);
290
- }
291
-
292
- .dropdown_item {
293
- background: var(--surfacePrimary);
294
- margin: 0;
295
- /*border-radius: var(--border-radius-sm);*/
296
- }
297
- .dropdown > div:hover {
298
- background: var(--primary-light);
299
- }
300
- .menu ul li:hover {
301
- background: var(--primary-light);
302
- /*border-radius: var(--border-radius-sm);*/
303
- }
304
- .md-context div{
305
- background: var(--surfaceSecondary);
306
- color: var(--textPrimary);
307
- border-radius: var(--border-radius-sm);
308
- }
309
- #md-container .md-context{
310
- background: var(--surfacePrimary);
311
- border-radius: var(--border-radius);
312
- }
313
- .card-content textarea {
314
- background: var(--surfacePrimary);
315
- color: var(--textPrimary);
316
- border-radius: var(--border-radius-sm);
317
- }
318
-
319
- .nav_list_a,.nav_list_a a {
320
- background: var(--surfacePrimary);
321
- border-radius: var(--border-radius);
322
- }
323
-
324
- .studio .studio-nav,.studio-nav div,.studio-body {
325
- background: var(--surfacePrimary) !important;
326
- border-radius: var(--border-radius);
327
- }
328
-
329
- .studio-item-title:hover * {
330
- color: var(--primary);
331
- }
332
-
333
- .chat-message.bot{
334
- background: var(--primary-light);
335
- border-radius: var(--border-radius);
336
- color: var(--textPrimary);
337
- border-bottom: 1px solid var(--divider);
338
- }
339
- .chat-message.user {
340
- background: #1a2a3a;
341
- color: var(--textPrimary);
342
- border-bottom: none;
343
- }
344
- .chat-message.bot::before {
345
- background: var(--primary);
346
- opacity: 0.6;
347
- transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
348
- }
349
-
350
-
351
- /* Google 暗黑模式 - AI 执行中最后一个气泡头像呼吸 */
352
- [data-sending="true"] .chat-message.bot:last-of-type::before {
353
- opacity: 1;
354
- background: var(--primary);
355
- box-shadow: 0 0 10px 3px var(--primary-light);
356
- animation: ai-avatar-pulse-dark 1.5s ease-in-out infinite;
357
- }
358
-
359
- @keyframes ai-avatar-pulse-dark {
360
- 0%, 100% {
361
- box-shadow: 0 0 8px 2px var(--primary-light);
362
- transform: scale(1);
363
- }
364
- 50% {
365
- box-shadow: 0 0 18px 6px var(--primary-light);
366
- transform: scale(1.15);
367
- }
368
- }
369
-
370
- /* Google 暗黑模式 - 工具调用中头像橙色旋转 */
371
- [data-sending="true"] .chat-message.bot.tool-info:last-of-type::before {
372
- background: #f59e0b;
373
- box-shadow: 0 0 10px 3px rgba(245, 158, 11, 0.5);
374
- animation: ai-avatar-spin-dark 1.5s linear infinite;
375
- }
376
-
377
- @keyframes ai-avatar-spin-dark {
378
- 0% {
379
- box-shadow: 0 0 10px 3px rgba(245, 158, 11, 0.5);
380
- transform: rotate(0deg) scale(1.1);
381
- }
382
- 100% {
383
- box-shadow: 0 0 16px 5px rgba(245, 158, 11, 0.7);
384
- transform: rotate(360deg) scale(1.1);
385
- }
386
- }
387
-
388
- .chat-input-area textarea,
389
- .chat-input-area .ace-input-container.chat-input .ace_editor,
390
- .chat-input-area .rich-textarea.chat-input {
391
- background: var(--surfacePrimary);
392
- border-radius: var(--border-radius);
393
- color: var(--textPrimary);
394
- border-color: var(--divider);
395
- }
396
- .chat-input-area textarea:focus,
397
- .chat-input-area .rich-textarea.chat-input:focus {
398
- border-color: var(--primary);
399
- background: var(--surfaceSecondary);
400
- box-shadow: 0 0 0 3px var(--primary-light);
401
- }
402
-
403
- .chat-input-area {
404
- background: var(--background);
405
- border-top: 1px solid var(--divider);
406
- }
407
-
408
- .chat-main {
409
- background: var(--background);
410
- }
411
-
412
- .chat-header {
413
- background: var(--background);
414
- color: var(--textPrimary);
415
- }
416
-
417
- .chat-messages {
418
- background: var(--background);
419
- }
420
-
421
- .common-box {
422
- background: var(--background);
423
- border-radius: var(--border-radius);
424
- }
425
-
426
- .chat-header ,.chat-input-area {
427
- background: var(--background);
428
- border-radius: var(--border-radius);
429
- }
430
-
431
- .dashboard,.full_screen_context {
432
- background: var(--background);
433
- border-radius: var(--border-radius);
434
- }
435
-
436
- .site_edit {
437
- background: var(--background);
438
- border-radius: var(--border-radius);
439
- }
440
-
441
- .dashboard label, .dashboard_label {
442
- color: var(--textPrimary);
443
- }
444
-
445
- .chat-session-list {
446
- background: var(--background);
447
- border-radius: var(--border-radius);
448
- }
449
-
450
- .chat-session-item {
451
- background: var(--surfacePrimary);
452
- border-radius: var(--border-radius-sm);
453
- color: var(--textPrimary);
454
- }
455
- .chat-session-item.active,
456
- .chat-session-item:hover {
457
- background: var(--primary-light);
458
- }
459
-
460
- .chat-session-search-input {
461
- background: var(--surfaceSecondary);
462
- border-color: var(--divider);
463
- color: var(--textPrimary);
464
- }
465
-
466
- .chat-session-search-input::placeholder {
467
- color: var(--textSecondary);
468
- }
469
-
470
- .chat-session-search-input:focus {
471
- border-color: var(--primary);
472
- box-shadow: 0 0 0 2px var(--primary-light);
473
- }
474
-
475
- /* ===== Google 暗黑模式 - AI 加载气泡 ===== */
476
- .ai-loading-bubble .ai-loading-text {
477
- color: var(--textSecondary);
478
- }
479
- .ai-loading-dot {
480
- background-color: var(--textSecondary);
481
- }
482
-
483
- /* ===== Google 暗黑模式 - 工具调用状态气泡 ===== */
484
- .tool-status-bubble {
485
- background: var(--surfacePrimary);
486
- border-color: var(--borderPrimary);
487
- color: var(--textPrimary);
488
- }
489
-
490
- /* ===== Google 暗黑模式 - 输入区迷你指示器 ===== */
491
- .ai-thinking-mini {
492
- background: var(--surfacePrimary);
493
- }
494
- .ai-thinking-mini .ai-thinking-dot {
495
- background-color: var(--textSecondary);
496
- }
497
-
498
- /* ===== Google 暗黑模式 - 消息操作按钮 ===== */
499
- .message-actions button {
500
- border-color: var(--borderPrimary);
501
- background: var(--surfacePrimary);
502
- color: var(--textSecondary);
503
- box-shadow: 0 1px 2px rgba(0,0,0,0.3);
504
- }
505
- .message-actions button:hover {
506
- color: var(--textPrimary);
507
- border-color: var(--borderSecondary);
508
- background: var(--surfaceSecondary);
509
- box-shadow: 0 1px 3px rgba(0,0,0,0.4);
510
- }
511
-
512
- /* ===== Google 暗黑模式 - 附件 ===== */
513
- .chat-attachment-chip {
514
- border-color: var(--divider);
515
- background: var(--surfaceSecondary);
516
- color: var(--textPrimary);
517
- }
518
- .chat-attachment-chip button {
519
- color: var(--textSecondary);
520
- }
521
- .chat-attach-button {
522
- border-color: var(--divider);
523
- background: var(--surfacePrimary);
524
- color: var(--textSecondary);
525
- }
526
- .chat-attach-button:hover {
527
- background: var(--primary-light);
528
- }
529
-
530
- .chat-message-attachment {
531
- background: var(--surfaceSecondary);
532
- }
533
-
534
- /* ===== Google 暗黑模式 - AI思考指示器 ===== */
535
- .ai-thinking-indicator {
536
- border-color: var(--divider);
537
- background: var(--surfacePrimary);
538
- }
539
-
540
- .ai-thinking-spinner {
541
- border-color: var(--divider);
542
- background: var(--surfacePrimary);
543
- }
544
- .ai-thinking-spinner::after {
545
- border-color: var(--divider);
546
- border-top-color: var(--primary);
547
- }
548
-
549
- .chat-session-item small {
550
- color: var(--textSecondary);
551
- }
552
- .chat-session-source {
553
- color: var(--icon-purple);
554
- }
555
-
556
- /* ===== Google 暗黑模式 - 模型选择器 ===== */
557
- .model-selector-dropdown {
558
- border-color: var(--divider);
559
- background: var(--surfacePrimary);
560
- color: var(--textPrimary);
561
- }
562
- .model-selector-dropdown:focus {
563
- border-color: var(--primary);
564
- box-shadow: 0 0 0 2px var(--primary-light);
565
- }
566
-
567
- /* ===== Google 暗黑模式 - 用量统计弹框 ===== */
568
- .usage-stats-popup {
569
- background: var(--surfacePrimary);
570
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
571
- }
572
- .usage-stats-header {
573
- border-color: var(--divider);
574
- }
575
- .usage-stats-header h3 {
576
- color: var(--textPrimary);
577
- }
578
- .usage-stats-close {
579
- color: var(--textSecondary);
580
- }
581
- .usage-stats-close:hover {
582
- background: var(--primary-light);
583
- color: var(--textPrimary);
584
- }
585
- .usage-stats-loading,
586
- .usage-stats-empty {
587
- color: var(--textSecondary);
588
- }
589
- .usage-stats-row {
590
- background: var(--background);
591
- }
592
- .usage-stats-row:nth-child(even) {
593
- background: var(--surfaceSecondary);
594
- }
595
- .usage-stats-label {
596
- color: var(--textSecondary);
597
- }
598
- .usage-stats-value {
599
- color: var(--textPrimary);
600
- }
601
- .usage-stats-total {
602
- background: var(--primary-light) !important;
603
- border-color: var(--primary);
604
- }
605
- .usage-stats-total .usage-stats-label,
606
- .usage-stats-total .usage-stats-value {
607
- color: var(--primary);
608
- }
609
-
610
- /* ===== Google 暗黑模式 - 工具调用列表 ===== */
611
- .chat-message-call-list {
612
- border-color: var(--divider);
613
- background: rgba(255,255,255,0.03);
614
- }
615
- .call-list-header {
616
- color: var(--textSecondary);
617
- background: rgba(255,255,255,0.02);
618
- }
619
- .call-list-header:hover {
620
- background: rgba(255,255,255,0.05);
621
- }
622
- .call-list-item.call-success {
623
- border-color: rgba(34,197,94,0.25);
624
- background: rgba(34,197,94,0.08);
625
- }
626
- .call-list-item.call-fail {
627
- border-color: rgba(239,68,68,0.25);
628
- background: rgba(239,68,68,0.08);
629
- }
630
- .call-list-tool-name {
631
- color: var(--textPrimary);
632
- }
633
- .call-list-duration {
634
- color: var(--textSecondary);
635
- }
636
- .call-list-details summary {
637
- color: var(--textSecondary);
638
- }
639
- .call-list-details summary:hover {
640
- background: rgba(255,255,255,0.04);
641
- }
642
- .call-list-pre {
643
- background: rgba(255,255,255,0.04);
644
- }
645
- .call-list-error-text {
646
- color: var(--accent);
647
- }
648
-
649
- .chat-header-model {
650
- color: var(--textSecondary);
651
- }
652
-
653
- /* ===== Google 暗黑模式 - 保留原 google-dark 的其他内容 ===== */
654
-
655
- .menu-select-popup {
656
- background: var(--surfacePrimary);
657
- border-radius: var(--border-radius);
658
- box-shadow: var(--shadow-lg);
659
- }
660
-
661
- .menu-select-item:hover {
662
- background:var(--primary-light);
663
- border-radius: var(--border-radius-sm);
664
- }
665
-
666
- .usage-stats-popup {
667
- background: var(--surfacePrimary);
668
- border-radius: var(--border-radius);
669
- box-shadow: var(--shadow-lg);
670
- }
671
-
672
- .usage-stats-header {
673
- border-color: var(--divider);
674
- }
675
-
676
- .usage-stats-header h3 {
677
- color: var(--textPrimary);
678
- }
679
-
680
- .usage-stats-close {
681
- color: var(--textSecondary);
682
- border-radius: 50%;
683
- }
684
-
685
- .usage-stats-close:hover {
686
- color: var(--textPrimary);
687
- background: var(--primary-light);
688
- }
689
-
690
- .usage-stats-loading,
691
- .usage-stats-empty {
692
- color: var(--textSecondary);
693
- }
694
-
695
- .usage-stats-row {
696
- background: var(--background);
697
- border-radius: var(--border-radius-sm);
698
- }
699
-
700
- .usage-stats-row:nth-child(even) {
701
- background: var(--surfaceSecondary);
702
- }
703
-
704
- .usage-stats-label {
705
- color: var(--textSecondary);
706
- }
707
-
708
- .usage-stats-value {
709
- color: var(--textPrimary);
710
- }
711
-
712
- .usage-stats-total {
713
- background: var(--primary-light) !important;
714
- border-color: var(--primary);
715
- border-radius: var(--border-radius);
716
- }
717
-
718
- .usage-stats-total .usage-stats-label,
719
- .usage-stats-total .usage-stats-value {
720
- color: var(--primary);
721
- }
722
-
723
- /* 移除硬编码颜色,改用 CSS 变量 */
724
- nav .nav_2 {
725
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); /* 使用更柔和的缓动曲线 */
726
- border-radius: var(--border-radius-lg); /* 使用你定义的圆角变量 */
727
- /*margin: 4px 8px; !* 给菜单项之间留出空间 *!*/
728
- width: auto;
729
- }
730
-
731
- /* 现代悬停态 */
732
- nav .nav_2:hover {
733
- background-color: var(--surfaceSecondary);
734
- /*transform: scale(1.02); !* 轻微放大,提供物理反馈 *!*/
735
- }
736
-
737
- /* 现代激活态 */
738
- nav .nav_2_active {
739
- background-color: var(--primary-light) !important;
740
- color: var(--primary) !important;
741
- font-weight: 500;
742
- }
743
-
744
- /* 激活态图标颜色 */
745
- nav .nav_2_active i {
746
- color: var(--primary);
747
- }
748
-
749
- /* 整体悬停时,图标也会有一个微小的放大或颜色变化 */
750
- nav .nav_2:hover i {
751
- color: var(--textPrimary);
752
- transition: color 0.2s;
753
- }
754
-
755
- .nav_list_a {
756
- background: transparent; /* 默认透明 */
757
- border-radius: var(--border-radius-lg);
758
- transition: all 0.25s ease;
759
- border: 1px solid transparent; /* 预留边框,防止 Hover 时布局抖动 */
760
- }
761
-
762
- .nav_list_a:hover {
763
- background: var(--surfacePrimary);
764
- box-shadow: var(--shadow-sm); /* 悬停时浮起 */
765
- border-color: var(--divider);
766
- }
767
-
768
- /* 激活时呈现边框高亮 */
769
- .nav_list_a.active {
770
- background: var(--primary-light);
771
- color: var(--primary);
772
- }
773
-
774
- nav {
775
- /*border-right: 1px solid var(--divider); !* 增加右侧分割线 *!*/
776
- background: var(--background);
777
- }
778
-
779
- /* 滚动条隐藏但在悬停时可见(增强交互感) */
780
- nav::-webkit-scrollbar {
781
- width: 6px;
782
- }
783
- nav:hover::-webkit-scrollbar-thumb {
784
- background: var(--divider);
785
- border-radius: 4px;
786
- }
787
-
788
- /* 深色模式特有的图标颜色适配 */
789
- .material-icons.icon {
790
- color: var(--textSecondary);
791
- }
792
-
793
- /* 深色模式下的图标颜色调整 */
794
- .material-icons.icon[data-icon="home"] {
795
- color: #ff7043; /* 橙色 */
796
- }
797
-
798
- .material-icons.icon[data-icon="settings"] {
799
- color: #78909c; /* 蓝灰色 */
800
- }
801
-
802
- .material-icons.icon[data-icon="favorite"] {
803
- color: #f06292; /* 粉红色 */
804
- }
805
-
806
- .material-icons.icon[data-icon="person"] {
807
- color: #ce93d8; /* 紫色 */
808
- }
809
-
810
- /* 导航类图标 */
811
- .material-icons.icon[data-icon="menu"] {
812
- color: rgba(255, 255, 255, 0.7); /* 浅灰色 */
813
- }
814
-
815
- .material-icons.icon[data-icon="arrow_back"] {
816
- color: var(--primary); /* 主色 */
817
- }
818
-
819
- .material-icons.icon[data-icon="arrow_right"] {
820
- color: rgba(255, 255, 255, 0.7);
821
- }
822
-
823
- .material-icons.icon[data-icon="arrow_drop_down"] {
824
- color: rgba(255, 255, 255, 0.7);
825
- }
826
-
827
- .material-icons.icon[data-icon="keyboard_arrow_right"] {
828
- color: rgba(255, 255, 255, 0.7);
829
- }
830
-
831
- .material-icons.icon[data-icon="keyboard_arrow_down"] {
832
- color: rgba(255, 255, 255, 0.7);
833
- }
834
-
835
- .material-icons.icon[data-icon="navigate_before"] {
836
- color: var(--primary);
837
- }
838
-
839
- .material-icons.icon[data-icon="navigate_next"] {
840
- color: var(--primary);
841
- }
842
-
843
- /* 操作类图标 */
844
- .material-icons.icon[data-icon="add"] {
845
- color: var(--primary);
846
- }
847
-
848
- .material-icons.icon[data-icon="save"] {
849
- color: var(--secondary);
850
- }
851
-
852
- .material-icons.icon[data-icon="delete"] {
853
- color: var(--accent);
854
- }
855
-
856
- .material-icons.icon[data-icon="edit"] {
857
- color: var(--warning);
858
- }
859
-
860
- .material-icons.icon[data-icon="close"] {
861
- color: rgba(255, 255, 255, 0.7);
862
- }
863
-
864
- .material-icons.icon[data-icon="refresh"] {
865
- color: var(--primary);
866
- }
867
-
868
- .material-icons.icon[data-icon="search"] {
869
- color: rgba(255, 255, 255, 0.7);
870
- }
871
-
872
- .material-icons.icon[data-icon="more_horiz"] {
873
- color: rgba(255, 255, 255, 0.7);
874
- }
875
-
876
- .material-icons.icon[data-icon="more_vert"] {
877
- color: rgba(255, 255, 255, 0.7);
878
- }
879
-
880
- .material-icons.icon[data-icon="cancel"] {
881
- color: var(--accent);
882
- }
883
-
884
- .material-icons.icon[data-icon="content_copy"] {
885
- color: var(--primary);
886
- }
887
-
888
- .material-icons.icon[data-icon="content_cut"] {
889
- color: var(--accent);
890
- }
891
-
892
- .material-icons.icon[data-icon="content_paste"] {
893
- color: var(--secondary);
894
- }
895
-
896
- .material-icons.icon[data-icon="download"] {
897
- color: var(--primary);
898
- }
899
-
900
- .material-icons.icon[data-icon="upload"] {
901
- color: var(--primary);
902
- }
903
-
904
- .material-icons.icon[data-icon="send"] {
905
- color: var(--primary);
906
- }
907
-
908
- .material-icons.icon[data-icon="play_arrow"] {
909
- color: var(--secondary);
910
- }
911
-
912
- .material-icons.icon[data-icon="stop"] {
913
- color: var(--accent);
914
- }
915
-
916
- .material-icons.icon[data-icon="compress"] {
917
- color: #78909c; /* 蓝灰色 */
918
- }
919
-
920
- /* 文件类型图标 */
921
- .material-icons.icon[data-icon="folder"] {
922
- color: var(--warning);
923
- }
924
-
925
- .material-icons.icon[data-icon="insert_drive_file"] {
926
- color: rgba(255, 255, 255, 0.7);
927
- }
928
-
929
- .material-icons.icon[data-icon="image"] {
930
- color: var(--accent);
931
- }
932
-
933
- .material-icons.icon[data-icon="code"] {
934
- color: var(--secondary);
935
- }
936
-
937
- .material-icons.icon[data-icon="description"] {
938
- color: var(--primary);
939
- }
940
-
941
- .material-icons.icon[data-icon="volume_up"] {
942
- color: var(--warning);
943
- }
944
-
945
- .material-icons.icon[data-icon="movie"] {
946
- color: #ce93d8; /* 紫色 */
947
- }
948
-
949
- .material-icons.icon[data-icon="link_off"] {
950
- color: var(--accent);
951
- }
952
-
953
- .material-icons.icon[data-icon="border_all"] {
954
- color: var(--secondary);
955
- }
956
-
957
- .material-icons.icon[data-icon="slideshow"] {
958
- color: var(--accent);
959
- }
960
-
961
- .material-icons.icon[data-icon="web_asset"] {
962
- color: rgba(255, 255, 255, 0.7);
963
- }
964
-
965
- .material-icons.icon[data-icon="archive"] {
966
- color: #78909c; /* 蓝灰色 */
967
- }
968
-
969
- .material-icons.icon[data-icon="folder_zip"] {
970
- color: var(--warning);
971
- }
972
-
973
- .material-icons.icon[data-icon="album"] {
974
- color: #ce93d8; /* 紫色 */
975
- }
976
-
977
- .material-icons.icon[data-icon="font_download"] {
978
- color: var(--primary);
979
- }
980
-
981
- .material-icons.icon[data-icon="draw"] {
982
- color: #f06292; /* 粉红色 */
983
- }
984
-
985
- /* 状态类图标 */
986
- .material-icons.icon[data-icon="check_box"] {
987
- color: var(--secondary);
988
- }
989
-
990
- .material-icons.icon[data-icon="place"] {
991
- color: var(--primary);
992
- }
993
-
994
- .material-icons.icon[data-icon="info"] {
995
- color: var(--primary);
996
- }
997
-
998
- .material-icons.icon[data-icon="sort"] {
999
- color: rgba(255, 255, 255, 0.7);
1000
- }
1001
-
1002
- .material-icons.icon[data-icon="percent"] {
1003
- color: rgba(255, 255, 255, 0.7);
1004
- }
1005
-
1006
- .material-icons.icon[data-icon="text_rotate_vertical"] {
1007
- color: rgba(255, 255, 255, 0.7);
1008
- }
1009
-
1010
- /* 特殊功能图标 */
1011
- .material-icons.icon[data-icon="terminal"] {
1012
- color: #e0e0e0; /* 浅灰色 - 终端命令行 */
1013
- }
1014
-
1015
- .material-icons.icon[data-icon="share"] {
1016
- color: var(--primary);
1017
- }
1018
-
1019
- .material-icons.icon[data-icon="api"] {
1020
- color: var(--secondary);
1021
- }
1022
-
1023
- .material-icons.icon[data-icon="link"] {
1024
- color: var(--primary);
1025
- }
1026
-
1027
- .material-icons.icon[data-icon="schedule"] {
1028
- color: rgba(255, 255, 255, 0.7);
1029
- }
1030
-
1031
- .material-icons.icon[data-icon="grid_view"] {
1032
- color: var(--primary);
1033
- }
1034
-
1035
- .material-icons.icon[data-icon="fullscreen"] {
1036
- color: rgba(255, 255, 255, 0.7);
1037
- }
1038
-
1039
- .material-icons.icon[data-icon="personal_video"] {
1040
- color: var(--primary);
1041
- }
1042
-
1043
- .material-icons.icon[data-icon="print"] {
1044
- color: rgba(255, 255, 255, 0.7);
1045
- }
1046
-
1047
- .material-icons.icon[data-icon="sd_card"] {
1048
- color: #78909c; /* 蓝灰色 */
1049
- }
1050
-
1051
- .material-icons.icon[data-icon="health_and_safety"] {
1052
- color: var(--secondary);
1053
- }
1054
-
1055
- .material-icons.icon[data-icon="update"] {
1056
- color: var(--primary);
1057
- }
1058
-
1059
- .material-icons.icon[data-icon="file_open"] {
1060
- color: var(--primary);
1061
- }
1062
-
1063
- .material-icons.icon[data-icon="create_new_folder"] {
1064
- color: var(--warning);
1065
- }
1066
-
1067
- .material-icons.icon[data-icon="note_add"] {
1068
- color: var(--primary);
1069
- }
1070
-
1071
- /* 输入框图标 */
1072
- .material-icons.icon[data-icon="manage_accounts"] {
1073
- color: rgba(255, 255, 255, 0.7);
1074
- }
1075
-
1076
- .material-icons.icon[data-icon="password"] {
1077
- color: rgba(255, 255, 255, 0.7);
1078
- }
1079
-
1080
- .material-icons.icon[data-icon="private_connectivity"] {
1081
- color: rgba(255, 255, 255, 0.7);
1082
- }
1083
-
1084
- .material-icons.icon[data-icon="location_on"] {
1085
- color: var(--accent);
1086
- }
1087
-
1088
- .material-icons.icon[data-icon="outlet"] {
1089
- color: rgba(255, 255, 255, 0.7);
1090
- }
1091
-
1092
- .material-icons.icon[data-icon="network_ping"] {
1093
- color: rgba(255, 255, 255, 0.7);
1094
- }
1095
-
1096
- .material-icons.icon[data-icon="verified_user"] {
1097
- color: var(--secondary);
1098
- }
1099
-
1100
- .material-icons.icon[data-icon="laptop_mac"] {
1101
- color: rgba(255, 255, 255, 0.7);
1102
- }
1103
-
1104
- /* 其他特殊图标 */
1105
- .material-icons.icon[data-icon="short_text"] {
1106
- color: rgba(255, 255, 255, 0.7);
1107
- }
1108
-
1109
- .material-icons.icon[data-icon="edit_attributes"] {
1110
- color: var(--warning);
1111
- }
1112
-
1113
- .material-icons.icon[data-icon="copy_all"] {
1114
- color: rgba(255, 255, 255, 0.7);
1115
- }
1116
-
1117
- .material-icons.icon[data-icon="data_object"] {
1118
- color: var(--secondary);
1119
- }
1120
-
1121
- .material-icons.icon[data-icon="file_upload"] {
1122
- color: var(--primary);
1123
- }
1124
-
1125
- .material-icons.icon[data-icon="save_as"] {
1126
- color: var(--secondary);
1127
- }
1128
-
1129
- .material-icons.icon[data-icon="unfold_less"] {
1130
- color: rgba(255, 255, 255, 0.7);
1131
- }
1132
-
1133
- .material-icons.icon[data-icon="unfold_more"] {
1134
- color: rgba(255, 255, 255, 0.7);
1135
- }
1136
-
1137
- .material-icons.icon[data-icon="add_box"] {
1138
- color: var(--primary);
1139
- }
1140
-
1141
- .material-icons.icon[data-icon="add_comment"] {
1142
- color: var(--primary);
1143
- }
1144
-
1145
- .material-icons.icon[data-icon="delete_sweep"] {
1146
- color: var(--accent);
1147
- }
1148
-
1149
- .material-icons.icon[data-icon="details"] {
1150
- color: rgba(255, 255, 255, 0.7);
1151
- }
1152
-
1153
- .material-icons.icon[data-icon="table_chart"] {
1154
- color: var(--secondary);
1155
- }
1156
-
1157
- .material-icons.icon[data-icon="add_circle"] {
1158
- color: var(--primary);
1159
- }
1160
-
1161
- .material-icons.icon[data-icon="sentiment_dissatisfied"] {
1162
- color: var(--warning);
1163
- }
1164
-
1165
- .material-icons.icon[data-icon="attach_file"] {
1166
- color: rgba(255, 255, 255, 0.7);
1167
- }
1168
-
1169
- /* 补充的图标 */
1170
- .material-icons.icon[data-icon="upload_file"] {
1171
- color: var(--primary);
1172
- }
1173
-
1174
- .material-icons.icon[data-icon="question_answer"] {
1175
- color: var(--secondary);
1176
- }
1177
-
1178
- .material-icons.icon[data-icon="computer"] {
1179
- color: rgba(255, 255, 255, 0.7);
1180
- }
1181
-
1182
- .material-icons.icon[data-icon="cell_tower"] {
1183
- color: #78909c; /* 蓝灰色 */
1184
- }
1185
-
1186
- .material-icons.icon[data-icon="home_repair_service"] {
1187
- color: var(--warning);
1188
- }
1189
-
1190
- .material-icons.icon[data-icon="vpn_lock"] {
1191
- color: var(--secondary);
1192
- }
1193
-
1194
- .material-icons.icon[data-icon="dns"] {
1195
- color: var(--primary);
1196
- }
1197
-
1198
- .material-icons.icon[data-icon="logout"] {
1199
- color: var(--accent);
1200
- }
1201
-
1202
- /* 其他常用图标补充 */
1203
- .material-icons.icon[data-icon="warning"] {
1204
- color: var(--warning);
1205
- }
1206
-
1207
- .material-icons.icon[data-icon="error"] {
1208
- color: var(--accent);
1209
- }
1210
-
1211
- .material-icons.icon[data-icon="success"] {
1212
- color: var(--secondary);
1213
- }
1214
-
1215
- .material-icons.icon[data-icon="lock"] {
1216
- color: #78909c; /* 蓝灰色 */
1217
- }
1218
-
1219
- .material-icons.icon[data-icon="lock_open"] {
1220
- color: var(--secondary);
1221
- }
1222
-
1223
- .material-icons.icon[data-icon="visibility"] {
1224
- color: var(--primary);
1225
- }
1226
-
1227
- .material-icons.icon[data-icon="visibility_off"] {
1228
- color: rgba(255, 255, 255, 0.7);
1229
- }
1230
-
1231
- .material-icons.icon[data-icon="star"] {
1232
- color: var(--warning);
1233
- }
1234
-
1235
- .material-icons.icon[data-icon="star_border"] {
1236
- color: rgba(255, 255, 255, 0.7);
1237
- }
1238
-
1239
- .material-icons.icon[data-icon="bookmark"] {
1240
- color: var(--primary);
1241
- }
1242
-
1243
- .material-icons.icon[data-icon="bookmark_border"] {
1244
- color: rgba(255, 255, 255, 0.7);
1245
- }
1246
-
1247
- .material-icons.icon[data-icon="notifications"] {
1248
- color: var(--primary);
1249
- }
1250
-
1251
- .material-icons.icon[data-icon="notifications_none"] {
1252
- color: rgba(255, 255, 255, 0.7);
1253
- }
1254
-
1255
- .material-icons.icon[data-icon="notifications_active"] {
1256
- color: var(--warning);
1257
- }
1258
-
1259
- .material-icons.icon[data-icon="account_circle"] {
1260
- color: var(--primary);
1261
- }
1262
-
1263
- .material-icons.icon[data-icon="group"] {
1264
- color: var(--secondary);
1265
- }
1266
-
1267
- .material-icons.icon[data-icon="chat"] {
1268
- color: var(--secondary);
1269
- }
1270
-
1271
- .material-icons.icon[data-icon="email"] {
1272
- color: var(--primary);
1273
- }
1274
-
1275
- .material-icons.icon[data-icon="phone"] {
1276
- color: var(--secondary);
1277
- }
1278
-
1279
- .material-icons.icon[data-icon="video_call"] {
1280
- color: #ce93d8; /* 紫色 */
1281
- }
1282
-
1283
- .material-icons.icon[data-icon="screen_share"] {
1284
- color: var(--primary);
1285
- }
1286
-
1287
- .material-icons.icon[data-icon="security"] {
1288
- color: var(--secondary);
1289
- }
1290
-
1291
- .material-icons.icon[data-icon="backup"] {
1292
- color: var(--primary);
1293
- }
1294
-
1295
- .material-icons.icon[data-icon="restore"] {
1296
- color: var(--primary);
1297
- }
1298
-
1299
- .material-icons.icon[data-icon="sync"] {
1300
- color: var(--primary);
1301
- }
1302
-
1303
- .material-icons.icon[data-icon="cloud"] {
1304
- color: var(--primary);
1305
- }
1306
-
1307
- .material-icons.icon[data-icon="cloud_upload"] {
1308
- color: var(--primary);
1309
- }
1310
-
1311
- .material-icons.icon[data-icon="cloud_download"] {
1312
- color: var(--primary);
1313
- }
1314
-
1315
- .material-icons.icon[data-icon="cloud_off"] {
1316
- color: rgba(255, 255, 255, 0.7);
1317
- }
1318
-
1319
- .material-icons.icon[data-icon="wifi"] {
1320
- color: var(--primary);
1321
- }
1322
-
1323
- .material-icons.icon[data-icon="wifi_off"] {
1324
- color: rgba(255, 255, 255, 0.7);
1325
- }
1326
-
1327
- .material-icons.icon[data-icon="bluetooth"] {
1328
- color: var(--primary);
1329
- }
1330
-
1331
- .material-icons.icon[data-icon="bluetooth_disabled"] {
1332
- color: rgba(255, 255, 255, 0.7);
1333
- }
1334
-
1335
- .material-icons.icon[data-icon="battery_full"] {
1336
- color: var(--secondary);
1337
- }
1338
-
1339
- .material-icons.icon[data-icon="battery_charging_full"] {
1340
- color: var(--secondary);
1341
- }
1342
-
1343
- .material-icons.icon[data-icon="battery_alert"] {
1344
- color: var(--accent);
1345
- }
1346
-
1347
- .material-icons.icon[data-icon="signal_cellular_4_bar"] {
1348
- color: var(--secondary);
1349
- }
1350
-
1351
- .material-icons.icon[data-icon="signal_cellular_connected_no_internet_4_bar"] {
1352
- color: var(--warning);
1353
- }
1354
-
1355
- .material-icons.icon[data-icon="signal_cellular_off"] {
1356
- color: rgba(255, 255, 255, 0.7);
1357
- }
1358
-
1359
- .material-icons.icon[data-icon="location_disabled"] {
1360
- color: rgba(255, 255, 255, 0.7);
1361
- }
1362
-
1363
- .material-icons.icon[data-icon="not_interested"] {
1364
- color: var(--accent);
1365
- }
1366
-
1367
- .material-icons.icon[data-icon="gavel"] {
1368
- color: #78909c; /* 蓝灰色 */
1369
- }
1370
-
1371
- .material-icons.icon[data-icon="translate"] {
1372
- color: var(--primary);
1373
- }
1374
-
1375
- .material-icons.icon[data-icon="bug_report"] {
1376
- color: var(--accent);
1377
- }
1378
-
1379
- .material-icons.icon[data-icon="developer_board"] {
1380
- color: #78909c; /* 蓝灰色 */
1381
- }
1382
-
1383
- .material-icons.icon[data-icon="storage"] {
1384
- color: #78909c; /* 蓝灰色 */
1385
- }
1386
-
1387
- .material-icons.icon[data-icon="graphic_eq"] {
1388
- color: var(--primary);
1389
- }
1390
-
1391
- .material-icons.icon[data-icon="timelapse"] {
1392
- color: var(--primary);
1393
- }
1394
-
1395
- .material-icons.icon[data-icon="timer"] {
1396
- color: var(--primary);
1397
- }
1398
-
1399
- .material-icons.icon[data-icon="hourglass_empty"] {
1400
- color: rgba(255, 255, 255, 0.7);
1401
- }
1402
-
1403
- .material-icons.icon[data-icon="hourglass_full"] {
1404
- color: var(--primary);
1405
- }
1406
-
1407
- .material-icons.icon[data-icon="loop"] {
1408
- color: var(--primary);
1409
- }
1410
-
1411
- .material-icons.icon[data-icon="shuffle"] {
1412
- color: var(--primary);
1413
- }
1414
-
1415
- .material-icons.icon[data-icon="repeat"] {
1416
- color: var(--primary);
1417
- }
1418
-
1419
- .material-icons.icon[data-icon="repeat_one"] {
1420
- color: var(--primary);
1421
- }
1422
-
1423
- .material-icons.icon[data-icon="queue_music"] {
1424
- color: var(--primary);
1425
- }
1426
-
1427
- .material-icons.icon[data-icon="playlist_add"] {
1428
- color: var(--primary);
1429
- }
1430
-
1431
- .material-icons.icon[data-icon="playlist_play"] {
1432
- color: var(--primary);
1433
- }
1434
-
1435
- .material-icons.icon[data-icon="library_music"] {
1436
- color: var(--primary);
1437
- }
1438
-
1439
- .material-icons.icon[data-icon="library_books"] {
1440
- color: var(--primary);
1441
- }
1442
-
1443
- .material-icons.icon[data-icon="library_add"] {
1444
- color: var(--primary);
1445
- }
1446
-
1447
- .material-icons.icon[data-icon="movie_filter"] {
1448
- color: #ce93d8; /* 紫色 */
1449
- }
1450
-
1451
- .material-icons.icon[data-icon="photo_camera"] {
1452
- color: rgba(255, 255, 255, 0.7);
1453
- }
1454
-
1455
- .material-icons.icon[data-icon="photo_library"] {
1456
- color: var(--primary);
1457
- }
1458
-
1459
- .material-icons.icon[data-icon="camera_alt"] {
1460
- color: rgba(255, 255, 255, 0.7);
1461
- }
1462
-
1463
- .material-icons.icon[data-icon="camera_enhance"] {
1464
- color: var(--primary);
1465
- }
1466
-
1467
- .material-icons.icon[data-icon="flash_on"] {
1468
- color: var(--warning);
1469
- }
1470
-
1471
- .material-icons.icon[data-icon="flash_off"] {
1472
- color: rgba(255, 255, 255, 0.7);
1473
- }
1474
-
1475
- .material-icons.icon[data-icon="flash_auto"] {
1476
- color: var(--primary);
1477
- }
1478
-
1479
- .material-icons.icon[data-icon="panorama"] {
1480
- color: var(--primary);
1481
- }
1482
-
1483
- .material-icons.icon[data-icon="panorama_fish_eye"] {
1484
- color: var(--primary);
1485
- }
1486
-
1487
- .material-icons.icon[data-icon="panorama_horizontal"] {
1488
- color: var(--primary);
1489
- }
1490
-
1491
- .material-icons.icon[data-icon="panorama_vertical"] {
1492
- color: var(--primary);
1493
- }
1494
-
1495
- .material-icons.icon[data-icon="panorama_wide_angle"] {
1496
- color: var(--primary);
1497
- }
1498
-
1499
- .material-icons.icon[data-icon="switch_camera"] {
1500
- color: var(--primary);
1501
- }
1502
-
1503
- .material-icons.icon[data-icon="switch_video"] {
1504
- color: var(--primary);
1505
- }
1506
-
1507
- .material-icons.icon[data-icon="video_label"] {
1508
- color: var(--primary);
1509
- }
1510
-
1511
- .material-icons.icon[data-icon="video_library"] {
1512
- color: var(--primary);
1513
- }
1514
-
1515
- .material-icons.icon[data-icon="videocam"] {
1516
- color: rgba(255, 255, 255, 0.7);
1517
- }
1518
-
1519
- .material-icons.icon[data-icon="videocam_off"] {
1520
- color: rgba(255, 255, 255, 0.7);
1521
- }
1522
-
1523
- .material-icons.icon[data-icon="fiber_manual_record"] {
1524
- color: var(--accent);
1525
- }
1526
-
1527
- .material-icons.icon[data-icon="fiber_smart_record"] {
1528
- color: var(--primary);
1529
- }
1530
-
1531
- .material-icons.icon[data-icon="high_quality"] {
1532
- color: var(--primary);
1533
- }
1534
-
1535
- .material-icons.icon[data-icon="sd"] {
1536
- color: var(--warning);
1537
- }
1538
-
1539
- .material-icons.icon[data-icon="hd"] {
1540
- color: var(--primary);
1541
- }
1542
-
1543
- .material-icons.icon[data-icon="4k"] {
1544
- color: var(--primary);
1545
- }
1546
-
1547
- .material-icons.icon[data-icon="closed_caption"] {
1548
- color: var(--primary);
1549
- }
1550
-
1551
- .material-icons.icon[data-icon="closed_caption_disabled"] {
1552
- color: rgba(255, 255, 255, 0.7);
1553
- }
1554
-
1555
- .material-icons.icon[data-icon="surround_sound"] {
1556
- color: var(--primary);
1557
- }
1558
-
1559
- .material-icons.icon[data-icon="volume_down"] {
1560
- color: rgba(255, 255, 255, 0.7);
1561
- }
1562
-
1563
- .material-icons.icon[data-icon="volume_mute"] {
1564
- color: rgba(255, 255, 255, 0.7);
1565
- }
1566
-
1567
- .material-icons.icon[data-icon="volume_off"] {
1568
- color: rgba(255, 255, 255, 0.7);
1569
- }
1570
-
1571
- .material-icons.icon[data-icon="play_circle_filled"] {
1572
- color: var(--primary);
1573
- }
1574
-
1575
- .material-icons.icon[data-icon="play_circle_outline"] {
1576
- color: var(--primary);
1577
- }
1578
-
1579
- .material-icons.icon[data-icon="pause"] {
1580
- color: rgba(255, 255, 255, 0.7);
1581
- }
1582
-
1583
- .material-icons.icon[data-icon="pause_circle_filled"] {
1584
- color: rgba(255, 255, 255, 0.7);
1585
- }
1586
-
1587
- .material-icons.icon[data-icon="pause_circle_outline"] {
1588
- color: rgba(255, 255, 255, 0.7);
1589
- }
1590
-
1591
- .material-icons.icon[data-icon="skip_next"] {
1592
- color: var(--primary);
1593
- }
1594
-
1595
- .material-icons.icon[data-icon="skip_previous"] {
1596
- color: var(--primary);
1597
- }
1598
-
1599
- .material-icons.icon[data-icon="fast_forward"] {
1600
- color: var(--primary);
1601
- }
1602
-
1603
- .material-icons.icon[data-icon="fast_rewind"] {
1604
- color: var(--primary);
1605
- }
1606
-
1607
- .material-icons.icon[data-icon="replay"] {
1608
- color: var(--primary);
1609
- }
1610
-
1611
- .material-icons.icon[data-icon="replay_5"] {
1612
- color: var(--primary);
1613
- }
1614
-
1615
- .material-icons.icon[data-icon="replay_10"] {
1616
- color: var(--primary);
1617
- }
1618
-
1619
- .material-icons.icon[data-icon="replay_30"] {
1620
- color: var(--primary);
1621
- }
1622
-
1623
- .material-icons.icon[data-icon="forward_5"] {
1624
- color: var(--primary);
1625
- }
1626
-
1627
- .material-icons.icon[data-icon="forward_10"] {
1628
- color: var(--primary);
1629
- }
1630
-
1631
- .material-icons.icon[data-icon="forward_30"] {
1632
- color: var(--primary);
1633
- }
1634
-
1635
- .material-icons.icon[data-icon="mic"] {
1636
- color: rgba(255, 255, 255, 0.7);
1637
- }
1638
-
1639
- .material-icons.icon[data-icon="mic_none"] {
1640
- color: rgba(255, 255, 255, 0.7);
1641
- }
1642
-
1643
- .material-icons.icon[data-icon="mic_off"] {
1644
- color: rgba(255, 255, 255, 0.7);
1645
- }
1646
-
1647
- .material-icons.icon[data-icon="speaker"] {
1648
- color: rgba(255, 255, 255, 0.7);
1649
- }
1650
-
1651
- .material-icons.icon[data-icon="speaker_group"] {
1652
- color: rgba(255, 255, 255, 0.7);
1653
- }
1654
-
1655
- .material-icons.icon[data-icon="speaker_notes"] {
1656
- color: var(--primary);
1657
- }
1658
-
1659
- .material-icons.icon[data-icon="speaker_notes_off"] {
1660
- color: rgba(255, 255, 255, 0.7);
1661
- }
1662
-
1663
- .material-icons.icon[data-icon="text_fields"] {
1664
- color: rgba(255, 255, 255, 0.7);
1665
- }
1666
-
1667
- .material-icons.icon[data-icon="format_bold"] {
1668
- color: rgba(255, 255, 255, 0.7);
1669
- }
1670
-
1671
- .material-icons.icon[data-icon="format_italic"] {
1672
- color: rgba(255, 255, 255, 0.7);
1673
- }
1674
-
1675
- .material-icons.icon[data-icon="format_underlined"] {
1676
- color: rgba(255, 255, 255, 0.7);
1677
- }
1678
-
1679
- .material-icons.icon[data-icon="format_strikethrough"] {
1680
- color: rgba(255, 255, 255, 0.7);
1681
- }
1682
-
1683
- .material-icons.icon[data-icon="format_size"] {
1684
- color: rgba(255, 255, 255, 0.7);
1685
- }
1686
-
1687
- .material-icons.icon[data-icon="format_color_text"] {
1688
- color: rgba(255, 255, 255, 0.7);
1689
- }
1690
-
1691
- .material-icons.icon[data-icon="format_color_fill"] {
1692
- color: rgba(255, 255, 255, 0.7);
1693
- }
1694
-
1695
- .material-icons.icon[data-icon="format_align_left"] {
1696
- color: rgba(255, 255, 255, 0.7);
1697
- }
1698
-
1699
- .material-icons.icon[data-icon="format_align_center"] {
1700
- color: rgba(255, 255, 255, 0.7);
1701
- }
1702
-
1703
- .material-icons.icon[data-icon="format_align_right"] {
1704
- color: rgba(255, 255, 255, 0.7);
1705
- }
1706
-
1707
- .material-icons.icon[data-icon="format_align_justify"] {
1708
- color: rgba(255, 255, 255, 0.7);
1709
- }
1710
-
1711
- .material-icons.icon[data-icon="format_list_bulleted"] {
1712
- color: rgba(255, 255, 255, 0.7);
1713
- }
1714
-
1715
- .material-icons.icon[data-icon="format_list_numbered"] {
1716
- color: rgba(255, 255, 255, 0.7);
1717
- }
1718
-
1719
- .material-icons.icon[data-icon="format_indent_increase"] {
1720
- color: rgba(255, 255, 255, 0.7);
1721
- }
1722
-
1723
- .material-icons.icon[data-icon="format_indent_decrease"] {
1724
- color: rgba(255, 255, 255, 0.7);
1725
- }
1726
-
1727
- .material-icons.icon[data-icon="format_clear"] {
1728
- color: rgba(255, 255, 255, 0.7);
1729
- }
1730
-
1731
- .material-icons.icon[data-icon="insert_emoticon"] {
1732
- color: var(--warning);
1733
- }
1734
-
1735
- .material-icons.icon[data-icon="insert_chart"] {
1736
- color: var(--primary);
1737
- }
1738
-
1739
- .material-icons.icon[data-icon="insert_comment"] {
1740
- color: var(--primary);
1741
- }
1742
-
1743
- .material-icons.icon[data-icon="insert_invitation"] {
1744
- color: var(--primary);
1745
- }
1746
-
1747
- .material-icons.icon[data-icon="insert_link"] {
1748
- color: var(--primary);
1749
- }
1750
-
1751
- .material-icons.icon[data-icon="insert_photo"] {
1752
- color: var(--primary);
1753
- }
1754
-
1755
- .material-icons.icon[data-icon="mode_comment"] {
1756
- color: var(--primary);
1757
- }
1758
-
1759
- .material-icons.icon[data-icon="mode_edit"] {
1760
- color: var(--warning);
1761
- }
1762
-
1763
- .material-icons.icon[data-icon="publish"] {
1764
- color: var(--primary);
1765
- }
1766
-
1767
- .material-icons.icon[data-icon="vertical_align_top"] {
1768
- color: rgba(255, 255, 255, 0.7);
1769
- }
1770
-
1771
- .material-icons.icon[data-icon="vertical_align_bottom"] {
1772
- color: rgba(255, 255, 255, 0.7);
1773
- }
1774
-
1775
- .material-icons.icon[data-icon="vertical_align_center"] {
1776
- color: rgba(255, 255, 255, 0.7);
1777
- }
1778
-
1779
- .material-icons.icon[data-icon="wrap_text"] {
1780
- color: rgba(255, 255, 255, 0.7);
1781
- }
1782
-
1783
- .material-icons.icon[data-icon="money_off"] {
1784
- color: var(--accent);
1785
- }
1786
-
1787
- .material-icons.icon[data-icon="monetization_on"] {
1788
- color: var(--warning);
1789
- }
1790
-
1791
- .material-icons.icon[data-icon="euro_symbol"] {
1792
- color: var(--primary);
1793
- }
1794
-
1795
- .material-icons.icon[data-icon="attach_money"] {
1796
- color: var(--secondary);
1797
- }
1798
-
1799
- .material-icons.icon[data-icon="bubble_chart"] {
1800
- color: var(--primary);
1801
- }
1802
-
1803
- .material-icons.icon[data-icon="multiline_chart"] {
1804
- color: var(--primary);
1805
- }
1806
-
1807
- .material-icons.icon[data-icon="pie_chart"] {
1808
- color: var(--primary);
1809
- }
1810
-
1811
- .material-icons.icon[data-icon="scatter_plot"] {
1812
- color: var(--primary);
1813
- }
1814
-
1815
- .material-icons.icon[data-icon="show_chart"] {
1816
- color: var(--primary);
1817
- }
1818
-
1819
- .material-icons.icon[data-icon="equalizer"] {
1820
- color: var(--primary);
1821
- }
1822
-
1823
- .material-icons.icon[data-icon="linear_scale"] {
1824
- color: rgba(255, 255, 255, 0.7);
1825
- }
1826
-
1827
- .material-icons.icon[data-icon="timeline"] {
1828
- color: var(--primary);
1829
- }
1830
-
1831
- .material-icons.icon[data-icon="trending_up"] {
1832
- color: var(--secondary);
1833
- }
1834
-
1835
- .material-icons.icon[data-icon="trending_down"] {
1836
- color: var(--accent);
1837
- }
1838
-
1839
- .material-icons.icon[data-icon="trending_flat"] {
1840
- color: rgba(255, 255, 255, 0.7);
1841
- }
1842
-
1843
- .material-icons.icon[data-icon="call_made"] {
1844
- color: var(--primary);
1845
- }
1846
-
1847
- .material-icons.icon[data-icon="call_received"] {
1848
- color: var(--primary);
1849
- }
1850
-
1851
- .material-icons.icon[data-icon="call_merge"] {
1852
- color: var(--primary);
1853
- }
1854
-
1855
- .material-icons.icon[data-icon="call_missed"] {
1856
- color: var(--accent);
1857
- }
1858
-
1859
- .material-icons.icon[data-icon="call_missed_outgoing"] {
1860
- color: var(--accent);
1861
- }
1862
-
1863
- .material-icons.icon[data-icon="call_split"] {
1864
- color: var(--primary);
1865
- }
1866
-
1867
- .material-icons.icon[data-icon="chat_bubble"] {
1868
- color: var(--primary);
1869
- }
1870
-
1871
- .material-icons.icon[data-icon="chat_bubble_outline"] {
1872
- color: rgba(255, 255, 255, 0.7);
1873
- }
1874
-
1875
- .material-icons.icon[data-icon="forum"] {
1876
- color: var(--primary);
1877
- }
1878
-
1879
- .material-icons.icon[data-icon="speaker_phone"] {
1880
- color: var(--primary);
1881
- }
1882
-
1883
- .material-icons.icon[data-icon="stay_current_portrait"] {
1884
- color: rgba(255, 255, 255, 0.7);
1885
- }
1886
-
1887
- .material-icons.icon[data-icon="stay_current_landscape"] {
1888
- color: rgba(255, 255, 255, 0.7);
1889
- }
1890
-
1891
- .material-icons.icon[data-icon="smartphone"] {
1892
- color: rgba(255, 255, 255, 0.7);
1893
- }
1894
-
1895
- .material-icons.icon[data-icon="tablet"] {
1896
- color: rgba(255, 255, 255, 0.7);
1897
- }
1898
-
1899
- .material-icons.icon[data-icon="tablet_mac"] {
1900
- color: rgba(255, 255, 255, 0.7);
1901
- }
1902
-
1903
- .material-icons.icon[data-icon="desktop_mac"] {
1904
- color: rgba(255, 255, 255, 0.7);
1905
- }
1906
-
1907
- .material-icons.icon[data-icon="desktop_windows"] {
1908
- color: rgba(255, 255, 255, 0.7);
1909
- }
1910
-
1911
- .material-icons.icon[data-icon="laptop_chromebook"] {
1912
- color: rgba(255, 255, 255, 0.7);
1913
- }
1914
-
1915
- .material-icons.icon[data-icon="laptop_windows"] {
1916
- color: rgba(255, 255, 255, 0.7);
1917
- }
1918
-
1919
- .material-icons.icon[data-icon="watch"] {
1920
- color: rgba(255, 255, 255, 0.7);
1921
- }
1922
-
1923
- .material-icons.icon[data-icon="watch_later"] {
1924
- color: var(--primary);
1925
- }
1926
-
1927
- .material-icons.icon[data-icon="devices"] {
1928
- color: rgba(255, 255, 255, 0.7);
1929
- }
1930
-
1931
- .material-icons.icon[data-icon="devices_other"] {
1932
- color: rgba(255, 255, 255, 0.7);
1933
- }
1934
-
1935
- .material-icons.icon[data-icon="scanner"] {
1936
- color: rgba(255, 255, 255, 0.7);
1937
- }
1938
-
1939
- .material-icons.icon[data-icon="headset"] {
1940
- color: rgba(255, 255, 255, 0.7);
1941
- }
1942
-
1943
- .material-icons.icon[data-icon="headset_mic"] {
1944
- color: rgba(255, 255, 255, 0.7);
1945
- }
1946
-
1947
- .material-icons.icon[data-icon="keyboard"] {
1948
- color: rgba(255, 255, 255, 0.7);
1949
- }
1950
-
1951
- .material-icons.icon[data-icon="keyboard_backspace"] {
1952
- color: rgba(255, 255, 255, 0.7);
1953
- }
1954
-
1955
- .material-icons.icon[data-icon="keyboard_capslock"] {
1956
- color: rgba(255, 255, 255, 0.7);
1957
- }
1958
-
1959
- .material-icons.icon[data-icon="keyboard_hide"] {
1960
- color: rgba(255, 255, 255, 0.7);
1961
- }
1962
-
1963
- .material-icons.icon[data-icon="keyboard_return"] {
1964
- color: rgba(255, 255, 255, 0.7);
1965
- }
1966
-
1967
- .material-icons.icon[data-icon="keyboard_tab"] {
1968
- color: rgba(255, 255, 255, 0.7);
1969
- }
1970
-
1971
- .material-icons.icon[data-icon="keyboard_voice"] {
1972
- color: rgba(255, 255, 255, 0.7);
1973
- }
1974
-
1975
- .material-icons.icon[data-icon="mouse"] {
1976
- color: rgba(255, 255, 255, 0.7);
1977
- }
1978
- /* ===== 暗黑模式 - 后台进程面板 ===== */
1979
- .chat-bg-process-panel {
1980
- background: var(--background);
1981
- border-left-color: var(--divider);
1982
- }
1983
- .chat-bg-process-header {
1984
- border-bottom-color: var(--divider);
1985
- }
1986
- .chat-bg-process-title {
1987
- color: var(--textPrimary);
1988
- }
1989
- .chat-bg-process-toolbar {
1990
- border-bottom-color: var(--divider);
1991
- }
1992
- .chat-bg-process-count {
1993
- color: var(--textSecondary);
1994
- }
1995
- .chat-bg-process-empty {
1996
- color: var(--textSecondary);
1997
- }
1998
- .chat-bg-process-item:hover,
1999
- .chat-bg-process-item.active {
2000
- background: var(--surfacePrimary);
2001
- border-color: var(--divider);
2002
- }
2003
- .chat-bg-process-pid {
2004
- color: var(--textPrimary);
2005
- }
2006
- .chat-bg-process-cmd {
2007
- color: var(--textSecondary);
2008
- }
2009
- .chat-bg-process-time,
2010
- .chat-bg-process-exit-code {
2011
- color: var(--textSecondary);
2012
- }
2013
- .chat-bg-process-output {
2014
- border-top-color: var(--divider);
2015
- }
2016
- .chat-bg-process-output-header {
2017
- border-bottom-color: var(--divider);
2018
- color: var(--textPrimary);
2019
- }
2020
- .chat-bg-process-output-pre {
2021
- background: #0d0d0d;
2022
- color: #d4d4d4;
2023
- }
2024
-
2025
- table tr {
2026
- border-bottom: 1px solid var(--surfaceSecondary);
2027
- }
2028
-
2029
- .chat-session-actions {
2030
- border-top: 1px solid var(--surfaceSecondary);
2031
- }
2032
-
1
+ :root {
2
+ /* 深色 Google Material Design 风格主题 */
3
+ --background: #121212;
4
+ --surfacePrimary: #1e1e1e;
5
+ --surfaceSecondary: #2d2d2d;
6
+ --divider: rgba(255, 255, 255, 0.12);
7
+ --icon: #ffffff;
8
+ --textPrimary: rgba(255, 255, 255, 0.87);
9
+ --textSecondary: rgba(255, 255, 255, 0.6);
10
+
11
+ /* 圆角设计 */
12
+ --border-radius: 12px;
13
+ --border-radius-sm: 8px;
14
+ --border-radius-lg: 16px;
15
+
16
+ /* 现代化阴影 (深色版本) */
17
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.15);
18
+ --shadow-md: 0 1px 2px 0 rgba(0, 0, 0, 0.3), 0 2px 6px 2px rgba(0, 0, 0, 0.15);
19
+ --shadow-lg: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 4px 8px 3px rgba(0, 0, 0, 0.15);
20
+
21
+ /* Google 风格色彩 (深色适配) */
22
+ --primary: #8ab4f8;
23
+ --primary-light: #1a2a3a;
24
+ --primary-dark: #4285f4;
25
+ --secondary: #81c995;
26
+ --secondary-light: #1a2e1a;
27
+ --accent: #f28b82;
28
+ --accent-light: #2e1a1a;
29
+ --warning: #fdd663;
30
+ --warning-light: #2e2a1a;
31
+
32
+ /* 渐变色 */
33
+ --gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
34
+ --gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
35
+ --gradient-accent: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
36
+
37
+ /* 现代化图标颜色 (深色适配) */
38
+ --icon-blue: #8ab4f8;
39
+ --icon-green: #81c995;
40
+ --icon-yellow: #fdd663;
41
+ --icon-red: #f28b82;
42
+ --icon-purple: #d7aefb;
43
+ --icon-teal: #78d9ec;
44
+ }
45
+
46
+ body {
47
+ background: var(--background);
48
+ color: var(--textPrimary);
49
+ font-family: 'Google Sans', 'Segoe UI', Roboto, sans-serif;
50
+ }
51
+
52
+ #loading {
53
+ background: var(--background);
54
+ }
55
+ #loading .spinner div, main .spinner div {
56
+ background: var(--icon-blue);
57
+ }
58
+
59
+ #login {
60
+ background: var(--background);
61
+ }
62
+
63
+ .header {
64
+ background: var(--surfacePrimary);
65
+ border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
66
+ box-shadow: var(--shadow-sm);
67
+ }
68
+
69
+ .filecat-search-box__inner {
70
+ background: var(--surfaceSecondary);
71
+ border-color: var(--divider);
72
+ border-radius: var(--border-radius);
73
+ }
74
+ .filecat-search-box__inner input::placeholder {
75
+ color: var(--textSecondary);
76
+ }
77
+
78
+ .action {
79
+ color: var(--textPrimary) !important;
80
+ border-radius: var(--border-radius-sm);
81
+ transition: all 0.2s ease;
82
+ }
83
+ .action:hover {
84
+ background-color: var(--primary-light);
85
+ /*transform: translateY(-1px);*/
86
+ }
87
+
88
+ .action .counter {
89
+ border-color: var(--divider);
90
+ background: var(--accent-light);
91
+ color: var(--accent);
92
+ }
93
+
94
+ nav > div {
95
+ border-color: var(--divider);
96
+ }
97
+
98
+ .breadcrumbs {
99
+ border-color: var(--divider);
100
+ color: var(--textPrimary) !important;
101
+ }
102
+ .breadcrumbs span {
103
+ color: var(--textPrimary) !important;
104
+ }
105
+ .breadcrumbs a:hover {
106
+ background-color: var(--primary-light);
107
+ border-radius: var(--border-radius-sm);
108
+ }
109
+
110
+ #listing .item {
111
+ background: var(--surfacePrimary);
112
+ color: var(--textSecondary);
113
+ border-color: var(--divider) !important;
114
+ border-radius: var(--border-radius);
115
+ box-shadow: var(--shadow-sm);
116
+ transition: all 0.2s ease;
117
+ }
118
+ #listing .item:hover {
119
+ box-shadow: var(--shadow-md);
120
+ /*transform: translateY(-2px);*/
121
+ }
122
+ #listing .item .modified {
123
+ color: var(--textSecondary);
124
+ }
125
+ #listing h2,
126
+ #listing.list .header span {
127
+ color: var(--textPrimary) !important;
128
+ }
129
+ #listing.list .header span {
130
+ color: var(--textPrimary);
131
+ }
132
+ #listing.list .header i {
133
+ color: var(--icon-blue);
134
+ }
135
+ #listing.list .item.header {
136
+ background: var(--background);
137
+ box-shadow: none;
138
+ }
139
+
140
+ .message {
141
+ color: var(--textPrimary);
142
+ }
143
+
144
+ .card {
145
+ background: var(--surfacePrimary);
146
+ color: var(--textPrimary);
147
+ border-radius: var(--border-radius);
148
+ box-shadow: var(--shadow-sm);
149
+ }
150
+ .button--flat:hover {
151
+ background: var(--primary-light);
152
+ border-radius: var(--border-radius-sm);
153
+ }
154
+
155
+ .dashboard #nav ul li {
156
+ color: var(--textSecondary);
157
+ border-radius: var(--border-radius-sm);
158
+ }
159
+ .dashboard #nav ul li:hover {
160
+ background: var(--primary-light);
161
+ }
162
+
163
+ .card h3,
164
+ .dashboard #nav,
165
+ .dashboard p label {
166
+ color: var(--textPrimary);
167
+ }
168
+
169
+ td .input {
170
+ background: transparent;
171
+ border: 0px ;
172
+ }
173
+ td .input:focus {
174
+ background: var(--surfaceSecondary);
175
+ }
176
+
177
+ .select_dropdown,
178
+ .card#share input,
179
+ .card#share select,
180
+ .input {
181
+ background: var(--surfaceSecondary);
182
+ color: var(--textPrimary);
183
+ border: 1px solid var(--divider);
184
+ border-radius: var(--border-radius-sm);
185
+ }
186
+ .input:hover,
187
+ .input:focus {
188
+ border-color: var(--primary);
189
+ box-shadow: 0 0 0 2px var(--primary-light);
190
+ }
191
+ .input--red {
192
+ background: var(--accent-light);
193
+ color: var(--accent);
194
+ }
195
+
196
+ .input--green {
197
+ background: var(--secondary-light);
198
+ color: var(--secondary);
199
+ }
200
+
201
+ .select_option:hover {
202
+ background: var(--primary-light);
203
+ }
204
+
205
+ .select_option--selected {
206
+ background: var(--primary-light);
207
+ }
208
+
209
+
210
+ .dashboard #nav .wrapper,
211
+ .collapsible {
212
+ border-color: var(--divider);
213
+ }
214
+ .collapsible > label * {
215
+ color: var(--textPrimary);
216
+ }
217
+
218
+ table th {
219
+ color: var(--textSecondary);
220
+ }
221
+
222
+ .file-list li:hover {
223
+ background: var(--primary-light);
224
+ border-radius: var(--border-radius-sm);
225
+ }
226
+ .file-list li:before {
227
+ color: var(--textSecondary);
228
+ }
229
+ .file-list li[aria-selected=true]:before {
230
+ color: var(--icon-blue);
231
+ }
232
+
233
+ .shell {
234
+ background: var(--surfacePrimary);
235
+ color: var(--textPrimary);
236
+ border-radius: var(--border-radius);
237
+ }
238
+ .shell__divider {
239
+ background: var(--divider);
240
+ border-radius: 2px;
241
+ }
242
+ .shell__divider:hover {
243
+ background: var(--primary);
244
+ }
245
+ .shell__result {
246
+ border-top: 1px solid var(--divider);
247
+ }
248
+ .xterm-screen {
249
+ background: var(--surfacePrimary);
250
+ border-radius: var(--border-radius);
251
+ }
252
+
253
+
254
+ #editor-container {
255
+ background: var(--background) !important;
256
+ }
257
+
258
+ #editor-container .bar {
259
+ background: var(--surfacePrimary);
260
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
261
+ }
262
+
263
+ @media (max-width: 736px) {
264
+ #file-selection {
265
+ background: var(--surfaceSecondary) !important;
266
+ border-radius: var(--border-radius);
267
+ }
268
+ #file-selection span {
269
+ color: var(--textPrimary) !important;
270
+ }
271
+ nav {
272
+ background: var(--surfaceSecondary) !important;
273
+ border-radius: var(--border-radius);
274
+ }
275
+ #dropdown {
276
+ background: var(--surfaceSecondary) !important;
277
+ border-radius: var(--border-radius);
278
+ }
279
+ }
280
+
281
+ .share__box {
282
+ background: var(--surfacePrimary) !important;
283
+ color: var(--textPrimary);
284
+ border-radius: var(--border-radius);
285
+ box-shadow: var(--shadow-md);
286
+ }
287
+
288
+ .share__box__element {
289
+ border-top-color: var(--divider);
290
+ }
291
+
292
+ .dropdown_item {
293
+ background: var(--surfacePrimary);
294
+ margin: 0;
295
+ /*border-radius: var(--border-radius-sm);*/
296
+ }
297
+ .dropdown > div:hover {
298
+ background: var(--primary-light);
299
+ }
300
+ .menu ul li:hover {
301
+ background: var(--primary-light);
302
+ /*border-radius: var(--border-radius-sm);*/
303
+ }
304
+ .md-context div{
305
+ background: var(--surfaceSecondary);
306
+ color: var(--textPrimary);
307
+ border-radius: var(--border-radius-sm);
308
+ }
309
+ #md-container .md-context{
310
+ background: var(--surfacePrimary);
311
+ border-radius: var(--border-radius);
312
+ }
313
+ .card-content textarea {
314
+ background: var(--surfacePrimary);
315
+ color: var(--textPrimary);
316
+ border-radius: var(--border-radius-sm);
317
+ }
318
+
319
+ .nav_list_a,.nav_list_a a {
320
+ background: var(--surfacePrimary);
321
+ border-radius: var(--border-radius);
322
+ }
323
+
324
+ .studio .studio-nav,.studio-nav div,.studio-body {
325
+ background: var(--surfacePrimary) !important;
326
+ border-radius: var(--border-radius);
327
+ }
328
+
329
+ .studio-item-title:hover * {
330
+ color: var(--primary);
331
+ }
332
+
333
+ .chat-message.bot{
334
+ background: var(--primary-light);
335
+ border-radius: var(--border-radius);
336
+ color: var(--textPrimary);
337
+ border-bottom: 1px solid var(--divider);
338
+ }
339
+ .chat-message.user {
340
+ background: #1a2a3a;
341
+ color: var(--textPrimary);
342
+ border-bottom: none;
343
+ }
344
+ .chat-message.bot::before {
345
+ background: var(--primary);
346
+ opacity: 0.6;
347
+ transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
348
+ }
349
+
350
+
351
+ /* Google 暗黑模式 - AI 执行中最后一个气泡头像呼吸 */
352
+ [data-sending="true"] .chat-message.bot:last-of-type::before {
353
+ opacity: 1;
354
+ background: var(--primary);
355
+ box-shadow: 0 0 10px 3px var(--primary-light);
356
+ animation: ai-avatar-pulse-dark 1.5s ease-in-out infinite;
357
+ }
358
+
359
+ @keyframes ai-avatar-pulse-dark {
360
+ 0%, 100% {
361
+ box-shadow: 0 0 8px 2px var(--primary-light);
362
+ transform: scale(1);
363
+ }
364
+ 50% {
365
+ box-shadow: 0 0 18px 6px var(--primary-light);
366
+ transform: scale(1.15);
367
+ }
368
+ }
369
+
370
+ /* Google 暗黑模式 - 工具调用中头像橙色旋转 */
371
+ [data-sending="true"] .chat-message.bot.tool-info:last-of-type::before {
372
+ background: #f59e0b;
373
+ box-shadow: 0 0 10px 3px rgba(245, 158, 11, 0.5);
374
+ animation: ai-avatar-spin-dark 1.5s linear infinite;
375
+ }
376
+
377
+ @keyframes ai-avatar-spin-dark {
378
+ 0% {
379
+ box-shadow: 0 0 10px 3px rgba(245, 158, 11, 0.5);
380
+ transform: rotate(0deg) scale(1.1);
381
+ }
382
+ 100% {
383
+ box-shadow: 0 0 16px 5px rgba(245, 158, 11, 0.7);
384
+ transform: rotate(360deg) scale(1.1);
385
+ }
386
+ }
387
+
388
+ .chat-input-area textarea,
389
+ .chat-input-area .ace-input-container.chat-input .ace_editor,
390
+ .chat-input-area .rich-textarea.chat-input {
391
+ background: var(--surfacePrimary);
392
+ border-radius: var(--border-radius);
393
+ color: var(--textPrimary);
394
+ border-color: var(--divider);
395
+ }
396
+ .chat-input-area textarea:focus,
397
+ .chat-input-area .rich-textarea.chat-input:focus {
398
+ border-color: var(--primary);
399
+ background: var(--surfaceSecondary);
400
+ box-shadow: 0 0 0 3px var(--primary-light);
401
+ }
402
+
403
+ .chat-input-area {
404
+ background: var(--background);
405
+ border-top: 1px solid var(--divider);
406
+ }
407
+
408
+ .chat-main {
409
+ background: var(--background);
410
+ }
411
+
412
+ .chat-header {
413
+ background: var(--background);
414
+ color: var(--textPrimary);
415
+ }
416
+
417
+ .chat-messages {
418
+ background: var(--background);
419
+ }
420
+
421
+ .common-box {
422
+ background: var(--background);
423
+ border-radius: var(--border-radius);
424
+ }
425
+
426
+ .chat-header ,.chat-input-area {
427
+ background: var(--background);
428
+ border-radius: var(--border-radius);
429
+ }
430
+
431
+ .dashboard,.full_screen_context {
432
+ background: var(--background);
433
+ border-radius: var(--border-radius);
434
+ }
435
+
436
+ .site_edit {
437
+ background: var(--background);
438
+ border-radius: var(--border-radius);
439
+ }
440
+
441
+ .dashboard label, .dashboard_label {
442
+ color: var(--textPrimary);
443
+ }
444
+
445
+ .chat-session-list {
446
+ background: var(--background);
447
+ border-radius: var(--border-radius);
448
+ }
449
+
450
+ .chat-session-item {
451
+ background: var(--surfacePrimary);
452
+ border-radius: var(--border-radius-sm);
453
+ color: var(--textPrimary);
454
+ }
455
+ .chat-session-item.active,
456
+ .chat-session-item:hover {
457
+ background: var(--primary-light);
458
+ }
459
+
460
+ .chat-session-search-input {
461
+ background: var(--surfaceSecondary);
462
+ border-color: var(--divider);
463
+ color: var(--textPrimary);
464
+ }
465
+
466
+ .chat-session-search-input::placeholder {
467
+ color: var(--textSecondary);
468
+ }
469
+
470
+ .chat-session-search-input:focus {
471
+ border-color: var(--primary);
472
+ box-shadow: 0 0 0 2px var(--primary-light);
473
+ }
474
+
475
+ /* ===== Google 暗黑模式 - AI 加载气泡 ===== */
476
+ .ai-loading-bubble .ai-loading-text {
477
+ color: var(--textSecondary);
478
+ }
479
+ .ai-loading-dot {
480
+ background-color: var(--textSecondary);
481
+ }
482
+
483
+ /* ===== Google 暗黑模式 - 工具调用状态气泡 ===== */
484
+ .tool-status-bubble {
485
+ background: var(--surfacePrimary);
486
+ border-color: var(--borderPrimary);
487
+ color: var(--textPrimary);
488
+ }
489
+
490
+ /* ===== Google 暗黑模式 - 输入区迷你指示器 ===== */
491
+ .ai-thinking-mini {
492
+ background: var(--surfacePrimary);
493
+ }
494
+ .ai-thinking-mini .ai-thinking-dot {
495
+ background-color: var(--textSecondary);
496
+ }
497
+
498
+ /* ===== Google 暗黑模式 - 消息操作按钮 ===== */
499
+ .message-actions button {
500
+ border-color: var(--borderPrimary);
501
+ background: var(--surfacePrimary);
502
+ color: var(--textSecondary);
503
+ box-shadow: 0 1px 2px rgba(0,0,0,0.3);
504
+ }
505
+ .message-actions button:hover {
506
+ color: var(--textPrimary);
507
+ border-color: var(--borderSecondary);
508
+ background: var(--surfaceSecondary);
509
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
510
+ }
511
+
512
+ /* ===== Google 暗黑模式 - 附件 ===== */
513
+ .chat-attachment-chip {
514
+ border-color: var(--divider);
515
+ background: var(--surfaceSecondary);
516
+ color: var(--textPrimary);
517
+ }
518
+ .chat-attachment-chip button {
519
+ color: var(--textSecondary);
520
+ }
521
+ .chat-attach-button {
522
+ border-color: var(--divider);
523
+ background: var(--surfacePrimary);
524
+ color: var(--textSecondary);
525
+ }
526
+ .chat-attach-button:hover {
527
+ background: var(--primary-light);
528
+ }
529
+
530
+ .chat-message-attachment {
531
+ background: var(--surfaceSecondary);
532
+ }
533
+
534
+ /* ===== Google 暗黑模式 - AI思考指示器 ===== */
535
+ .ai-thinking-indicator {
536
+ border-color: var(--divider);
537
+ background: var(--surfacePrimary);
538
+ }
539
+
540
+ .ai-thinking-spinner {
541
+ border-color: var(--divider);
542
+ background: var(--surfacePrimary);
543
+ }
544
+ .ai-thinking-spinner::after {
545
+ border-color: var(--divider);
546
+ border-top-color: var(--primary);
547
+ }
548
+
549
+ .chat-session-item small {
550
+ color: var(--textSecondary);
551
+ }
552
+ .chat-session-source {
553
+ color: var(--icon-purple);
554
+ }
555
+
556
+ /* ===== Google 暗黑模式 - 模型选择器 ===== */
557
+ .model-selector-dropdown {
558
+ border-color: var(--divider);
559
+ background: var(--surfacePrimary);
560
+ color: var(--textPrimary);
561
+ }
562
+ .model-selector-dropdown:focus {
563
+ border-color: var(--primary);
564
+ box-shadow: 0 0 0 2px var(--primary-light);
565
+ }
566
+
567
+ /* ===== Google 暗黑模式 - 用量统计弹框 ===== */
568
+ .usage-stats-popup {
569
+ background: var(--surfacePrimary);
570
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
571
+ }
572
+ .usage-stats-header {
573
+ border-color: var(--divider);
574
+ }
575
+ .usage-stats-header h3 {
576
+ color: var(--textPrimary);
577
+ }
578
+ .usage-stats-close {
579
+ color: var(--textSecondary);
580
+ }
581
+ .usage-stats-close:hover {
582
+ background: var(--primary-light);
583
+ color: var(--textPrimary);
584
+ }
585
+ .usage-stats-loading,
586
+ .usage-stats-empty {
587
+ color: var(--textSecondary);
588
+ }
589
+ .usage-stats-row {
590
+ background: var(--background);
591
+ }
592
+ .usage-stats-row:nth-child(even) {
593
+ background: var(--surfaceSecondary);
594
+ }
595
+ .usage-stats-label {
596
+ color: var(--textSecondary);
597
+ }
598
+ .usage-stats-value {
599
+ color: var(--textPrimary);
600
+ }
601
+ .usage-stats-total {
602
+ background: var(--primary-light) !important;
603
+ border-color: var(--primary);
604
+ }
605
+ .usage-stats-total .usage-stats-label,
606
+ .usage-stats-total .usage-stats-value {
607
+ color: var(--primary);
608
+ }
609
+
610
+ /* ===== Google 暗黑模式 - 工具调用列表 ===== */
611
+ .chat-message-call-list {
612
+ border-color: var(--divider);
613
+ background: rgba(255,255,255,0.03);
614
+ }
615
+ .call-list-header {
616
+ color: var(--textSecondary);
617
+ background: rgba(255,255,255,0.02);
618
+ }
619
+ .call-list-header:hover {
620
+ background: rgba(255,255,255,0.05);
621
+ }
622
+ .call-list-item.call-success {
623
+ border-color: rgba(34,197,94,0.25);
624
+ background: rgba(34,197,94,0.08);
625
+ }
626
+ .call-list-item.call-fail {
627
+ border-color: rgba(239,68,68,0.25);
628
+ background: rgba(239,68,68,0.08);
629
+ }
630
+ .call-list-tool-name {
631
+ color: var(--textPrimary);
632
+ }
633
+ .call-list-duration {
634
+ color: var(--textSecondary);
635
+ }
636
+ .call-list-details summary {
637
+ color: var(--textSecondary);
638
+ }
639
+ .call-list-details summary:hover {
640
+ background: rgba(255,255,255,0.04);
641
+ }
642
+ .call-list-pre {
643
+ background: rgba(255,255,255,0.04);
644
+ }
645
+ .call-list-error-text {
646
+ color: var(--accent);
647
+ }
648
+
649
+ .chat-header-model {
650
+ color: var(--textSecondary);
651
+ }
652
+
653
+ /* ===== Google 暗黑模式 - 保留原 google-dark 的其他内容 ===== */
654
+
655
+ .menu-select-popup {
656
+ background: var(--surfacePrimary);
657
+ border-radius: var(--border-radius);
658
+ box-shadow: var(--shadow-lg);
659
+ }
660
+
661
+ .menu-select-item:hover {
662
+ background:var(--primary-light);
663
+ border-radius: var(--border-radius-sm);
664
+ }
665
+
666
+ .usage-stats-popup {
667
+ background: var(--surfacePrimary);
668
+ border-radius: var(--border-radius);
669
+ box-shadow: var(--shadow-lg);
670
+ }
671
+
672
+ .usage-stats-header {
673
+ border-color: var(--divider);
674
+ }
675
+
676
+ .usage-stats-header h3 {
677
+ color: var(--textPrimary);
678
+ }
679
+
680
+ .usage-stats-close {
681
+ color: var(--textSecondary);
682
+ border-radius: 50%;
683
+ }
684
+
685
+ .usage-stats-close:hover {
686
+ color: var(--textPrimary);
687
+ background: var(--primary-light);
688
+ }
689
+
690
+ .usage-stats-loading,
691
+ .usage-stats-empty {
692
+ color: var(--textSecondary);
693
+ }
694
+
695
+ .usage-stats-row {
696
+ background: var(--background);
697
+ border-radius: var(--border-radius-sm);
698
+ }
699
+
700
+ .usage-stats-row:nth-child(even) {
701
+ background: var(--surfaceSecondary);
702
+ }
703
+
704
+ .usage-stats-label {
705
+ color: var(--textSecondary);
706
+ }
707
+
708
+ .usage-stats-value {
709
+ color: var(--textPrimary);
710
+ }
711
+
712
+ .usage-stats-total {
713
+ background: var(--primary-light) !important;
714
+ border-color: var(--primary);
715
+ border-radius: var(--border-radius);
716
+ }
717
+
718
+ .usage-stats-total .usage-stats-label,
719
+ .usage-stats-total .usage-stats-value {
720
+ color: var(--primary);
721
+ }
722
+
723
+ /* 移除硬编码颜色,改用 CSS 变量 */
724
+ nav .nav_2 {
725
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); /* 使用更柔和的缓动曲线 */
726
+ border-radius: var(--border-radius-lg); /* 使用你定义的圆角变量 */
727
+ /*margin: 4px 8px; !* 给菜单项之间留出空间 *!*/
728
+ width: auto;
729
+ }
730
+
731
+ /* 现代悬停态 */
732
+ nav .nav_2:hover {
733
+ background-color: var(--surfaceSecondary);
734
+ /*transform: scale(1.02); !* 轻微放大,提供物理反馈 *!*/
735
+ }
736
+
737
+ /* 现代激活态 */
738
+ nav .nav_2_active {
739
+ background-color: var(--primary-light) !important;
740
+ color: var(--primary) !important;
741
+ font-weight: 500;
742
+ }
743
+
744
+ /* 激活态图标颜色 */
745
+ nav .nav_2_active i {
746
+ color: var(--primary);
747
+ }
748
+
749
+ /* 整体悬停时,图标也会有一个微小的放大或颜色变化 */
750
+ nav .nav_2:hover i {
751
+ color: var(--textPrimary);
752
+ transition: color 0.2s;
753
+ }
754
+
755
+ .nav_list_a {
756
+ background: transparent; /* 默认透明 */
757
+ border-radius: var(--border-radius-lg);
758
+ transition: all 0.25s ease;
759
+ border: 1px solid transparent; /* 预留边框,防止 Hover 时布局抖动 */
760
+ }
761
+
762
+ .nav_list_a:hover {
763
+ background: var(--surfacePrimary);
764
+ box-shadow: var(--shadow-sm); /* 悬停时浮起 */
765
+ border-color: var(--divider);
766
+ }
767
+
768
+ /* 激活时呈现边框高亮 */
769
+ .nav_list_a.active {
770
+ background: var(--primary-light);
771
+ color: var(--primary);
772
+ }
773
+
774
+ nav {
775
+ /*border-right: 1px solid var(--divider); !* 增加右侧分割线 *!*/
776
+ background: var(--background);
777
+ }
778
+
779
+ /* 滚动条隐藏但在悬停时可见(增强交互感) */
780
+ nav::-webkit-scrollbar {
781
+ width: 6px;
782
+ }
783
+ nav:hover::-webkit-scrollbar-thumb {
784
+ background: var(--divider);
785
+ border-radius: 4px;
786
+ }
787
+
788
+ /* 深色模式特有的图标颜色适配 */
789
+ .material-icons.icon {
790
+ color: var(--textSecondary);
791
+ }
792
+
793
+ /* 深色模式下的图标颜色调整 */
794
+ .material-icons.icon[data-icon="home"] {
795
+ color: #ff7043; /* 橙色 */
796
+ }
797
+
798
+ .material-icons.icon[data-icon="settings"] {
799
+ color: #78909c; /* 蓝灰色 */
800
+ }
801
+
802
+ .material-icons.icon[data-icon="favorite"] {
803
+ color: #f06292; /* 粉红色 */
804
+ }
805
+
806
+ .material-icons.icon[data-icon="person"] {
807
+ color: #ce93d8; /* 紫色 */
808
+ }
809
+
810
+ /* 导航类图标 */
811
+ .material-icons.icon[data-icon="menu"] {
812
+ color: rgba(255, 255, 255, 0.7); /* 浅灰色 */
813
+ }
814
+
815
+ .material-icons.icon[data-icon="arrow_back"] {
816
+ color: var(--primary); /* 主色 */
817
+ }
818
+
819
+ .material-icons.icon[data-icon="arrow_right"] {
820
+ color: rgba(255, 255, 255, 0.7);
821
+ }
822
+
823
+ .material-icons.icon[data-icon="arrow_drop_down"] {
824
+ color: rgba(255, 255, 255, 0.7);
825
+ }
826
+
827
+ .material-icons.icon[data-icon="keyboard_arrow_right"] {
828
+ color: rgba(255, 255, 255, 0.7);
829
+ }
830
+
831
+ .material-icons.icon[data-icon="keyboard_arrow_down"] {
832
+ color: rgba(255, 255, 255, 0.7);
833
+ }
834
+
835
+ .material-icons.icon[data-icon="navigate_before"] {
836
+ color: var(--primary);
837
+ }
838
+
839
+ .material-icons.icon[data-icon="navigate_next"] {
840
+ color: var(--primary);
841
+ }
842
+
843
+ /* 操作类图标 */
844
+ .material-icons.icon[data-icon="add"] {
845
+ color: var(--primary);
846
+ }
847
+
848
+ .material-icons.icon[data-icon="save"] {
849
+ color: var(--secondary);
850
+ }
851
+
852
+ .material-icons.icon[data-icon="delete"] {
853
+ color: var(--accent);
854
+ }
855
+
856
+ .material-icons.icon[data-icon="edit"] {
857
+ color: var(--warning);
858
+ }
859
+
860
+ .material-icons.icon[data-icon="close"] {
861
+ color: rgba(255, 255, 255, 0.7);
862
+ }
863
+
864
+ .material-icons.icon[data-icon="refresh"] {
865
+ color: var(--primary);
866
+ }
867
+
868
+ .material-icons.icon[data-icon="search"] {
869
+ color: rgba(255, 255, 255, 0.7);
870
+ }
871
+
872
+ .material-icons.icon[data-icon="more_horiz"] {
873
+ color: rgba(255, 255, 255, 0.7);
874
+ }
875
+
876
+ .material-icons.icon[data-icon="more_vert"] {
877
+ color: rgba(255, 255, 255, 0.7);
878
+ }
879
+
880
+ .material-icons.icon[data-icon="cancel"] {
881
+ color: var(--accent);
882
+ }
883
+
884
+ .material-icons.icon[data-icon="content_copy"] {
885
+ color: var(--primary);
886
+ }
887
+
888
+ .material-icons.icon[data-icon="content_cut"] {
889
+ color: var(--accent);
890
+ }
891
+
892
+ .material-icons.icon[data-icon="content_paste"] {
893
+ color: var(--secondary);
894
+ }
895
+
896
+ .material-icons.icon[data-icon="download"] {
897
+ color: var(--primary);
898
+ }
899
+
900
+ .material-icons.icon[data-icon="upload"] {
901
+ color: var(--primary);
902
+ }
903
+
904
+ .material-icons.icon[data-icon="send"] {
905
+ color: var(--primary);
906
+ }
907
+
908
+ .material-icons.icon[data-icon="play_arrow"] {
909
+ color: var(--secondary);
910
+ }
911
+
912
+ .material-icons.icon[data-icon="stop"] {
913
+ color: var(--accent);
914
+ }
915
+
916
+ .material-icons.icon[data-icon="compress"] {
917
+ color: #78909c; /* 蓝灰色 */
918
+ }
919
+
920
+ /* 文件类型图标 */
921
+ .material-icons.icon[data-icon="folder"] {
922
+ color: var(--warning);
923
+ }
924
+
925
+ .material-icons.icon[data-icon="insert_drive_file"] {
926
+ color: rgba(255, 255, 255, 0.7);
927
+ }
928
+
929
+ .material-icons.icon[data-icon="image"] {
930
+ color: var(--accent);
931
+ }
932
+
933
+ .material-icons.icon[data-icon="code"] {
934
+ color: var(--secondary);
935
+ }
936
+
937
+ .material-icons.icon[data-icon="description"] {
938
+ color: var(--primary);
939
+ }
940
+
941
+ .material-icons.icon[data-icon="volume_up"] {
942
+ color: var(--warning);
943
+ }
944
+
945
+ .material-icons.icon[data-icon="movie"] {
946
+ color: #ce93d8; /* 紫色 */
947
+ }
948
+
949
+ .material-icons.icon[data-icon="link_off"] {
950
+ color: var(--accent);
951
+ }
952
+
953
+ .material-icons.icon[data-icon="border_all"] {
954
+ color: var(--secondary);
955
+ }
956
+
957
+ .material-icons.icon[data-icon="slideshow"] {
958
+ color: var(--accent);
959
+ }
960
+
961
+ .material-icons.icon[data-icon="web_asset"] {
962
+ color: rgba(255, 255, 255, 0.7);
963
+ }
964
+
965
+ .material-icons.icon[data-icon="archive"] {
966
+ color: #78909c; /* 蓝灰色 */
967
+ }
968
+
969
+ .material-icons.icon[data-icon="folder_zip"] {
970
+ color: var(--warning);
971
+ }
972
+
973
+ .material-icons.icon[data-icon="album"] {
974
+ color: #ce93d8; /* 紫色 */
975
+ }
976
+
977
+ .material-icons.icon[data-icon="font_download"] {
978
+ color: var(--primary);
979
+ }
980
+
981
+ .material-icons.icon[data-icon="draw"] {
982
+ color: #f06292; /* 粉红色 */
983
+ }
984
+
985
+ /* 状态类图标 */
986
+ .material-icons.icon[data-icon="check_box"] {
987
+ color: var(--secondary);
988
+ }
989
+
990
+ .material-icons.icon[data-icon="place"] {
991
+ color: var(--primary);
992
+ }
993
+
994
+ .material-icons.icon[data-icon="info"] {
995
+ color: var(--primary);
996
+ }
997
+
998
+ .material-icons.icon[data-icon="sort"] {
999
+ color: rgba(255, 255, 255, 0.7);
1000
+ }
1001
+
1002
+ .material-icons.icon[data-icon="percent"] {
1003
+ color: rgba(255, 255, 255, 0.7);
1004
+ }
1005
+
1006
+ .material-icons.icon[data-icon="text_rotate_vertical"] {
1007
+ color: rgba(255, 255, 255, 0.7);
1008
+ }
1009
+
1010
+ /* 特殊功能图标 */
1011
+ .material-icons.icon[data-icon="terminal"] {
1012
+ color: #e0e0e0; /* 浅灰色 - 终端命令行 */
1013
+ }
1014
+
1015
+ .material-icons.icon[data-icon="share"] {
1016
+ color: var(--primary);
1017
+ }
1018
+
1019
+ .material-icons.icon[data-icon="api"] {
1020
+ color: var(--secondary);
1021
+ }
1022
+
1023
+ .material-icons.icon[data-icon="link"] {
1024
+ color: var(--primary);
1025
+ }
1026
+
1027
+ .material-icons.icon[data-icon="schedule"] {
1028
+ color: rgba(255, 255, 255, 0.7);
1029
+ }
1030
+
1031
+ .material-icons.icon[data-icon="grid_view"] {
1032
+ color: var(--primary);
1033
+ }
1034
+
1035
+ .material-icons.icon[data-icon="fullscreen"] {
1036
+ color: rgba(255, 255, 255, 0.7);
1037
+ }
1038
+
1039
+ .material-icons.icon[data-icon="personal_video"] {
1040
+ color: var(--primary);
1041
+ }
1042
+
1043
+ .material-icons.icon[data-icon="print"] {
1044
+ color: rgba(255, 255, 255, 0.7);
1045
+ }
1046
+
1047
+ .material-icons.icon[data-icon="sd_card"] {
1048
+ color: #78909c; /* 蓝灰色 */
1049
+ }
1050
+
1051
+ .material-icons.icon[data-icon="health_and_safety"] {
1052
+ color: var(--secondary);
1053
+ }
1054
+
1055
+ .material-icons.icon[data-icon="update"] {
1056
+ color: var(--primary);
1057
+ }
1058
+
1059
+ .material-icons.icon[data-icon="file_open"] {
1060
+ color: var(--primary);
1061
+ }
1062
+
1063
+ .material-icons.icon[data-icon="create_new_folder"] {
1064
+ color: var(--warning);
1065
+ }
1066
+
1067
+ .material-icons.icon[data-icon="note_add"] {
1068
+ color: var(--primary);
1069
+ }
1070
+
1071
+ /* 输入框图标 */
1072
+ .material-icons.icon[data-icon="manage_accounts"] {
1073
+ color: rgba(255, 255, 255, 0.7);
1074
+ }
1075
+
1076
+ .material-icons.icon[data-icon="password"] {
1077
+ color: rgba(255, 255, 255, 0.7);
1078
+ }
1079
+
1080
+ .material-icons.icon[data-icon="private_connectivity"] {
1081
+ color: rgba(255, 255, 255, 0.7);
1082
+ }
1083
+
1084
+ .material-icons.icon[data-icon="location_on"] {
1085
+ color: var(--accent);
1086
+ }
1087
+
1088
+ .material-icons.icon[data-icon="outlet"] {
1089
+ color: rgba(255, 255, 255, 0.7);
1090
+ }
1091
+
1092
+ .material-icons.icon[data-icon="network_ping"] {
1093
+ color: rgba(255, 255, 255, 0.7);
1094
+ }
1095
+
1096
+ .material-icons.icon[data-icon="verified_user"] {
1097
+ color: var(--secondary);
1098
+ }
1099
+
1100
+ .material-icons.icon[data-icon="laptop_mac"] {
1101
+ color: rgba(255, 255, 255, 0.7);
1102
+ }
1103
+
1104
+ /* 其他特殊图标 */
1105
+ .material-icons.icon[data-icon="short_text"] {
1106
+ color: rgba(255, 255, 255, 0.7);
1107
+ }
1108
+
1109
+ .material-icons.icon[data-icon="edit_attributes"] {
1110
+ color: var(--warning);
1111
+ }
1112
+
1113
+ .material-icons.icon[data-icon="copy_all"] {
1114
+ color: rgba(255, 255, 255, 0.7);
1115
+ }
1116
+
1117
+ .material-icons.icon[data-icon="data_object"] {
1118
+ color: var(--secondary);
1119
+ }
1120
+
1121
+ .material-icons.icon[data-icon="file_upload"] {
1122
+ color: var(--primary);
1123
+ }
1124
+
1125
+ .material-icons.icon[data-icon="save_as"] {
1126
+ color: var(--secondary);
1127
+ }
1128
+
1129
+ .material-icons.icon[data-icon="unfold_less"] {
1130
+ color: rgba(255, 255, 255, 0.7);
1131
+ }
1132
+
1133
+ .material-icons.icon[data-icon="unfold_more"] {
1134
+ color: rgba(255, 255, 255, 0.7);
1135
+ }
1136
+
1137
+ .material-icons.icon[data-icon="add_box"] {
1138
+ color: var(--primary);
1139
+ }
1140
+
1141
+ .material-icons.icon[data-icon="add_comment"] {
1142
+ color: var(--primary);
1143
+ }
1144
+
1145
+ .material-icons.icon[data-icon="delete_sweep"] {
1146
+ color: var(--accent);
1147
+ }
1148
+
1149
+ .material-icons.icon[data-icon="details"] {
1150
+ color: rgba(255, 255, 255, 0.7);
1151
+ }
1152
+
1153
+ .material-icons.icon[data-icon="table_chart"] {
1154
+ color: var(--secondary);
1155
+ }
1156
+
1157
+ .material-icons.icon[data-icon="add_circle"] {
1158
+ color: var(--primary);
1159
+ }
1160
+
1161
+ .material-icons.icon[data-icon="sentiment_dissatisfied"] {
1162
+ color: var(--warning);
1163
+ }
1164
+
1165
+ .material-icons.icon[data-icon="attach_file"] {
1166
+ color: rgba(255, 255, 255, 0.7);
1167
+ }
1168
+
1169
+ /* 补充的图标 */
1170
+ .material-icons.icon[data-icon="upload_file"] {
1171
+ color: var(--primary);
1172
+ }
1173
+
1174
+ .material-icons.icon[data-icon="question_answer"] {
1175
+ color: var(--secondary);
1176
+ }
1177
+
1178
+ .material-icons.icon[data-icon="computer"] {
1179
+ color: rgba(255, 255, 255, 0.7);
1180
+ }
1181
+
1182
+ .material-icons.icon[data-icon="cell_tower"] {
1183
+ color: #78909c; /* 蓝灰色 */
1184
+ }
1185
+
1186
+ .material-icons.icon[data-icon="home_repair_service"] {
1187
+ color: var(--warning);
1188
+ }
1189
+
1190
+ .material-icons.icon[data-icon="vpn_lock"] {
1191
+ color: var(--secondary);
1192
+ }
1193
+
1194
+ .material-icons.icon[data-icon="dns"] {
1195
+ color: var(--primary);
1196
+ }
1197
+
1198
+ .material-icons.icon[data-icon="logout"] {
1199
+ color: var(--accent);
1200
+ }
1201
+
1202
+ /* 其他常用图标补充 */
1203
+ .material-icons.icon[data-icon="warning"] {
1204
+ color: var(--warning);
1205
+ }
1206
+
1207
+ .material-icons.icon[data-icon="error"] {
1208
+ color: var(--accent);
1209
+ }
1210
+
1211
+ .material-icons.icon[data-icon="success"] {
1212
+ color: var(--secondary);
1213
+ }
1214
+
1215
+ .material-icons.icon[data-icon="lock"] {
1216
+ color: #78909c; /* 蓝灰色 */
1217
+ }
1218
+
1219
+ .material-icons.icon[data-icon="lock_open"] {
1220
+ color: var(--secondary);
1221
+ }
1222
+
1223
+ .material-icons.icon[data-icon="visibility"] {
1224
+ color: var(--primary);
1225
+ }
1226
+
1227
+ .material-icons.icon[data-icon="visibility_off"] {
1228
+ color: rgba(255, 255, 255, 0.7);
1229
+ }
1230
+
1231
+ .material-icons.icon[data-icon="star"] {
1232
+ color: var(--warning);
1233
+ }
1234
+
1235
+ .material-icons.icon[data-icon="star_border"] {
1236
+ color: rgba(255, 255, 255, 0.7);
1237
+ }
1238
+
1239
+ .material-icons.icon[data-icon="bookmark"] {
1240
+ color: var(--primary);
1241
+ }
1242
+
1243
+ .material-icons.icon[data-icon="bookmark_border"] {
1244
+ color: rgba(255, 255, 255, 0.7);
1245
+ }
1246
+
1247
+ .material-icons.icon[data-icon="notifications"] {
1248
+ color: var(--primary);
1249
+ }
1250
+
1251
+ .material-icons.icon[data-icon="notifications_none"] {
1252
+ color: rgba(255, 255, 255, 0.7);
1253
+ }
1254
+
1255
+ .material-icons.icon[data-icon="notifications_active"] {
1256
+ color: var(--warning);
1257
+ }
1258
+
1259
+ .material-icons.icon[data-icon="account_circle"] {
1260
+ color: var(--primary);
1261
+ }
1262
+
1263
+ .material-icons.icon[data-icon="group"] {
1264
+ color: var(--secondary);
1265
+ }
1266
+
1267
+ .material-icons.icon[data-icon="chat"] {
1268
+ color: var(--secondary);
1269
+ }
1270
+
1271
+ .material-icons.icon[data-icon="email"] {
1272
+ color: var(--primary);
1273
+ }
1274
+
1275
+ .material-icons.icon[data-icon="phone"] {
1276
+ color: var(--secondary);
1277
+ }
1278
+
1279
+ .material-icons.icon[data-icon="video_call"] {
1280
+ color: #ce93d8; /* 紫色 */
1281
+ }
1282
+
1283
+ .material-icons.icon[data-icon="screen_share"] {
1284
+ color: var(--primary);
1285
+ }
1286
+
1287
+ .material-icons.icon[data-icon="security"] {
1288
+ color: var(--secondary);
1289
+ }
1290
+
1291
+ .material-icons.icon[data-icon="backup"] {
1292
+ color: var(--primary);
1293
+ }
1294
+
1295
+ .material-icons.icon[data-icon="restore"] {
1296
+ color: var(--primary);
1297
+ }
1298
+
1299
+ .material-icons.icon[data-icon="sync"] {
1300
+ color: var(--primary);
1301
+ }
1302
+
1303
+ .material-icons.icon[data-icon="cloud"] {
1304
+ color: var(--primary);
1305
+ }
1306
+
1307
+ .material-icons.icon[data-icon="cloud_upload"] {
1308
+ color: var(--primary);
1309
+ }
1310
+
1311
+ .material-icons.icon[data-icon="cloud_download"] {
1312
+ color: var(--primary);
1313
+ }
1314
+
1315
+ .material-icons.icon[data-icon="cloud_off"] {
1316
+ color: rgba(255, 255, 255, 0.7);
1317
+ }
1318
+
1319
+ .material-icons.icon[data-icon="wifi"] {
1320
+ color: var(--primary);
1321
+ }
1322
+
1323
+ .material-icons.icon[data-icon="wifi_off"] {
1324
+ color: rgba(255, 255, 255, 0.7);
1325
+ }
1326
+
1327
+ .material-icons.icon[data-icon="bluetooth"] {
1328
+ color: var(--primary);
1329
+ }
1330
+
1331
+ .material-icons.icon[data-icon="bluetooth_disabled"] {
1332
+ color: rgba(255, 255, 255, 0.7);
1333
+ }
1334
+
1335
+ .material-icons.icon[data-icon="battery_full"] {
1336
+ color: var(--secondary);
1337
+ }
1338
+
1339
+ .material-icons.icon[data-icon="battery_charging_full"] {
1340
+ color: var(--secondary);
1341
+ }
1342
+
1343
+ .material-icons.icon[data-icon="battery_alert"] {
1344
+ color: var(--accent);
1345
+ }
1346
+
1347
+ .material-icons.icon[data-icon="signal_cellular_4_bar"] {
1348
+ color: var(--secondary);
1349
+ }
1350
+
1351
+ .material-icons.icon[data-icon="signal_cellular_connected_no_internet_4_bar"] {
1352
+ color: var(--warning);
1353
+ }
1354
+
1355
+ .material-icons.icon[data-icon="signal_cellular_off"] {
1356
+ color: rgba(255, 255, 255, 0.7);
1357
+ }
1358
+
1359
+ .material-icons.icon[data-icon="location_disabled"] {
1360
+ color: rgba(255, 255, 255, 0.7);
1361
+ }
1362
+
1363
+ .material-icons.icon[data-icon="not_interested"] {
1364
+ color: var(--accent);
1365
+ }
1366
+
1367
+ .material-icons.icon[data-icon="gavel"] {
1368
+ color: #78909c; /* 蓝灰色 */
1369
+ }
1370
+
1371
+ .material-icons.icon[data-icon="translate"] {
1372
+ color: var(--primary);
1373
+ }
1374
+
1375
+ .material-icons.icon[data-icon="bug_report"] {
1376
+ color: var(--accent);
1377
+ }
1378
+
1379
+ .material-icons.icon[data-icon="developer_board"] {
1380
+ color: #78909c; /* 蓝灰色 */
1381
+ }
1382
+
1383
+ .material-icons.icon[data-icon="storage"] {
1384
+ color: #78909c; /* 蓝灰色 */
1385
+ }
1386
+
1387
+ .material-icons.icon[data-icon="graphic_eq"] {
1388
+ color: var(--primary);
1389
+ }
1390
+
1391
+ .material-icons.icon[data-icon="timelapse"] {
1392
+ color: var(--primary);
1393
+ }
1394
+
1395
+ .material-icons.icon[data-icon="timer"] {
1396
+ color: var(--primary);
1397
+ }
1398
+
1399
+ .material-icons.icon[data-icon="hourglass_empty"] {
1400
+ color: rgba(255, 255, 255, 0.7);
1401
+ }
1402
+
1403
+ .material-icons.icon[data-icon="hourglass_full"] {
1404
+ color: var(--primary);
1405
+ }
1406
+
1407
+ .material-icons.icon[data-icon="loop"] {
1408
+ color: var(--primary);
1409
+ }
1410
+
1411
+ .material-icons.icon[data-icon="shuffle"] {
1412
+ color: var(--primary);
1413
+ }
1414
+
1415
+ .material-icons.icon[data-icon="repeat"] {
1416
+ color: var(--primary);
1417
+ }
1418
+
1419
+ .material-icons.icon[data-icon="repeat_one"] {
1420
+ color: var(--primary);
1421
+ }
1422
+
1423
+ .material-icons.icon[data-icon="queue_music"] {
1424
+ color: var(--primary);
1425
+ }
1426
+
1427
+ .material-icons.icon[data-icon="playlist_add"] {
1428
+ color: var(--primary);
1429
+ }
1430
+
1431
+ .material-icons.icon[data-icon="playlist_play"] {
1432
+ color: var(--primary);
1433
+ }
1434
+
1435
+ .material-icons.icon[data-icon="library_music"] {
1436
+ color: var(--primary);
1437
+ }
1438
+
1439
+ .material-icons.icon[data-icon="library_books"] {
1440
+ color: var(--primary);
1441
+ }
1442
+
1443
+ .material-icons.icon[data-icon="library_add"] {
1444
+ color: var(--primary);
1445
+ }
1446
+
1447
+ .material-icons.icon[data-icon="movie_filter"] {
1448
+ color: #ce93d8; /* 紫色 */
1449
+ }
1450
+
1451
+ .material-icons.icon[data-icon="photo_camera"] {
1452
+ color: rgba(255, 255, 255, 0.7);
1453
+ }
1454
+
1455
+ .material-icons.icon[data-icon="photo_library"] {
1456
+ color: var(--primary);
1457
+ }
1458
+
1459
+ .material-icons.icon[data-icon="camera_alt"] {
1460
+ color: rgba(255, 255, 255, 0.7);
1461
+ }
1462
+
1463
+ .material-icons.icon[data-icon="camera_enhance"] {
1464
+ color: var(--primary);
1465
+ }
1466
+
1467
+ .material-icons.icon[data-icon="flash_on"] {
1468
+ color: var(--warning);
1469
+ }
1470
+
1471
+ .material-icons.icon[data-icon="flash_off"] {
1472
+ color: rgba(255, 255, 255, 0.7);
1473
+ }
1474
+
1475
+ .material-icons.icon[data-icon="flash_auto"] {
1476
+ color: var(--primary);
1477
+ }
1478
+
1479
+ .material-icons.icon[data-icon="panorama"] {
1480
+ color: var(--primary);
1481
+ }
1482
+
1483
+ .material-icons.icon[data-icon="panorama_fish_eye"] {
1484
+ color: var(--primary);
1485
+ }
1486
+
1487
+ .material-icons.icon[data-icon="panorama_horizontal"] {
1488
+ color: var(--primary);
1489
+ }
1490
+
1491
+ .material-icons.icon[data-icon="panorama_vertical"] {
1492
+ color: var(--primary);
1493
+ }
1494
+
1495
+ .material-icons.icon[data-icon="panorama_wide_angle"] {
1496
+ color: var(--primary);
1497
+ }
1498
+
1499
+ .material-icons.icon[data-icon="switch_camera"] {
1500
+ color: var(--primary);
1501
+ }
1502
+
1503
+ .material-icons.icon[data-icon="switch_video"] {
1504
+ color: var(--primary);
1505
+ }
1506
+
1507
+ .material-icons.icon[data-icon="video_label"] {
1508
+ color: var(--primary);
1509
+ }
1510
+
1511
+ .material-icons.icon[data-icon="video_library"] {
1512
+ color: var(--primary);
1513
+ }
1514
+
1515
+ .material-icons.icon[data-icon="videocam"] {
1516
+ color: rgba(255, 255, 255, 0.7);
1517
+ }
1518
+
1519
+ .material-icons.icon[data-icon="videocam_off"] {
1520
+ color: rgba(255, 255, 255, 0.7);
1521
+ }
1522
+
1523
+ .material-icons.icon[data-icon="fiber_manual_record"] {
1524
+ color: var(--accent);
1525
+ }
1526
+
1527
+ .material-icons.icon[data-icon="fiber_smart_record"] {
1528
+ color: var(--primary);
1529
+ }
1530
+
1531
+ .material-icons.icon[data-icon="high_quality"] {
1532
+ color: var(--primary);
1533
+ }
1534
+
1535
+ .material-icons.icon[data-icon="sd"] {
1536
+ color: var(--warning);
1537
+ }
1538
+
1539
+ .material-icons.icon[data-icon="hd"] {
1540
+ color: var(--primary);
1541
+ }
1542
+
1543
+ .material-icons.icon[data-icon="4k"] {
1544
+ color: var(--primary);
1545
+ }
1546
+
1547
+ .material-icons.icon[data-icon="closed_caption"] {
1548
+ color: var(--primary);
1549
+ }
1550
+
1551
+ .material-icons.icon[data-icon="closed_caption_disabled"] {
1552
+ color: rgba(255, 255, 255, 0.7);
1553
+ }
1554
+
1555
+ .material-icons.icon[data-icon="surround_sound"] {
1556
+ color: var(--primary);
1557
+ }
1558
+
1559
+ .material-icons.icon[data-icon="volume_down"] {
1560
+ color: rgba(255, 255, 255, 0.7);
1561
+ }
1562
+
1563
+ .material-icons.icon[data-icon="volume_mute"] {
1564
+ color: rgba(255, 255, 255, 0.7);
1565
+ }
1566
+
1567
+ .material-icons.icon[data-icon="volume_off"] {
1568
+ color: rgba(255, 255, 255, 0.7);
1569
+ }
1570
+
1571
+ .material-icons.icon[data-icon="play_circle_filled"] {
1572
+ color: var(--primary);
1573
+ }
1574
+
1575
+ .material-icons.icon[data-icon="play_circle_outline"] {
1576
+ color: var(--primary);
1577
+ }
1578
+
1579
+ .material-icons.icon[data-icon="pause"] {
1580
+ color: rgba(255, 255, 255, 0.7);
1581
+ }
1582
+
1583
+ .material-icons.icon[data-icon="pause_circle_filled"] {
1584
+ color: rgba(255, 255, 255, 0.7);
1585
+ }
1586
+
1587
+ .material-icons.icon[data-icon="pause_circle_outline"] {
1588
+ color: rgba(255, 255, 255, 0.7);
1589
+ }
1590
+
1591
+ .material-icons.icon[data-icon="skip_next"] {
1592
+ color: var(--primary);
1593
+ }
1594
+
1595
+ .material-icons.icon[data-icon="skip_previous"] {
1596
+ color: var(--primary);
1597
+ }
1598
+
1599
+ .material-icons.icon[data-icon="fast_forward"] {
1600
+ color: var(--primary);
1601
+ }
1602
+
1603
+ .material-icons.icon[data-icon="fast_rewind"] {
1604
+ color: var(--primary);
1605
+ }
1606
+
1607
+ .material-icons.icon[data-icon="replay"] {
1608
+ color: var(--primary);
1609
+ }
1610
+
1611
+ .material-icons.icon[data-icon="replay_5"] {
1612
+ color: var(--primary);
1613
+ }
1614
+
1615
+ .material-icons.icon[data-icon="replay_10"] {
1616
+ color: var(--primary);
1617
+ }
1618
+
1619
+ .material-icons.icon[data-icon="replay_30"] {
1620
+ color: var(--primary);
1621
+ }
1622
+
1623
+ .material-icons.icon[data-icon="forward_5"] {
1624
+ color: var(--primary);
1625
+ }
1626
+
1627
+ .material-icons.icon[data-icon="forward_10"] {
1628
+ color: var(--primary);
1629
+ }
1630
+
1631
+ .material-icons.icon[data-icon="forward_30"] {
1632
+ color: var(--primary);
1633
+ }
1634
+
1635
+ .material-icons.icon[data-icon="mic"] {
1636
+ color: rgba(255, 255, 255, 0.7);
1637
+ }
1638
+
1639
+ .material-icons.icon[data-icon="mic_none"] {
1640
+ color: rgba(255, 255, 255, 0.7);
1641
+ }
1642
+
1643
+ .material-icons.icon[data-icon="mic_off"] {
1644
+ color: rgba(255, 255, 255, 0.7);
1645
+ }
1646
+
1647
+ .material-icons.icon[data-icon="speaker"] {
1648
+ color: rgba(255, 255, 255, 0.7);
1649
+ }
1650
+
1651
+ .material-icons.icon[data-icon="speaker_group"] {
1652
+ color: rgba(255, 255, 255, 0.7);
1653
+ }
1654
+
1655
+ .material-icons.icon[data-icon="speaker_notes"] {
1656
+ color: var(--primary);
1657
+ }
1658
+
1659
+ .material-icons.icon[data-icon="speaker_notes_off"] {
1660
+ color: rgba(255, 255, 255, 0.7);
1661
+ }
1662
+
1663
+ .material-icons.icon[data-icon="text_fields"] {
1664
+ color: rgba(255, 255, 255, 0.7);
1665
+ }
1666
+
1667
+ .material-icons.icon[data-icon="format_bold"] {
1668
+ color: rgba(255, 255, 255, 0.7);
1669
+ }
1670
+
1671
+ .material-icons.icon[data-icon="format_italic"] {
1672
+ color: rgba(255, 255, 255, 0.7);
1673
+ }
1674
+
1675
+ .material-icons.icon[data-icon="format_underlined"] {
1676
+ color: rgba(255, 255, 255, 0.7);
1677
+ }
1678
+
1679
+ .material-icons.icon[data-icon="format_strikethrough"] {
1680
+ color: rgba(255, 255, 255, 0.7);
1681
+ }
1682
+
1683
+ .material-icons.icon[data-icon="format_size"] {
1684
+ color: rgba(255, 255, 255, 0.7);
1685
+ }
1686
+
1687
+ .material-icons.icon[data-icon="format_color_text"] {
1688
+ color: rgba(255, 255, 255, 0.7);
1689
+ }
1690
+
1691
+ .material-icons.icon[data-icon="format_color_fill"] {
1692
+ color: rgba(255, 255, 255, 0.7);
1693
+ }
1694
+
1695
+ .material-icons.icon[data-icon="format_align_left"] {
1696
+ color: rgba(255, 255, 255, 0.7);
1697
+ }
1698
+
1699
+ .material-icons.icon[data-icon="format_align_center"] {
1700
+ color: rgba(255, 255, 255, 0.7);
1701
+ }
1702
+
1703
+ .material-icons.icon[data-icon="format_align_right"] {
1704
+ color: rgba(255, 255, 255, 0.7);
1705
+ }
1706
+
1707
+ .material-icons.icon[data-icon="format_align_justify"] {
1708
+ color: rgba(255, 255, 255, 0.7);
1709
+ }
1710
+
1711
+ .material-icons.icon[data-icon="format_list_bulleted"] {
1712
+ color: rgba(255, 255, 255, 0.7);
1713
+ }
1714
+
1715
+ .material-icons.icon[data-icon="format_list_numbered"] {
1716
+ color: rgba(255, 255, 255, 0.7);
1717
+ }
1718
+
1719
+ .material-icons.icon[data-icon="format_indent_increase"] {
1720
+ color: rgba(255, 255, 255, 0.7);
1721
+ }
1722
+
1723
+ .material-icons.icon[data-icon="format_indent_decrease"] {
1724
+ color: rgba(255, 255, 255, 0.7);
1725
+ }
1726
+
1727
+ .material-icons.icon[data-icon="format_clear"] {
1728
+ color: rgba(255, 255, 255, 0.7);
1729
+ }
1730
+
1731
+ .material-icons.icon[data-icon="insert_emoticon"] {
1732
+ color: var(--warning);
1733
+ }
1734
+
1735
+ .material-icons.icon[data-icon="insert_chart"] {
1736
+ color: var(--primary);
1737
+ }
1738
+
1739
+ .material-icons.icon[data-icon="insert_comment"] {
1740
+ color: var(--primary);
1741
+ }
1742
+
1743
+ .material-icons.icon[data-icon="insert_invitation"] {
1744
+ color: var(--primary);
1745
+ }
1746
+
1747
+ .material-icons.icon[data-icon="insert_link"] {
1748
+ color: var(--primary);
1749
+ }
1750
+
1751
+ .material-icons.icon[data-icon="insert_photo"] {
1752
+ color: var(--primary);
1753
+ }
1754
+
1755
+ .material-icons.icon[data-icon="mode_comment"] {
1756
+ color: var(--primary);
1757
+ }
1758
+
1759
+ .material-icons.icon[data-icon="mode_edit"] {
1760
+ color: var(--warning);
1761
+ }
1762
+
1763
+ .material-icons.icon[data-icon="publish"] {
1764
+ color: var(--primary);
1765
+ }
1766
+
1767
+ .material-icons.icon[data-icon="vertical_align_top"] {
1768
+ color: rgba(255, 255, 255, 0.7);
1769
+ }
1770
+
1771
+ .material-icons.icon[data-icon="vertical_align_bottom"] {
1772
+ color: rgba(255, 255, 255, 0.7);
1773
+ }
1774
+
1775
+ .material-icons.icon[data-icon="vertical_align_center"] {
1776
+ color: rgba(255, 255, 255, 0.7);
1777
+ }
1778
+
1779
+ .material-icons.icon[data-icon="wrap_text"] {
1780
+ color: rgba(255, 255, 255, 0.7);
1781
+ }
1782
+
1783
+ .material-icons.icon[data-icon="money_off"] {
1784
+ color: var(--accent);
1785
+ }
1786
+
1787
+ .material-icons.icon[data-icon="monetization_on"] {
1788
+ color: var(--warning);
1789
+ }
1790
+
1791
+ .material-icons.icon[data-icon="euro_symbol"] {
1792
+ color: var(--primary);
1793
+ }
1794
+
1795
+ .material-icons.icon[data-icon="attach_money"] {
1796
+ color: var(--secondary);
1797
+ }
1798
+
1799
+ .material-icons.icon[data-icon="bubble_chart"] {
1800
+ color: var(--primary);
1801
+ }
1802
+
1803
+ .material-icons.icon[data-icon="multiline_chart"] {
1804
+ color: var(--primary);
1805
+ }
1806
+
1807
+ .material-icons.icon[data-icon="pie_chart"] {
1808
+ color: var(--primary);
1809
+ }
1810
+
1811
+ .material-icons.icon[data-icon="scatter_plot"] {
1812
+ color: var(--primary);
1813
+ }
1814
+
1815
+ .material-icons.icon[data-icon="show_chart"] {
1816
+ color: var(--primary);
1817
+ }
1818
+
1819
+ .material-icons.icon[data-icon="equalizer"] {
1820
+ color: var(--primary);
1821
+ }
1822
+
1823
+ .material-icons.icon[data-icon="linear_scale"] {
1824
+ color: rgba(255, 255, 255, 0.7);
1825
+ }
1826
+
1827
+ .material-icons.icon[data-icon="timeline"] {
1828
+ color: var(--primary);
1829
+ }
1830
+
1831
+ .material-icons.icon[data-icon="trending_up"] {
1832
+ color: var(--secondary);
1833
+ }
1834
+
1835
+ .material-icons.icon[data-icon="trending_down"] {
1836
+ color: var(--accent);
1837
+ }
1838
+
1839
+ .material-icons.icon[data-icon="trending_flat"] {
1840
+ color: rgba(255, 255, 255, 0.7);
1841
+ }
1842
+
1843
+ .material-icons.icon[data-icon="call_made"] {
1844
+ color: var(--primary);
1845
+ }
1846
+
1847
+ .material-icons.icon[data-icon="call_received"] {
1848
+ color: var(--primary);
1849
+ }
1850
+
1851
+ .material-icons.icon[data-icon="call_merge"] {
1852
+ color: var(--primary);
1853
+ }
1854
+
1855
+ .material-icons.icon[data-icon="call_missed"] {
1856
+ color: var(--accent);
1857
+ }
1858
+
1859
+ .material-icons.icon[data-icon="call_missed_outgoing"] {
1860
+ color: var(--accent);
1861
+ }
1862
+
1863
+ .material-icons.icon[data-icon="call_split"] {
1864
+ color: var(--primary);
1865
+ }
1866
+
1867
+ .material-icons.icon[data-icon="chat_bubble"] {
1868
+ color: var(--primary);
1869
+ }
1870
+
1871
+ .material-icons.icon[data-icon="chat_bubble_outline"] {
1872
+ color: rgba(255, 255, 255, 0.7);
1873
+ }
1874
+
1875
+ .material-icons.icon[data-icon="forum"] {
1876
+ color: var(--primary);
1877
+ }
1878
+
1879
+ .material-icons.icon[data-icon="speaker_phone"] {
1880
+ color: var(--primary);
1881
+ }
1882
+
1883
+ .material-icons.icon[data-icon="stay_current_portrait"] {
1884
+ color: rgba(255, 255, 255, 0.7);
1885
+ }
1886
+
1887
+ .material-icons.icon[data-icon="stay_current_landscape"] {
1888
+ color: rgba(255, 255, 255, 0.7);
1889
+ }
1890
+
1891
+ .material-icons.icon[data-icon="smartphone"] {
1892
+ color: rgba(255, 255, 255, 0.7);
1893
+ }
1894
+
1895
+ .material-icons.icon[data-icon="tablet"] {
1896
+ color: rgba(255, 255, 255, 0.7);
1897
+ }
1898
+
1899
+ .material-icons.icon[data-icon="tablet_mac"] {
1900
+ color: rgba(255, 255, 255, 0.7);
1901
+ }
1902
+
1903
+ .material-icons.icon[data-icon="desktop_mac"] {
1904
+ color: rgba(255, 255, 255, 0.7);
1905
+ }
1906
+
1907
+ .material-icons.icon[data-icon="desktop_windows"] {
1908
+ color: rgba(255, 255, 255, 0.7);
1909
+ }
1910
+
1911
+ .material-icons.icon[data-icon="laptop_chromebook"] {
1912
+ color: rgba(255, 255, 255, 0.7);
1913
+ }
1914
+
1915
+ .material-icons.icon[data-icon="laptop_windows"] {
1916
+ color: rgba(255, 255, 255, 0.7);
1917
+ }
1918
+
1919
+ .material-icons.icon[data-icon="watch"] {
1920
+ color: rgba(255, 255, 255, 0.7);
1921
+ }
1922
+
1923
+ .material-icons.icon[data-icon="watch_later"] {
1924
+ color: var(--primary);
1925
+ }
1926
+
1927
+ .material-icons.icon[data-icon="devices"] {
1928
+ color: rgba(255, 255, 255, 0.7);
1929
+ }
1930
+
1931
+ .material-icons.icon[data-icon="devices_other"] {
1932
+ color: rgba(255, 255, 255, 0.7);
1933
+ }
1934
+
1935
+ .material-icons.icon[data-icon="scanner"] {
1936
+ color: rgba(255, 255, 255, 0.7);
1937
+ }
1938
+
1939
+ .material-icons.icon[data-icon="headset"] {
1940
+ color: rgba(255, 255, 255, 0.7);
1941
+ }
1942
+
1943
+ .material-icons.icon[data-icon="headset_mic"] {
1944
+ color: rgba(255, 255, 255, 0.7);
1945
+ }
1946
+
1947
+ .material-icons.icon[data-icon="keyboard"] {
1948
+ color: rgba(255, 255, 255, 0.7);
1949
+ }
1950
+
1951
+ .material-icons.icon[data-icon="keyboard_backspace"] {
1952
+ color: rgba(255, 255, 255, 0.7);
1953
+ }
1954
+
1955
+ .material-icons.icon[data-icon="keyboard_capslock"] {
1956
+ color: rgba(255, 255, 255, 0.7);
1957
+ }
1958
+
1959
+ .material-icons.icon[data-icon="keyboard_hide"] {
1960
+ color: rgba(255, 255, 255, 0.7);
1961
+ }
1962
+
1963
+ .material-icons.icon[data-icon="keyboard_return"] {
1964
+ color: rgba(255, 255, 255, 0.7);
1965
+ }
1966
+
1967
+ .material-icons.icon[data-icon="keyboard_tab"] {
1968
+ color: rgba(255, 255, 255, 0.7);
1969
+ }
1970
+
1971
+ .material-icons.icon[data-icon="keyboard_voice"] {
1972
+ color: rgba(255, 255, 255, 0.7);
1973
+ }
1974
+
1975
+ .material-icons.icon[data-icon="mouse"] {
1976
+ color: rgba(255, 255, 255, 0.7);
1977
+ }
1978
+ /* ===== 暗黑模式 - 后台进程面板 ===== */
1979
+ .chat-bg-process-panel {
1980
+ background: var(--background);
1981
+ border-left-color: var(--divider);
1982
+ }
1983
+ .chat-bg-process-header {
1984
+ border-bottom-color: var(--divider);
1985
+ }
1986
+ .chat-bg-process-title {
1987
+ color: var(--textPrimary);
1988
+ }
1989
+ .chat-bg-process-toolbar {
1990
+ border-bottom-color: var(--divider);
1991
+ }
1992
+ .chat-bg-process-count {
1993
+ color: var(--textSecondary);
1994
+ }
1995
+ .chat-bg-process-empty {
1996
+ color: var(--textSecondary);
1997
+ }
1998
+ .chat-bg-process-item:hover,
1999
+ .chat-bg-process-item.active {
2000
+ background: var(--surfacePrimary);
2001
+ border-color: var(--divider);
2002
+ }
2003
+ .chat-bg-process-pid {
2004
+ color: var(--textPrimary);
2005
+ }
2006
+ .chat-bg-process-cmd {
2007
+ color: var(--textSecondary);
2008
+ }
2009
+ .chat-bg-process-time,
2010
+ .chat-bg-process-exit-code {
2011
+ color: var(--textSecondary);
2012
+ }
2013
+ .chat-bg-process-output {
2014
+ border-top-color: var(--divider);
2015
+ }
2016
+ .chat-bg-process-output-header {
2017
+ border-bottom-color: var(--divider);
2018
+ color: var(--textPrimary);
2019
+ }
2020
+ .chat-bg-process-output-pre {
2021
+ background: #0d0d0d;
2022
+ color: #d4d4d4;
2023
+ }
2024
+
2025
+ table tr {
2026
+ border-bottom: 1px solid var(--surfaceSecondary);
2027
+ }
2028
+
2029
+ .chat-session-actions {
2030
+ border-top: 1px solid var(--surfaceSecondary);
2031
+ }
2032
+