File size: 20,236 Bytes
fcede48
e719ef5
 
 
 
 
 
 
 
d9cbe02
 
fcede48
 
d9cbe02
0618646
ce202f9
 
 
 
30f7268
0618646
 
ce202f9
 
f2c192a
ce202f9
 
eb9e04d
 
 
 
 
cb6fe1c
 
 
 
 
 
 
 
f2c192a
 
 
 
 
 
0618646
9f551dd
 
0618646
9f551dd
 
 
 
f2c192a
9f551dd
 
0618646
 
 
 
91464d9
 
 
9fb61e6
91464d9
 
 
38856b5
91464d9
 
 
 
 
 
 
 
 
 
 
 
 
92dce7d
91464d9
 
 
 
9fb61e6
91464d9
 
 
 
 
 
 
 
 
 
 
 
 
9fb61e6
 
 
91464d9
 
fe3346f
91464d9
 
 
 
9fb61e6
 
 
30f7268
b996b77
eea6f06
b996b77
0618646
 
b996b77
0618646
 
 
b996b77
0618646
 
 
b996b77
0618646
b9dc38b
eea6f06
0618646
 
 
 
 
 
b9dc38b
 
a8d9ebc
9c7114f
 
eea6f06
9c7114f
 
 
 
 
f2c192a
 
54020fc
9c7114f
a3059ba
afdec9a
a3059ba
 
afdec9a
 
 
ff3263f
 
98d8027
ec10bf7
 
d9cbe02
ec10bf7
 
 
 
 
 
 
 
ff3263f
ec10bf7
 
ff3263f
 
 
ec10bf7
 
8d81d5a
ec10bf7
 
 
 
 
0618646
ec10bf7
 
 
 
 
 
 
 
 
 
 
 
 
85471e1
9496819
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98d8027
 
9496819
98d8027
9496819
 
 
98d8027
 
30f7268
98d8027
 
9087f15
98d8027
 
 
 
 
 
 
9496819
 
98d8027
30f7268
9496819
98d8027
 
 
 
 
1f13df7
98d8027
 
9496819
98d8027
9496819
98d8027
d9cbe02
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9496819
 
 
 
 
d9cbe02
9087f15
d9cbe02
 
 
 
 
 
 
 
9496819
 
d9cbe02
 
9496819
 
 
 
 
d9cbe02
 
 
 
 
 
 
 
9496819
d9cbe02
 
0546163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578e872
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85471e1
 
 
 
 
 
 
 
8267ffb
85471e1
 
e071cb7
 
 
0baaa02
 
afdec9a
 
e719ef5
 
afdec9a
 
e719ef5
afdec9a
 
e719ef5
0d9e8c6
fcede48
afdec9a
e719ef5
 
afdec9a
 
e719ef5
0d9e8c6
afdec9a
e719ef5
afdec9a
 
3ce7848
afdec9a
fcede48
e11c457
3ce7848
7311426
b996b77
d4bd7aa
e11c457
3ce7848
 
fcede48
e11c457
3ce7848
7311426
b996b77
7dbc9ca
3ce7848
0618646
27f4755
0618646
 
 
 
e11c457
b996b77
27f4755
 
a8d9ebc
f029128
9c7114f
 
 
 
 
58dd150
 
9c7114f
 
 
 
 
 
 
 
 
 
f029128
d96e918
8161b72
 
83c8410
 
 
d4ac5ad
83c8410
8161b72
 
0f313bc
 
 
8161b72
 
e719ef5
f029128
 
 
 
8161b72
 
 
f029128
 
 
 
 
 
5314ca6
 
 
e719ef5
1c21e1a
5314ca6
 
 
 
 
 
 
 
 
1c21e1a
5314ca6
 
 
1c21e1a
5314ca6
 
1c21e1a
5314ca6
 
1c21e1a
9545214
 
5754184
1c21e1a
9545214
 
5754184
44970ac
 
 
 
 
 
5754184
50dc299
 
 
 
b791a35
b996b77
b791a35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b996b77
b791a35
 
 
 
 
 
 
 
b996b77
b791a35
 
 
 
 
 
 
a8d9ebc
9c7114f
 
 
 
 
 
54020fc
9c7114f
 
 
 
 
 
 
 
a8d9ebc
de613b4
9c7114f
 
ab5870b
9c7114f
 
 
 
 
a8d9ebc
ab5870b
57dbedc
ab5870b
af5f236
 
ab5870b
 
 
 
 
57dbedc
 
af5f236
5220923
af5f236
ab5870b
 
9c7114f
ab5870b
 
 
 
0f313bc
ab5870b
 
de613b4
ab5870b
 
 
de613b4
 
57dbedc
 
 
 
 
 
 
85bb598
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
:root {
    --chatbot-color-light: #000000;
    --chatbot-color-dark: #FFFFFF;
    --chatbot-background-color-light: #F3F3F3;
    --chatbot-background-color-dark: #121111;
    --message-user-background-color-light: #95EC69;
    --message-user-background-color-dark: #26B561;
    --message-bot-background-color-light: #FFFFFF;
    --message-bot-background-color-dark: #2C2C2C;
    --switch-checkbox-color-light: #e5e7eb;
    --switch-checkbox-color-dark: #515151;
}


#app_title {
    font-weight: var(--prose-header-text-weight);
    font-size: var(--text-xxl);
    line-height: 1.3;
    text-align: left;
    margin-top: 6px;
    white-space: nowrap;
}
#description {
    text-align: center;
    margin: 32px 0 4px 0;
}

/* 解决container=False时的错误填充 */
div.form {
    background: none !important;
}

/* 高级页面 */
#advanced_warning {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-content: center;
}

/* gradio的页脚信息 */
footer {
    /* display: none !important; */
    margin-top: .2em !important;
    font-size: 85%;
}
#footer {
    text-align: center;
}
#footer div {
    display: inline-block;
}
#footer .versions{
    font-size: 85%;
    opacity: 0.60;
}

#float_display {
    position: absolute;
    max-height: 30px;
}
#toast-update {
    position: absolute;
    display: flex;
    top: -500px;
    width: 100%;
    justify-content: center;
    z-index: var(--layer-top);
    transition: top 0.3s ease-out;
}
#check-chuanhu-update {
    position: absolute;
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: var(--size-6) var(--size-4);
    box-shadow: var(--shadow-drop-lg);
    border: 1px solid var(--block-label-border-color);
    border-radius: var(--container-radius);
    background: var(--background-fill-primary);
    padding: var(--size-4) var(--size-6);
    min-width: 360px;
    max-width: 480px;
    overflow: hidden;
    pointer-events: auto;
}
#version-info-title {
    font-size: 1.2em;
    font-weight: bold;
    text-align: start;
    width: 100%;
}
#release-note-wrap {
    width: 100%;
    max-width: 400px;
    height: 120px;
    border: solid 1px var(--border-color-primary);
    overflow: auto;
    padding: 0 8px;
}
#release-note-wrap.hideK {
    display: none;
}
.btn-update-group {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    width: 100%;
    padding-top: 10px;
}
.btn-update-group.hideK {
    display: none;
}
/* user_info */
#user_info.block {
    white-space: nowrap;
    position: absolute; left: 8em; top: .8em;
    z-index: var(--layer-2);
    box-shadow: var(--block-shadow);
    border: none!important; border-radius: var(--block-label-radius);
    background: var(--color-accent);
    padding: var(--block-label-padding);
    font-size: var(--block-label-text-size); line-height: var(--line-sm);
    width: auto; max-height: 30px!important;
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}
#user_info.block .wrap {
    opacity: 0;
}
#user_info p {
    color: white;
    font-weight: var(--block-label-text-weight);
}
#user_info.hideK {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

/* status_display */
#status_display {
    display: flex;
    min-height: 2em;
    align-items: flex-end;
    justify-content: flex-end;
}
#status_display p {
    font-size: .85em;
    font-family: ui-monospace, "SF Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "Microsoft Yahei UI", "Microsoft Yahei", monospace;
    /* Windows下中文的monospace会fallback为新宋体,实在太丑,这里折中使用微软雅黑 */
    color: var(--body-text-color-subdued);
}

#status_display {
    transition: all 0.6s;
}
#chuanhu_chatbot {
    transition: height 0.3s ease;
}

/* usage_display */
.insert_block {
    position: relative;
    margin: 0;
    padding: 8px 12px;
    box-shadow: var(--block-shadow);
    border-width: var(--block-border-width);
    border-color: var(--block-border-color);
    border-radius: var(--block-radius);
    background: var(--block-background-fill);
    width: 100%;
    line-height: var(--line-sm);
    min-height: 2em;
}
#usage_display p, #usage_display span {
    margin: 0;
    font-size: .85em;
    color: var(--body-text-color-subdued);
}
.progress-bar {
    background-color: var(--input-background-fill);;
    margin: .5em 0 !important;
    height: 20px;
    border-radius: 10px;
    overflow: hidden;
}
.progress {
    background-color: var(--block-title-background-fill);
    height: 100%;
    border-radius: 10px;
    text-align: right;
    transition: width 0.5s ease-in-out;
}
.progress-text {
    /* color: white; */
    color: var(--color-accent) !important;
    font-size: 1em !important;
    font-weight: bold;
    padding-right: 10px;
    line-height: 20px;
}

/* 亮暗色模式切换 */
#apSwitch input[type="checkbox"] {
    margin: 0 !important;
}
#apSwitch label.apSwitch {
    display: flex;
    align-items: center;
    cursor: pointer;
    color: var(--body-text-color);
    font-weight: var(--checkbox-label-text-weight);
    font-size: var(--checkbox-label-text-size);
    line-height: var(--line-md);
    margin: 2px 0 !important;
}
input[type="checkbox"]#apSwitch_checkbox::before {
    background: none !important;
    content: '🌞';
    border: none !important;
    box-shadow: none !important;
    font-size: 22px;
    top: -4.4px;
    left: -1px;
}
input:checked[type="checkbox"]#apSwitch_checkbox::before {
    content: '🌚';
    left: 16px;
}

/* .apSwitch {
    top: 2px;
    display: inline-block;
    height: 22px;
    position: relative;
    width: 40px;
    border-radius: 11px;
    box-shadow: inset 0 0 1px 0 rgba(0,0,0,0.05), inset 0 0 2px 0 rgba(0,0,0,0.08) !important;
}
.apSwitch input {
    display: none !important;
}
.apSlider {
    background-color: var(--neutral-200);
    bottom: 0;
    cursor: pointer;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    transition: .4s;
    font-size: 22px;
    border-radius: 11px;
}
.apSlider::before {
    transform: scale(0.9);
    position: absolute;
    transition: .4s;
    content: "🌞";
}
input:checked + .apSlider {
    background-color: var(--primary-600);
}
input:checked + .apSlider::before {
    transform: translateX(18px);
    content:"🌚";
} */

.switch_checkbox label {
    flex-direction: row-reverse;
    justify-content: space-between;
}
.switch_checkbox input[type="checkbox"] + span {
    margin-left: 0 !important;
}

.switch_checkbox input[type="checkbox"] {
    -moz-appearance: none;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
}

.switch_checkbox input[type="checkbox"] {
    display: inline-block !important;
    position: relative !important;
    border: none !important;
    outline: none;
    width: 40px !important;
    height: 22px !important;
    border-radius: 11px !important;
    background-image: none !important;
    box-shadow: inset 0 0 1px 0 rgba(0,0,0,0.05), inset 0 0 2px 0 rgba(0,0,0,0.08) !important;
    background-image: none !important;
    background-color: var(--switch-checkbox-color-light) !important;
    transition: .2s ease background-color;
}
.dark .switch_checkbox input[type="checkbox"] {
    background-color: var(--switch-checkbox-color-dark) !important;
}
.switch_checkbox input[type="checkbox"]::before {
    content: "";
    position: absolute;
    width: 22px;
    height: 22px;
    top: 0;
    left: 0;
    background: #FFFFFF;
    border: 0.5px solid rgba(0,0,0,0.02);
    box-shadow: 0 0 0 0 rgba(0,0,0,0.15), 0 1px 0 0 rgba(0,0,0,0.05);
    transform: scale(0.9);
    border-radius: 11px !important;
    transition: .4s ease all;
    box-shadow: var(--input-shadow);
}
.switch_checkbox input:checked[type="checkbox"] {
    background-color: var(--primary-600) !important;
}
.switch_checkbox input:checked[type="checkbox"]::before {
    background-color: #fff;
    left: 18px;
}

/* Override Slider Styles (for webkit browsers like Safari and Chrome)
 * 好希望这份提案能早日实现 https://github.com/w3c/csswg-drafts/issues/4410
 * 进度滑块在各个平台还是太不统一了
 */
input[type="range"] {
    -webkit-appearance: none;
    height: 4px;
    background: var(--input-background-fill);
    border-radius: 5px;
    background-image: linear-gradient(var(--primary-500),var(--primary-500));
    background-size: 0% 100%;
    background-repeat: no-repeat;
}
input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 20px;
    width: 20px;
    border-radius: 50%;
    border: solid 0.5px #ddd;
    background-color: white;
    cursor: ew-resize;
    box-shadow: var(--input-shadow);
    transition: background-color .1s ease;
}
input[type="range"]::-webkit-slider-thumb:hover {
    background: var(--neutral-50);
}
input[type=range]::-webkit-slider-runnable-track {
    -webkit-appearance: none;
    box-shadow: none;
    border: none;
    background: transparent;
}

hr.append-display {
    margin: 8px 0;
    border: none;
    height: 1px;
    border-top-width: 0;
    background-image: linear-gradient(to right, rgba(50,50,50, 0.1), rgba(150, 150, 150, 0.8), rgba(50,50,50, 0.1));
}
.source-a {
    font-size: 0.8em;
    max-width: 100%;
    margin: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    /* background-color: #dddddd88; */
    border-radius: 1.5rem;
    padding: 0.2em;
}
.source-a a {
    display: inline-block;
    background-color: #aaaaaa50;
    border-radius: 1rem;
    padding: 0.5em;
    text-align: center;
    text-overflow: ellipsis;
    overflow: hidden;
    min-width: 20%;
    white-space: nowrap;
    margin: 0.2rem 0.1rem;
    text-decoration: none !important;
    flex: 1;
    transition: flex 0.5s;
}
.source-a a:hover {
    background-color: #aaaaaa20;
    flex: 2;
}

#submit_btn, #cancel_btn {
    height: 42px !important;
}
#submit_btn::before {
    content: url("data:image/svg+xml, %3Csvg width='21px' height='20px' viewBox='0 0 21 20' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3Cg id='page' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='send' transform='translate(0.435849, 0.088463)' fill='%23FFFFFF' fill-rule='nonzero'%3E %3Cpath d='M0.579148261,0.0428666046 C0.301105539,-0.0961547561 -0.036517765,0.122307382 0.0032026237,0.420210298 L1.4927172,18.1553639 C1.5125774,18.4334066 1.79062012,18.5922882 2.04880264,18.4929872 L8.24518329,15.8913017 L11.6412765,19.7441794 C11.8597387,19.9825018 12.2370824,19.8832008 12.3165231,19.5852979 L13.9450591,13.4882182 L19.7839562,11.0255541 C20.0619989,10.8865327 20.0818591,10.4694687 19.7839562,10.3105871 L0.579148261,0.0428666046 Z M11.6138902,17.0883151 L9.85385903,14.7195502 L0.718169621,0.618812241 L12.69945,12.9346347 L11.6138902,17.0883151 Z' id='shape'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E");
    height: 21px;
}
#cancel_btn::before {
    content: url("data:image/svg+xml,%3Csvg width='21px' height='21px' viewBox='0 0 21 21' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3Cg id='pg' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M10.2072007,20.088463 C11.5727865,20.088463 12.8594566,19.8259823 14.067211,19.3010209 C15.2749653,18.7760595 16.3386126,18.0538087 17.2581528,17.1342685 C18.177693,16.2147282 18.8982283,15.1527965 19.4197586,13.9484733 C19.9412889,12.7441501 20.202054,11.4557644 20.202054,10.0833163 C20.202054,8.71773046 19.9395733,7.43106036 19.4146119,6.22330603 C18.8896505,5.01555169 18.1673997,3.95018885 17.2478595,3.0272175 C16.3283192,2.10424615 15.2646719,1.3837109 14.0569176,0.865611739 C12.8491633,0.34751258 11.5624932,0.088463 10.1969073,0.088463 C8.83132146,0.088463 7.54636692,0.34751258 6.34204371,0.865611739 C5.1377205,1.3837109 4.07407321,2.10424615 3.15110186,3.0272175 C2.22813051,3.95018885 1.5058797,5.01555169 0.984349419,6.22330603 C0.46281914,7.43106036 0.202054,8.71773046 0.202054,10.0833163 C0.202054,11.4557644 0.4645347,12.7441501 0.9894961,13.9484733 C1.5144575,15.1527965 2.23670831,16.2147282 3.15624854,17.1342685 C4.07578877,18.0538087 5.1377205,18.7760595 6.34204371,19.3010209 C7.54636692,19.8259823 8.83475258,20.088463 10.2072007,20.088463 Z M10.2072007,18.2562448 C9.07493099,18.2562448 8.01471483,18.0452309 7.0265522,17.6232031 C6.03838956,17.2011753 5.17031614,16.6161693 4.42233192,15.8681851 C3.6743477,15.1202009 3.09105726,14.2521274 2.67246059,13.2639648 C2.25386392,12.2758022 2.04456558,11.215586 2.04456558,10.0833163 C2.04456558,8.95104663 2.25386392,7.89083047 2.67246059,6.90266784 C3.09105726,5.9145052 3.6743477,5.04643178 4.42233192,4.29844756 C5.17031614,3.55046334 6.036674,2.9671729 7.02140552,2.54857623 C8.00613703,2.12997956 9.06463763,1.92068122 10.1969073,1.92068122 C11.329177,1.92068122 12.3911087,2.12997956 13.3827025,2.54857623 C14.3742962,2.9671729 15.2440852,3.55046334 15.9920694,4.29844756 C16.7400537,5.04643178 17.3233441,5.9145052 17.7419408,6.90266784 C18.1605374,7.89083047 18.3698358,8.95104663 18.3698358,10.0833163 C18.3698358,11.215586 18.1605374,12.2758022 17.7419408,13.2639648 C17.3233441,14.2521274 16.7400537,15.1202009 15.9920694,15.8681851 C15.2440852,16.6161693 14.3760118,17.2011753 13.3878492,17.6232031 C12.3996865,18.0452309 11.3394704,18.2562448 10.2072007,18.2562448 Z M7.65444721,13.6242324 L12.7496608,13.6242324 C13.0584616,13.6242324 13.3003556,13.5384544 13.4753427,13.3668984 C13.6503299,13.1953424 13.7378234,12.9585951 13.7378234,12.6566565 L13.7378234,7.49968276 C13.7378234,7.19774418 13.6503299,6.96099688 13.4753427,6.78944087 C13.3003556,6.61788486 13.0584616,6.53210685 12.7496608,6.53210685 L7.65444721,6.53210685 C7.33878414,6.53210685 7.09345904,6.61788486 6.91847191,6.78944087 C6.74348478,6.96099688 6.65599121,7.19774418 6.65599121,7.49968276 L6.65599121,12.6566565 C6.65599121,12.9585951 6.74348478,13.1953424 6.91847191,13.3668984 C7.09345904,13.5384544 7.33878414,13.6242324 7.65444721,13.6242324 Z' id='shape' fill='%23FF3B30' fill-rule='nonzero'%3E%3C/path%3E %3C/g%3E %3C/svg%3E");
    height: 21px;
}
/* list */
ol:not(.options), ul:not(.options) {
    padding-inline-start: 2em !important;
}

/* 亮色(默认) */
#chuanhu_chatbot {
    background-color: var(--chatbot-background-color-light) !important;
    color: var(--chatbot-color-light) !important;
}
[data-testid = "bot"] {
    background-color: var(--message-bot-background-color-light) !important;
}
[data-testid = "user"] {
    background-color: var(--message-user-background-color-light) !important;
}
/* 暗色 */
.dark #chuanhu_chatbot {
    background-color: var(--chatbot-background-color-dark) !important;
    color: var(--chatbot-color-dark) !important;
}
.dark [data-testid = "bot"] {
    background-color: var(--message-bot-background-color-dark) !important;
}
.dark [data-testid = "user"] {
    background-color: var(--message-user-background-color-dark) !important;
}

/* 屏幕宽度大于等于500px的设备 */
/* update on 2023.4.8: 高度的细致调整已写入JavaScript */
@media screen and (min-width: 500px) {
    #chuanhu_chatbot {
        height: calc(100vh - 200px);
    }
    #chuanhu_chatbot>.wrapper>.wrap {
        max-height: calc(100vh - 200px - var(--line-sm)*1rem - 2*var(--block-label-margin) );
    }
}
/* 屏幕宽度小于500px的设备 */
@media screen and (max-width: 499px) {
    #chuanhu_chatbot {
        height: calc(100vh - 140px);
    }
    #chuanhu_chatbot>.wrapper>.wrap {
        max-height: calc(100vh - 140px - var(--line-sm)*1rem - 2*var(--block-label-margin) );
    }
    [data-testid = "bot"] {
        max-width: 95% !important;
    }
    #app_title h1{
        letter-spacing: -1px; font-size: 22px;
    }
}
#chuanhu_chatbot>.wrapper>.wrap {
    overflow-x: hidden;
}
/* 对话气泡 */
.message {
    border-radius: var(--radius-xl) !important;
    border: none;
    padding: var(--spacing-xl) !important;
    font-size: var(--text-md) !important;
    line-height: var(--line-md) !important;
    min-height: calc(var(--text-md)*var(--line-md) + 2*var(--spacing-xl));
    min-width: calc(var(--text-md)*var(--line-md) + 2*var(--spacing-xl));
}
[data-testid = "bot"] {
    max-width: 85%;
    border-bottom-left-radius: 0 !important;
}
[data-testid = "user"] {
    max-width: 85%;
    width: auto !important;
    border-bottom-right-radius: 0 !important;
}

.message.user p {
    white-space: pre-wrap;
}
.message .user-message {
    display: block;
    padding: 0 !important;
    white-space: pre-wrap;
}

.message .md-message p {
    margin-top: 0.6em !important;
    margin-bottom: 0.6em !important;
}
.message .md-message p:first-child { margin-top: 0 !important; }
.message .md-message p:last-of-type { margin-bottom: 0 !important; }

.message .md-message {
    display: block;
    padding: 0 !important;
}
.message .raw-message p {
    margin:0 !important;
}
.message .raw-message {
    display: block;
    padding: 0 !important;
    white-space: pre-wrap;
}
.raw-message.hideM, .md-message.hideM {
    display: none;
}

/* custom buttons */
.chuanhu-btn {
    border-radius: 5px;
    /* background-color: #E6E6E6 !important; */
    color: rgba(120, 120, 120, 0.64) !important;
    padding: 4px !important;
    position: absolute;
    right: -22px;
    cursor: pointer !important;
    transition: color .2s ease, background-color .2s ease;
}
.chuanhu-btn:hover {
    background-color: rgba(167, 167, 167, 0.25) !important;
    color: unset !important;
}
.chuanhu-btn:active {
    background-color: rgba(167, 167, 167, 0.5) !important;
}
.chuanhu-btn:focus {
    outline: none;
}
.copy-bot-btn {
    /* top: 18px; */
    bottom: 0;
}
.toggle-md-btn {
    /* top: 0; */
    bottom: 20px;
}
.copy-code-btn {
    position: relative;
    float: right;
    font-size: 1em;
    cursor: pointer;
}

.message-wrap>div img{
    border-radius: 10px !important;
}

/* history message */
.wrapper>.wrap>.history-message {
    padding: 10px !important;
}
.history-message {
    /* padding: 0 !important; */
    opacity: 80%;
    display: flex;
    flex-direction: column;
}
.history-message>.history-message {
    padding: 0 !important;
}
.history-message>.message-wrap {
    padding: 0 !important;
    margin-bottom: 16px;
}
.history-message>.message {
    margin-bottom: 16px;
}
.wrapper>.wrap>.history-message::after {
    content: "";
    display: block;
    height: 2px;
    background-color: var(--body-text-color-subdued);
    margin-bottom: 10px;
    margin-top: -10px;
    clear: both;
}
.wrapper>.wrap>.history-message>:last-child::after {
    content: "仅供查看";
    display: block;
    text-align: center;
    color: var(--body-text-color-subdued);
    font-size: 0.8em;
}

/* 表格 */
table {
    margin: 1em 0;
    border-collapse: collapse;
    empty-cells: show;
}
td,th {
    border: 1.2px solid var(--border-color-primary) !important;
    padding: 0.2em;
}
thead {
    background-color: rgba(175,184,193,0.2);
}
thead th {
    padding: .5em .2em;
}
/* 行内代码 */
.message :not(pre) code {
    display: inline;
    white-space: break-spaces;
    font-family: var(--font-mono);
    border-radius: 6px;
    margin: 0 2px 0 2px;
    padding: .2em .4em .1em .4em;
    background-color: rgba(175,184,193,0.2);
}
/* 代码块 */
.message pre,
.message pre[class*=language-] {
    color: #fff;
    overflow-x: auto;
    overflow-y: hidden;
    margin: .8em 1em 1em 0em !important;
    padding: var(--spacing-xl) 1.2em !important;
    border-radius: var(--radius-lg) !important;
}
.message pre code,
.message pre code[class*=language-] {
    color: #fff;
    padding: 0;
    margin: 0;
    background-color: unset;
    text-shadow: none;
    font-family: var(--font-mono);
}
/* 覆盖 gradio 丑陋的复制按钮样式 */
pre button[title="copy"] {
    border-radius: 5px;
    transition: background-color .2s ease;
}
pre button[title="copy"]:hover {
    background-color: #333232;
}
pre button .check {
    color: #fff !important;
    background: var(--neutral-950) !important;
}

/* 覆盖prism.css */
.language-css .token.string,
.style .token.string,
.token.entity,
.token.operator,
.token.url {
    background: none !important;
}