aicodeswitch 1.4.0 → 1.5.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,831 @@
1
+ .app {
2
+ display: flex;
3
+ width: 100%;
4
+ height: 100%;
5
+ }
6
+
7
+ .sidebar {
8
+ width: 260px;
9
+ background: var(--bg-sidebar);
10
+ color: var(--text-primary);
11
+ display: flex;
12
+ flex-direction: column;
13
+ padding: 0;
14
+ border-radius: 20px;
15
+ box-shadow: 0 8px 32px var(--shadow-primary), 0 0 20px rgba(4, 120, 87, 0.3);
16
+ margin: 16px;
17
+ position: relative;
18
+ z-index: 1;
19
+ padding-bottom: 80px; /* Space for theme toggle */
20
+ backdrop-filter: blur(10px);
21
+ border: 1px solid rgba(255, 255, 255, 0.1);
22
+ }
23
+
24
+ .logo {
25
+ padding: 28px 20px;
26
+ border-bottom: 2px solid rgba(255, 255, 255, 0.2);
27
+ text-align: center;
28
+ position: relative;
29
+ overflow: hidden;
30
+ }
31
+
32
+ .logo::before {
33
+ content: '✨';
34
+ position: absolute;
35
+ top: 12px;
36
+ left: 12px;
37
+ font-size: 16px;
38
+ opacity: 0.7;
39
+ transition: all 0.3s ease;
40
+ }
41
+
42
+ .logo::after {
43
+ content: '🌟';
44
+ position: absolute;
45
+ top: 12px;
46
+ right: 12px;
47
+ font-size: 16px;
48
+ opacity: 0.7;
49
+ transition: all 0.3s ease;
50
+ }
51
+
52
+ .logo:hover::before,
53
+ .logo:focus::before {
54
+ animation: sparkle 3s ease-in-out infinite;
55
+ }
56
+
57
+ .logo:hover::after,
58
+ .logo:focus::after {
59
+ animation: sparkle 3s ease-in-out infinite 1.5s;
60
+ }
61
+
62
+ @keyframes sparkle {
63
+ 0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.7; }
64
+ 50% { transform: scale(1.2) rotate(180deg); opacity: 1; }
65
+ }
66
+
67
+ .logo h2 {
68
+ font-size: 22px;
69
+ font-weight: 800;
70
+ background: linear-gradient(135deg, #FFFFFF 0%, #F8F8FF 50%, #E6E6FA 100%);
71
+ -webkit-background-clip: text;
72
+ -webkit-text-fill-color: transparent;
73
+ background-clip: text;
74
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 0 20px rgba(4, 120, 87, 0.3);
75
+ position: relative;
76
+ z-index: 1;
77
+ letter-spacing: 1px;
78
+ text-transform: uppercase;
79
+ transition: all 0.3s ease;
80
+ }
81
+
82
+ .logo:hover h2,
83
+ .logo:focus h2 {
84
+ animation: logoGlow 4s ease-in-out infinite;
85
+ }
86
+
87
+ @keyframes logoGlow {
88
+ 0%, 100% { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 0 20px rgba(4, 120, 87, 0.3); }
89
+ 50% { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 0 30px rgba(4, 120, 87, 0.5), 0 0 40px rgba(4, 120, 87, 0.3); }
90
+ }
91
+
92
+ .nav-menu {
93
+ list-style: none;
94
+ padding: 16px 0;
95
+ margin: 0;
96
+ }
97
+
98
+ .nav-menu li {
99
+ margin: 8px 12px;
100
+ }
101
+
102
+ .nav-menu a {
103
+ display: block;
104
+ padding: 14px 20px;
105
+ color: var(--text-sidebar);
106
+ text-decoration: none;
107
+ border-radius: 12px;
108
+ transition: all 0.3s ease-out;
109
+ font-weight: 500;
110
+ position: relative;
111
+ overflow: hidden;
112
+ }
113
+
114
+ .nav-menu a::before {
115
+ content: '';
116
+ position: absolute;
117
+ top: 0;
118
+ left: -100%;
119
+ width: 100%;
120
+ height: 100%;
121
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
122
+ transition: left 0.5s ease-out;
123
+ }
124
+
125
+ .nav-menu a:hover::before {
126
+ left: 100%;
127
+ }
128
+
129
+ .nav-menu a:hover {
130
+ background-color: rgba(255, 255, 255, 0.1);
131
+ transform: translateX(4px);
132
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
133
+ }
134
+
135
+ .nav-menu a.active {
136
+ background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
137
+ box-shadow: 0 4px 16px var(--shadow-primary);
138
+ }
139
+
140
+ .main-content {
141
+ flex: 1;
142
+ padding: 24px;
143
+ overflow-y: auto;
144
+ background: var(--bg-primary);
145
+ position: relative;
146
+ z-index: 1;
147
+ margin: 16px 16px 16px 0;
148
+ border-radius: 20px;
149
+ }
150
+
151
+ .main-content::before {
152
+ content: '';
153
+ position: absolute;
154
+ top: 0;
155
+ left: 0;
156
+ right: 0;
157
+ bottom: 0;
158
+ background-image:
159
+ radial-gradient(circle at 20% 80%, rgba(255, 206, 92, 0.1) 0%, transparent 50%),
160
+ radial-gradient(circle at 80% 20%, rgba(134, 204, 202, 0.1) 0%, transparent 50%),
161
+ radial-gradient(circle at 40% 40%, rgba(255, 113, 206, 0.05) 0%, transparent 50%);
162
+ pointer-events: none;
163
+ }
164
+
165
+ .page-header {
166
+ margin-bottom: 24px;
167
+ position: relative;
168
+ z-index: 1;
169
+ }
170
+
171
+ .page-header h1 {
172
+ font-family: 'Fredoka', sans-serif;
173
+ font-size: 28px;
174
+ font-weight: 700;
175
+ color: var(--accent-primary);
176
+ margin-bottom: 8px;
177
+ text-shadow: 0 2px 4px var(--shadow-primary);
178
+ }
179
+
180
+ .page-header p {
181
+ color: var(--text-muted);
182
+ font-size: 16px;
183
+ font-weight: 400;
184
+ }
185
+
186
+ .card {
187
+ background: var(--bg-card);
188
+ border-radius: 20px;
189
+ padding: 24px;
190
+ box-shadow: 0 8px 32px var(--shadow-secondary), 0 0 16px rgba(4, 120, 87, 0.1);
191
+ margin-bottom: 24px;
192
+ border: 1px solid var(--border-primary);
193
+ position: relative;
194
+ overflow: hidden;
195
+ transition: all 0.3s ease-out;
196
+ backdrop-filter: blur(10px);
197
+ }
198
+
199
+ .card::before {
200
+ content: '';
201
+ position: absolute;
202
+ top: 0;
203
+ left: 0;
204
+ right: 0;
205
+ height: 4px;
206
+ background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary), var(--accent-primary));
207
+ border-radius: 20px 20px 0 0;
208
+ background-size: 200% 100%;
209
+ transition: all 0.3s ease;
210
+ }
211
+
212
+ .card:hover::before {
213
+ animation: gradientShift 3s ease-in-out infinite;
214
+ }
215
+
216
+ @keyframes gradientShift {
217
+ 0%, 100% { background-position: 0% 50%; }
218
+ 50% { background-position: 100% 50%; }
219
+ }
220
+
221
+ .card:hover {
222
+ transform: translateY(-2px);
223
+ box-shadow: 0 12px 40px rgba(106, 123, 180, 0.2), 0 8px 24px rgba(255, 113, 206, 0.15);
224
+ }
225
+
226
+ .btn {
227
+ padding: 10px 20px;
228
+ border: none;
229
+ border-radius: 12px;
230
+ cursor: pointer;
231
+ font-size: 14px;
232
+ font-weight: 600;
233
+ transition: all 0.3s ease-out;
234
+ position: relative;
235
+ overflow: hidden;
236
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
237
+ white-space: nowrap;
238
+ }
239
+
240
+ .btn::before {
241
+ content: '';
242
+ position: absolute;
243
+ top: 50%;
244
+ left: 50%;
245
+ width: 0;
246
+ height: 0;
247
+ background: rgba(255, 255, 255, 0.3);
248
+ border-radius: 50%;
249
+ transform: translate(-50%, -50%);
250
+ transition: width 0.6s, height 0.6s;
251
+ }
252
+
253
+ .btn:hover::before {
254
+ width: 300px;
255
+ height: 300px;
256
+ }
257
+
258
+ .btn:hover {
259
+ transform: translateY(-1px);
260
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
261
+ }
262
+
263
+ .btn:active {
264
+ transform: translateY(0);
265
+ }
266
+
267
+ .btn:disabled {
268
+ opacity: 0.4;
269
+ cursor: not-allowed;
270
+ }
271
+
272
+ .btn-primary {
273
+ background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
274
+ color: white;
275
+ position: relative;
276
+ overflow: hidden;
277
+ }
278
+
279
+ .btn-primary::before {
280
+ content: '';
281
+ position: absolute;
282
+ top: 0;
283
+ left: -100%;
284
+ width: 100%;
285
+ height: 100%;
286
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
287
+ transition: left 0.5s ease;
288
+ }
289
+
290
+ .btn-primary:hover::before {
291
+ left: 100%;
292
+ }
293
+
294
+ .btn-primary:hover {
295
+ transform: translateY(-2px);
296
+ box-shadow: 0 8px 25px rgba(4, 120, 87, 0.4);
297
+ }
298
+
299
+ .btn-danger {
300
+ background: var(--accent-danger);
301
+ color: white;
302
+ }
303
+
304
+ .btn-danger:hover {
305
+ background: #EA580C;
306
+ }
307
+
308
+ .btn-success {
309
+ background: var(--accent-success);
310
+ color: white;
311
+ }
312
+
313
+ .btn-success:hover {
314
+ background: #059669;
315
+ }
316
+
317
+ .btn-secondary {
318
+ background: var(--accent-secondary);
319
+ color: white;
320
+ }
321
+
322
+ .btn-secondary:hover {
323
+ background: var(--accent-primary);
324
+ }
325
+
326
+ .btn-sm {
327
+ padding: 4px 8px;
328
+ }
329
+
330
+ table {
331
+ width: 100%;
332
+ border-collapse: collapse;
333
+ margin-top: 16px;
334
+ border-radius: 12px;
335
+ overflow: hidden;
336
+ box-shadow: 0 4px 16px rgba(106, 123, 180, 0.1);
337
+ }
338
+
339
+ table th,
340
+ table td {
341
+ padding: 16px;
342
+ text-align: left;
343
+ border-bottom: 1px solid var(--border-secondary);
344
+ color: var(--text-primary);
345
+ }
346
+
347
+ table th {
348
+ background: var(--bg-table-header);
349
+ font-weight: 700;
350
+ color: var(--text-secondary);
351
+ font-family: 'Fredoka', sans-serif;
352
+ font-size: 14px;
353
+ }
354
+
355
+
356
+
357
+ .form-group {
358
+ margin-bottom: 20px;
359
+ }
360
+
361
+ .form-group label {
362
+ display: block;
363
+ margin-bottom: 8px;
364
+ color: var(--text-primary);
365
+ font-size: 14px;
366
+ font-weight: 600;
367
+ font-family: 'Nunito', sans-serif;
368
+ }
369
+
370
+ .form-group input,
371
+ .form-group select,
372
+ .form-group textarea {
373
+ width: 100%;
374
+ padding: 12px 16px;
375
+ border: 2px solid var(--border-primary);
376
+ border-radius: 12px;
377
+ font-size: 14px;
378
+ font-family: 'Nunito', sans-serif;
379
+ background: var(--bg-secondary);
380
+ color: var(--text-primary);
381
+ transition: all 0.3s ease-out;
382
+ }
383
+
384
+ .form-group input:focus,
385
+ .form-group select:focus,
386
+ .form-group textarea:focus {
387
+ outline: none;
388
+ border-color: var(--accent-primary);
389
+ box-shadow: 0 0 0 3px var(--shadow-secondary);
390
+ background: var(--bg-secondary);
391
+ }
392
+
393
+ .modal-overlay {
394
+ position: fixed;
395
+ top: 0;
396
+ left: 0;
397
+ right: 0;
398
+ bottom: 0;
399
+ background: rgba(0, 0, 0, 0.7);
400
+ backdrop-filter: blur(8px);
401
+ display: flex;
402
+ justify-content: center;
403
+ align-items: center;
404
+ z-index: 1000;
405
+ animation: modalFadeIn 0.3s ease-out;
406
+ }
407
+
408
+ @keyframes modalFadeIn {
409
+ from { opacity: 0; }
410
+ to { opacity: 1; }
411
+ }
412
+
413
+ .modal {
414
+ background: var(--bg-secondary);
415
+ backdrop-filter: blur(20px);
416
+ border-radius: 24px;
417
+ padding: 32px;
418
+ min-width: 500px;
419
+ max-width: 90%;
420
+ max-height: 90%;
421
+ overflow-y: auto;
422
+ box-shadow: 0 20px 60px var(--shadow-primary), 0 8px 32px var(--shadow-secondary);
423
+ border: 1px solid var(--border-secondary);
424
+ animation: modalSlideIn 0.4s ease-out;
425
+ }
426
+
427
+ @keyframes modalSlideIn {
428
+ from {
429
+ opacity: 0;
430
+ transform: translateY(-20px) scale(0.95);
431
+ }
432
+ to {
433
+ opacity: 1;
434
+ transform: translateY(0) scale(1);
435
+ }
436
+ }
437
+
438
+ .modal-header {
439
+ display: flex;
440
+ justify-content: space-between;
441
+ align-items: center;
442
+ margin-bottom: 20px;
443
+ }
444
+
445
+ .modal-header h2 {
446
+ font-size: 20px;
447
+ color: var(--text-primary);
448
+ }
449
+
450
+ .modal-footer {
451
+ display: flex;
452
+ justify-content: flex-end;
453
+ gap: 10px;
454
+ margin-top: 20px;
455
+ }
456
+
457
+ .action-buttons {
458
+ display: flex;
459
+ gap: 8px;
460
+ }
461
+
462
+ .badge {
463
+ display: inline-block;
464
+ padding: 6px 12px;
465
+ border-radius: 20px;
466
+ font-size: 12px;
467
+ font-weight: 700;
468
+ text-transform: uppercase;
469
+ letter-spacing: 0.5px;
470
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
471
+ margin-top: -40px;
472
+ margin-right: -24px;
473
+ }
474
+
475
+ .badge-success {
476
+ background: var(--accent-success);
477
+ color: white;
478
+ }
479
+
480
+ .badge-warning {
481
+ background: var(--accent-warning);
482
+ color: white;
483
+ }
484
+
485
+ .badge-danger {
486
+ background: var(--accent-danger);
487
+ color: white;
488
+ }
489
+
490
+ .empty-state {
491
+ text-align: center;
492
+ padding: 60px 20px;
493
+ color: var(--text-muted);
494
+ font-family: 'Nunito', sans-serif;
495
+ }
496
+
497
+ .empty-state p {
498
+ margin-bottom: 20px;
499
+ font-size: 16px;
500
+ font-weight: 500;
501
+ }
502
+
503
+ .toolbar {
504
+ display: flex;
505
+ justify-content: space-between;
506
+ align-items: center;
507
+ margin-bottom: 16px;
508
+ }
509
+
510
+ .theme-toggle {
511
+ position: absolute;
512
+ bottom: 20px;
513
+ left: 20px;
514
+ right: 20px;
515
+ display: flex;
516
+ align-items: center;
517
+ justify-content: center;
518
+ gap: 12px;
519
+ padding: 12px;
520
+ background: rgba(255, 255, 255, 0.08);
521
+ border-radius: 12px;
522
+ backdrop-filter: blur(10px);
523
+ border: 1px solid rgba(255, 255, 255, 0.1);
524
+ transition: all 0.3s ease-out;
525
+ }
526
+
527
+ .theme-toggle:hover {
528
+ background: rgba(255, 255, 255, 0.12);
529
+ }
530
+
531
+ .theme-toggle button {
532
+ background: none;
533
+ border: none;
534
+ color: var(--text-sidebar);
535
+ cursor: pointer;
536
+ padding: 8px;
537
+ border-radius: 8px;
538
+ transition: all 0.3s ease-out;
539
+ display: flex;
540
+ align-items: center;
541
+ justify-content: center;
542
+ }
543
+
544
+ .theme-toggle button:hover {
545
+ background: rgba(255, 255, 255, 0.15);
546
+ }
547
+
548
+ .theme-toggle button.active {
549
+ background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
550
+ color: white;
551
+ box-shadow: 0 2px 8px var(--shadow-primary), 0 0 8px rgba(4, 120, 87, 0.5);
552
+ animation: pulse 2s ease-in-out infinite;
553
+ }
554
+
555
+ @keyframes pulse {
556
+ 0%, 100% { transform: scale(1); }
557
+ 50% { transform: scale(1.05); }
558
+ }
559
+
560
+ /* Update Notification Styles */
561
+ .update-notification {
562
+ position: absolute;
563
+ bottom: 80px;
564
+ left: 20px;
565
+ right: 20px;
566
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(5, 150, 105, 0.15));
567
+ border: 1px solid rgba(16, 185, 129, 0.4);
568
+ border-radius: 12px;
569
+ padding: 12px;
570
+ backdrop-filter: blur(10px);
571
+ animation: slideUp 0.3s ease-out;
572
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2);
573
+ margin-bottom: 12px;
574
+ }
575
+
576
+ @keyframes slideUp {
577
+ from {
578
+ opacity: 0;
579
+ transform: translateY(10px);
580
+ }
581
+ to {
582
+ opacity: 1;
583
+ transform: translateY(0);
584
+ }
585
+ }
586
+
587
+ .update-notification-content {
588
+ display: flex;
589
+ align-items: center;
590
+ gap: 10px;
591
+ margin-bottom: 8px;
592
+ }
593
+
594
+ .update-icon {
595
+ font-size: 18px;
596
+ animation: bounce 1s ease-in-out infinite;
597
+ }
598
+
599
+ @keyframes bounce {
600
+ 0%, 100% {
601
+ transform: translateY(0);
602
+ }
603
+ 50% {
604
+ transform: translateY(-3px);
605
+ }
606
+ }
607
+
608
+ .update-text {
609
+ flex: 1;
610
+ }
611
+
612
+ .update-title {
613
+ font-size: 13px;
614
+ font-weight: 600;
615
+ color: var(--text-sidebar);
616
+ margin-bottom: 2px;
617
+ }
618
+
619
+ .update-versions {
620
+ font-size: 11px;
621
+ color: rgba(255, 255, 255, 0.7);
622
+ font-family: 'Monaco', 'Menlo', monospace;
623
+ }
624
+
625
+ .update-message {
626
+ font-size: 10px;
627
+ color: var(--text-sidebar);
628
+ margin-bottom: 2px;
629
+ }
630
+
631
+ .update-message code {
632
+ background: rgba(255, 255, 255, 0.1);
633
+ padding: 2px 4px;
634
+ border-radius: 4px;
635
+ font-family: 'Monaco', 'Menlo', monospace;
636
+ margin-top: 2px;
637
+ display: inline-block;
638
+ }
639
+
640
+ .update-link {
641
+ display: block;
642
+ text-align: center;
643
+ padding: 6px 12px;
644
+ background: linear-gradient(135deg, var(--accent-success), #059669);
645
+ color: white;
646
+ text-decoration: none;
647
+ border-radius: 8px;
648
+ font-size: 12px;
649
+ font-weight: 600;
650
+ transition: all 0.3s ease-out;
651
+ }
652
+
653
+ .update-link:hover {
654
+ transform: translateY(-1px);
655
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
656
+ }
657
+
658
+ /* Reduced motion support */
659
+ @media (prefers-reduced-motion: reduce) {
660
+ .nav-menu a,
661
+ .card,
662
+ .btn,
663
+ .form-group input,
664
+ .form-group select,
665
+ .form-group textarea,
666
+ .modal-overlay,
667
+ .modal,
668
+ table tr {
669
+ transition: none;
670
+ animation: none;
671
+ }
672
+
673
+ .nav-menu a:hover,
674
+ .card:hover,
675
+ .btn:hover,
676
+ table tr:hover {
677
+ transform: none;
678
+ }
679
+
680
+ .btn::before {
681
+ display: none;
682
+ }
683
+ }
684
+
685
+ /* Markdown Content Styles */
686
+ .markdown-content {
687
+ line-height: 1.7;
688
+ color: var(--text-primary);
689
+ max-width: 100%;
690
+ overflow-x: auto;
691
+ }
692
+
693
+ .markdown-content h1 {
694
+ font-size: 2em;
695
+ font-weight: 700;
696
+ margin-top: 0;
697
+ margin-bottom: 0.8em;
698
+ color: var(--text-primary);
699
+ border-bottom: 2px solid var(--border-color);
700
+ padding-bottom: 0.3em;
701
+ }
702
+
703
+ .markdown-content h2 {
704
+ font-size: 1.6em;
705
+ font-weight: 600;
706
+ margin-top: 1.5em;
707
+ margin-bottom: 0.6em;
708
+ color: var(--text-primary);
709
+ border-bottom: 1px solid var(--border-color);
710
+ padding-bottom: 0.25em;
711
+ }
712
+
713
+ .markdown-content h3 {
714
+ font-size: 1.3em;
715
+ font-weight: 600;
716
+ margin-top: 1.2em;
717
+ margin-bottom: 0.5em;
718
+ color: var(--text-primary);
719
+ }
720
+
721
+ .markdown-content h4 {
722
+ font-size: 1.1em;
723
+ font-weight: 600;
724
+ margin-top: 1em;
725
+ margin-bottom: 0.4em;
726
+ color: var(--text-primary);
727
+ }
728
+
729
+ .markdown-content p {
730
+ margin-bottom: 1em;
731
+ line-height: 1.8;
732
+ }
733
+
734
+ .markdown-content ul,
735
+ .markdown-content ol {
736
+ margin-bottom: 1em;
737
+ padding-left: 2em;
738
+ }
739
+
740
+ .markdown-content li {
741
+ margin-bottom: 0.5em;
742
+ line-height: 1.7;
743
+ }
744
+
745
+ .markdown-content code {
746
+ background: var(--bg-secondary);
747
+ padding: 0.2em 0.4em;
748
+ border-radius: 4px;
749
+ font-size: 0.9em;
750
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;
751
+ color: var(--accent-secondary);
752
+ border: 1px solid var(--border-color);
753
+ }
754
+
755
+ .markdown-content pre {
756
+ background: var(--bg-secondary);
757
+ padding: 1em;
758
+ border-radius: 8px;
759
+ overflow-x: auto;
760
+ margin-bottom: 1em;
761
+ border: 1px solid var(--border-color);
762
+ }
763
+
764
+ .markdown-content pre code {
765
+ background: none;
766
+ padding: 0;
767
+ border: none;
768
+ color: var(--text-primary);
769
+ font-size: 0.95em;
770
+ }
771
+
772
+ .markdown-content blockquote {
773
+ border-left: 4px solid var(--accent-primary);
774
+ padding-left: 1em;
775
+ margin-left: 0;
776
+ margin-bottom: 1em;
777
+ color: var(--text-secondary);
778
+ font-style: italic;
779
+ }
780
+
781
+ .markdown-content a {
782
+ color: var(--accent-primary);
783
+ text-decoration: none;
784
+ border-bottom: 1px solid transparent;
785
+ transition: all 0.2s ease;
786
+ }
787
+
788
+ .markdown-content a:hover {
789
+ color: var(--accent-secondary);
790
+ border-bottom-color: var(--accent-secondary);
791
+ }
792
+
793
+ .markdown-content table {
794
+ width: 100%;
795
+ border-collapse: collapse;
796
+ margin-bottom: 1em;
797
+ }
798
+
799
+ .markdown-content table th,
800
+ .markdown-content table td {
801
+ padding: 0.75em;
802
+ text-align: left;
803
+ border: 1px solid var(--border-color);
804
+ }
805
+
806
+ .markdown-content table th {
807
+ background: var(--bg-secondary);
808
+ font-weight: 600;
809
+ }
810
+
811
+ .markdown-content hr {
812
+ border: none;
813
+ border-top: 2px solid var(--border-color);
814
+ margin: 2em 0;
815
+ }
816
+
817
+ .markdown-content strong {
818
+ font-weight: 600;
819
+ color: var(--text-primary);
820
+ }
821
+
822
+ .markdown-content em {
823
+ font-style: italic;
824
+ }
825
+
826
+ .markdown-content img {
827
+ max-width: 100%;
828
+ height: auto;
829
+ border-radius: 8px;
830
+ margin: 1em 0;
831
+ }