@knowcode/doc-builder 1.2.0 → 1.2.1

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