@knowcode/doc-builder 1.3.15 → 1.4.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.
@@ -1,2121 +0,0 @@
1
- /* Documentation Builder - 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: 56px;
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-lg) var(--space-2xl) var(--space-xl);
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
- z-index: 999;
1392
- box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
1393
- }
1394
-
1395
- .sidebar.open {
1396
- transform: translateX(0);
1397
- }
1398
-
1399
- [data-theme="dark"] .sidebar {
1400
- box-shadow: 2px 0 10px rgba(0, 0, 0, 0.3);
1401
- }
1402
-
1403
- .content {
1404
- margin-left: 0 !important;
1405
- padding: var(--space-xl);
1406
- max-width: 100%;
1407
- }
1408
-
1409
- .search-box {
1410
- display: none;
1411
- }
1412
- }
1413
-
1414
- @media (max-width: 768px) {
1415
- .content {
1416
- margin-left: 0 !important;
1417
- padding: var(--space-md);
1418
- max-width: 100%;
1419
- }
1420
-
1421
- h1 {
1422
- font-size: 2rem;
1423
- }
1424
-
1425
- .hero h1 {
1426
- font-size: 2.5rem;
1427
- text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
1428
- }
1429
-
1430
- .hero-actions {
1431
- flex-direction: column;
1432
- align-items: center;
1433
- }
1434
-
1435
- .feature-grid {
1436
- grid-template-columns: 1fr;
1437
- }
1438
- }
1439
-
1440
- /* Animations */
1441
- @keyframes fadeIn {
1442
- from {
1443
- opacity: 0;
1444
- transform: translateY(20px);
1445
- }
1446
- to {
1447
- opacity: 1;
1448
- transform: translateY(0);
1449
- }
1450
- }
1451
-
1452
- .fade-in {
1453
- animation: fadeIn 0.6s ease-out;
1454
- }
1455
-
1456
- /* Bubble Icon Custom CSS */
1457
- .fa-bubble::before {
1458
- content: "🫧";
1459
- font-family: 'Inter', sans-serif;
1460
- font-style: normal;
1461
- }
1462
-
1463
- /* Mermaid Diagram Styling */
1464
- .mermaid {
1465
- margin: var(--space-xl) 0;
1466
- padding: var(--space-lg);
1467
- background: var(--bg-secondary);
1468
- border-radius: var(--radius-lg);
1469
- border: 1px solid var(--bg-tertiary);
1470
- text-align: center;
1471
- overflow-x: auto;
1472
- }
1473
-
1474
- [data-theme="dark"] .mermaid {
1475
- background: var(--bg-tertiary);
1476
- border-color: var(--text-muted);
1477
- }
1478
-
1479
- /* Scrollbar Styling */
1480
- ::-webkit-scrollbar {
1481
- width: 8px;
1482
- height: 8px;
1483
- }
1484
-
1485
- ::-webkit-scrollbar-track {
1486
- background: var(--bg-secondary);
1487
- }
1488
-
1489
- ::-webkit-scrollbar-thumb {
1490
- background: var(--bg-tertiary);
1491
- border-radius: var(--radius-full);
1492
- }
1493
-
1494
- ::-webkit-scrollbar-thumb:hover {
1495
- background: var(--text-muted);
1496
- }
1497
-
1498
- /* Additional Components */
1499
-
1500
- /* Menu Toggle (Mobile) */
1501
- .menu-toggle {
1502
- display: none;
1503
- background: none;
1504
- border: none;
1505
- font-size: 1.5rem;
1506
- cursor: pointer;
1507
- color: var(--text-primary);
1508
- padding: var(--space-sm);
1509
- margin-left: var(--space-sm);
1510
- transition: color var(--transition-fast);
1511
- z-index: 1001;
1512
- }
1513
-
1514
- .menu-toggle:hover {
1515
- color: var(--accent);
1516
- }
1517
-
1518
- .menu-toggle.active i::before {
1519
- content: "\f00d"; /* fa-times icon */
1520
- }
1521
-
1522
- @media (max-width: 1024px) {
1523
- .menu-toggle {
1524
- display: block;
1525
- }
1526
- }
1527
-
1528
- /* Mobile Sidebar Overlay */
1529
- .sidebar-overlay {
1530
- position: fixed;
1531
- top: 0;
1532
- left: 0;
1533
- right: 0;
1534
- bottom: 0;
1535
- background: rgba(0, 0, 0, 0.5);
1536
- z-index: 998;
1537
- opacity: 0;
1538
- visibility: hidden;
1539
- transition: opacity var(--transition-base), visibility var(--transition-base);
1540
- display: none;
1541
- }
1542
-
1543
- @media (max-width: 1024px) {
1544
- .sidebar-overlay {
1545
- display: block;
1546
- }
1547
- }
1548
-
1549
- .sidebar-overlay.active {
1550
- opacity: 1;
1551
- visibility: visible;
1552
- }
1553
-
1554
- /* Search Results Dropdown */
1555
- .search-results {
1556
- position: absolute;
1557
- top: 100%;
1558
- left: 0;
1559
- right: 0;
1560
- background: var(--bg-primary);
1561
- border: 1px solid var(--bg-tertiary);
1562
- border-radius: var(--radius-md);
1563
- margin-top: var(--space-xs);
1564
- box-shadow: var(--shadow-lg);
1565
- max-height: 400px;
1566
- overflow-y: auto;
1567
- z-index: 100;
1568
- }
1569
-
1570
- .search-result-item {
1571
- padding: var(--space-md);
1572
- border-bottom: 1px solid var(--bg-tertiary);
1573
- transition: background-color var(--transition-fast);
1574
- }
1575
-
1576
- .search-result-item:hover {
1577
- background: var(--bg-secondary);
1578
- }
1579
-
1580
- /* Code Block Wrapper */
1581
- .code-block-wrapper {
1582
- position: relative;
1583
- margin-bottom: var(--space-lg);
1584
- }
1585
-
1586
- .copy-button {
1587
- position: absolute;
1588
- top: var(--space-sm);
1589
- right: var(--space-sm);
1590
- background: var(--accent);
1591
- color: var(--text-inverse);
1592
- border: none;
1593
- padding: var(--space-xs) var(--space-sm);
1594
- border-radius: var(--radius-sm);
1595
- font-size: 0.75rem;
1596
- cursor: pointer;
1597
- transition: all var(--transition-fast);
1598
- }
1599
-
1600
- .copy-button:hover {
1601
- background: var(--accent-hover);
1602
- }
1603
-
1604
- /* Table of Contents */
1605
- .toc-container {
1606
- background: var(--bg-secondary);
1607
- border-radius: var(--radius-md);
1608
- padding: var(--space-xl);
1609
- margin: var(--space-xl) 0;
1610
- border: 1px solid var(--bg-tertiary);
1611
- }
1612
-
1613
- .toc-container h2 {
1614
- font-size: 1.125rem;
1615
- font-weight: 600;
1616
- color: var(--text-primary);
1617
- margin-bottom: var(--space-lg);
1618
- padding-bottom: var(--space-sm);
1619
- border-bottom: 2px solid var(--bg-tertiary);
1620
- }
1621
-
1622
- .toc-list {
1623
- list-style: none;
1624
- padding: 0;
1625
- margin: 0;
1626
- }
1627
-
1628
- .toc-list ol,
1629
- .toc-list ul {
1630
- list-style: none;
1631
- padding: 0;
1632
- margin: 0;
1633
- }
1634
-
1635
- .toc-list li {
1636
- position: relative;
1637
- margin-bottom: 0;
1638
- line-height: 1.4;
1639
- }
1640
-
1641
- .toc-list > li {
1642
- margin-bottom: 0;
1643
- }
1644
-
1645
- .toc-list li::before {
1646
- content: '';
1647
- position: absolute;
1648
- left: 0;
1649
- top: 0.75em;
1650
- width: 6px;
1651
- height: 6px;
1652
- background: var(--text-muted);
1653
- border-radius: 50%;
1654
- opacity: 0.5;
1655
- }
1656
-
1657
- .toc-list a {
1658
- display: block;
1659
- padding: 0.125rem var(--space-sm);
1660
- padding-left: var(--space-lg);
1661
- color: var(--text-secondary);
1662
- font-size: 0.9375rem;
1663
- transition: all var(--transition-fast);
1664
- border-radius: var(--radius-sm);
1665
- text-decoration: none;
1666
- position: relative;
1667
- }
1668
-
1669
- .toc-list a:hover {
1670
- color: var(--accent);
1671
- background: rgba(91, 61, 152, 0.05);
1672
- transform: translateX(1px);
1673
- }
1674
-
1675
- /* Nested TOC items */
1676
- .toc-list .toc-h2 {
1677
- font-weight: 500;
1678
- }
1679
-
1680
- .toc-list .toc-h3 {
1681
- padding-left: calc(var(--space-lg) + var(--space-xl));
1682
- font-size: 0.875rem;
1683
- color: var(--text-muted);
1684
- }
1685
-
1686
- .toc-list .toc-h3::before {
1687
- left: var(--space-xl);
1688
- width: 4px;
1689
- height: 4px;
1690
- }
1691
-
1692
- .toc-list .toc-h4 {
1693
- padding-left: calc(var(--space-lg) + var(--space-2xl));
1694
- font-size: 0.8125rem;
1695
- color: var(--text-muted);
1696
- font-style: italic;
1697
- }
1698
-
1699
- .toc-list .toc-h4::before {
1700
- left: var(--space-2xl);
1701
- width: 3px;
1702
- height: 3px;
1703
- }
1704
-
1705
- /* Active TOC item */
1706
- .toc-list a.active {
1707
- color: var(--accent);
1708
- background: rgba(91, 61, 152, 0.1);
1709
- font-weight: 500;
1710
- }
1711
-
1712
- /* Number styling for ordered lists */
1713
- .toc-list > ol {
1714
- counter-reset: toc-counter;
1715
- }
1716
-
1717
- .toc-list ol > li {
1718
- counter-increment: toc-counter;
1719
- }
1720
-
1721
- .toc-list ol > li::before {
1722
- content: counter(toc-counter);
1723
- position: absolute;
1724
- left: 0;
1725
- top: var(--space-xs);
1726
- width: 1.5rem;
1727
- height: 1.5rem;
1728
- background: var(--accent);
1729
- color: var(--text-inverse);
1730
- border-radius: var(--radius-sm);
1731
- font-size: 0.75rem;
1732
- font-weight: 600;
1733
- display: flex;
1734
- align-items: center;
1735
- justify-content: center;
1736
- opacity: 1;
1737
- }
1738
-
1739
- .toc-list ol > li > a {
1740
- padding-left: calc(var(--space-lg) + var(--space-md));
1741
- }
1742
-
1743
- /* Dark mode adjustments */
1744
- [data-theme="dark"] .toc-container {
1745
- background: var(--bg-secondary);
1746
- border-color: var(--bg-tertiary);
1747
- }
1748
-
1749
- [data-theme="dark"] .toc-container h2 {
1750
- border-bottom-color: var(--bg-tertiary);
1751
- }
1752
-
1753
- [data-theme="dark"] .toc-list a:hover {
1754
- background: var(--bg-tertiary);
1755
- }
1756
-
1757
- /* Section Separators */
1758
- section + section {
1759
- margin-top: var(--space-3xl);
1760
- padding-top: var(--space-3xl);
1761
- border-top: 1px solid var(--bg-tertiary);
1762
- }
1763
-
1764
- /* Highlight Box */
1765
- .highlight-box {
1766
- background: linear-gradient(135deg, rgba(0, 212, 255, 0.1) 0%, rgba(102, 126, 234, 0.1) 100%);
1767
- border-left: 4px solid var(--accent);
1768
- padding: var(--space-lg);
1769
- margin: var(--space-xl) 0;
1770
- border-radius: var(--radius-md);
1771
- }
1772
-
1773
- /* Badge */
1774
- .badge {
1775
- display: inline-flex;
1776
- align-items: center;
1777
- padding: var(--space-xs) var(--space-sm);
1778
- background: var(--accent);
1779
- color: var(--text-inverse);
1780
- font-size: 0.75rem;
1781
- font-weight: 600;
1782
- border-radius: var(--radius-full);
1783
- margin-left: var(--space-sm);
1784
- }
1785
-
1786
- /* Gradient Text */
1787
- .gradient-text {
1788
- background: var(--primary-gradient);
1789
- -webkit-background-clip: text;
1790
- -webkit-text-fill-color: transparent;
1791
- background-clip: text;
1792
- }
1793
-
1794
- /* Responsive Styles for Banner */
1795
- @media (max-width: 768px) {
1796
- .banner-content {
1797
- padding: var(--space-sm) var(--space-md);
1798
- gap: var(--space-sm);
1799
- }
1800
-
1801
- .banner-text {
1802
- font-size: 0.8rem;
1803
- }
1804
-
1805
- .banner-icon {
1806
- font-size: 1rem;
1807
- }
1808
-
1809
- /* Adjust mobile layout when banner is visible */
1810
- .main-wrapper.banner-visible {
1811
- padding-top: calc(var(--header-height) + var(--breadcrumb-height) + 4rem);
1812
- }
1813
-
1814
- .sidebar.banner-visible {
1815
- top: calc(var(--header-height) + var(--breadcrumb-height) + 4rem);
1816
- }
1817
- }
1818
-
1819
- /* Tooltip Styles */
1820
- [data-tooltip] {
1821
- position: relative;
1822
- }
1823
-
1824
- /* Tooltip content */
1825
- [data-tooltip]::after {
1826
- content: attr(data-tooltip);
1827
- position: fixed; /* Use fixed positioning to escape overflow containers */
1828
- left: var(--tooltip-left, 0);
1829
- top: var(--tooltip-top, 0);
1830
- transform: translateY(-50%);
1831
- background: #333;
1832
- color: white;
1833
- padding: 8px 12px;
1834
- border-radius: 4px;
1835
- font-size: 14px;
1836
- white-space: normal;
1837
- line-height: 1.4;
1838
- max-width: 300px;
1839
- pointer-events: none;
1840
- opacity: 0;
1841
- visibility: hidden;
1842
- transition: opacity 0.3s, visibility 0.3s;
1843
- z-index: 10000;
1844
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.1);
1845
- }
1846
-
1847
- /* Tooltip arrow */
1848
- [data-tooltip]::before {
1849
- content: '';
1850
- position: fixed;
1851
- left: var(--tooltip-left, 0);
1852
- top: var(--tooltip-top, 0);
1853
- transform: translateX(-8px) translateY(-50%);
1854
- width: 0;
1855
- height: 0;
1856
- border-style: solid;
1857
- border-width: 6px 8px 6px 0;
1858
- border-color: transparent #333 transparent transparent;
1859
- opacity: 0;
1860
- visibility: hidden;
1861
- transition: opacity 0.3s, visibility 0.3s;
1862
- z-index: 10001;
1863
- }
1864
-
1865
- [data-tooltip]:hover::after,
1866
- [data-tooltip]:hover::before {
1867
- opacity: 1;
1868
- visibility: visible;
1869
- }
1870
-
1871
- /* Ensure nav items have proper stacking context */
1872
- .nav-item[data-tooltip],
1873
- .nav-title[data-tooltip] {
1874
- position: relative !important;
1875
- z-index: 1;
1876
- }
1877
-
1878
- .nav-item[data-tooltip]:hover,
1879
- .nav-title[data-tooltip]:hover {
1880
- z-index: 100000; /* Very high z-index to ensure tooltip appears above everything */
1881
- }
1882
-
1883
- /* Tooltip for nav titles (folders) */
1884
- .nav-title[data-tooltip]::after {
1885
- max-width: 350px;
1886
- font-weight: 400;
1887
- }
1888
-
1889
- /* Ensure nav sections don't clip tooltips */
1890
- .nav-section {
1891
- position: relative;
1892
- overflow: visible !important;
1893
- }
1894
-
1895
- /* Dark mode tooltip styles */
1896
- [data-theme="dark"] [data-tooltip]::after {
1897
- background: var(--bg-secondary);
1898
- color: var(--text-primary);
1899
- border: 1px solid var(--bg-tertiary);
1900
- box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
1901
- }
1902
-
1903
- [data-theme="dark"] [data-tooltip]::before {
1904
- border-right-color: var(--bg-secondary);
1905
- }
1906
-
1907
- /* Mobile adjustments */
1908
- @media (max-width: 768px) {
1909
- /* Disable tooltips on mobile to prevent overlap issues */
1910
- [data-tooltip]::before,
1911
- [data-tooltip]::after {
1912
- display: none;
1913
- }
1914
- }
1915
-
1916
- /* Print Styles */
1917
- @media print {
1918
- .header,
1919
- .sidebar,
1920
- .theme-toggle,
1921
- .search-box,
1922
- .preview-banner,
1923
- .resize-handle,
1924
- .copy-button,
1925
- .menu-toggle {
1926
- display: none !important;
1927
- }
1928
-
1929
- body {
1930
- font-size: 12pt;
1931
- line-height: 1.4;
1932
- color: black !important;
1933
- background: white !important;
1934
- }
1935
-
1936
- .content {
1937
- margin: 0 !important;
1938
- padding: 20px !important;
1939
- max-width: none !important;
1940
- }
1941
-
1942
- .main-wrapper {
1943
- padding-top: 0 !important;
1944
- }
1945
-
1946
- .hero {
1947
- background: none !important;
1948
- color: black !important;
1949
- padding: 20px 0 !important;
1950
- margin: 0 0 20px 0 !important;
1951
- page-break-inside: avoid;
1952
- }
1953
-
1954
- .hero h1 {
1955
- color: black !important;
1956
- -webkit-text-fill-color: black !important;
1957
- text-shadow: none !important;
1958
- font-size: 24pt !important;
1959
- }
1960
-
1961
- .hero-subtitle {
1962
- color: black !important;
1963
- text-shadow: none !important;
1964
- font-size: 14pt !important;
1965
- }
1966
-
1967
- h1, h2, h3, h4, h5, h6 {
1968
- color: black !important;
1969
- page-break-after: avoid;
1970
- margin-top: 15pt;
1971
- margin-bottom: 10pt;
1972
- }
1973
-
1974
- h1 { font-size: 20pt; }
1975
- h2 { font-size: 16pt; }
1976
- h3 { font-size: 14pt; }
1977
- h4 { font-size: 12pt; }
1978
-
1979
- p, li {
1980
- color: black !important;
1981
- font-size: 11pt;
1982
- line-height: 1.4;
1983
- margin-bottom: 8pt;
1984
- }
1985
-
1986
- /* Feature cards and grids */
1987
- .feature-grid, .metrics-grid {
1988
- display: block !important;
1989
- margin: 15pt 0;
1990
- }
1991
-
1992
- .feature-card, .metric-card {
1993
- break-inside: avoid;
1994
- margin-bottom: 10pt;
1995
- border: 1px solid #ccc;
1996
- padding: 8pt;
1997
- background: white !important;
1998
- }
1999
-
2000
- .feature-title, .metric-label {
2001
- color: black !important;
2002
- font-weight: bold;
2003
- }
2004
-
2005
- .metric-value {
2006
- color: black !important;
2007
- font-size: 18pt;
2008
- font-weight: bold;
2009
- }
2010
-
2011
- /* Code blocks */
2012
- pre, code {
2013
- background: #f5f5f5 !important;
2014
- border: 1px solid #ddd;
2015
- color: black !important;
2016
- font-size: 9pt;
2017
- padding: 5pt;
2018
- break-inside: avoid;
2019
- }
2020
-
2021
- /* Tables */
2022
- table {
2023
- break-inside: avoid;
2024
- border-collapse: collapse;
2025
- width: 100%;
2026
- margin: 10pt 0;
2027
- }
2028
-
2029
- th, td {
2030
- border: 1px solid #ccc;
2031
- padding: 5pt;
2032
- color: black !important;
2033
- font-size: 10pt;
2034
- }
2035
-
2036
- th {
2037
- background: #f0f0f0 !important;
2038
- font-weight: bold;
2039
- }
2040
-
2041
- /* Timeline */
2042
- .timeline {
2043
- display: block !important;
2044
- margin: 15pt 0;
2045
- }
2046
-
2047
- .timeline-item {
2048
- break-inside: avoid;
2049
- margin-bottom: 12pt;
2050
- padding-left: 0 !important;
2051
- border-left: 2px solid #ccc;
2052
- padding-left: 10pt;
2053
- }
2054
-
2055
- .timeline::before,
2056
- .timeline-item::before {
2057
- display: none;
2058
- }
2059
-
2060
- .timeline-date {
2061
- color: black !important;
2062
- font-weight: bold;
2063
- font-size: 10pt;
2064
- }
2065
-
2066
- /* Mermaid diagrams */
2067
- .mermaid {
2068
- break-inside: avoid;
2069
- background: white !important;
2070
- border: 1px solid #ccc;
2071
- padding: 10pt;
2072
- margin: 10pt 0;
2073
- }
2074
-
2075
- /* Links */
2076
- a {
2077
- color: black !important;
2078
- text-decoration: underline;
2079
- }
2080
-
2081
- a[href^="http"]:after {
2082
- content: " (" attr(href) ")";
2083
- font-size: 9pt;
2084
- color: #666;
2085
- }
2086
-
2087
- /* Remove gradients and colors */
2088
- .gradient-text {
2089
- color: black !important;
2090
- background: none !important;
2091
- -webkit-text-fill-color: black !important;
2092
- }
2093
-
2094
- /* Lists */
2095
- ul, ol {
2096
- margin: 8pt 0;
2097
- padding-left: 20pt;
2098
- }
2099
-
2100
- li {
2101
- margin-bottom: 4pt;
2102
- }
2103
-
2104
- /* Blockquotes */
2105
- blockquote {
2106
- border-left: 3px solid #ccc;
2107
- padding-left: 10pt;
2108
- margin: 10pt 0;
2109
- font-style: italic;
2110
- color: black !important;
2111
- }
2112
-
2113
- /* Page breaks */
2114
- .page-break {
2115
- page-break-before: always;
2116
- }
2117
-
2118
- .no-break {
2119
- page-break-inside: avoid;
2120
- }
2121
- }