create-byan-agent 2.8.0 → 2.9.0

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.
@@ -0,0 +1,1628 @@
1
+ /* ============================================================
2
+ BYAN Chat — Dark Theme Stylesheet
3
+ Matches existing WebUI design tokens.
4
+ ============================================================ */
5
+
6
+ :root {
7
+ --bg: #0f172a;
8
+ --bg-deep: #080e1e;
9
+ --surface: #1e293b;
10
+ --surface-hover: #263347;
11
+ --surface-active: #334155;
12
+ --border: #334155;
13
+ --border-light: #475569;
14
+ --text: #e2e8f0;
15
+ --text-muted: #94a3b8;
16
+ --text-dim: #64748b;
17
+ --accent: #3b82f6;
18
+ --accent-hover: #2563eb;
19
+ --accent-glow: rgba(59, 130, 246, 0.15);
20
+ --success: #22c55e;
21
+ --warning: #eab308;
22
+ --error: #ef4444;
23
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
24
+ --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace;
25
+ --radius: 8px;
26
+ --radius-lg: 12px;
27
+ --radius-sm: 4px;
28
+ --shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
29
+ --shadow-lg: 0 8px 48px rgba(0, 0, 0, 0.5);
30
+ --transition: 200ms ease;
31
+ --sidebar-width: 300px;
32
+ --topbar-height: 56px;
33
+ --split-width: 380px;
34
+ }
35
+
36
+ /* ---- Reset ---- */
37
+ *, *::before, *::after {
38
+ box-sizing: border-box;
39
+ margin: 0;
40
+ padding: 0;
41
+ }
42
+
43
+ html {
44
+ font-size: 16px;
45
+ scroll-behavior: smooth;
46
+ }
47
+
48
+ body {
49
+ font-family: var(--font-sans);
50
+ background: var(--bg);
51
+ color: var(--text);
52
+ height: 100vh;
53
+ overflow: hidden;
54
+ display: flex;
55
+ flex-direction: column;
56
+ line-height: 1.6;
57
+ -webkit-font-smoothing: antialiased;
58
+ -moz-osx-font-smoothing: grayscale;
59
+ }
60
+
61
+ /* ---- Utility ---- */
62
+ .hidden { display: none !important; }
63
+ .sr-only {
64
+ position: absolute;
65
+ width: 1px;
66
+ height: 1px;
67
+ padding: 0;
68
+ margin: -1px;
69
+ overflow: hidden;
70
+ clip: rect(0,0,0,0);
71
+ border: 0;
72
+ }
73
+
74
+ /* ---- Scrollbar ---- */
75
+ ::-webkit-scrollbar {
76
+ width: 6px;
77
+ height: 6px;
78
+ }
79
+ ::-webkit-scrollbar-track {
80
+ background: transparent;
81
+ }
82
+ ::-webkit-scrollbar-thumb {
83
+ background: var(--border);
84
+ border-radius: 3px;
85
+ }
86
+ ::-webkit-scrollbar-thumb:hover {
87
+ background: var(--border-light);
88
+ }
89
+
90
+ /* ============================================================
91
+ TOP BAR
92
+ ============================================================ */
93
+ .topbar {
94
+ position: fixed;
95
+ top: 0;
96
+ left: 0;
97
+ right: 0;
98
+ z-index: 100;
99
+ height: var(--topbar-height);
100
+ background: var(--bg-deep);
101
+ border-bottom: 1px solid var(--border);
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: space-between;
105
+ padding: 0 1rem;
106
+ gap: 1rem;
107
+ }
108
+
109
+ .topbar-left {
110
+ display: flex;
111
+ align-items: center;
112
+ gap: 0.75rem;
113
+ flex-shrink: 0;
114
+ }
115
+
116
+ .topbar-left .logo {
117
+ font-size: 1.25rem;
118
+ font-weight: 800;
119
+ letter-spacing: 0.12em;
120
+ color: var(--accent);
121
+ line-height: 1;
122
+ }
123
+
124
+ .topbar-left .label {
125
+ font-size: 0.8rem;
126
+ color: var(--text-muted);
127
+ font-weight: 500;
128
+ padding: 2px 8px;
129
+ background: var(--surface);
130
+ border-radius: 999px;
131
+ line-height: 1.4;
132
+ }
133
+
134
+ .topbar-center {
135
+ display: flex;
136
+ align-items: center;
137
+ gap: 1rem;
138
+ flex: 1;
139
+ justify-content: center;
140
+ min-width: 0;
141
+ }
142
+
143
+ .agent-indicator {
144
+ display: flex;
145
+ align-items: center;
146
+ gap: 0.5rem;
147
+ padding: 4px 12px;
148
+ background: var(--surface);
149
+ border: 1px solid var(--border);
150
+ border-radius: var(--radius);
151
+ font-size: 0.85rem;
152
+ max-width: 200px;
153
+ overflow: hidden;
154
+ white-space: nowrap;
155
+ text-overflow: ellipsis;
156
+ cursor: default;
157
+ }
158
+
159
+ .agent-icon {
160
+ font-size: 1rem;
161
+ line-height: 1;
162
+ }
163
+
164
+ .agent-name {
165
+ color: var(--text-muted);
166
+ overflow: hidden;
167
+ text-overflow: ellipsis;
168
+ }
169
+
170
+ .agent-indicator.active .agent-name {
171
+ color: var(--text);
172
+ }
173
+
174
+ .model-select {
175
+ background: var(--surface);
176
+ color: var(--text);
177
+ border: 1px solid var(--border);
178
+ border-radius: var(--radius);
179
+ padding: 6px 12px;
180
+ font-size: 0.8rem;
181
+ font-family: var(--font-sans);
182
+ cursor: pointer;
183
+ outline: none;
184
+ transition: border-color var(--transition);
185
+ appearance: none;
186
+ -webkit-appearance: none;
187
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M3 4.5L6 8l3-3.5H3z'/%3E%3C/svg%3E");
188
+ background-repeat: no-repeat;
189
+ background-position: right 8px center;
190
+ padding-right: 28px;
191
+ }
192
+
193
+ .model-select:hover,
194
+ .model-select:focus {
195
+ border-color: var(--accent);
196
+ }
197
+
198
+ .topbar-right {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 0.25rem;
202
+ flex-shrink: 0;
203
+ }
204
+
205
+ /* ---- Icon Buttons ---- */
206
+ .icon-btn {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ width: 36px;
211
+ height: 36px;
212
+ border: none;
213
+ background: transparent;
214
+ color: var(--text-muted);
215
+ border-radius: var(--radius);
216
+ cursor: pointer;
217
+ font-size: 1.1rem;
218
+ transition: all var(--transition);
219
+ flex-shrink: 0;
220
+ }
221
+
222
+ .icon-btn:hover {
223
+ background: var(--surface-hover);
224
+ color: var(--text);
225
+ }
226
+
227
+ .icon-btn:active {
228
+ background: var(--surface-active);
229
+ }
230
+
231
+ .icon-btn:focus-visible {
232
+ outline: 2px solid var(--accent);
233
+ outline-offset: 2px;
234
+ }
235
+
236
+ .sidebar-toggle {
237
+ display: none;
238
+ }
239
+
240
+ /* ============================================================
241
+ MAIN LAYOUT
242
+ ============================================================ */
243
+ .main-layout {
244
+ display: flex;
245
+ margin-top: var(--topbar-height);
246
+ height: calc(100vh - var(--topbar-height));
247
+ overflow: hidden;
248
+ }
249
+
250
+ /* ============================================================
251
+ LEFT SIDEBAR
252
+ ============================================================ */
253
+ .sidebar {
254
+ width: var(--sidebar-width);
255
+ min-width: var(--sidebar-width);
256
+ background: var(--bg-deep);
257
+ border-right: 1px solid var(--border);
258
+ display: flex;
259
+ flex-direction: column;
260
+ overflow: hidden;
261
+ transition: transform 0.3s ease, opacity 0.3s ease;
262
+ }
263
+
264
+ .sidebar-header {
265
+ display: flex;
266
+ align-items: center;
267
+ justify-content: space-between;
268
+ padding: 1rem 1rem 0.75rem;
269
+ flex-shrink: 0;
270
+ }
271
+
272
+ .sidebar-header h2 {
273
+ font-size: 0.9rem;
274
+ font-weight: 600;
275
+ text-transform: uppercase;
276
+ letter-spacing: 0.08em;
277
+ color: var(--text-muted);
278
+ }
279
+
280
+ .sidebar-header .icon-btn {
281
+ font-size: 1.3rem;
282
+ font-weight: 700;
283
+ }
284
+
285
+ /* CLI Status */
286
+ .cli-status {
287
+ padding: 0 1rem 0.75rem;
288
+ display: flex;
289
+ flex-wrap: wrap;
290
+ gap: 0.5rem;
291
+ flex-shrink: 0;
292
+ }
293
+
294
+ .cli-item {
295
+ display: flex;
296
+ align-items: center;
297
+ gap: 0.375rem;
298
+ font-size: 0.75rem;
299
+ color: var(--text-dim);
300
+ padding: 3px 8px;
301
+ background: var(--surface);
302
+ border-radius: 999px;
303
+ cursor: pointer;
304
+ transition: all var(--transition);
305
+ border: 1px solid transparent;
306
+ }
307
+
308
+ .cli-item:hover {
309
+ border-color: var(--border);
310
+ }
311
+
312
+ .cli-item.available {
313
+ color: var(--text-muted);
314
+ }
315
+
316
+ .cli-item.active {
317
+ color: var(--accent);
318
+ border-color: var(--accent);
319
+ background: var(--accent-glow);
320
+ }
321
+
322
+ .cli-dot {
323
+ width: 6px;
324
+ height: 6px;
325
+ border-radius: 50%;
326
+ background: var(--text-dim);
327
+ flex-shrink: 0;
328
+ }
329
+
330
+ .cli-item.available .cli-dot {
331
+ background: var(--success);
332
+ }
333
+
334
+ .cli-item.active .cli-dot {
335
+ background: var(--accent);
336
+ box-shadow: 0 0 6px var(--accent);
337
+ }
338
+
339
+ /* Agent List */
340
+ .agent-list {
341
+ flex: 1;
342
+ overflow-y: auto;
343
+ padding: 0 0.5rem;
344
+ }
345
+
346
+ .agent-group {
347
+ margin-bottom: 0.5rem;
348
+ }
349
+
350
+ .agent-group-title {
351
+ font-size: 0.7rem;
352
+ font-weight: 600;
353
+ text-transform: uppercase;
354
+ letter-spacing: 0.1em;
355
+ color: var(--text-dim);
356
+ padding: 0.5rem;
357
+ position: sticky;
358
+ top: 0;
359
+ background: var(--bg-deep);
360
+ z-index: 1;
361
+ }
362
+
363
+ .agent-card {
364
+ display: flex;
365
+ align-items: center;
366
+ gap: 0.625rem;
367
+ padding: 0.5rem;
368
+ border-radius: var(--radius);
369
+ cursor: pointer;
370
+ transition: all var(--transition);
371
+ border: 1px solid transparent;
372
+ }
373
+
374
+ .agent-card:hover {
375
+ background: var(--surface-hover);
376
+ }
377
+
378
+ .agent-card.active {
379
+ background: var(--accent-glow);
380
+ border-color: var(--accent);
381
+ }
382
+
383
+ .agent-card:focus-visible {
384
+ outline: 2px solid var(--accent);
385
+ outline-offset: -2px;
386
+ }
387
+
388
+ .agent-card-icon {
389
+ font-size: 1.25rem;
390
+ width: 32px;
391
+ height: 32px;
392
+ display: flex;
393
+ align-items: center;
394
+ justify-content: center;
395
+ background: var(--surface);
396
+ border-radius: var(--radius);
397
+ flex-shrink: 0;
398
+ }
399
+
400
+ .agent-card-info {
401
+ min-width: 0;
402
+ flex: 1;
403
+ }
404
+
405
+ .agent-card-name {
406
+ font-size: 0.825rem;
407
+ font-weight: 500;
408
+ color: var(--text);
409
+ white-space: nowrap;
410
+ overflow: hidden;
411
+ text-overflow: ellipsis;
412
+ }
413
+
414
+ .agent-card-desc {
415
+ font-size: 0.7rem;
416
+ color: var(--text-dim);
417
+ white-space: nowrap;
418
+ overflow: hidden;
419
+ text-overflow: ellipsis;
420
+ }
421
+
422
+ .agent-card-badge {
423
+ font-size: 0.6rem;
424
+ padding: 1px 6px;
425
+ border-radius: 999px;
426
+ background: var(--surface-active);
427
+ color: var(--text-muted);
428
+ flex-shrink: 0;
429
+ text-transform: uppercase;
430
+ letter-spacing: 0.05em;
431
+ }
432
+
433
+ /* Session History */
434
+ .session-history {
435
+ border-top: 1px solid var(--border);
436
+ padding: 0.75rem 0.5rem;
437
+ flex-shrink: 0;
438
+ max-height: 200px;
439
+ overflow-y: auto;
440
+ }
441
+
442
+ .session-history h3 {
443
+ font-size: 0.7rem;
444
+ font-weight: 600;
445
+ text-transform: uppercase;
446
+ letter-spacing: 0.1em;
447
+ color: var(--text-dim);
448
+ padding: 0 0.5rem 0.5rem;
449
+ }
450
+
451
+ .session-item {
452
+ display: flex;
453
+ align-items: center;
454
+ justify-content: space-between;
455
+ padding: 0.4rem 0.5rem;
456
+ border-radius: var(--radius-sm);
457
+ cursor: pointer;
458
+ transition: background var(--transition);
459
+ gap: 0.5rem;
460
+ }
461
+
462
+ .session-item:hover {
463
+ background: var(--surface-hover);
464
+ }
465
+
466
+ .session-item.active {
467
+ background: var(--accent-glow);
468
+ }
469
+
470
+ .session-item-title {
471
+ font-size: 0.8rem;
472
+ color: var(--text-muted);
473
+ overflow: hidden;
474
+ text-overflow: ellipsis;
475
+ white-space: nowrap;
476
+ flex: 1;
477
+ min-width: 0;
478
+ }
479
+
480
+ .session-item-time {
481
+ font-size: 0.65rem;
482
+ color: var(--text-dim);
483
+ flex-shrink: 0;
484
+ }
485
+
486
+ .session-item-delete {
487
+ display: none;
488
+ font-size: 0.7rem;
489
+ color: var(--text-dim);
490
+ background: none;
491
+ border: none;
492
+ cursor: pointer;
493
+ padding: 2px 4px;
494
+ border-radius: var(--radius-sm);
495
+ flex-shrink: 0;
496
+ }
497
+
498
+ .session-item:hover .session-item-delete {
499
+ display: block;
500
+ }
501
+
502
+ .session-item-delete:hover {
503
+ color: var(--error);
504
+ background: rgba(239, 68, 68, 0.1);
505
+ }
506
+
507
+ /* Sidebar overlay for mobile */
508
+ .sidebar-overlay {
509
+ position: fixed;
510
+ inset: 0;
511
+ background: rgba(0, 0, 0, 0.5);
512
+ z-index: 49;
513
+ backdrop-filter: blur(2px);
514
+ }
515
+
516
+ /* ============================================================
517
+ CHAT AREA
518
+ ============================================================ */
519
+ .chat-area {
520
+ flex: 1;
521
+ display: flex;
522
+ flex-direction: column;
523
+ min-width: 0;
524
+ position: relative;
525
+ background: var(--bg);
526
+ }
527
+
528
+ /* ---- Messages ---- */
529
+ .messages {
530
+ flex: 1;
531
+ overflow-y: auto;
532
+ padding: 1.5rem 1rem;
533
+ display: flex;
534
+ flex-direction: column;
535
+ gap: 0.25rem;
536
+ scroll-behavior: smooth;
537
+ }
538
+
539
+ /* Welcome Screen */
540
+ .welcome-screen {
541
+ display: flex;
542
+ flex-direction: column;
543
+ align-items: center;
544
+ justify-content: center;
545
+ flex: 1;
546
+ text-align: center;
547
+ padding: 2rem;
548
+ min-height: 300px;
549
+ }
550
+
551
+ .welcome-screen h2 {
552
+ font-size: 2rem;
553
+ font-weight: 700;
554
+ color: var(--text);
555
+ margin-bottom: 0.5rem;
556
+ letter-spacing: -0.02em;
557
+ }
558
+
559
+ .welcome-screen > p {
560
+ color: var(--text-muted);
561
+ font-size: 0.95rem;
562
+ margin-bottom: 2rem;
563
+ }
564
+
565
+ .quick-agents {
566
+ display: grid;
567
+ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
568
+ gap: 0.75rem;
569
+ max-width: 720px;
570
+ width: 100%;
571
+ }
572
+
573
+ .quick-agent-card {
574
+ display: flex;
575
+ flex-direction: column;
576
+ align-items: center;
577
+ gap: 0.5rem;
578
+ padding: 1.25rem 1rem;
579
+ background: var(--surface);
580
+ border: 1px solid var(--border);
581
+ border-radius: var(--radius-lg);
582
+ cursor: pointer;
583
+ transition: all var(--transition);
584
+ text-align: center;
585
+ }
586
+
587
+ .quick-agent-card:hover {
588
+ background: var(--surface-hover);
589
+ border-color: var(--accent);
590
+ transform: translateY(-2px);
591
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
592
+ }
593
+
594
+ .quick-agent-card .qa-icon {
595
+ font-size: 1.75rem;
596
+ }
597
+
598
+ .quick-agent-card .qa-name {
599
+ font-size: 0.85rem;
600
+ font-weight: 600;
601
+ color: var(--text);
602
+ }
603
+
604
+ .quick-agent-card .qa-desc {
605
+ font-size: 0.7rem;
606
+ color: var(--text-dim);
607
+ }
608
+
609
+ /* ---- Messages ---- */
610
+ .message {
611
+ display: flex;
612
+ gap: 0.75rem;
613
+ max-width: 800px;
614
+ width: 100%;
615
+ margin: 0 auto;
616
+ padding: 0.75rem 1rem;
617
+ border-radius: var(--radius-lg);
618
+ position: relative;
619
+ transition: background var(--transition);
620
+ animation: messageIn 0.3s ease;
621
+ }
622
+
623
+ @keyframes messageIn {
624
+ from {
625
+ opacity: 0;
626
+ transform: translateY(8px);
627
+ }
628
+ to {
629
+ opacity: 1;
630
+ transform: translateY(0);
631
+ }
632
+ }
633
+
634
+ .message:hover {
635
+ background: rgba(255, 255, 255, 0.02);
636
+ }
637
+
638
+ .message.user {
639
+ flex-direction: row-reverse;
640
+ }
641
+
642
+ .message-avatar {
643
+ width: 32px;
644
+ height: 32px;
645
+ border-radius: var(--radius);
646
+ display: flex;
647
+ align-items: center;
648
+ justify-content: center;
649
+ font-size: 0.85rem;
650
+ flex-shrink: 0;
651
+ font-weight: 600;
652
+ }
653
+
654
+ .message.user .message-avatar {
655
+ background: var(--accent);
656
+ color: #fff;
657
+ }
658
+
659
+ .message.assistant .message-avatar {
660
+ background: var(--surface-active);
661
+ color: var(--text);
662
+ }
663
+
664
+ .message.system .message-avatar {
665
+ background: var(--warning);
666
+ color: var(--bg);
667
+ }
668
+
669
+ .message-body {
670
+ flex: 1;
671
+ min-width: 0;
672
+ }
673
+
674
+ .message.user .message-body {
675
+ text-align: right;
676
+ }
677
+
678
+ .message .content {
679
+ font-size: 0.9rem;
680
+ line-height: 1.65;
681
+ color: var(--text);
682
+ word-wrap: break-word;
683
+ overflow-wrap: break-word;
684
+ }
685
+
686
+ .message.user .content {
687
+ background: var(--accent);
688
+ color: #fff;
689
+ padding: 0.625rem 1rem;
690
+ border-radius: var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg);
691
+ display: inline-block;
692
+ text-align: left;
693
+ }
694
+
695
+ .message.assistant .content {
696
+ padding: 0.25rem 0;
697
+ }
698
+
699
+ .message.system .content {
700
+ font-size: 0.8rem;
701
+ color: var(--text-muted);
702
+ font-style: italic;
703
+ padding: 0.25rem 0;
704
+ }
705
+
706
+ /* Message meta */
707
+ .message .meta {
708
+ display: flex;
709
+ align-items: center;
710
+ gap: 0.5rem;
711
+ margin-top: 0.25rem;
712
+ font-size: 0.7rem;
713
+ color: var(--text-dim);
714
+ }
715
+
716
+ .message.user .meta {
717
+ justify-content: flex-end;
718
+ }
719
+
720
+ /* Message hover actions */
721
+ .message .actions {
722
+ display: none;
723
+ position: absolute;
724
+ top: 4px;
725
+ right: 4px;
726
+ background: var(--surface);
727
+ border: 1px solid var(--border);
728
+ border-radius: var(--radius);
729
+ padding: 2px;
730
+ gap: 2px;
731
+ z-index: 5;
732
+ box-shadow: var(--shadow);
733
+ }
734
+
735
+ .message.user .actions {
736
+ right: auto;
737
+ left: 4px;
738
+ }
739
+
740
+ .message:hover .actions {
741
+ display: flex;
742
+ }
743
+
744
+ .message .actions button {
745
+ display: flex;
746
+ align-items: center;
747
+ justify-content: center;
748
+ width: 28px;
749
+ height: 28px;
750
+ border: none;
751
+ background: transparent;
752
+ color: var(--text-muted);
753
+ border-radius: var(--radius-sm);
754
+ cursor: pointer;
755
+ font-size: 0.8rem;
756
+ transition: all var(--transition);
757
+ }
758
+
759
+ .message .actions button:hover {
760
+ background: var(--surface-hover);
761
+ color: var(--text);
762
+ }
763
+
764
+ .message .actions button.pinned {
765
+ color: var(--warning);
766
+ }
767
+
768
+ /* Pin indicator */
769
+ .pin-indicator {
770
+ display: inline-flex;
771
+ align-items: center;
772
+ gap: 0.25rem;
773
+ font-size: 0.65rem;
774
+ color: var(--warning);
775
+ margin-left: 0.5rem;
776
+ }
777
+
778
+ /* Streaming cursor */
779
+ .streaming-cursor {
780
+ display: inline-block;
781
+ width: 2px;
782
+ height: 1em;
783
+ background: var(--accent);
784
+ margin-left: 2px;
785
+ animation: blink 1s step-end infinite;
786
+ vertical-align: text-bottom;
787
+ }
788
+
789
+ @keyframes blink {
790
+ 50% { opacity: 0; }
791
+ }
792
+
793
+ /* ---- Markdown content styles ---- */
794
+ .content h1, .content h2, .content h3,
795
+ .content h4, .content h5, .content h6 {
796
+ margin-top: 1em;
797
+ margin-bottom: 0.5em;
798
+ font-weight: 600;
799
+ line-height: 1.3;
800
+ color: var(--text);
801
+ }
802
+
803
+ .content h1 { font-size: 1.4rem; }
804
+ .content h2 { font-size: 1.2rem; }
805
+ .content h3 { font-size: 1.05rem; }
806
+ .content h4 { font-size: 0.95rem; }
807
+
808
+ .content p {
809
+ margin-bottom: 0.5em;
810
+ }
811
+
812
+ .content p:last-child {
813
+ margin-bottom: 0;
814
+ }
815
+
816
+ .content strong {
817
+ font-weight: 600;
818
+ color: var(--text);
819
+ }
820
+
821
+ .content em {
822
+ font-style: italic;
823
+ color: var(--text-muted);
824
+ }
825
+
826
+ .content a {
827
+ color: var(--accent);
828
+ text-decoration: none;
829
+ }
830
+
831
+ .content a:hover {
832
+ text-decoration: underline;
833
+ }
834
+
835
+ .content code {
836
+ font-family: var(--font-mono);
837
+ font-size: 0.85em;
838
+ background: var(--surface-active);
839
+ padding: 0.15em 0.4em;
840
+ border-radius: var(--radius-sm);
841
+ color: #e879f9;
842
+ }
843
+
844
+ .message.user .content code {
845
+ background: rgba(255, 255, 255, 0.15);
846
+ color: #fff;
847
+ }
848
+
849
+ .content pre {
850
+ background: var(--bg-deep);
851
+ border: 1px solid var(--border);
852
+ border-radius: var(--radius);
853
+ padding: 1rem;
854
+ margin: 0.75rem 0;
855
+ overflow-x: auto;
856
+ font-family: var(--font-mono);
857
+ font-size: 0.825rem;
858
+ line-height: 1.5;
859
+ position: relative;
860
+ }
861
+
862
+ .content pre code {
863
+ background: none;
864
+ padding: 0;
865
+ border-radius: 0;
866
+ color: var(--text);
867
+ font-size: inherit;
868
+ }
869
+
870
+ .code-block-header {
871
+ display: flex;
872
+ align-items: center;
873
+ justify-content: space-between;
874
+ padding: 0.4rem 1rem;
875
+ background: var(--surface);
876
+ border: 1px solid var(--border);
877
+ border-bottom: none;
878
+ border-radius: var(--radius) var(--radius) 0 0;
879
+ margin-top: 0.75rem;
880
+ }
881
+
882
+ .code-block-header + pre {
883
+ margin-top: 0;
884
+ border-top-left-radius: 0;
885
+ border-top-right-radius: 0;
886
+ }
887
+
888
+ .code-lang {
889
+ font-size: 0.7rem;
890
+ color: var(--text-dim);
891
+ font-family: var(--font-mono);
892
+ text-transform: lowercase;
893
+ }
894
+
895
+ .code-copy-btn {
896
+ font-size: 0.7rem;
897
+ color: var(--text-dim);
898
+ background: none;
899
+ border: none;
900
+ cursor: pointer;
901
+ padding: 2px 6px;
902
+ border-radius: var(--radius-sm);
903
+ transition: all var(--transition);
904
+ }
905
+
906
+ .code-copy-btn:hover {
907
+ color: var(--text);
908
+ background: var(--surface-hover);
909
+ }
910
+
911
+ /* Syntax highlight colors (basic) */
912
+ .content pre .kw { color: #c084fc; }
913
+ .content pre .str { color: #86efac; }
914
+ .content pre .num { color: #fbbf24; }
915
+ .content pre .cmt { color: var(--text-dim); font-style: italic; }
916
+ .content pre .fn { color: #60a5fa; }
917
+ .content pre .op { color: #f472b6; }
918
+
919
+ .content ul, .content ol {
920
+ margin: 0.5em 0;
921
+ padding-left: 1.5em;
922
+ }
923
+
924
+ .content li {
925
+ margin-bottom: 0.25em;
926
+ }
927
+
928
+ .content blockquote {
929
+ border-left: 3px solid var(--accent);
930
+ padding: 0.5rem 1rem;
931
+ margin: 0.75rem 0;
932
+ background: var(--accent-glow);
933
+ border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
934
+ color: var(--text-muted);
935
+ }
936
+
937
+ .content hr {
938
+ border: none;
939
+ border-top: 1px solid var(--border);
940
+ margin: 1rem 0;
941
+ }
942
+
943
+ .content table {
944
+ border-collapse: collapse;
945
+ margin: 0.75rem 0;
946
+ font-size: 0.85rem;
947
+ width: 100%;
948
+ }
949
+
950
+ .content th, .content td {
951
+ border: 1px solid var(--border);
952
+ padding: 0.4rem 0.75rem;
953
+ text-align: left;
954
+ }
955
+
956
+ .content th {
957
+ background: var(--surface);
958
+ font-weight: 600;
959
+ }
960
+
961
+ /* ---- Tool Approval Banner ---- */
962
+ .tool-approval {
963
+ position: sticky;
964
+ bottom: 0;
965
+ background: var(--surface);
966
+ border-top: 2px solid var(--warning);
967
+ padding: 0.75rem 1rem;
968
+ display: flex;
969
+ align-items: center;
970
+ justify-content: space-between;
971
+ gap: 1rem;
972
+ z-index: 10;
973
+ animation: slideUp 0.3s ease;
974
+ }
975
+
976
+ @keyframes slideUp {
977
+ from { transform: translateY(100%); opacity: 0; }
978
+ to { transform: translateY(0); opacity: 1; }
979
+ }
980
+
981
+ .tool-info {
982
+ display: flex;
983
+ align-items: center;
984
+ gap: 0.75rem;
985
+ flex: 1;
986
+ min-width: 0;
987
+ flex-wrap: wrap;
988
+ }
989
+
990
+ .tool-label {
991
+ font-size: 0.75rem;
992
+ color: var(--warning);
993
+ font-weight: 600;
994
+ text-transform: uppercase;
995
+ letter-spacing: 0.05em;
996
+ flex-shrink: 0;
997
+ }
998
+
999
+ .tool-name {
1000
+ font-size: 0.85rem;
1001
+ color: var(--text);
1002
+ font-weight: 500;
1003
+ }
1004
+
1005
+ .tool-command {
1006
+ font-family: var(--font-mono);
1007
+ font-size: 0.8rem;
1008
+ background: var(--bg-deep);
1009
+ padding: 0.25rem 0.5rem;
1010
+ border-radius: var(--radius-sm);
1011
+ color: var(--text-muted);
1012
+ max-width: 400px;
1013
+ overflow: hidden;
1014
+ text-overflow: ellipsis;
1015
+ white-space: nowrap;
1016
+ }
1017
+
1018
+ .tool-actions {
1019
+ display: flex;
1020
+ gap: 0.5rem;
1021
+ flex-shrink: 0;
1022
+ }
1023
+
1024
+ .btn-approve {
1025
+ background: var(--success);
1026
+ color: #fff;
1027
+ border: none;
1028
+ padding: 6px 16px;
1029
+ border-radius: var(--radius);
1030
+ font-size: 0.8rem;
1031
+ font-weight: 600;
1032
+ cursor: pointer;
1033
+ transition: all var(--transition);
1034
+ }
1035
+
1036
+ .btn-approve:hover {
1037
+ filter: brightness(1.1);
1038
+ }
1039
+
1040
+ .btn-deny {
1041
+ background: transparent;
1042
+ color: var(--text-muted);
1043
+ border: 1px solid var(--border);
1044
+ padding: 6px 16px;
1045
+ border-radius: var(--radius);
1046
+ font-size: 0.8rem;
1047
+ font-weight: 500;
1048
+ cursor: pointer;
1049
+ transition: all var(--transition);
1050
+ }
1051
+
1052
+ .btn-deny:hover {
1053
+ border-color: var(--error);
1054
+ color: var(--error);
1055
+ }
1056
+
1057
+ /* ============================================================
1058
+ INPUT AREA
1059
+ ============================================================ */
1060
+ .input-area {
1061
+ padding: 0.75rem 1rem 1rem;
1062
+ background: var(--bg);
1063
+ border-top: 1px solid var(--border);
1064
+ flex-shrink: 0;
1065
+ }
1066
+
1067
+ .input-row {
1068
+ display: flex;
1069
+ align-items: flex-end;
1070
+ gap: 0.5rem;
1071
+ max-width: 800px;
1072
+ margin: 0 auto;
1073
+ background: var(--surface);
1074
+ border: 1px solid var(--border);
1075
+ border-radius: var(--radius-lg);
1076
+ padding: 0.5rem;
1077
+ transition: border-color var(--transition);
1078
+ }
1079
+
1080
+ .input-row:focus-within {
1081
+ border-color: var(--accent);
1082
+ box-shadow: 0 0 0 3px var(--accent-glow);
1083
+ }
1084
+
1085
+ .input-row textarea {
1086
+ flex: 1;
1087
+ background: transparent;
1088
+ border: none;
1089
+ color: var(--text);
1090
+ font-family: var(--font-sans);
1091
+ font-size: 0.9rem;
1092
+ line-height: 1.5;
1093
+ resize: none;
1094
+ outline: none;
1095
+ max-height: 200px;
1096
+ padding: 0.375rem 0.5rem;
1097
+ scrollbar-width: thin;
1098
+ }
1099
+
1100
+ .input-row textarea::placeholder {
1101
+ color: var(--text-dim);
1102
+ }
1103
+
1104
+ .btn-send {
1105
+ display: flex;
1106
+ align-items: center;
1107
+ justify-content: center;
1108
+ width: 36px;
1109
+ height: 36px;
1110
+ border: none;
1111
+ background: var(--accent);
1112
+ color: #fff;
1113
+ border-radius: var(--radius);
1114
+ cursor: pointer;
1115
+ font-size: 1rem;
1116
+ transition: all var(--transition);
1117
+ flex-shrink: 0;
1118
+ }
1119
+
1120
+ .btn-send:hover {
1121
+ background: var(--accent-hover);
1122
+ }
1123
+
1124
+ .btn-send:disabled {
1125
+ opacity: 0.4;
1126
+ cursor: not-allowed;
1127
+ }
1128
+
1129
+ .input-meta {
1130
+ display: flex;
1131
+ align-items: center;
1132
+ gap: 0.75rem;
1133
+ max-width: 800px;
1134
+ margin: 0.375rem auto 0;
1135
+ padding: 0 0.5rem;
1136
+ }
1137
+
1138
+ .cli-badge {
1139
+ font-size: 0.65rem;
1140
+ padding: 1px 8px;
1141
+ border-radius: 999px;
1142
+ background: var(--surface);
1143
+ border: 1px solid var(--border);
1144
+ color: var(--text-dim);
1145
+ font-family: var(--font-mono);
1146
+ }
1147
+
1148
+ .char-count {
1149
+ font-size: 0.65rem;
1150
+ color: var(--text-dim);
1151
+ margin-left: auto;
1152
+ }
1153
+
1154
+ /* Typing indicator */
1155
+ .typing {
1156
+ font-size: 0.75rem;
1157
+ color: var(--accent);
1158
+ display: flex;
1159
+ align-items: center;
1160
+ gap: 0.375rem;
1161
+ }
1162
+
1163
+ .typing::before {
1164
+ content: '';
1165
+ display: inline-block;
1166
+ width: 4px;
1167
+ height: 4px;
1168
+ border-radius: 50%;
1169
+ background: var(--accent);
1170
+ animation: typingPulse 1.4s ease-in-out infinite;
1171
+ }
1172
+
1173
+ @keyframes typingPulse {
1174
+ 0%, 100% { opacity: 0.3; transform: scale(0.8); }
1175
+ 50% { opacity: 1; transform: scale(1.2); }
1176
+ }
1177
+
1178
+ /* ============================================================
1179
+ SPLIT PANEL (Right)
1180
+ ============================================================ */
1181
+ .split-panel {
1182
+ width: var(--split-width);
1183
+ min-width: var(--split-width);
1184
+ background: var(--bg-deep);
1185
+ border-left: 1px solid var(--border);
1186
+ display: flex;
1187
+ flex-direction: column;
1188
+ overflow: hidden;
1189
+ animation: slideInRight 0.3s ease;
1190
+ }
1191
+
1192
+ @keyframes slideInRight {
1193
+ from { transform: translateX(100%); opacity: 0; }
1194
+ to { transform: translateX(0); opacity: 1; }
1195
+ }
1196
+
1197
+ .split-header {
1198
+ display: flex;
1199
+ align-items: center;
1200
+ justify-content: space-between;
1201
+ padding: 0.75rem 1rem;
1202
+ border-bottom: 1px solid var(--border);
1203
+ flex-shrink: 0;
1204
+ }
1205
+
1206
+ .split-header h3 {
1207
+ font-size: 0.8rem;
1208
+ font-weight: 600;
1209
+ color: var(--text-muted);
1210
+ text-transform: uppercase;
1211
+ letter-spacing: 0.06em;
1212
+ }
1213
+
1214
+ .split-content {
1215
+ flex: 1;
1216
+ overflow: auto;
1217
+ padding: 1rem;
1218
+ font-family: var(--font-mono);
1219
+ font-size: 0.75rem;
1220
+ line-height: 1.5;
1221
+ color: var(--text-muted);
1222
+ white-space: pre-wrap;
1223
+ word-break: break-all;
1224
+ }
1225
+
1226
+ /* ============================================================
1227
+ MODALS
1228
+ ============================================================ */
1229
+ .modal {
1230
+ position: fixed;
1231
+ inset: 0;
1232
+ z-index: 200;
1233
+ display: flex;
1234
+ align-items: center;
1235
+ justify-content: center;
1236
+ background: rgba(0, 0, 0, 0.6);
1237
+ backdrop-filter: blur(4px);
1238
+ animation: fadeIn 0.2s ease;
1239
+ }
1240
+
1241
+ @keyframes fadeIn {
1242
+ from { opacity: 0; }
1243
+ to { opacity: 1; }
1244
+ }
1245
+
1246
+ .modal-content {
1247
+ background: var(--surface);
1248
+ border: 1px solid var(--border);
1249
+ border-radius: var(--radius-lg);
1250
+ padding: 2rem;
1251
+ min-width: 400px;
1252
+ max-width: 560px;
1253
+ width: 90%;
1254
+ box-shadow: var(--shadow-lg);
1255
+ animation: scaleIn 0.25s ease;
1256
+ }
1257
+
1258
+ @keyframes scaleIn {
1259
+ from { transform: scale(0.95); opacity: 0; }
1260
+ to { transform: scale(1); opacity: 1; }
1261
+ }
1262
+
1263
+ .modal-content h2 {
1264
+ font-size: 1.2rem;
1265
+ font-weight: 700;
1266
+ margin-bottom: 1.5rem;
1267
+ color: var(--text);
1268
+ }
1269
+
1270
+ /* Drop Zone */
1271
+ .drop-zone {
1272
+ border: 2px dashed var(--border);
1273
+ border-radius: var(--radius-lg);
1274
+ padding: 2rem;
1275
+ text-align: center;
1276
+ transition: all var(--transition);
1277
+ margin-bottom: 1rem;
1278
+ }
1279
+
1280
+ .drop-zone.drag-over {
1281
+ border-color: var(--accent);
1282
+ background: var(--accent-glow);
1283
+ }
1284
+
1285
+ .drop-zone p {
1286
+ color: var(--text-muted);
1287
+ font-size: 0.9rem;
1288
+ margin-bottom: 0.5rem;
1289
+ }
1290
+
1291
+ .drop-or {
1292
+ font-size: 0.75rem;
1293
+ color: var(--text-dim);
1294
+ }
1295
+
1296
+ /* Import URL */
1297
+ .import-url {
1298
+ display: flex;
1299
+ gap: 0.5rem;
1300
+ margin-bottom: 1.5rem;
1301
+ }
1302
+
1303
+ .import-url input {
1304
+ flex: 1;
1305
+ background: var(--bg);
1306
+ border: 1px solid var(--border);
1307
+ border-radius: var(--radius);
1308
+ padding: 0.5rem 0.75rem;
1309
+ color: var(--text);
1310
+ font-family: var(--font-sans);
1311
+ font-size: 0.85rem;
1312
+ outline: none;
1313
+ transition: border-color var(--transition);
1314
+ }
1315
+
1316
+ .import-url input:focus {
1317
+ border-color: var(--accent);
1318
+ }
1319
+
1320
+ .import-url input::placeholder {
1321
+ color: var(--text-dim);
1322
+ }
1323
+
1324
+ /* Export Options */
1325
+ .export-options {
1326
+ display: grid;
1327
+ grid-template-columns: repeat(3, 1fr);
1328
+ gap: 0.75rem;
1329
+ margin-bottom: 1.5rem;
1330
+ }
1331
+
1332
+ .export-options .card {
1333
+ background: var(--bg);
1334
+ border: 1px solid var(--border);
1335
+ border-radius: var(--radius);
1336
+ padding: 1.25rem 1rem;
1337
+ text-align: center;
1338
+ cursor: pointer;
1339
+ transition: all var(--transition);
1340
+ }
1341
+
1342
+ .export-options .card:hover {
1343
+ border-color: var(--accent);
1344
+ background: var(--accent-glow);
1345
+ }
1346
+
1347
+ .export-options .card h3 {
1348
+ font-size: 0.95rem;
1349
+ font-weight: 600;
1350
+ color: var(--text);
1351
+ margin-bottom: 0.25rem;
1352
+ }
1353
+
1354
+ .export-options .card p {
1355
+ font-size: 0.75rem;
1356
+ color: var(--text-dim);
1357
+ }
1358
+
1359
+ /* Settings */
1360
+ .settings-group {
1361
+ display: flex;
1362
+ align-items: center;
1363
+ justify-content: space-between;
1364
+ padding: 0.75rem 0;
1365
+ border-bottom: 1px solid var(--border);
1366
+ }
1367
+
1368
+ .settings-group label {
1369
+ font-size: 0.9rem;
1370
+ color: var(--text);
1371
+ }
1372
+
1373
+ .settings-group select {
1374
+ background: var(--bg);
1375
+ color: var(--text);
1376
+ border: 1px solid var(--border);
1377
+ border-radius: var(--radius);
1378
+ padding: 6px 10px;
1379
+ font-size: 0.85rem;
1380
+ font-family: var(--font-sans);
1381
+ cursor: pointer;
1382
+ outline: none;
1383
+ }
1384
+
1385
+ .settings-group input[type="checkbox"] {
1386
+ width: 18px;
1387
+ height: 18px;
1388
+ accent-color: var(--accent);
1389
+ cursor: pointer;
1390
+ }
1391
+
1392
+ /* Buttons */
1393
+ .btn-primary {
1394
+ background: var(--accent);
1395
+ color: #fff;
1396
+ border: none;
1397
+ padding: 8px 20px;
1398
+ border-radius: var(--radius);
1399
+ font-size: 0.85rem;
1400
+ font-weight: 600;
1401
+ cursor: pointer;
1402
+ transition: all var(--transition);
1403
+ font-family: var(--font-sans);
1404
+ }
1405
+
1406
+ .btn-primary:hover {
1407
+ background: var(--accent-hover);
1408
+ }
1409
+
1410
+ .btn-secondary {
1411
+ background: var(--surface-active);
1412
+ color: var(--text);
1413
+ border: 1px solid var(--border);
1414
+ padding: 8px 20px;
1415
+ border-radius: var(--radius);
1416
+ font-size: 0.85rem;
1417
+ font-weight: 500;
1418
+ cursor: pointer;
1419
+ transition: all var(--transition);
1420
+ font-family: var(--font-sans);
1421
+ }
1422
+
1423
+ .btn-secondary:hover {
1424
+ background: var(--surface-hover);
1425
+ border-color: var(--border-light);
1426
+ }
1427
+
1428
+ .btn-close {
1429
+ display: block;
1430
+ margin: 0 auto;
1431
+ background: none;
1432
+ border: none;
1433
+ color: var(--text-dim);
1434
+ font-size: 0.85rem;
1435
+ cursor: pointer;
1436
+ padding: 8px 16px;
1437
+ transition: color var(--transition);
1438
+ font-family: var(--font-sans);
1439
+ }
1440
+
1441
+ .btn-close:hover {
1442
+ color: var(--text);
1443
+ }
1444
+
1445
+ .modal-actions {
1446
+ display: flex;
1447
+ justify-content: flex-end;
1448
+ gap: 0.75rem;
1449
+ margin-top: 1.5rem;
1450
+ }
1451
+
1452
+ /* Attach preview */
1453
+ #attach-input {
1454
+ width: 100%;
1455
+ margin-bottom: 1rem;
1456
+ }
1457
+
1458
+ #attach-preview {
1459
+ display: flex;
1460
+ flex-direction: column;
1461
+ gap: 0.5rem;
1462
+ max-height: 200px;
1463
+ overflow-y: auto;
1464
+ }
1465
+
1466
+ .attach-file-item {
1467
+ display: flex;
1468
+ align-items: center;
1469
+ justify-content: space-between;
1470
+ padding: 0.5rem 0.75rem;
1471
+ background: var(--bg);
1472
+ border: 1px solid var(--border);
1473
+ border-radius: var(--radius-sm);
1474
+ font-size: 0.8rem;
1475
+ }
1476
+
1477
+ .attach-file-name {
1478
+ color: var(--text);
1479
+ font-family: var(--font-mono);
1480
+ }
1481
+
1482
+ .attach-file-size {
1483
+ color: var(--text-dim);
1484
+ font-size: 0.7rem;
1485
+ }
1486
+
1487
+ /* ============================================================
1488
+ VOICE RECORDING
1489
+ ============================================================ */
1490
+ .icon-btn.recording {
1491
+ color: var(--error);
1492
+ animation: pulse 1.5s ease infinite;
1493
+ }
1494
+
1495
+ @keyframes pulse {
1496
+ 0%, 100% { box-shadow: none; }
1497
+ 50% { box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.2); }
1498
+ }
1499
+
1500
+ /* ============================================================
1501
+ ERROR TOAST
1502
+ ============================================================ */
1503
+ .toast {
1504
+ position: fixed;
1505
+ bottom: 100px;
1506
+ left: 50%;
1507
+ transform: translateX(-50%);
1508
+ background: var(--surface);
1509
+ border: 1px solid var(--border);
1510
+ border-left: 3px solid var(--error);
1511
+ padding: 0.75rem 1.25rem;
1512
+ border-radius: var(--radius);
1513
+ font-size: 0.85rem;
1514
+ color: var(--text);
1515
+ z-index: 300;
1516
+ box-shadow: var(--shadow-lg);
1517
+ animation: toastIn 0.3s ease, toastOut 0.3s ease 3.7s forwards;
1518
+ max-width: 480px;
1519
+ }
1520
+
1521
+ .toast.success {
1522
+ border-left-color: var(--success);
1523
+ }
1524
+
1525
+ .toast.warning {
1526
+ border-left-color: var(--warning);
1527
+ }
1528
+
1529
+ @keyframes toastIn {
1530
+ from { opacity: 0; transform: translateX(-50%) translateY(20px); }
1531
+ to { opacity: 1; transform: translateX(-50%) translateY(0); }
1532
+ }
1533
+
1534
+ @keyframes toastOut {
1535
+ from { opacity: 1; }
1536
+ to { opacity: 0; pointer-events: none; }
1537
+ }
1538
+
1539
+ /* ============================================================
1540
+ RESPONSIVE
1541
+ ============================================================ */
1542
+ @media (max-width: 768px) {
1543
+ .sidebar-toggle {
1544
+ display: flex;
1545
+ }
1546
+
1547
+ .sidebar {
1548
+ position: fixed;
1549
+ top: var(--topbar-height);
1550
+ left: 0;
1551
+ bottom: 0;
1552
+ z-index: 50;
1553
+ transform: translateX(-100%);
1554
+ box-shadow: var(--shadow-lg);
1555
+ }
1556
+
1557
+ .sidebar.open {
1558
+ transform: translateX(0);
1559
+ }
1560
+
1561
+ .topbar-center {
1562
+ display: none;
1563
+ }
1564
+
1565
+ .model-select {
1566
+ display: none;
1567
+ }
1568
+
1569
+ .export-options {
1570
+ grid-template-columns: 1fr;
1571
+ }
1572
+
1573
+ .modal-content {
1574
+ min-width: auto;
1575
+ margin: 1rem;
1576
+ }
1577
+
1578
+ .quick-agents {
1579
+ grid-template-columns: 1fr 1fr;
1580
+ }
1581
+
1582
+ .tool-approval {
1583
+ flex-direction: column;
1584
+ align-items: stretch;
1585
+ }
1586
+
1587
+ .tool-actions {
1588
+ justify-content: flex-end;
1589
+ }
1590
+
1591
+ .message {
1592
+ padding: 0.5rem;
1593
+ }
1594
+ }
1595
+
1596
+ @media (max-width: 480px) {
1597
+ .quick-agents {
1598
+ grid-template-columns: 1fr;
1599
+ }
1600
+
1601
+ .topbar-left .label {
1602
+ display: none;
1603
+ }
1604
+ }
1605
+
1606
+ /* ============================================================
1607
+ FOCUS & ACCESSIBILITY
1608
+ ============================================================ */
1609
+ :focus-visible {
1610
+ outline: 2px solid var(--accent);
1611
+ outline-offset: 2px;
1612
+ }
1613
+
1614
+ button:focus:not(:focus-visible),
1615
+ select:focus:not(:focus-visible),
1616
+ input:focus:not(:focus-visible),
1617
+ textarea:focus:not(:focus-visible) {
1618
+ outline: none;
1619
+ }
1620
+
1621
+ /* Reduced motion */
1622
+ @media (prefers-reduced-motion: reduce) {
1623
+ *, *::before, *::after {
1624
+ animation-duration: 0.01ms !important;
1625
+ animation-iteration-count: 1 !important;
1626
+ transition-duration: 0.01ms !important;
1627
+ }
1628
+ }