@knowcode/doc-builder 1.2.2 → 1.2.3

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,1974 @@
1
+ /* JUNO Documentation - Modern CSS Design System */
2
+
3
+ :root {
4
+ /* Color Palette */
5
+ --primary-gradient: linear-gradient(135deg, #4a5568 0%, #2d3748 100%);
6
+ --secondary-gradient: linear-gradient(135deg, #718096 0%, #4a5568 100%);
7
+ --accent: #5b3d98;
8
+ --accent-hover: #4a3280;
9
+ --success: #10b981;
10
+ --warning: #f59e0b;
11
+ --danger: #ef4444;
12
+
13
+ /* Text Colors */
14
+ --text-primary: #1a202c;
15
+ --text-secondary: #4a5568;
16
+ --text-muted: #718096;
17
+ --text-inverse: #ffffff;
18
+
19
+ /* Background Colors */
20
+ --bg-primary: #ffffff;
21
+ --bg-secondary: #f8fafc;
22
+ --bg-tertiary: #e2e8f0;
23
+ --bg-dark: #2d3748;
24
+
25
+ /* Shadows */
26
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
27
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
28
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
29
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
30
+
31
+ /* Spacing */
32
+ --space-xs: 0.25rem;
33
+ --space-sm: 0.375rem;
34
+ --space-md: 0.75rem;
35
+ --space-lg: 1rem;
36
+ --space-xl: 1.5rem;
37
+ --space-2xl: 2rem;
38
+ --space-3xl: 2.5rem;
39
+
40
+ /* Typography */
41
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
42
+ --font-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
43
+
44
+ /* Layout */
45
+ --sidebar-width: 280px;
46
+ --content-max-width: 65rem;
47
+ --header-height: 64px;
48
+ --breadcrumb-height: 40px;
49
+ --banner-offset: 0rem;
50
+
51
+ /* Transitions */
52
+ --transition-fast: 150ms ease-in-out;
53
+ --transition-normal: 250ms ease-in-out;
54
+ --transition-slow: 350ms ease-in-out;
55
+ }
56
+
57
+ /* Mermaid Full Screen Viewer */
58
+ .mermaid-container {
59
+ position: relative;
60
+ margin: 1.5rem 0;
61
+ border: 1px solid var(--bg-tertiary);
62
+ border-radius: 0.5rem;
63
+ overflow: hidden;
64
+ background: var(--bg-primary);
65
+ }
66
+
67
+ .mermaid-toolbar {
68
+ display: flex;
69
+ justify-content: space-between;
70
+ align-items: center;
71
+ padding: 0.75rem 1rem;
72
+ background: var(--bg-secondary);
73
+ border-bottom: 1px solid var(--bg-tertiary);
74
+ font-size: 0.875rem;
75
+ color: var(--text-secondary);
76
+ }
77
+
78
+ .mermaid-actions {
79
+ display: flex;
80
+ gap: 0.5rem;
81
+ }
82
+
83
+ .mermaid-btn {
84
+ display: flex;
85
+ align-items: center;
86
+ gap: 0.375rem;
87
+ padding: 0.375rem 0.75rem;
88
+ border: 1px solid var(--bg-tertiary);
89
+ border-radius: 0.375rem;
90
+ background: var(--bg-primary);
91
+ color: var(--text-secondary);
92
+ text-decoration: none;
93
+ font-size: 0.875rem;
94
+ cursor: pointer;
95
+ transition: all var(--transition-fast);
96
+ }
97
+
98
+ .mermaid-btn:hover {
99
+ background: var(--accent);
100
+ color: var(--text-inverse);
101
+ border-color: var(--accent);
102
+ }
103
+
104
+ .mermaid-btn i {
105
+ font-size: 0.75rem;
106
+ }
107
+
108
+ .mermaid-wrapper {
109
+ padding: 1.5rem;
110
+ overflow: auto;
111
+ max-height: 600px;
112
+ }
113
+
114
+ /* Full Screen Modal */
115
+ .mermaid-fullscreen {
116
+ position: fixed;
117
+ top: 0;
118
+ left: 0;
119
+ width: 100vw;
120
+ height: 100vh;
121
+ background: rgba(0, 0, 0, 0.95);
122
+ display: none;
123
+ z-index: 10000;
124
+ backdrop-filter: blur(4px);
125
+ }
126
+
127
+ .mermaid-fullscreen.active {
128
+ display: flex;
129
+ flex-direction: column;
130
+ }
131
+
132
+ .mermaid-fullscreen-toolbar {
133
+ display: flex;
134
+ justify-content: space-between;
135
+ align-items: center;
136
+ padding: 1rem 2rem;
137
+ background: rgba(255, 255, 255, 0.1);
138
+ backdrop-filter: blur(8px);
139
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
140
+ }
141
+
142
+ .mermaid-fullscreen-title {
143
+ color: white;
144
+ font-size: 1.125rem;
145
+ font-weight: 600;
146
+ }
147
+
148
+ .mermaid-fullscreen-controls {
149
+ display: flex;
150
+ gap: 1rem;
151
+ align-items: center;
152
+ }
153
+
154
+ .mermaid-zoom-controls {
155
+ display: flex;
156
+ gap: 0.5rem;
157
+ align-items: center;
158
+ }
159
+
160
+ .mermaid-zoom-btn {
161
+ padding: 0.5rem;
162
+ border: 1px solid rgba(255, 255, 255, 0.3);
163
+ border-radius: 0.375rem;
164
+ background: rgba(255, 255, 255, 0.1);
165
+ color: white;
166
+ cursor: pointer;
167
+ transition: all var(--transition-fast);
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ }
172
+
173
+ .mermaid-zoom-btn:hover {
174
+ background: rgba(255, 255, 255, 0.2);
175
+ border-color: rgba(255, 255, 255, 0.5);
176
+ }
177
+
178
+ .mermaid-zoom-level {
179
+ color: white;
180
+ font-size: 0.875rem;
181
+ min-width: 3rem;
182
+ text-align: center;
183
+ }
184
+
185
+ .mermaid-close-btn {
186
+ padding: 0.5rem 1rem;
187
+ border: 1px solid rgba(255, 255, 255, 0.3);
188
+ border-radius: 0.375rem;
189
+ background: rgba(255, 255, 255, 0.1);
190
+ color: white;
191
+ cursor: pointer;
192
+ transition: all var(--transition-fast);
193
+ display: flex;
194
+ align-items: center;
195
+ gap: 0.5rem;
196
+ }
197
+
198
+ .mermaid-close-btn:hover {
199
+ background: rgba(255, 255, 255, 0.2);
200
+ }
201
+
202
+ .mermaid-fullscreen-content {
203
+ flex: 1;
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: center;
207
+ padding: 2rem;
208
+ overflow: hidden;
209
+ }
210
+
211
+ .mermaid-fullscreen-wrapper {
212
+ background: white;
213
+ border-radius: 0.5rem;
214
+ padding: 2rem;
215
+ width: calc(100vw - 2rem);
216
+ height: calc(100vh - 6rem);
217
+ overflow: auto;
218
+ box-shadow: var(--shadow-xl);
219
+ transform-origin: center center;
220
+ transition: transform var(--transition-normal);
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: center;
224
+ }
225
+
226
+ .mermaid-fullscreen-diagram {
227
+ display: flex;
228
+ justify-content: center;
229
+ align-items: center;
230
+ width: 100%;
231
+ height: 100%;
232
+ min-height: 400px;
233
+ position: relative;
234
+ }
235
+
236
+ .mermaid-fullscreen-diagram .mermaid {
237
+ width: 100% !important;
238
+ height: 100% !important;
239
+ display: flex !important;
240
+ justify-content: center !important;
241
+ align-items: center !important;
242
+ background: transparent !important;
243
+ border: none !important;
244
+ margin: 0 !important;
245
+ padding: 0 !important;
246
+ }
247
+
248
+ .mermaid-fullscreen-diagram svg {
249
+ max-width: 100% !important;
250
+ max-height: 100% !important;
251
+ width: auto !important;
252
+ height: auto !important;
253
+ display: block !important;
254
+ margin: 0 auto !important;
255
+ }
256
+
257
+ /* Zoom functionality */
258
+ .mermaid-fullscreen-wrapper.zoomed {
259
+ overflow: visible;
260
+ }
261
+
262
+ /* Mermaid Error Styles */
263
+ .mermaid-error {
264
+ background: #fee;
265
+ border: 2px solid #fcc;
266
+ border-radius: 0.5rem;
267
+ padding: 1rem;
268
+ margin: 1rem 0;
269
+ font-family: var(--font-sans);
270
+ }
271
+
272
+ .mermaid-error .error-title {
273
+ color: #c53030;
274
+ font-weight: 600;
275
+ font-size: 1.125rem;
276
+ margin-bottom: 0.5rem;
277
+ display: flex;
278
+ align-items: center;
279
+ gap: 0.5rem;
280
+ }
281
+
282
+ .mermaid-error .error-message {
283
+ color: #742a2a;
284
+ font-family: var(--font-mono);
285
+ font-size: 0.875rem;
286
+ background: #fff5f5;
287
+ padding: 0.5rem;
288
+ border-radius: 0.25rem;
289
+ margin: 0.5rem 0;
290
+ word-break: break-word;
291
+ white-space: pre-wrap;
292
+ }
293
+
294
+ .mermaid-error .error-help {
295
+ color: #744210;
296
+ font-size: 0.875rem;
297
+ font-style: italic;
298
+ }
299
+
300
+ .mermaid-error-container {
301
+ border: 2px solid #fcc;
302
+ border-radius: 0.5rem;
303
+ padding: 0.5rem;
304
+ background: #fef2f2;
305
+ }
306
+
307
+ /* Dark theme error styles */
308
+ [data-theme="dark"] .mermaid-error {
309
+ background: #2d1b1b;
310
+ border-color: #553030;
311
+ }
312
+
313
+ [data-theme="dark"] .mermaid-error .error-title {
314
+ color: #feb2b2;
315
+ }
316
+
317
+ [data-theme="dark"] .mermaid-error .error-message {
318
+ color: #fed7d7;
319
+ background: #2d1b1b;
320
+ }
321
+
322
+ [data-theme="dark"] .mermaid-error .error-help {
323
+ color: #d69e2e;
324
+ }
325
+
326
+ [data-theme="dark"] .mermaid-error-container {
327
+ border-color: #553030;
328
+ background: #2d1b1b;
329
+ }
330
+
331
+ /* Dark theme adjustments */
332
+ [data-theme="dark"] {
333
+ --bg-primary: #1a202c;
334
+ --bg-secondary: #2d3748;
335
+ --bg-tertiary: #4a5568;
336
+ --text-primary: #ffffff;
337
+ --text-secondary: #e2e8f0;
338
+ --text-muted: #a0aec0;
339
+ }
340
+
341
+ [data-theme="dark"] .mermaid-container {
342
+ background: var(--bg-primary);
343
+ border-color: var(--bg-tertiary);
344
+ }
345
+
346
+ [data-theme="dark"] .mermaid-toolbar {
347
+ background: var(--bg-secondary);
348
+ border-color: var(--bg-tertiary);
349
+ }
350
+
351
+ [data-theme="dark"] .mermaid-btn {
352
+ background: var(--bg-primary);
353
+ border-color: var(--bg-tertiary);
354
+ color: var(--text-secondary);
355
+ }
356
+
357
+ [data-theme="dark"] .mermaid-fullscreen-wrapper {
358
+ background: var(--bg-primary);
359
+ color: var(--text-primary);
360
+ }
361
+
362
+ /* Responsive design */
363
+ @media (max-width: 768px) {
364
+ .mermaid-toolbar {
365
+ flex-direction: column;
366
+ gap: 0.5rem;
367
+ align-items: flex-start;
368
+ }
369
+
370
+ .mermaid-actions {
371
+ width: 100%;
372
+ justify-content: flex-end;
373
+ }
374
+
375
+ .mermaid-fullscreen-toolbar {
376
+ padding: 1rem;
377
+ }
378
+
379
+ .mermaid-fullscreen-controls {
380
+ flex-direction: column;
381
+ gap: 0.5rem;
382
+ }
383
+
384
+ .mermaid-fullscreen-content {
385
+ padding: 1rem;
386
+ }
387
+
388
+ .mermaid-fullscreen-wrapper {
389
+ max-width: calc(100vw - 2rem);
390
+ max-height: calc(100vh - 6rem);
391
+ padding: 1rem;
392
+ }
393
+ }
394
+
395
+ /* Animation for opening fullscreen */
396
+ @keyframes mermaidFadeIn {
397
+ from {
398
+ opacity: 0;
399
+ transform: scale(0.95);
400
+ }
401
+ to {
402
+ opacity: 1;
403
+ transform: scale(1);
404
+ }
405
+ }
406
+
407
+ .mermaid-fullscreen.active .mermaid-fullscreen-wrapper {
408
+ animation: mermaidFadeIn var(--transition-normal) ease-out;
409
+ }
410
+
411
+ /* Transitions */
412
+ --transition-fast: 150ms ease-in-out;
413
+ --transition-base: 250ms ease-in-out;
414
+ --transition-slow: 350ms ease-in-out;
415
+
416
+ /* Border Radius */
417
+ --radius-sm: 0.25rem;
418
+ --radius-md: 0.5rem;
419
+ --radius-lg: 0.75rem;
420
+ --radius-xl: 1rem;
421
+ --radius-full: 9999px;
422
+ }
423
+
424
+ /* Dark Mode Variables */
425
+ [data-theme="dark"] {
426
+ --text-primary: #f7fafc;
427
+ --text-secondary: #e2e8f0;
428
+ --text-muted: #a0aec0;
429
+ --bg-primary: #1a202c;
430
+ --bg-secondary: #2d3748;
431
+ --bg-tertiary: #4a5568;
432
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
433
+ --primary-gradient: linear-gradient(135deg, #4a5568 0%, #2d3748 100%);
434
+ --secondary-gradient: linear-gradient(135deg, #718096 0%, #4a5568 100%);
435
+ }
436
+
437
+ /* Base Styles */
438
+ * {
439
+ box-sizing: border-box;
440
+ margin: 0;
441
+ padding: 0;
442
+ }
443
+
444
+ html {
445
+ font-size: 16px;
446
+ scroll-behavior: smooth;
447
+ height: 100%;
448
+ }
449
+
450
+ body {
451
+ font-family: var(--font-sans);
452
+ color: var(--text-primary);
453
+ background-color: var(--bg-primary);
454
+ line-height: 1.6;
455
+ min-height: 100%;
456
+ display: flex;
457
+ flex-direction: column;
458
+ transition: background-color var(--transition-base), color var(--transition-base);
459
+ }
460
+
461
+ /* Typography */
462
+ h1, h2, h3, h4, h5, h6 {
463
+ font-weight: 600;
464
+ line-height: 1.2;
465
+ margin-top: 0;
466
+ margin-bottom: var(--space-md);
467
+ color: var(--text-primary);
468
+ }
469
+
470
+ h1 {
471
+ font-size: 1.75rem;
472
+ color: var(--text-primary);
473
+ margin-bottom: var(--space-lg);
474
+ font-weight: 600;
475
+ }
476
+
477
+ h2 {
478
+ font-size: 1.375rem;
479
+ margin-top: var(--space-xl);
480
+ margin-bottom: var(--space-md);
481
+ font-weight: 600;
482
+ color: var(--text-primary);
483
+ }
484
+
485
+ h3 {
486
+ font-size: 1.125rem;
487
+ margin-top: var(--space-lg);
488
+ margin-bottom: var(--space-sm);
489
+ font-weight: 600;
490
+ color: var(--text-primary);
491
+ }
492
+
493
+ h4 {
494
+ font-size: 1rem;
495
+ margin-top: var(--space-md);
496
+ margin-bottom: var(--space-sm);
497
+ font-weight: 600;
498
+ color: var(--text-primary);
499
+ }
500
+
501
+ p {
502
+ margin-bottom: var(--space-md);
503
+ color: var(--text-primary);
504
+ line-height: 1.4;
505
+ font-size: 0.9375rem;
506
+ }
507
+
508
+ a {
509
+ color: var(--accent);
510
+ text-decoration: none;
511
+ transition: color var(--transition-fast);
512
+ }
513
+
514
+ a:hover {
515
+ color: var(--accent-hover);
516
+ text-decoration: underline;
517
+ }
518
+
519
+ strong, b {
520
+ font-weight: 600;
521
+ color: var(--text-primary);
522
+ }
523
+
524
+ em, i {
525
+ font-style: italic;
526
+ color: var(--text-secondary);
527
+ }
528
+
529
+ /* Layout Components */
530
+ .container {
531
+ width: 100%;
532
+ max-width: 1400px;
533
+ margin: 0 auto;
534
+ padding: 0 var(--space-lg);
535
+ }
536
+
537
+ /* Header */
538
+ .header {
539
+ position: fixed;
540
+ top: 0;
541
+ left: 0;
542
+ right: 0;
543
+ height: var(--header-height);
544
+ background: rgba(255, 255, 255, 0.95);
545
+ backdrop-filter: blur(10px);
546
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
547
+ z-index: 1000;
548
+ transition: background-color var(--transition-base);
549
+ }
550
+
551
+ [data-theme="dark"] .header {
552
+ background: rgba(26, 32, 44, 0.95);
553
+ border-bottom-color: rgba(255, 255, 255, 0.1);
554
+ }
555
+
556
+ .header-content {
557
+ display: flex;
558
+ align-items: center;
559
+ justify-content: space-between;
560
+ height: 100%;
561
+ padding: 0 var(--space-xl);
562
+ }
563
+
564
+ .logo {
565
+ display: flex;
566
+ align-items: center;
567
+ font-size: 1.5rem;
568
+ font-weight: 700;
569
+ background: var(--primary-gradient);
570
+ -webkit-background-clip: text;
571
+ -webkit-text-fill-color: transparent;
572
+ background-clip: text;
573
+ text-decoration: none;
574
+ transition: opacity var(--transition-fast);
575
+ }
576
+
577
+ .logo:hover {
578
+ opacity: 0.8;
579
+ text-decoration: none;
580
+ }
581
+
582
+ .logo::before {
583
+ content: '🔷';
584
+ margin-right: var(--space-sm);
585
+ -webkit-text-fill-color: initial;
586
+ }
587
+
588
+ .header-actions {
589
+ display: flex;
590
+ align-items: center;
591
+ gap: var(--space-lg);
592
+ }
593
+
594
+ .deployment-info {
595
+ display: flex;
596
+ align-items: center;
597
+ margin-right: var(--space-md);
598
+ }
599
+
600
+ .deployment-date {
601
+ font-size: 0.75rem;
602
+ color: var(--text-muted);
603
+ opacity: 0.8;
604
+ font-weight: 500;
605
+ white-space: nowrap;
606
+ user-select: none;
607
+ }
608
+
609
+ /* Hide deployment info on mobile to save space */
610
+ @media (max-width: 768px) {
611
+ .deployment-info {
612
+ display: none;
613
+ }
614
+ }
615
+
616
+ .logout-btn {
617
+ background: none;
618
+ border: none;
619
+ font-size: 1.25rem;
620
+ cursor: pointer;
621
+ color: var(--text-primary);
622
+ padding: var(--space-sm);
623
+ border-radius: var(--radius-md);
624
+ transition: all var(--transition-fast);
625
+ text-decoration: none;
626
+ display: flex;
627
+ align-items: center;
628
+ justify-content: center;
629
+ opacity: 0.7;
630
+ }
631
+
632
+ .logout-btn:hover {
633
+ background: var(--bg-tertiary);
634
+ opacity: 1;
635
+ color: var(--danger);
636
+ transform: translateY(-1px);
637
+ }
638
+
639
+ .search-box {
640
+ position: relative;
641
+ width: 300px;
642
+ }
643
+
644
+ .search-input {
645
+ width: 100%;
646
+ padding: var(--space-sm) var(--space-lg);
647
+ padding-left: 40px;
648
+ border: 1px solid var(--bg-tertiary);
649
+ border-radius: var(--radius-full);
650
+ background: var(--bg-secondary);
651
+ color: var(--text-primary);
652
+ font-size: 0.875rem;
653
+ transition: all var(--transition-fast);
654
+ }
655
+
656
+ .search-input:focus {
657
+ outline: none;
658
+ border-color: var(--accent);
659
+ box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.1);
660
+ }
661
+
662
+ .search-icon {
663
+ position: absolute;
664
+ left: 12px;
665
+ top: 50%;
666
+ transform: translateY(-50%);
667
+ color: var(--text-muted);
668
+ }
669
+
670
+ .theme-toggle {
671
+ background: none;
672
+ border: none;
673
+ font-size: 1.25rem;
674
+ cursor: pointer;
675
+ color: var(--text-primary);
676
+ padding: var(--space-sm);
677
+ border-radius: var(--radius-md);
678
+ transition: background-color var(--transition-fast);
679
+ }
680
+
681
+ .theme-toggle:hover {
682
+ background-color: var(--bg-secondary);
683
+ }
684
+
685
+ /* Breadcrumbs */
686
+ .breadcrumbs {
687
+ display: flex;
688
+ align-items: center;
689
+ padding: 0.5rem var(--space-xl);
690
+ background: var(--bg-secondary);
691
+ border-bottom: 1px solid var(--bg-tertiary);
692
+ font-size: 0.875rem;
693
+ color: var(--text-secondary);
694
+ position: fixed;
695
+ top: calc(var(--header-height) + var(--banner-offset));
696
+ left: 0;
697
+ right: 0;
698
+ height: var(--breadcrumb-height);
699
+ z-index: 900;
700
+ transition: background-color var(--transition-base);
701
+ }
702
+
703
+ .breadcrumb-item {
704
+ display: flex;
705
+ align-items: center;
706
+ gap: 0.375rem;
707
+ color: var(--text-muted);
708
+ text-decoration: none;
709
+ padding: 0.25rem 0.5rem;
710
+ border-radius: var(--radius-sm);
711
+ transition: all var(--transition-fast);
712
+ }
713
+
714
+ .breadcrumb-item:hover:not(.current) {
715
+ background: var(--bg-tertiary);
716
+ color: var(--text-secondary);
717
+ }
718
+
719
+ .breadcrumb-item.current {
720
+ color: var(--text-primary);
721
+ font-weight: 500;
722
+ cursor: default;
723
+ }
724
+
725
+ .breadcrumb-separator {
726
+ margin: 0 0.25rem;
727
+ color: var(--text-muted);
728
+ font-size: 0.75rem;
729
+ }
730
+
731
+ .breadcrumb-item i {
732
+ font-size: 0.875rem;
733
+ opacity: 0.8;
734
+ }
735
+
736
+ .breadcrumb-item.current i {
737
+ opacity: 1;
738
+ }
739
+
740
+ /* Adjust breadcrumbs when banner is visible */
741
+ .breadcrumbs.banner-visible {
742
+ top: calc(var(--header-height) + 3.5rem);
743
+ }
744
+
745
+ /* Preview Banner */
746
+ .preview-banner {
747
+ position: fixed;
748
+ top: var(--header-height);
749
+ left: 0;
750
+ right: 0;
751
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
752
+ color: white;
753
+ z-index: 1000;
754
+ box-shadow: var(--shadow-md);
755
+ transition: transform var(--transition-base), opacity var(--transition-base);
756
+ /* Default to hidden state to prevent flash */
757
+ transform: translateY(-100%);
758
+ opacity: 0;
759
+ pointer-events: none;
760
+ }
761
+
762
+ .preview-banner.visible {
763
+ transform: translateY(0);
764
+ opacity: 1;
765
+ pointer-events: auto;
766
+ }
767
+
768
+ .preview-banner.hidden {
769
+ transform: translateY(-100%);
770
+ opacity: 0;
771
+ pointer-events: none;
772
+ }
773
+
774
+ .banner-content {
775
+ display: flex;
776
+ align-items: center;
777
+ justify-content: center;
778
+ padding: var(--space-md) var(--space-lg);
779
+ max-width: var(--content-max-width);
780
+ margin: 0 auto;
781
+ gap: var(--space-md);
782
+ }
783
+
784
+ .banner-icon {
785
+ font-size: 1.1rem;
786
+ flex-shrink: 0;
787
+ }
788
+
789
+ .banner-text {
790
+ font-size: 0.9rem;
791
+ font-weight: 500;
792
+ text-align: center;
793
+ flex: 1;
794
+ }
795
+
796
+ .banner-dismiss {
797
+ background: none;
798
+ border: none;
799
+ color: white;
800
+ cursor: pointer;
801
+ padding: var(--space-xs);
802
+ border-radius: var(--radius-sm);
803
+ transition: background-color var(--transition-fast);
804
+ font-size: 1rem;
805
+ width: 2rem;
806
+ height: 2rem;
807
+ display: flex;
808
+ align-items: center;
809
+ justify-content: center;
810
+ flex-shrink: 0;
811
+ }
812
+
813
+ .banner-dismiss:hover {
814
+ background-color: rgba(255, 255, 255, 0.1);
815
+ }
816
+
817
+ .banner-dismiss:focus {
818
+ outline: 2px solid rgba(255, 255, 255, 0.5);
819
+ outline-offset: 2px;
820
+ }
821
+
822
+ /* Main Layout */
823
+ .main-wrapper {
824
+ display: flex;
825
+ padding-top: calc(var(--header-height) + var(--breadcrumb-height) + var(--banner-offset));
826
+ min-height: 100vh;
827
+ transition: padding-top var(--transition-base);
828
+ }
829
+
830
+ /* Adjust layout when banner is visible */
831
+ .main-wrapper.banner-visible {
832
+ padding-top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
833
+ }
834
+
835
+ /* Sidebar */
836
+ .sidebar {
837
+ position: fixed;
838
+ left: 0;
839
+ top: calc(var(--header-height) + var(--breadcrumb-height) + var(--banner-offset));
840
+ bottom: 0;
841
+ width: var(--sidebar-width);
842
+ background: var(--bg-primary);
843
+ border-right: 1px solid #e1e5e9;
844
+ overflow-y: auto;
845
+ transition: transform var(--transition-base), top var(--transition-base);
846
+ min-width: 200px;
847
+ max-width: 500px;
848
+ user-select: none;
849
+ display: flex;
850
+ flex-direction: column;
851
+ }
852
+
853
+ /* Adjust sidebar when banner is visible */
854
+ .sidebar.banner-visible {
855
+ top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
856
+ }
857
+
858
+ /* Sidebar Header */
859
+ .sidebar-header {
860
+ padding: var(--space-lg);
861
+ border-bottom: 1px solid #e1e5e9;
862
+ background: var(--bg-primary);
863
+ position: sticky;
864
+ top: 0;
865
+ z-index: 10;
866
+ }
867
+
868
+ .filter-box {
869
+ position: relative;
870
+ width: 100%;
871
+ }
872
+
873
+ .filter-input {
874
+ width: 100%;
875
+ padding: var(--space-sm) var(--space-lg) var(--space-sm) 2.5rem;
876
+ border: 1px solid #e1e5e9;
877
+ border-radius: var(--radius-md);
878
+ background: var(--bg-secondary);
879
+ color: var(--text-primary);
880
+ font-size: 0.875rem;
881
+ transition: all var(--transition-fast);
882
+ }
883
+
884
+ .filter-input:focus {
885
+ outline: none;
886
+ border-color: var(--accent);
887
+ box-shadow: 0 0 0 3px rgba(91, 61, 152, 0.1);
888
+ }
889
+
890
+ .filter-input::placeholder {
891
+ color: var(--text-muted);
892
+ }
893
+
894
+ .filter-icon {
895
+ position: absolute;
896
+ left: var(--space-sm);
897
+ top: 50%;
898
+ transform: translateY(-50%);
899
+ color: var(--text-muted);
900
+ font-size: 0.875rem;
901
+ }
902
+
903
+ /* Navigation */
904
+ .navigation {
905
+ flex: 1;
906
+ overflow-y: auto;
907
+ padding: var(--space-md) 0;
908
+ }
909
+
910
+ /* Resize Handle */
911
+ .resize-handle {
912
+ position: absolute;
913
+ top: 0;
914
+ right: 0;
915
+ bottom: 0;
916
+ width: 8px;
917
+ background: linear-gradient(90deg, transparent 0%, rgba(160, 174, 192, 0.2) 40%, rgba(160, 174, 192, 0.4) 50%, rgba(160, 174, 192, 0.2) 60%, transparent 100%);
918
+ cursor: col-resize;
919
+ transition: background var(--transition-fast);
920
+ z-index: 10;
921
+ }
922
+
923
+ .resize-handle:hover {
924
+ background: linear-gradient(90deg, transparent 0%, rgba(160, 174, 192, 0.4) 40%, rgba(160, 174, 192, 0.6) 50%, rgba(160, 174, 192, 0.4) 60%, transparent 100%);
925
+ }
926
+
927
+ /* Resize handle dots for visual indication */
928
+ .resize-handle::before {
929
+ content: '⋮';
930
+ position: absolute;
931
+ top: 50%;
932
+ left: 50%;
933
+ transform: translate(-50%, -50%) rotate(90deg);
934
+ color: rgba(160, 174, 192, 0.6);
935
+ font-size: 14px;
936
+ font-weight: bold;
937
+ pointer-events: none;
938
+ transition: color var(--transition-fast);
939
+ }
940
+
941
+ .resize-handle:hover::before {
942
+ color: rgba(160, 174, 192, 0.8);
943
+ }
944
+
945
+ [data-theme="dark"] .sidebar {
946
+ border-right-color: rgba(255, 255, 255, 0.1);
947
+ background: var(--bg-secondary);
948
+ }
949
+
950
+ [data-theme="dark"] .sidebar-header {
951
+ border-bottom-color: rgba(255, 255, 255, 0.1);
952
+ background: var(--bg-secondary);
953
+ }
954
+
955
+ [data-theme="dark"] .filter-input {
956
+ border-color: rgba(255, 255, 255, 0.1);
957
+ background: var(--bg-tertiary);
958
+ }
959
+
960
+ .nav-section {
961
+ margin-bottom: var(--space-sm);
962
+ }
963
+
964
+ .nav-section[data-level="0"] {
965
+ margin-left: 0;
966
+ }
967
+
968
+ .nav-section[data-level="1"] {
969
+ margin-left: var(--space-lg);
970
+ margin-bottom: var(--space-sm);
971
+ }
972
+
973
+ .nav-section[data-level="2"] {
974
+ margin-left: var(--space-2xl);
975
+ margin-bottom: var(--space-sm);
976
+ }
977
+
978
+ .nav-title {
979
+ font-size: 0.875rem;
980
+ font-weight: 500;
981
+ color: var(--text-primary);
982
+ margin-bottom: var(--space-xs);
983
+ display: flex;
984
+ align-items: center;
985
+ gap: var(--space-sm);
986
+ padding: var(--space-sm) var(--space-lg);
987
+ }
988
+
989
+ /* Indent nav titles based on their level */
990
+ .nav-section[data-level="1"] .nav-title {
991
+ padding-left: calc(var(--space-lg) + var(--space-xl));
992
+ }
993
+
994
+ .nav-section[data-level="2"] .nav-title {
995
+ padding-left: calc(var(--space-lg) + var(--space-2xl));
996
+ }
997
+
998
+ .nav-title.collapsible {
999
+ cursor: pointer;
1000
+ border-radius: 0;
1001
+ transition: all var(--transition-fast);
1002
+ }
1003
+
1004
+ .nav-title.collapsible:hover {
1005
+ background-color: #f8f9fa;
1006
+ color: var(--text-primary);
1007
+ }
1008
+
1009
+ [data-theme="dark"] .nav-title.collapsible:hover {
1010
+ background-color: var(--bg-tertiary);
1011
+ }
1012
+
1013
+ .collapse-icon {
1014
+ transition: transform var(--transition-fast);
1015
+ margin-right: var(--space-xs);
1016
+ font-size: 0.75rem;
1017
+ color: var(--text-muted);
1018
+ }
1019
+
1020
+ .nav-title.expanded .collapse-icon {
1021
+ transform: rotate(90deg);
1022
+ }
1023
+
1024
+ .nav-content {
1025
+ overflow: hidden;
1026
+ transition: max-height var(--transition-base);
1027
+ max-height: 1000px;
1028
+ }
1029
+
1030
+ .nav-content.collapsed {
1031
+ max-height: 0;
1032
+ }
1033
+
1034
+ .nav-item {
1035
+ display: flex;
1036
+ align-items: center;
1037
+ padding: var(--space-sm) var(--space-lg);
1038
+ color: var(--text-secondary);
1039
+ border-radius: 0;
1040
+ transition: all var(--transition-fast);
1041
+ margin-bottom: 0;
1042
+ gap: var(--space-sm);
1043
+ font-size: 0.875rem;
1044
+ }
1045
+
1046
+ /* Indent nav items based on their parent section level */
1047
+ .nav-section[data-level="0"] .nav-item {
1048
+ padding-left: calc(var(--space-lg) + var(--space-xl));
1049
+ }
1050
+
1051
+ .nav-section[data-level="1"] .nav-item {
1052
+ padding-left: calc(var(--space-lg) + var(--space-2xl));
1053
+ }
1054
+
1055
+ .nav-section[data-level="2"] .nav-item {
1056
+ padding-left: calc(var(--space-lg) + var(--space-3xl));
1057
+ }
1058
+
1059
+ .nav-item i {
1060
+ font-size: 0.75rem;
1061
+ color: var(--text-muted);
1062
+ width: 14px;
1063
+ }
1064
+
1065
+ .nav-item:hover {
1066
+ background: #f8f9fa;
1067
+ color: var(--text-primary);
1068
+ text-decoration: none;
1069
+ }
1070
+
1071
+ [data-theme="dark"] .nav-item:hover {
1072
+ background: var(--bg-tertiary);
1073
+ }
1074
+
1075
+ .nav-item.active {
1076
+ background: #e3f2fd;
1077
+ color: var(--accent);
1078
+ border-right: 3px solid var(--accent);
1079
+ }
1080
+
1081
+ [data-theme="dark"] .nav-item.active {
1082
+ background: var(--bg-tertiary);
1083
+ color: var(--accent);
1084
+ }
1085
+
1086
+ /* Content Area */
1087
+ .content {
1088
+ flex: 1;
1089
+ margin-left: var(--sidebar-width);
1090
+ padding: var(--space-xl) var(--space-2xl);
1091
+ max-width: calc(var(--content-max-width) + var(--space-2xl) * 2);
1092
+ transition: margin-left var(--transition-base);
1093
+ }
1094
+
1095
+ .content-inner {
1096
+ max-width: var(--content-max-width);
1097
+ }
1098
+
1099
+ /* Hero Section */
1100
+ .hero {
1101
+ background: var(--primary-gradient);
1102
+ color: var(--text-inverse);
1103
+ padding: var(--space-3xl) 0;
1104
+ margin: calc(var(--space-2xl) * -1) calc(var(--space-3xl) * -1) var(--space-3xl);
1105
+ text-align: center;
1106
+ }
1107
+
1108
+ .hero h1 {
1109
+ color: var(--text-inverse);
1110
+ -webkit-text-fill-color: var(--text-inverse);
1111
+ font-size: 3rem;
1112
+ margin-bottom: var(--space-lg);
1113
+ text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
1114
+ }
1115
+
1116
+ .hero-subtitle {
1117
+ font-size: 1.25rem;
1118
+ color: var(--text-inverse);
1119
+ max-width: 600px;
1120
+ margin: 0 auto;
1121
+ text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
1122
+ opacity: 1;
1123
+ }
1124
+
1125
+ .hero-actions {
1126
+ display: flex;
1127
+ gap: var(--space-md);
1128
+ justify-content: center;
1129
+ }
1130
+
1131
+ .btn {
1132
+ display: inline-flex;
1133
+ align-items: center;
1134
+ padding: var(--space-sm) var(--space-xl);
1135
+ border-radius: var(--radius-md);
1136
+ font-weight: 500;
1137
+ transition: all var(--transition-fast);
1138
+ cursor: pointer;
1139
+ border: none;
1140
+ font-size: 1rem;
1141
+ }
1142
+
1143
+ .btn-primary {
1144
+ background: var(--accent);
1145
+ color: var(--text-inverse);
1146
+ }
1147
+
1148
+ .btn-primary:hover {
1149
+ background: var(--accent-hover);
1150
+ transform: translateY(-2px);
1151
+ box-shadow: var(--shadow-lg);
1152
+ }
1153
+
1154
+ .btn-secondary {
1155
+ background: rgba(255, 255, 255, 0.2);
1156
+ color: var(--text-inverse);
1157
+ backdrop-filter: blur(10px);
1158
+ }
1159
+
1160
+ .btn-secondary:hover {
1161
+ background: rgba(255, 255, 255, 0.3);
1162
+ }
1163
+
1164
+ /* Cards */
1165
+ .card {
1166
+ background: var(--bg-primary);
1167
+ border-radius: var(--radius-lg);
1168
+ padding: var(--space-xl);
1169
+ box-shadow: var(--shadow-md);
1170
+ transition: all var(--transition-base);
1171
+ margin-bottom: var(--space-lg);
1172
+ }
1173
+
1174
+ .card:hover {
1175
+ box-shadow: var(--shadow-xl);
1176
+ transform: translateY(-2px);
1177
+ }
1178
+
1179
+ .card-title {
1180
+ font-size: 1.25rem;
1181
+ font-weight: 600;
1182
+ margin-bottom: var(--space-md);
1183
+ }
1184
+
1185
+ /* Code Blocks */
1186
+ pre {
1187
+ background: var(--bg-secondary);
1188
+ color: var(--text-primary);
1189
+ padding: var(--space-md);
1190
+ border-radius: var(--radius-sm);
1191
+ overflow-x: auto;
1192
+ margin: var(--space-md) 0;
1193
+ font-family: var(--font-mono);
1194
+ font-size: 0.8125rem;
1195
+ line-height: 1.4;
1196
+ border: 1px solid var(--bg-tertiary);
1197
+ }
1198
+
1199
+ code {
1200
+ font-family: var(--font-mono);
1201
+ font-size: 0.8125em;
1202
+ background: #f1f3f4;
1203
+ color: var(--text-primary);
1204
+ padding: 0.0625rem 0.25rem;
1205
+ border-radius: var(--radius-sm);
1206
+ font-weight: 400;
1207
+ }
1208
+
1209
+ [data-theme="dark"] code {
1210
+ background: var(--bg-tertiary);
1211
+ color: var(--text-primary);
1212
+ }
1213
+
1214
+ pre code {
1215
+ background: none;
1216
+ padding: 0;
1217
+ font-size: 0.8125rem;
1218
+ }
1219
+
1220
+ /* Tables */
1221
+ table {
1222
+ width: 100%;
1223
+ border-collapse: collapse;
1224
+ margin-bottom: var(--space-md);
1225
+ font-size: 0.9375rem;
1226
+ }
1227
+
1228
+ th, td {
1229
+ text-align: left;
1230
+ padding: var(--space-sm) var(--space-md);
1231
+ border-bottom: 1px solid var(--bg-tertiary);
1232
+ line-height: 1.3;
1233
+ }
1234
+
1235
+ th {
1236
+ font-weight: 600;
1237
+ background: var(--bg-secondary);
1238
+ font-size: 0.875rem;
1239
+ }
1240
+
1241
+ tr:hover {
1242
+ background: var(--bg-secondary);
1243
+ }
1244
+
1245
+ /* Lists */
1246
+ ul, ol {
1247
+ margin-bottom: var(--space-md);
1248
+ padding-left: var(--space-lg);
1249
+ color: var(--text-primary);
1250
+ line-height: 1.4;
1251
+ }
1252
+
1253
+ li {
1254
+ margin-bottom: var(--space-sm);
1255
+ color: var(--text-primary);
1256
+ font-size: 0.9375rem;
1257
+ line-height: 1.4;
1258
+ }
1259
+
1260
+ ol li {
1261
+ padding-left: var(--space-xs);
1262
+ }
1263
+
1264
+ ul li::marker {
1265
+ color: var(--text-muted);
1266
+ }
1267
+
1268
+ ol li::marker {
1269
+ color: var(--text-muted);
1270
+ font-weight: 600;
1271
+ }
1272
+
1273
+ /* Nested lists */
1274
+ li ul, li ol {
1275
+ margin-top: var(--space-xs);
1276
+ margin-bottom: var(--space-xs);
1277
+ }
1278
+
1279
+ /* Blockquotes */
1280
+ blockquote {
1281
+ border-left: 4px solid var(--accent);
1282
+ padding-left: var(--space-lg);
1283
+ margin: var(--space-lg) 0;
1284
+ font-style: italic;
1285
+ color: var(--text-secondary);
1286
+ }
1287
+
1288
+ /* Feature Grid */
1289
+ .feature-grid {
1290
+ display: grid;
1291
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
1292
+ gap: var(--space-xl);
1293
+ margin: var(--space-3xl) 0;
1294
+ }
1295
+
1296
+ .feature-card {
1297
+ background: var(--bg-secondary);
1298
+ padding: var(--space-xl);
1299
+ border-radius: var(--radius-lg);
1300
+ transition: all var(--transition-base);
1301
+ }
1302
+
1303
+ .feature-card:hover {
1304
+ transform: translateY(-4px);
1305
+ box-shadow: var(--shadow-lg);
1306
+ }
1307
+
1308
+ .feature-icon {
1309
+ font-size: 2rem;
1310
+ margin-bottom: var(--space-md);
1311
+ }
1312
+
1313
+ .feature-title {
1314
+ font-size: 1.125rem;
1315
+ font-weight: 600;
1316
+ margin-bottom: var(--space-sm);
1317
+ }
1318
+
1319
+ /* Timeline */
1320
+ .timeline {
1321
+ position: relative;
1322
+ padding-left: var(--space-2xl);
1323
+ margin: var(--space-2xl) 0;
1324
+ }
1325
+
1326
+ .timeline::before {
1327
+ content: '';
1328
+ position: absolute;
1329
+ left: 0;
1330
+ top: 0;
1331
+ bottom: 0;
1332
+ width: 2px;
1333
+ background: var(--bg-tertiary);
1334
+ }
1335
+
1336
+ .timeline-item {
1337
+ position: relative;
1338
+ margin-bottom: var(--space-2xl);
1339
+ }
1340
+
1341
+ .timeline-item::before {
1342
+ content: '';
1343
+ position: absolute;
1344
+ left: calc(var(--space-2xl) * -1 - 5px);
1345
+ top: 0;
1346
+ width: 12px;
1347
+ height: 12px;
1348
+ background: var(--accent);
1349
+ border-radius: 50%;
1350
+ box-shadow: 0 0 0 4px var(--bg-primary);
1351
+ }
1352
+
1353
+ .timeline-date {
1354
+ font-size: 0.875rem;
1355
+ color: var(--text-muted);
1356
+ font-weight: 600;
1357
+ margin-bottom: var(--space-xs);
1358
+ }
1359
+
1360
+ /* Metrics */
1361
+ .metrics-grid {
1362
+ display: grid;
1363
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1364
+ gap: var(--space-lg);
1365
+ margin: var(--space-2xl) 0;
1366
+ }
1367
+
1368
+ .metric-card {
1369
+ background: var(--bg-secondary);
1370
+ padding: var(--space-lg);
1371
+ border-radius: var(--radius-md);
1372
+ text-align: center;
1373
+ }
1374
+
1375
+ .metric-value {
1376
+ font-size: 2rem;
1377
+ font-weight: 700;
1378
+ color: var(--accent);
1379
+ margin-bottom: var(--space-xs);
1380
+ }
1381
+
1382
+ .metric-label {
1383
+ font-size: 0.875rem;
1384
+ color: var(--text-muted);
1385
+ }
1386
+
1387
+ /* Responsive Design */
1388
+ @media (max-width: 1024px) {
1389
+ .sidebar {
1390
+ transform: translateX(-100%);
1391
+ }
1392
+
1393
+ .sidebar.open {
1394
+ transform: translateX(0);
1395
+ }
1396
+
1397
+ .content {
1398
+ margin-left: 0;
1399
+ padding: var(--space-xl);
1400
+ }
1401
+
1402
+ .search-box {
1403
+ display: none;
1404
+ }
1405
+ }
1406
+
1407
+ @media (max-width: 768px) {
1408
+ h1 {
1409
+ font-size: 2rem;
1410
+ }
1411
+
1412
+ .hero h1 {
1413
+ font-size: 2.5rem;
1414
+ text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
1415
+ }
1416
+
1417
+ .hero-actions {
1418
+ flex-direction: column;
1419
+ align-items: center;
1420
+ }
1421
+
1422
+ .feature-grid {
1423
+ grid-template-columns: 1fr;
1424
+ }
1425
+ }
1426
+
1427
+ /* Animations */
1428
+ @keyframes fadeIn {
1429
+ from {
1430
+ opacity: 0;
1431
+ transform: translateY(20px);
1432
+ }
1433
+ to {
1434
+ opacity: 1;
1435
+ transform: translateY(0);
1436
+ }
1437
+ }
1438
+
1439
+ .fade-in {
1440
+ animation: fadeIn 0.6s ease-out;
1441
+ }
1442
+
1443
+ /* Bubble Icon Custom CSS */
1444
+ .fa-bubble::before {
1445
+ content: "🫧";
1446
+ font-family: 'Inter', sans-serif;
1447
+ font-style: normal;
1448
+ }
1449
+
1450
+ /* Mermaid Diagram Styling */
1451
+ .mermaid {
1452
+ margin: var(--space-xl) 0;
1453
+ padding: var(--space-lg);
1454
+ background: var(--bg-secondary);
1455
+ border-radius: var(--radius-lg);
1456
+ border: 1px solid var(--bg-tertiary);
1457
+ text-align: center;
1458
+ overflow-x: auto;
1459
+ }
1460
+
1461
+ [data-theme="dark"] .mermaid {
1462
+ background: var(--bg-tertiary);
1463
+ border-color: var(--text-muted);
1464
+ }
1465
+
1466
+ /* Scrollbar Styling */
1467
+ ::-webkit-scrollbar {
1468
+ width: 8px;
1469
+ height: 8px;
1470
+ }
1471
+
1472
+ ::-webkit-scrollbar-track {
1473
+ background: var(--bg-secondary);
1474
+ }
1475
+
1476
+ ::-webkit-scrollbar-thumb {
1477
+ background: var(--bg-tertiary);
1478
+ border-radius: var(--radius-full);
1479
+ }
1480
+
1481
+ ::-webkit-scrollbar-thumb:hover {
1482
+ background: var(--text-muted);
1483
+ }
1484
+
1485
+ /* Additional Components */
1486
+
1487
+ /* Menu Toggle (Mobile) */
1488
+ .menu-toggle {
1489
+ display: none;
1490
+ background: none;
1491
+ border: none;
1492
+ font-size: 1.5rem;
1493
+ cursor: pointer;
1494
+ color: var(--text-primary);
1495
+ padding: var(--space-sm);
1496
+ }
1497
+
1498
+ @media (max-width: 1024px) {
1499
+ .menu-toggle {
1500
+ display: block;
1501
+ }
1502
+ }
1503
+
1504
+ /* Search Results Dropdown */
1505
+ .search-results {
1506
+ position: absolute;
1507
+ top: 100%;
1508
+ left: 0;
1509
+ right: 0;
1510
+ background: var(--bg-primary);
1511
+ border: 1px solid var(--bg-tertiary);
1512
+ border-radius: var(--radius-md);
1513
+ margin-top: var(--space-xs);
1514
+ box-shadow: var(--shadow-lg);
1515
+ max-height: 400px;
1516
+ overflow-y: auto;
1517
+ z-index: 100;
1518
+ }
1519
+
1520
+ .search-result-item {
1521
+ padding: var(--space-md);
1522
+ border-bottom: 1px solid var(--bg-tertiary);
1523
+ transition: background-color var(--transition-fast);
1524
+ }
1525
+
1526
+ .search-result-item:hover {
1527
+ background: var(--bg-secondary);
1528
+ }
1529
+
1530
+ /* Code Block Wrapper */
1531
+ .code-block-wrapper {
1532
+ position: relative;
1533
+ margin-bottom: var(--space-lg);
1534
+ }
1535
+
1536
+ .copy-button {
1537
+ position: absolute;
1538
+ top: var(--space-sm);
1539
+ right: var(--space-sm);
1540
+ background: var(--accent);
1541
+ color: var(--text-inverse);
1542
+ border: none;
1543
+ padding: var(--space-xs) var(--space-sm);
1544
+ border-radius: var(--radius-sm);
1545
+ font-size: 0.75rem;
1546
+ cursor: pointer;
1547
+ transition: all var(--transition-fast);
1548
+ }
1549
+
1550
+ .copy-button:hover {
1551
+ background: var(--accent-hover);
1552
+ }
1553
+
1554
+ /* Table of Contents */
1555
+ .toc-container {
1556
+ background: var(--bg-secondary);
1557
+ border-radius: var(--radius-md);
1558
+ padding: var(--space-xl);
1559
+ margin: var(--space-xl) 0;
1560
+ border: 1px solid var(--bg-tertiary);
1561
+ }
1562
+
1563
+ .toc-container h2 {
1564
+ font-size: 1.125rem;
1565
+ font-weight: 600;
1566
+ color: var(--text-primary);
1567
+ margin-bottom: var(--space-lg);
1568
+ padding-bottom: var(--space-sm);
1569
+ border-bottom: 2px solid var(--bg-tertiary);
1570
+ }
1571
+
1572
+ .toc-list {
1573
+ list-style: none;
1574
+ padding: 0;
1575
+ margin: 0;
1576
+ }
1577
+
1578
+ .toc-list ol,
1579
+ .toc-list ul {
1580
+ list-style: none;
1581
+ padding: 0;
1582
+ margin: 0;
1583
+ }
1584
+
1585
+ .toc-list li {
1586
+ position: relative;
1587
+ margin-bottom: 0;
1588
+ line-height: 1.4;
1589
+ }
1590
+
1591
+ .toc-list > li {
1592
+ margin-bottom: 0;
1593
+ }
1594
+
1595
+ .toc-list li::before {
1596
+ content: '';
1597
+ position: absolute;
1598
+ left: 0;
1599
+ top: 0.75em;
1600
+ width: 6px;
1601
+ height: 6px;
1602
+ background: var(--text-muted);
1603
+ border-radius: 50%;
1604
+ opacity: 0.5;
1605
+ }
1606
+
1607
+ .toc-list a {
1608
+ display: block;
1609
+ padding: 0.125rem var(--space-sm);
1610
+ padding-left: var(--space-lg);
1611
+ color: var(--text-secondary);
1612
+ font-size: 0.9375rem;
1613
+ transition: all var(--transition-fast);
1614
+ border-radius: var(--radius-sm);
1615
+ text-decoration: none;
1616
+ position: relative;
1617
+ }
1618
+
1619
+ .toc-list a:hover {
1620
+ color: var(--accent);
1621
+ background: rgba(91, 61, 152, 0.05);
1622
+ transform: translateX(1px);
1623
+ }
1624
+
1625
+ /* Nested TOC items */
1626
+ .toc-list .toc-h2 {
1627
+ font-weight: 500;
1628
+ }
1629
+
1630
+ .toc-list .toc-h3 {
1631
+ padding-left: calc(var(--space-lg) + var(--space-xl));
1632
+ font-size: 0.875rem;
1633
+ color: var(--text-muted);
1634
+ }
1635
+
1636
+ .toc-list .toc-h3::before {
1637
+ left: var(--space-xl);
1638
+ width: 4px;
1639
+ height: 4px;
1640
+ }
1641
+
1642
+ .toc-list .toc-h4 {
1643
+ padding-left: calc(var(--space-lg) + var(--space-2xl));
1644
+ font-size: 0.8125rem;
1645
+ color: var(--text-muted);
1646
+ font-style: italic;
1647
+ }
1648
+
1649
+ .toc-list .toc-h4::before {
1650
+ left: var(--space-2xl);
1651
+ width: 3px;
1652
+ height: 3px;
1653
+ }
1654
+
1655
+ /* Active TOC item */
1656
+ .toc-list a.active {
1657
+ color: var(--accent);
1658
+ background: rgba(91, 61, 152, 0.1);
1659
+ font-weight: 500;
1660
+ }
1661
+
1662
+ /* Number styling for ordered lists */
1663
+ .toc-list > ol {
1664
+ counter-reset: toc-counter;
1665
+ }
1666
+
1667
+ .toc-list ol > li {
1668
+ counter-increment: toc-counter;
1669
+ }
1670
+
1671
+ .toc-list ol > li::before {
1672
+ content: counter(toc-counter);
1673
+ position: absolute;
1674
+ left: 0;
1675
+ top: var(--space-xs);
1676
+ width: 1.5rem;
1677
+ height: 1.5rem;
1678
+ background: var(--accent);
1679
+ color: var(--text-inverse);
1680
+ border-radius: var(--radius-sm);
1681
+ font-size: 0.75rem;
1682
+ font-weight: 600;
1683
+ display: flex;
1684
+ align-items: center;
1685
+ justify-content: center;
1686
+ opacity: 1;
1687
+ }
1688
+
1689
+ .toc-list ol > li > a {
1690
+ padding-left: calc(var(--space-lg) + var(--space-md));
1691
+ }
1692
+
1693
+ /* Dark mode adjustments */
1694
+ [data-theme="dark"] .toc-container {
1695
+ background: var(--bg-secondary);
1696
+ border-color: var(--bg-tertiary);
1697
+ }
1698
+
1699
+ [data-theme="dark"] .toc-container h2 {
1700
+ border-bottom-color: var(--bg-tertiary);
1701
+ }
1702
+
1703
+ [data-theme="dark"] .toc-list a:hover {
1704
+ background: var(--bg-tertiary);
1705
+ }
1706
+
1707
+ /* Section Separators */
1708
+ section + section {
1709
+ margin-top: var(--space-3xl);
1710
+ padding-top: var(--space-3xl);
1711
+ border-top: 1px solid var(--bg-tertiary);
1712
+ }
1713
+
1714
+ /* Highlight Box */
1715
+ .highlight-box {
1716
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.1) 0%, rgba(102, 126, 234, 0.1) 100%);
1717
+ border-left: 4px solid var(--accent);
1718
+ padding: var(--space-lg);
1719
+ margin: var(--space-xl) 0;
1720
+ border-radius: var(--radius-md);
1721
+ }
1722
+
1723
+ /* Badge */
1724
+ .badge {
1725
+ display: inline-flex;
1726
+ align-items: center;
1727
+ padding: var(--space-xs) var(--space-sm);
1728
+ background: var(--accent);
1729
+ color: var(--text-inverse);
1730
+ font-size: 0.75rem;
1731
+ font-weight: 600;
1732
+ border-radius: var(--radius-full);
1733
+ margin-left: var(--space-sm);
1734
+ }
1735
+
1736
+ /* Gradient Text */
1737
+ .gradient-text {
1738
+ background: var(--primary-gradient);
1739
+ -webkit-background-clip: text;
1740
+ -webkit-text-fill-color: transparent;
1741
+ background-clip: text;
1742
+ }
1743
+
1744
+ /* Responsive Styles for Banner */
1745
+ @media (max-width: 768px) {
1746
+ .banner-content {
1747
+ padding: var(--space-sm) var(--space-md);
1748
+ gap: var(--space-sm);
1749
+ }
1750
+
1751
+ .banner-text {
1752
+ font-size: 0.8rem;
1753
+ }
1754
+
1755
+ .banner-icon {
1756
+ font-size: 1rem;
1757
+ }
1758
+
1759
+ /* Adjust mobile layout when banner is visible */
1760
+ .main-wrapper.banner-visible {
1761
+ padding-top: calc(var(--header-height) + var(--breadcrumb-height) + 4rem);
1762
+ }
1763
+
1764
+ .sidebar.banner-visible {
1765
+ top: calc(var(--header-height) + var(--breadcrumb-height) + 4rem);
1766
+ }
1767
+ }
1768
+
1769
+ /* Print Styles */
1770
+ @media print {
1771
+ .header,
1772
+ .sidebar,
1773
+ .theme-toggle,
1774
+ .search-box,
1775
+ .preview-banner,
1776
+ .resize-handle,
1777
+ .copy-button,
1778
+ .menu-toggle {
1779
+ display: none !important;
1780
+ }
1781
+
1782
+ body {
1783
+ font-size: 12pt;
1784
+ line-height: 1.4;
1785
+ color: black !important;
1786
+ background: white !important;
1787
+ }
1788
+
1789
+ .content {
1790
+ margin: 0 !important;
1791
+ padding: 20px !important;
1792
+ max-width: none !important;
1793
+ }
1794
+
1795
+ .main-wrapper {
1796
+ padding-top: 0 !important;
1797
+ }
1798
+
1799
+ .hero {
1800
+ background: none !important;
1801
+ color: black !important;
1802
+ padding: 20px 0 !important;
1803
+ margin: 0 0 20px 0 !important;
1804
+ page-break-inside: avoid;
1805
+ }
1806
+
1807
+ .hero h1 {
1808
+ color: black !important;
1809
+ -webkit-text-fill-color: black !important;
1810
+ text-shadow: none !important;
1811
+ font-size: 24pt !important;
1812
+ }
1813
+
1814
+ .hero-subtitle {
1815
+ color: black !important;
1816
+ text-shadow: none !important;
1817
+ font-size: 14pt !important;
1818
+ }
1819
+
1820
+ h1, h2, h3, h4, h5, h6 {
1821
+ color: black !important;
1822
+ page-break-after: avoid;
1823
+ margin-top: 15pt;
1824
+ margin-bottom: 10pt;
1825
+ }
1826
+
1827
+ h1 { font-size: 20pt; }
1828
+ h2 { font-size: 16pt; }
1829
+ h3 { font-size: 14pt; }
1830
+ h4 { font-size: 12pt; }
1831
+
1832
+ p, li {
1833
+ color: black !important;
1834
+ font-size: 11pt;
1835
+ line-height: 1.4;
1836
+ margin-bottom: 8pt;
1837
+ }
1838
+
1839
+ /* Feature cards and grids */
1840
+ .feature-grid, .metrics-grid {
1841
+ display: block !important;
1842
+ margin: 15pt 0;
1843
+ }
1844
+
1845
+ .feature-card, .metric-card {
1846
+ break-inside: avoid;
1847
+ margin-bottom: 10pt;
1848
+ border: 1px solid #ccc;
1849
+ padding: 8pt;
1850
+ background: white !important;
1851
+ }
1852
+
1853
+ .feature-title, .metric-label {
1854
+ color: black !important;
1855
+ font-weight: bold;
1856
+ }
1857
+
1858
+ .metric-value {
1859
+ color: black !important;
1860
+ font-size: 18pt;
1861
+ font-weight: bold;
1862
+ }
1863
+
1864
+ /* Code blocks */
1865
+ pre, code {
1866
+ background: #f5f5f5 !important;
1867
+ border: 1px solid #ddd;
1868
+ color: black !important;
1869
+ font-size: 9pt;
1870
+ padding: 5pt;
1871
+ break-inside: avoid;
1872
+ }
1873
+
1874
+ /* Tables */
1875
+ table {
1876
+ break-inside: avoid;
1877
+ border-collapse: collapse;
1878
+ width: 100%;
1879
+ margin: 10pt 0;
1880
+ }
1881
+
1882
+ th, td {
1883
+ border: 1px solid #ccc;
1884
+ padding: 5pt;
1885
+ color: black !important;
1886
+ font-size: 10pt;
1887
+ }
1888
+
1889
+ th {
1890
+ background: #f0f0f0 !important;
1891
+ font-weight: bold;
1892
+ }
1893
+
1894
+ /* Timeline */
1895
+ .timeline {
1896
+ display: block !important;
1897
+ margin: 15pt 0;
1898
+ }
1899
+
1900
+ .timeline-item {
1901
+ break-inside: avoid;
1902
+ margin-bottom: 12pt;
1903
+ padding-left: 0 !important;
1904
+ border-left: 2px solid #ccc;
1905
+ padding-left: 10pt;
1906
+ }
1907
+
1908
+ .timeline::before,
1909
+ .timeline-item::before {
1910
+ display: none;
1911
+ }
1912
+
1913
+ .timeline-date {
1914
+ color: black !important;
1915
+ font-weight: bold;
1916
+ font-size: 10pt;
1917
+ }
1918
+
1919
+ /* Mermaid diagrams */
1920
+ .mermaid {
1921
+ break-inside: avoid;
1922
+ background: white !important;
1923
+ border: 1px solid #ccc;
1924
+ padding: 10pt;
1925
+ margin: 10pt 0;
1926
+ }
1927
+
1928
+ /* Links */
1929
+ a {
1930
+ color: black !important;
1931
+ text-decoration: underline;
1932
+ }
1933
+
1934
+ a[href^="http"]:after {
1935
+ content: " (" attr(href) ")";
1936
+ font-size: 9pt;
1937
+ color: #666;
1938
+ }
1939
+
1940
+ /* Remove gradients and colors */
1941
+ .gradient-text {
1942
+ color: black !important;
1943
+ background: none !important;
1944
+ -webkit-text-fill-color: black !important;
1945
+ }
1946
+
1947
+ /* Lists */
1948
+ ul, ol {
1949
+ margin: 8pt 0;
1950
+ padding-left: 20pt;
1951
+ }
1952
+
1953
+ li {
1954
+ margin-bottom: 4pt;
1955
+ }
1956
+
1957
+ /* Blockquotes */
1958
+ blockquote {
1959
+ border-left: 3px solid #ccc;
1960
+ padding-left: 10pt;
1961
+ margin: 10pt 0;
1962
+ font-style: italic;
1963
+ color: black !important;
1964
+ }
1965
+
1966
+ /* Page breaks */
1967
+ .page-break {
1968
+ page-break-before: always;
1969
+ }
1970
+
1971
+ .no-break {
1972
+ page-break-inside: avoid;
1973
+ }
1974
+ }