@knowcode/doc-builder 1.4.2 → 1.4.4

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,1914 @@
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: 40px;
129
+ --breadcrumb-height: 0px;
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
+ margin-bottom: var(--space-4);
340
+ }
341
+
342
+ /* Sidebar Breadcrumbs */
343
+ .sidebar-breadcrumbs {
344
+ margin-bottom: var(--space-3);
345
+ }
346
+
347
+ .sidebar-home-link {
348
+ display: inline-flex;
349
+ align-items: center;
350
+ gap: var(--space-2);
351
+ padding: var(--space-2) var(--space-3);
352
+ color: var(--color-text-secondary);
353
+ text-decoration: none;
354
+ border-radius: var(--radius-base);
355
+ font-size: 0.875rem;
356
+ font-weight: 500;
357
+ transition: all 0.2s;
358
+ }
359
+
360
+ .sidebar-home-link:hover {
361
+ background: var(--color-bg-secondary);
362
+ color: var(--color-text-primary);
363
+ }
364
+
365
+ .sidebar-home-link i {
366
+ font-size: 1rem;
367
+ }
368
+
369
+ .filter-box {
370
+ position: relative;
371
+ }
372
+
373
+ .filter-input {
374
+ width: 100%;
375
+ padding: var(--space-2) var(--space-3);
376
+ padding-left: var(--space-8);
377
+ font-size: var(--text-sm);
378
+ border: 1px solid var(--color-border-default);
379
+ border-radius: var(--radius-md);
380
+ background: var(--color-bg-default);
381
+ transition: all var(--duration-fast) var(--easing-out);
382
+ outline: none;
383
+ }
384
+
385
+ .filter-input:hover {
386
+ border-color: var(--color-border-hover);
387
+ }
388
+
389
+ .filter-input:focus {
390
+ border-color: var(--color-border-focus);
391
+ box-shadow: 0 0 0 3px rgba(35, 131, 226, 0.15);
392
+ }
393
+
394
+ .filter-icon {
395
+ position: absolute;
396
+ left: var(--space-3);
397
+ top: 50%;
398
+ transform: translateY(-50%);
399
+ color: var(--color-text-tertiary);
400
+ font-size: var(--text-sm);
401
+ }
402
+
403
+ /* Preview Banner */
404
+ .preview-banner {
405
+ background: var(--color-accent-yellow-bg);
406
+ border-bottom: 1px solid var(--color-accent-yellow);
407
+ color: var(--color-text-primary);
408
+ padding: var(--space-2) 0;
409
+ position: fixed;
410
+ top: var(--header-height);
411
+ left: 0;
412
+ right: 0;
413
+ z-index: 1000;
414
+ transition: transform var(--duration-normal);
415
+ }
416
+
417
+ .preview-banner.hidden {
418
+ transform: translateY(-100%);
419
+ }
420
+
421
+ .banner-content {
422
+ display: flex;
423
+ align-items: center;
424
+ justify-content: center;
425
+ gap: var(--space-2);
426
+ max-width: 1400px;
427
+ margin: 0 auto;
428
+ padding: 0 var(--space-4);
429
+ }
430
+
431
+ .banner-icon {
432
+ color: var(--color-accent-yellow);
433
+ font-size: var(--text-sm);
434
+ }
435
+
436
+ .banner-text {
437
+ font-size: var(--text-sm);
438
+ font-weight: var(--font-medium);
439
+ }
440
+
441
+ .banner-dismiss {
442
+ background: none;
443
+ border: none;
444
+ color: var(--color-text-secondary);
445
+ cursor: pointer;
446
+ padding: var(--space-1);
447
+ margin-left: auto;
448
+ border-radius: var(--radius-sm);
449
+ transition: all var(--duration-fast);
450
+ }
451
+
452
+ .banner-dismiss:hover {
453
+ background: var(--color-bg-hover);
454
+ color: var(--color-text-primary);
455
+ }
456
+
457
+ /* Breadcrumbs */
458
+ .breadcrumbs {
459
+ background: var(--color-bg-default);
460
+ border-bottom: 1px solid var(--color-border-default);
461
+ padding: var(--space-2) 0;
462
+ position: fixed;
463
+ top: calc(var(--header-height) + 3.5rem);
464
+ left: 0;
465
+ right: 0;
466
+ z-index: 900;
467
+ transition: top var(--duration-normal);
468
+ }
469
+
470
+ .breadcrumbs.banner-visible {
471
+ top: calc(var(--header-height) + 3.5rem);
472
+ }
473
+
474
+ .breadcrumbs:not(.banner-visible) {
475
+ top: var(--header-height);
476
+ }
477
+
478
+ .breadcrumb-item {
479
+ display: inline-flex;
480
+ align-items: center;
481
+ gap: var(--space-1);
482
+ color: var(--color-text-secondary);
483
+ text-decoration: none;
484
+ font-size: var(--text-sm);
485
+ padding: var(--space-1) var(--space-2);
486
+ border-radius: var(--radius-sm);
487
+ transition: all var(--duration-fast);
488
+ }
489
+
490
+ .breadcrumb-item:hover {
491
+ background: var(--color-bg-hover);
492
+ color: var(--color-text-primary);
493
+ }
494
+
495
+ .breadcrumb-item.current {
496
+ color: var(--color-text-primary);
497
+ font-weight: var(--font-medium);
498
+ }
499
+
500
+ .breadcrumb-separator {
501
+ color: var(--color-text-tertiary);
502
+ font-size: var(--text-xs);
503
+ margin: 0 var(--space-1);
504
+ }
505
+
506
+ /* Main Wrapper */
507
+ .main-wrapper {
508
+ display: flex;
509
+ height: calc(100vh - var(--header-height) - var(--breadcrumb-height));
510
+ margin-top: calc(var(--header-height) + var(--breadcrumb-height));
511
+ overflow: hidden;
512
+ }
513
+
514
+ .main-wrapper.banner-visible {
515
+ height: calc(100vh - var(--header-height) - var(--breadcrumb-height) - 3.5rem);
516
+ margin-top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
517
+ }
518
+
519
+ /* Sidebar */
520
+ .sidebar {
521
+ width: var(--sidebar-width);
522
+ background: var(--color-bg-secondary);
523
+ border-right: 1px solid var(--color-border-default);
524
+ display: flex;
525
+ flex-direction: column;
526
+ position: relative;
527
+ }
528
+
529
+ .sidebar-header {
530
+ padding: var(--space-3);
531
+ border-bottom: 1px solid var(--color-border-default);
532
+ margin-bottom: var(--space-4);
533
+ }
534
+
535
+ /* Already defined above, but ensure consistency */
536
+ .sidebar-breadcrumbs {
537
+ margin-bottom: var(--space-3);
538
+ }
539
+
540
+ .filter-box {
541
+ position: relative;
542
+ display: flex;
543
+ align-items: center;
544
+ }
545
+
546
+ .filter-input {
547
+ width: 100%;
548
+ padding: var(--space-2) var(--space-8) var(--space-2) var(--space-3);
549
+ border: 1px solid var(--color-border-default);
550
+ border-radius: var(--radius-md);
551
+ background: var(--color-bg-default);
552
+ color: var(--color-text-primary);
553
+ font-size: var(--text-sm);
554
+ transition: all var(--duration-fast);
555
+ }
556
+
557
+ .filter-input:focus {
558
+ outline: none;
559
+ border-color: var(--color-border-focus);
560
+ box-shadow: 0 0 0 2px var(--color-accent-blue-bg);
561
+ }
562
+
563
+ .filter-icon {
564
+ position: absolute;
565
+ right: var(--space-3);
566
+ color: var(--color-text-tertiary);
567
+ pointer-events: none;
568
+ }
569
+
570
+ /* Navigation */
571
+ .navigation {
572
+ flex: 1;
573
+ padding: var(--space-2);
574
+ overflow-y: auto;
575
+ overflow-x: visible;
576
+
577
+ /* Scrollbar styling */
578
+ scrollbar-width: thin;
579
+ scrollbar-color: var(--color-border-default) transparent;
580
+ }
581
+
582
+ .resize-handle {
583
+ width: 4px;
584
+ background: transparent;
585
+ cursor: col-resize;
586
+ position: absolute;
587
+ top: 0;
588
+ right: 0;
589
+ bottom: 0;
590
+ transition: background var(--duration-fast);
591
+ }
592
+
593
+ .resize-handle:hover {
594
+ background: var(--color-border-focus);
595
+ }
596
+
597
+ .navigation::-webkit-scrollbar {
598
+ width: 6px;
599
+ }
600
+
601
+ .navigation::-webkit-scrollbar-track {
602
+ background: transparent;
603
+ }
604
+
605
+ .navigation::-webkit-scrollbar-thumb {
606
+ background: var(--color-border-default);
607
+ border-radius: 3px;
608
+ }
609
+
610
+ .navigation::-webkit-scrollbar-thumb:hover {
611
+ background: var(--color-text-tertiary);
612
+ }
613
+
614
+ .nav-section {
615
+ margin-bottom: var(--space-0-5);
616
+ }
617
+
618
+ .nav-section[data-level="0"] {
619
+ margin-left: 0;
620
+ }
621
+
622
+ .nav-section[data-level="1"] {
623
+ margin-left: var(--space-4);
624
+ margin-bottom: var(--space-0-5);
625
+ }
626
+
627
+ .nav-section[data-level="2"] {
628
+ margin-left: var(--space-8);
629
+ margin-bottom: var(--space-0-5);
630
+ }
631
+
632
+ .nav-title {
633
+ display: flex;
634
+ align-items: center;
635
+ padding: var(--space-1-5) var(--space-3);
636
+ font-size: var(--text-sm);
637
+ font-weight: var(--font-medium);
638
+ color: var(--color-text-secondary);
639
+ cursor: pointer;
640
+ border-radius: var(--radius-md);
641
+ transition: all var(--duration-fast) var(--easing-out);
642
+ user-select: none;
643
+ }
644
+
645
+ /* Indent nav titles based on their level */
646
+ .nav-section[data-level="1"] .nav-title {
647
+ padding-left: calc(var(--space-3) + var(--space-4));
648
+ }
649
+
650
+ .nav-section[data-level="2"] .nav-title {
651
+ padding-left: calc(var(--space-3) + var(--space-8));
652
+ }
653
+
654
+ .nav-title:hover {
655
+ background: var(--color-bg-hover);
656
+ color: var(--color-text-primary);
657
+ }
658
+
659
+ .nav-title i {
660
+ margin-right: var(--space-2);
661
+ font-size: var(--text-sm);
662
+ }
663
+
664
+ .collapse-icon {
665
+ margin-right: var(--space-1) !important;
666
+ transition: transform var(--duration-fast) var(--easing-out);
667
+ }
668
+
669
+ .nav-title.expanded .collapse-icon {
670
+ transform: rotate(90deg);
671
+ }
672
+
673
+ .nav-content {
674
+ overflow: hidden;
675
+ transition: all var(--duration-normal) var(--easing-out);
676
+ }
677
+
678
+ .nav-content.collapsed {
679
+ max-height: 0;
680
+ opacity: 0;
681
+ }
682
+
683
+ .nav-item {
684
+ display: flex;
685
+ align-items: center;
686
+ padding: var(--space-1-5) var(--space-3);
687
+ font-size: var(--text-sm);
688
+ color: var(--color-text-primary);
689
+ text-decoration: none;
690
+ border-radius: var(--radius-md);
691
+ transition: all var(--duration-fast) var(--easing-out);
692
+ margin-bottom: 0;
693
+ gap: var(--space-2);
694
+ }
695
+
696
+ /* Indent nav items based on their parent section level */
697
+ .nav-section[data-level="0"] .nav-item {
698
+ padding-left: calc(var(--space-3) + var(--space-6));
699
+ }
700
+
701
+ .nav-section[data-level="1"] .nav-item {
702
+ padding-left: calc(var(--space-3) + var(--space-10));
703
+ }
704
+
705
+ .nav-section[data-level="2"] .nav-item {
706
+ padding-left: calc(var(--space-3) + var(--space-12));
707
+ }
708
+
709
+ .nav-item:hover {
710
+ background: var(--color-bg-hover);
711
+ color: var(--color-text-primary);
712
+ text-decoration: none;
713
+ }
714
+
715
+ .nav-item.active {
716
+ background: var(--color-bg-hover);
717
+ color: var(--color-text-primary);
718
+ font-weight: var(--font-medium);
719
+ }
720
+
721
+ .nav-item i {
722
+ margin-right: var(--space-2);
723
+ font-size: var(--text-sm);
724
+ color: var(--color-text-tertiary);
725
+ }
726
+
727
+ /* Main Content */
728
+ .main-wrapper {
729
+ display: flex;
730
+ padding-top: calc(var(--header-height) + var(--breadcrumb-height));
731
+ min-height: 100vh;
732
+ transition: padding-top var(--duration-normal);
733
+ }
734
+
735
+ /* Adjust layout when banner is visible */
736
+ .main-wrapper.banner-visible {
737
+ padding-top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
738
+ }
739
+
740
+ .content {
741
+ flex: 1;
742
+ padding: 40px var(--space-8);
743
+ overflow-y: auto;
744
+ background: var(--color-bg-default);
745
+ }
746
+
747
+ .content-inner {
748
+ max-width: 65rem;
749
+ margin: 0 auto;
750
+ }
751
+
752
+ /* Tables */
753
+ table {
754
+ width: 100%;
755
+ border-collapse: collapse;
756
+ margin: var(--space-4) 0;
757
+ font-size: var(--text-sm);
758
+ background: var(--color-bg-default);
759
+ border: 1px solid var(--color-border-default);
760
+ border-radius: var(--radius-lg);
761
+ overflow: hidden;
762
+ }
763
+
764
+ th {
765
+ text-align: left;
766
+ font-weight: var(--font-semibold);
767
+ padding: var(--space-3) var(--space-4);
768
+ background: var(--color-bg-secondary);
769
+ border-bottom: 1px solid var(--color-border-default);
770
+ color: var(--color-text-primary);
771
+ }
772
+
773
+ td {
774
+ padding: var(--space-3) var(--space-4);
775
+ border-bottom: 1px solid var(--color-border-default);
776
+ color: var(--color-text-primary);
777
+ }
778
+
779
+ tr:last-child td {
780
+ border-bottom: none;
781
+ }
782
+
783
+ tr:hover {
784
+ background: var(--color-bg-hover);
785
+ }
786
+
787
+ /* Buttons */
788
+ .btn {
789
+ display: inline-flex;
790
+ align-items: center;
791
+ justify-content: center;
792
+ gap: var(--space-2);
793
+ padding: var(--space-2) var(--space-4);
794
+ font-size: var(--text-sm);
795
+ font-weight: var(--font-medium);
796
+ line-height: var(--leading-tight);
797
+ border-radius: var(--radius-md);
798
+ border: 1px solid transparent;
799
+ cursor: pointer;
800
+ transition: all var(--duration-normal) var(--easing-out);
801
+ outline: none;
802
+ text-decoration: none;
803
+ }
804
+
805
+ .btn-primary {
806
+ background: var(--color-primary);
807
+ color: var(--color-text-inverse);
808
+ border-color: var(--color-primary);
809
+ }
810
+
811
+ .btn-primary:hover {
812
+ background: var(--color-primary-hover);
813
+ border-color: var(--color-primary-hover);
814
+ }
815
+
816
+ .btn-secondary {
817
+ background: var(--color-bg-default);
818
+ color: var(--color-text-primary);
819
+ border-color: var(--color-border-default);
820
+ }
821
+
822
+ .btn-secondary:hover {
823
+ background: var(--color-bg-secondary);
824
+ border-color: var(--color-border-hover);
825
+ }
826
+
827
+ .btn-ghost {
828
+ background: transparent;
829
+ color: var(--color-text-primary);
830
+ border-color: transparent;
831
+ }
832
+
833
+ .btn-ghost:hover {
834
+ background: var(--color-bg-secondary);
835
+ }
836
+
837
+ /* Cards */
838
+ .card {
839
+ background: var(--color-bg-card);
840
+ border: 1px solid var(--color-border-default);
841
+ border-radius: var(--radius-lg);
842
+ padding: var(--space-6);
843
+ margin-bottom: var(--space-4);
844
+ box-shadow: var(--shadow-sm);
845
+ transition: all var(--duration-normal) var(--easing-out);
846
+ }
847
+
848
+ .card:hover {
849
+ box-shadow: var(--shadow-md);
850
+ transform: translateY(-2px);
851
+ }
852
+
853
+ /* Badges */
854
+ .badge {
855
+ display: inline-flex;
856
+ align-items: center;
857
+ padding: var(--space-0-5) var(--space-2);
858
+ font-size: var(--text-xs);
859
+ font-weight: var(--font-medium);
860
+ line-height: var(--leading-normal);
861
+ border-radius: var(--radius-sm);
862
+ background: var(--color-border-default);
863
+ color: var(--color-text-primary);
864
+ }
865
+
866
+ .badge-primary {
867
+ background: var(--color-primary);
868
+ color: var(--color-text-inverse);
869
+ }
870
+
871
+ .badge-success {
872
+ background: var(--color-accent-green-bg);
873
+ color: var(--color-accent-green);
874
+ }
875
+
876
+ .badge-warning {
877
+ background: var(--color-accent-yellow-bg);
878
+ color: var(--color-accent-yellow);
879
+ }
880
+
881
+ .badge-danger {
882
+ background: var(--color-accent-red-bg);
883
+ color: var(--color-accent-red);
884
+ }
885
+
886
+ /* Theme Toggle */
887
+ .theme-toggle {
888
+ padding: var(--space-2);
889
+ background: transparent;
890
+ border: none;
891
+ cursor: pointer;
892
+ color: var(--color-text-secondary);
893
+ font-size: var(--text-lg);
894
+ transition: color var(--duration-fast) var(--easing-out);
895
+ }
896
+
897
+ .theme-toggle:hover {
898
+ color: var(--color-text-primary);
899
+ }
900
+
901
+ /* Dark Theme */
902
+ [data-theme="dark"] {
903
+ --color-bg-default: #191919;
904
+ --color-bg-secondary: #202020;
905
+ --color-bg-tertiary: #2A2A2A;
906
+ --color-bg-hover: #2A2A2A;
907
+ --color-bg-card: #202020;
908
+
909
+ --color-text-primary: #E6E6E6;
910
+ --color-text-secondary: #ABABAB;
911
+ --color-text-tertiary: #787774;
912
+
913
+ --color-border-default: #373737;
914
+ --color-border-hover: #474747;
915
+ --color-divider: #2A2A2A;
916
+
917
+ --color-shadow: rgba(0, 0, 0, 0.3);
918
+ }
919
+
920
+ /* Dark theme Mermaid styles */
921
+ [data-theme="dark"] .mermaid-container {
922
+ background: var(--color-bg-default);
923
+ border-color: var(--color-border-default);
924
+ }
925
+
926
+ [data-theme="dark"] .mermaid-title {
927
+ background: var(--color-bg-secondary);
928
+ border-color: var(--color-border-default);
929
+ color: var(--color-text-primary);
930
+ }
931
+
932
+ [data-theme="dark"] .mermaid-toolbar {
933
+ background: var(--color-bg-secondary);
934
+ border-color: var(--color-border-default);
935
+ }
936
+
937
+ [data-theme="dark"] .mermaid-btn {
938
+ background: var(--color-bg-default);
939
+ border-color: var(--color-border-default);
940
+ color: var(--color-text-secondary);
941
+ }
942
+
943
+ [data-theme="dark"] .mermaid-btn:hover {
944
+ background: var(--color-accent-blue);
945
+ color: var(--color-text-inverse);
946
+ border-color: var(--color-accent-blue);
947
+ }
948
+
949
+ [data-theme="dark"] .mermaid-fullscreen-wrapper {
950
+ background: var(--color-bg-default);
951
+ color: var(--color-text-primary);
952
+ }
953
+
954
+ /* Breadcrumbs */
955
+ .breadcrumbs {
956
+ display: flex;
957
+ align-items: center;
958
+ padding: 0.5rem var(--space-6);
959
+ background: var(--color-bg-secondary);
960
+ border-bottom: 1px solid var(--color-border-default);
961
+ font-size: var(--text-sm);
962
+ color: var(--color-text-secondary);
963
+ position: fixed;
964
+ top: var(--header-height);
965
+ left: 0;
966
+ right: 0;
967
+ height: var(--breadcrumb-height);
968
+ z-index: 900;
969
+ transition: background-color var(--duration-normal);
970
+ gap: var(--space-2);
971
+ }
972
+
973
+ .breadcrumb-item {
974
+ display: flex;
975
+ align-items: center;
976
+ gap: var(--space-1-5);
977
+ color: var(--color-text-tertiary);
978
+ text-decoration: none;
979
+ padding: var(--space-1) var(--space-2);
980
+ border-radius: var(--radius-sm);
981
+ transition: all var(--duration-fast);
982
+ white-space: nowrap;
983
+ }
984
+
985
+ .breadcrumb-item:hover:not(.current) {
986
+ background: var(--color-bg-hover);
987
+ color: var(--color-text-secondary);
988
+ }
989
+
990
+ .breadcrumb-item.current {
991
+ color: var(--color-text-primary);
992
+ font-weight: var(--font-medium);
993
+ cursor: default;
994
+ }
995
+
996
+ .breadcrumb-separator {
997
+ margin: 0 var(--space-1);
998
+ color: var(--color-text-tertiary);
999
+ font-size: var(--text-xs);
1000
+ opacity: 0.6;
1001
+ }
1002
+
1003
+ .breadcrumb-item i {
1004
+ font-size: var(--text-xs);
1005
+ opacity: 0.8;
1006
+ }
1007
+
1008
+ .breadcrumb-item.current i {
1009
+ opacity: 1;
1010
+ }
1011
+
1012
+ /* Adjust breadcrumbs when banner is visible */
1013
+ .breadcrumbs.banner-visible {
1014
+ top: calc(var(--header-height) + 3.5rem);
1015
+ }
1016
+
1017
+ /* Menu Toggle (Mobile) */
1018
+ .menu-toggle {
1019
+ display: none;
1020
+ background: none;
1021
+ border: none;
1022
+ font-size: 1.5rem;
1023
+ cursor: pointer;
1024
+ color: var(--color-text-primary);
1025
+ padding: var(--space-2);
1026
+ }
1027
+
1028
+ /* Responsive Design */
1029
+ @media (max-width: 1024px) {
1030
+ .sidebar {
1031
+ transform: translateX(-100%);
1032
+ transition: transform var(--duration-normal) var(--easing-out);
1033
+ }
1034
+
1035
+ .sidebar.open {
1036
+ transform: translateX(0);
1037
+ }
1038
+
1039
+ .main-wrapper {
1040
+ margin-left: 0;
1041
+ }
1042
+
1043
+ .content {
1044
+ margin-left: 0;
1045
+ padding: var(--space-6) var(--space-4);
1046
+ }
1047
+
1048
+ .menu-toggle {
1049
+ display: block;
1050
+ }
1051
+ }
1052
+
1053
+ @media (max-width: 768px) {
1054
+ .header-content {
1055
+ padding: 0 var(--space-4);
1056
+ }
1057
+
1058
+ /* Adjust mobile layout when banner is visible */
1059
+ .main-wrapper.banner-visible {
1060
+ padding-top: calc(var(--header-height) + var(--breadcrumb-height) + 4rem);
1061
+ }
1062
+
1063
+ .sidebar.banner-visible {
1064
+ top: calc(var(--header-height) + var(--breadcrumb-height) + 4rem);
1065
+ }
1066
+ }
1067
+
1068
+ /* Mermaid Diagrams */
1069
+ .mermaid {
1070
+ background: var(--color-bg-secondary);
1071
+ padding: var(--space-4);
1072
+ border-radius: var(--radius-lg);
1073
+ overflow-x: auto;
1074
+ margin: var(--space-4) 0;
1075
+ }
1076
+
1077
+ /* Mermaid Full Screen Viewer */
1078
+ .mermaid-container {
1079
+ position: relative;
1080
+ margin: var(--space-6) 0;
1081
+ border: 1px solid var(--color-border-default);
1082
+ border-radius: var(--radius-lg);
1083
+ overflow: hidden;
1084
+ background: var(--color-bg-default);
1085
+ }
1086
+
1087
+ .mermaid-title {
1088
+ padding: var(--space-3) var(--space-4);
1089
+ background: var(--color-bg-secondary);
1090
+ border-bottom: 1px solid var(--color-border-default);
1091
+ font-size: var(--text-base);
1092
+ font-weight: var(--font-semibold);
1093
+ color: var(--color-text-primary);
1094
+ }
1095
+
1096
+ .mermaid-toolbar {
1097
+ display: flex;
1098
+ justify-content: space-between;
1099
+ align-items: center;
1100
+ padding: var(--space-3) var(--space-4);
1101
+ background: var(--color-bg-secondary);
1102
+ border-bottom: 1px solid var(--color-border-default);
1103
+ font-size: var(--text-sm);
1104
+ color: var(--color-text-secondary);
1105
+ }
1106
+
1107
+ .mermaid-actions {
1108
+ display: flex;
1109
+ gap: var(--space-2);
1110
+ }
1111
+
1112
+ .mermaid-btn {
1113
+ display: flex;
1114
+ align-items: center;
1115
+ gap: var(--space-1-5);
1116
+ padding: var(--space-1-5) var(--space-3);
1117
+ border: 1px solid var(--color-border-default);
1118
+ border-radius: var(--radius-md);
1119
+ background: var(--color-bg-default);
1120
+ color: var(--color-text-secondary);
1121
+ text-decoration: none;
1122
+ font-size: var(--text-sm);
1123
+ cursor: pointer;
1124
+ transition: all var(--duration-fast);
1125
+ white-space: nowrap;
1126
+ }
1127
+
1128
+ .mermaid-btn:hover {
1129
+ background: var(--color-accent-blue);
1130
+ color: var(--color-text-inverse);
1131
+ border-color: var(--color-accent-blue);
1132
+ transform: translateY(-1px);
1133
+ box-shadow: var(--shadow-sm);
1134
+ }
1135
+
1136
+ .mermaid-btn i {
1137
+ font-size: var(--text-xs);
1138
+ flex-shrink: 0;
1139
+ }
1140
+
1141
+ .mermaid-wrapper {
1142
+ padding: var(--space-6);
1143
+ overflow: auto;
1144
+ max-height: 600px;
1145
+ }
1146
+
1147
+ /* Full Screen Modal */
1148
+ .mermaid-fullscreen {
1149
+ position: fixed;
1150
+ top: 0;
1151
+ left: 0;
1152
+ width: 100vw;
1153
+ height: 100vh;
1154
+ background: rgba(0, 0, 0, 0.95);
1155
+ display: none;
1156
+ z-index: 10000;
1157
+ backdrop-filter: blur(4px);
1158
+ }
1159
+
1160
+ .mermaid-fullscreen.active {
1161
+ display: flex;
1162
+ flex-direction: column;
1163
+ }
1164
+
1165
+ .mermaid-fullscreen-toolbar {
1166
+ display: flex;
1167
+ justify-content: space-between;
1168
+ align-items: center;
1169
+ padding: var(--space-4) var(--space-8);
1170
+ background: rgba(255, 255, 255, 0.1);
1171
+ backdrop-filter: blur(8px);
1172
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1173
+ }
1174
+
1175
+ .mermaid-fullscreen-title {
1176
+ color: white;
1177
+ font-size: var(--text-lg);
1178
+ font-weight: var(--font-semibold);
1179
+ }
1180
+
1181
+ .mermaid-fullscreen-controls {
1182
+ display: flex;
1183
+ gap: var(--space-4);
1184
+ align-items: center;
1185
+ }
1186
+
1187
+ .mermaid-zoom-controls {
1188
+ display: flex;
1189
+ gap: var(--space-2);
1190
+ align-items: center;
1191
+ }
1192
+
1193
+ .mermaid-zoom-btn {
1194
+ padding: var(--space-2);
1195
+ border: 1px solid rgba(255, 255, 255, 0.3);
1196
+ border-radius: var(--radius-md);
1197
+ background: rgba(255, 255, 255, 0.1);
1198
+ color: white;
1199
+ cursor: pointer;
1200
+ transition: all var(--duration-fast);
1201
+ display: flex;
1202
+ align-items: center;
1203
+ justify-content: center;
1204
+ width: var(--space-10);
1205
+ height: var(--space-10);
1206
+ }
1207
+
1208
+ .mermaid-zoom-btn:hover {
1209
+ background: rgba(255, 255, 255, 0.2);
1210
+ border-color: rgba(255, 255, 255, 0.5);
1211
+ }
1212
+
1213
+ .mermaid-zoom-level {
1214
+ color: white;
1215
+ font-size: var(--text-sm);
1216
+ min-width: 3rem;
1217
+ text-align: center;
1218
+ font-weight: var(--font-medium);
1219
+ }
1220
+
1221
+ .mermaid-close-btn {
1222
+ padding: var(--space-2) var(--space-4);
1223
+ border: 1px solid rgba(255, 255, 255, 0.3);
1224
+ border-radius: var(--radius-md);
1225
+ background: rgba(255, 255, 255, 0.1);
1226
+ color: white;
1227
+ cursor: pointer;
1228
+ transition: all var(--duration-fast);
1229
+ display: flex;
1230
+ align-items: center;
1231
+ gap: var(--space-2);
1232
+ font-size: var(--text-sm);
1233
+ }
1234
+
1235
+ .mermaid-close-btn:hover {
1236
+ background: rgba(255, 255, 255, 0.2);
1237
+ }
1238
+
1239
+ .mermaid-fullscreen-content {
1240
+ flex: 1;
1241
+ display: flex;
1242
+ align-items: center;
1243
+ justify-content: center;
1244
+ padding: var(--space-8);
1245
+ overflow: hidden;
1246
+ }
1247
+
1248
+ .mermaid-fullscreen-wrapper {
1249
+ background: white;
1250
+ border-radius: var(--radius-lg);
1251
+ padding: var(--space-8);
1252
+ width: calc(100vw - var(--space-8));
1253
+ height: calc(100vh - 6rem);
1254
+ overflow: auto;
1255
+ box-shadow: var(--shadow-xl);
1256
+ transform-origin: center center;
1257
+ transition: transform var(--duration-normal);
1258
+ display: flex;
1259
+ align-items: center;
1260
+ justify-content: center;
1261
+ }
1262
+
1263
+ .mermaid-fullscreen-diagram {
1264
+ display: flex;
1265
+ justify-content: center;
1266
+ align-items: center;
1267
+ width: 100%;
1268
+ height: 100%;
1269
+ min-height: 400px;
1270
+ position: relative;
1271
+ }
1272
+
1273
+ .mermaid-fullscreen-diagram .mermaid {
1274
+ width: 100% !important;
1275
+ height: 100% !important;
1276
+ display: flex !important;
1277
+ justify-content: center !important;
1278
+ align-items: center !important;
1279
+ background: transparent !important;
1280
+ border: none !important;
1281
+ margin: 0 !important;
1282
+ padding: 0 !important;
1283
+ }
1284
+
1285
+ .mermaid-fullscreen-diagram svg {
1286
+ max-width: 100% !important;
1287
+ max-height: 100% !important;
1288
+ width: auto !important;
1289
+ height: auto !important;
1290
+ display: block !important;
1291
+ margin: 0 auto !important;
1292
+ }
1293
+
1294
+ /* Zoom functionality */
1295
+ .mermaid-fullscreen-wrapper.zoomed {
1296
+ overflow: visible;
1297
+ }
1298
+
1299
+ /* Animation for opening fullscreen */
1300
+ @keyframes mermaidFadeIn {
1301
+ from {
1302
+ opacity: 0;
1303
+ transform: scale(0.95);
1304
+ }
1305
+ to {
1306
+ opacity: 1;
1307
+ transform: scale(1);
1308
+ }
1309
+ }
1310
+
1311
+ .mermaid-fullscreen.active .mermaid-fullscreen-wrapper {
1312
+ animation: mermaidFadeIn var(--duration-normal) ease-out;
1313
+ }
1314
+
1315
+ /* Responsive design for Mermaid */
1316
+ @media (max-width: 768px) {
1317
+ .mermaid-toolbar {
1318
+ flex-direction: column;
1319
+ gap: var(--space-2);
1320
+ align-items: flex-start;
1321
+ padding: var(--space-3);
1322
+ }
1323
+
1324
+ .mermaid-actions {
1325
+ width: 100%;
1326
+ justify-content: flex-end;
1327
+ flex-wrap: wrap;
1328
+ }
1329
+
1330
+ .mermaid-btn {
1331
+ font-size: var(--text-xs);
1332
+ padding: var(--space-1) var(--space-2);
1333
+ }
1334
+
1335
+ .mermaid-fullscreen-toolbar {
1336
+ padding: var(--space-3);
1337
+ flex-direction: column;
1338
+ gap: var(--space-2);
1339
+ }
1340
+
1341
+ .mermaid-fullscreen-controls {
1342
+ flex-direction: column;
1343
+ gap: var(--space-2);
1344
+ }
1345
+
1346
+ .mermaid-fullscreen-content {
1347
+ padding: var(--space-4);
1348
+ }
1349
+
1350
+ .mermaid-fullscreen-wrapper {
1351
+ width: calc(100vw - var(--space-4));
1352
+ height: calc(100vh - 8rem);
1353
+ padding: var(--space-4);
1354
+ }
1355
+ }
1356
+
1357
+ /* Preview Banner */
1358
+ .preview-banner {
1359
+ position: fixed;
1360
+ top: var(--header-height);
1361
+ left: 0;
1362
+ right: 0;
1363
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
1364
+ color: white;
1365
+ z-index: 1000;
1366
+ box-shadow: var(--shadow-md);
1367
+ transition: transform var(--duration-normal), opacity var(--duration-normal);
1368
+ /* Default to hidden state to prevent flash */
1369
+ transform: translateY(-100%);
1370
+ opacity: 0;
1371
+ pointer-events: none;
1372
+ }
1373
+
1374
+ .preview-banner.visible {
1375
+ transform: translateY(0);
1376
+ opacity: 1;
1377
+ pointer-events: auto;
1378
+ }
1379
+
1380
+ .preview-banner.hidden {
1381
+ transform: translateY(-100%);
1382
+ opacity: 0;
1383
+ pointer-events: none;
1384
+ }
1385
+
1386
+ .banner-content {
1387
+ display: flex;
1388
+ align-items: center;
1389
+ justify-content: center;
1390
+ gap: var(--space-3);
1391
+ max-width: 1400px;
1392
+ margin: 0 auto;
1393
+ }
1394
+
1395
+ .banner-dismiss {
1396
+ padding: var(--space-1) var(--space-2);
1397
+ background: transparent;
1398
+ border: none;
1399
+ cursor: pointer;
1400
+ color: var(--color-accent-yellow);
1401
+ font-size: var(--text-base);
1402
+ transition: opacity var(--duration-fast) var(--easing-out);
1403
+ }
1404
+
1405
+ .banner-dismiss:hover {
1406
+ opacity: 0.7;
1407
+ }
1408
+
1409
+ /* Animations */
1410
+ @keyframes fadeIn {
1411
+ from {
1412
+ opacity: 0;
1413
+ transform: translateY(-10px);
1414
+ }
1415
+ to {
1416
+ opacity: 1;
1417
+ transform: translateY(0);
1418
+ }
1419
+ }
1420
+
1421
+ .fade-in {
1422
+ animation: fadeIn var(--duration-normal) var(--easing-out);
1423
+ }
1424
+
1425
+ /* Utility Classes */
1426
+ .text-center { text-align: center; }
1427
+ .text-right { text-align: right; }
1428
+ .text-muted { color: var(--color-text-secondary); }
1429
+ .text-small { font-size: var(--text-sm); }
1430
+ .text-large { font-size: var(--text-lg); }
1431
+ .font-mono { font-family: var(--font-mono); }
1432
+ .mt-0 { margin-top: 0; }
1433
+ .mb-0 { margin-bottom: 0; }
1434
+ .mt-4 { margin-top: var(--space-4); }
1435
+ .mb-4 { margin-bottom: var(--space-4); }
1436
+ .mt-8 { margin-top: var(--space-8); }
1437
+ .mb-8 { margin-bottom: var(--space-8); }
1438
+
1439
+ /* Table of Contents */
1440
+ .toc-container {
1441
+ background: var(--color-bg-secondary);
1442
+ border-radius: var(--radius-lg);
1443
+ padding: var(--space-6);
1444
+ margin: var(--space-6) 0;
1445
+ border: 1px solid var(--color-border-default);
1446
+ }
1447
+
1448
+ .toc-container h2 {
1449
+ font-size: var(--text-lg);
1450
+ font-weight: var(--font-semibold);
1451
+ color: var(--color-text-primary);
1452
+ margin-bottom: var(--space-4);
1453
+ padding-bottom: var(--space-2);
1454
+ border-bottom: 2px solid var(--color-divider);
1455
+ }
1456
+
1457
+ .toc-list {
1458
+ list-style: none;
1459
+ padding: 0;
1460
+ margin: 0;
1461
+ }
1462
+
1463
+ .toc-list ol,
1464
+ .toc-list ul {
1465
+ list-style: none;
1466
+ padding: 0;
1467
+ margin: 0;
1468
+ }
1469
+
1470
+ .toc-list li {
1471
+ position: relative;
1472
+ margin-bottom: 0;
1473
+ line-height: 1.4;
1474
+ }
1475
+
1476
+ .toc-list > li {
1477
+ margin-bottom: 0;
1478
+ }
1479
+
1480
+ .toc-list li::before {
1481
+ content: '';
1482
+ position: absolute;
1483
+ left: 0;
1484
+ top: 0.75em;
1485
+ width: 6px;
1486
+ height: 6px;
1487
+ background: var(--color-text-tertiary);
1488
+ border-radius: 50%;
1489
+ opacity: 0.5;
1490
+ }
1491
+
1492
+ .toc-list a {
1493
+ display: block;
1494
+ padding: 2px var(--space-2);
1495
+ padding-left: var(--space-4);
1496
+ color: var(--color-text-secondary);
1497
+ font-size: var(--text-sm);
1498
+ transition: all var(--duration-fast);
1499
+ border-radius: var(--radius-md);
1500
+ text-decoration: none;
1501
+ position: relative;
1502
+ }
1503
+
1504
+ .toc-list a:hover {
1505
+ color: var(--color-accent-blue);
1506
+ background: rgba(0, 115, 230, 0.05);
1507
+ transform: translateX(1px);
1508
+ }
1509
+
1510
+ /* Nested TOC items */
1511
+ .toc-list .toc-h2 {
1512
+ font-weight: var(--font-medium);
1513
+ }
1514
+
1515
+ .toc-list .toc-h3 {
1516
+ padding-left: calc(var(--space-4) + var(--space-6));
1517
+ font-size: var(--text-sm);
1518
+ color: var(--color-text-tertiary);
1519
+ }
1520
+
1521
+ .toc-list .toc-h3::before {
1522
+ left: var(--space-6);
1523
+ width: 4px;
1524
+ height: 4px;
1525
+ }
1526
+
1527
+ .toc-list .toc-h4 {
1528
+ padding-left: calc(var(--space-4) + var(--space-10));
1529
+ font-size: var(--text-xs);
1530
+ color: var(--color-text-tertiary);
1531
+ font-style: italic;
1532
+ }
1533
+
1534
+ .toc-list .toc-h4::before {
1535
+ left: var(--space-10);
1536
+ width: 3px;
1537
+ height: 3px;
1538
+ }
1539
+
1540
+ /* Active TOC item */
1541
+ .toc-list a.active {
1542
+ color: var(--color-accent-blue);
1543
+ background: var(--color-accent-blue-bg);
1544
+ font-weight: var(--font-medium);
1545
+ }
1546
+
1547
+ /* Number styling for ordered lists */
1548
+ .toc-list > ol {
1549
+ counter-reset: toc-counter;
1550
+ }
1551
+
1552
+ .toc-list ol > li {
1553
+ counter-increment: toc-counter;
1554
+ }
1555
+
1556
+ .toc-list ol > li::before {
1557
+ content: counter(toc-counter);
1558
+ position: absolute;
1559
+ left: 0;
1560
+ top: var(--space-1);
1561
+ width: 1.5rem;
1562
+ height: 1.5rem;
1563
+ background: var(--color-accent-blue);
1564
+ color: var(--color-text-inverse);
1565
+ border-radius: var(--radius-md);
1566
+ font-size: var(--text-xs);
1567
+ font-weight: var(--font-semibold);
1568
+ display: flex;
1569
+ align-items: center;
1570
+ justify-content: center;
1571
+ opacity: 1;
1572
+ }
1573
+
1574
+ .toc-list ol > li > a {
1575
+ padding-left: calc(var(--space-4) + var(--space-5));
1576
+ }
1577
+
1578
+ /* Dark mode adjustments */
1579
+ [data-theme="dark"] .toc-container {
1580
+ background: var(--color-bg-secondary);
1581
+ border-color: var(--color-border-default);
1582
+ }
1583
+
1584
+ [data-theme="dark"] .toc-container h2 {
1585
+ border-bottom-color: var(--color-divider);
1586
+ }
1587
+
1588
+ [data-theme="dark"] .toc-list a:hover {
1589
+ background: var(--color-bg-hover);
1590
+ }
1591
+
1592
+ /* Tooltip Styles */
1593
+ [data-tooltip] {
1594
+ position: relative;
1595
+ }
1596
+
1597
+ /* Tooltip content */
1598
+ [data-tooltip]::after {
1599
+ content: attr(data-tooltip);
1600
+ position: fixed; /* Use fixed positioning to escape overflow containers */
1601
+ left: var(--tooltip-left, 0);
1602
+ top: var(--tooltip-top, 0);
1603
+ transform: translateY(-50%);
1604
+ background: #333;
1605
+ color: white;
1606
+ padding: 8px 12px;
1607
+ border-radius: 4px;
1608
+ font-size: 14px;
1609
+ line-height: 1.4;
1610
+ white-space: normal;
1611
+ max-width: 300px;
1612
+ z-index: 999999;
1613
+ pointer-events: none;
1614
+ opacity: 0;
1615
+ visibility: hidden;
1616
+ transition: opacity 0.3s, visibility 0.3s;
1617
+ }
1618
+
1619
+ [data-tooltip]:hover::after {
1620
+ opacity: 1;
1621
+ visibility: visible;
1622
+ }
1623
+
1624
+ /* Ensure nav items have proper stacking context */
1625
+ .nav-item[data-tooltip],
1626
+ .nav-title[data-tooltip] {
1627
+ position: relative !important;
1628
+ z-index: 1;
1629
+ }
1630
+
1631
+ .nav-item[data-tooltip]:hover,
1632
+ .nav-title[data-tooltip]:hover {
1633
+ z-index: 100000; /* Very high z-index to ensure tooltip appears above everything */
1634
+ }
1635
+
1636
+ /* Tooltip for nav titles (folders) */
1637
+ .nav-title[data-tooltip]::after {
1638
+ max-width: 350px;
1639
+ font-weight: var(--font-regular);
1640
+ }
1641
+
1642
+ /* Ensure nav sections don't clip tooltips */
1643
+ .nav-section {
1644
+ position: relative;
1645
+ overflow: visible !important;
1646
+ }
1647
+
1648
+ /* Remove forced overflow as we're using fixed positioning */
1649
+
1650
+ /* Dark mode tooltip styles */
1651
+ [data-theme="dark"] [data-tooltip]::after {
1652
+ background: var(--color-bg-secondary);
1653
+ color: var(--color-text-primary);
1654
+ border-color: var(--color-border-default);
1655
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
1656
+ }
1657
+
1658
+ [data-theme="dark"] [data-tooltip]::before {
1659
+ border-right-color: var(--color-bg-secondary);
1660
+ }
1661
+
1662
+ /* Remove custom positioning variables - tooltips always go right */
1663
+
1664
+ /* Mobile adjustments */
1665
+ @media (max-width: 768px) {
1666
+ /* Disable tooltips on mobile to prevent overlap issues */
1667
+ [data-tooltip]::before,
1668
+ [data-tooltip]::after {
1669
+ display: none;
1670
+ }
1671
+
1672
+ .main-wrapper {
1673
+ flex-direction: column;
1674
+ height: auto;
1675
+ min-height: calc(100vh - var(--header-height) - var(--breadcrumb-height));
1676
+ }
1677
+
1678
+ .sidebar {
1679
+ width: 100%;
1680
+ max-height: 250px;
1681
+ border-right: none;
1682
+ border-bottom: 1px solid var(--color-border-default);
1683
+ }
1684
+
1685
+ .content {
1686
+ padding: var(--space-4);
1687
+ }
1688
+
1689
+ .content-inner {
1690
+ max-width: none;
1691
+ }
1692
+
1693
+ .preview-banner {
1694
+ position: relative;
1695
+ top: 0;
1696
+ }
1697
+
1698
+ .breadcrumbs {
1699
+ position: relative;
1700
+ top: 0;
1701
+ }
1702
+ }
1703
+
1704
+ /* Navigation Sections */
1705
+ .nav-section {
1706
+ margin-bottom: var(--space-1);
1707
+ }
1708
+
1709
+ .nav-title {
1710
+ display: flex;
1711
+ align-items: center;
1712
+ gap: var(--space-2);
1713
+ padding: var(--space-2);
1714
+ color: var(--color-text-primary);
1715
+ text-decoration: none;
1716
+ font-size: var(--text-sm);
1717
+ font-weight: var(--font-medium);
1718
+ border-radius: var(--radius-md);
1719
+ transition: all var(--duration-fast);
1720
+ cursor: pointer;
1721
+ }
1722
+
1723
+ .nav-title:hover {
1724
+ background: var(--color-bg-hover);
1725
+ }
1726
+
1727
+ .nav-title.collapsible {
1728
+ position: relative;
1729
+ }
1730
+
1731
+ .nav-title .collapse-icon {
1732
+ transition: transform var(--duration-fast);
1733
+ color: var(--color-text-tertiary);
1734
+ font-size: var(--text-xs);
1735
+ }
1736
+
1737
+ .nav-title.expanded .collapse-icon {
1738
+ transform: rotate(90deg);
1739
+ }
1740
+
1741
+ .nav-content {
1742
+ padding-left: var(--space-4);
1743
+ overflow: hidden;
1744
+ transition: max-height var(--duration-normal), opacity var(--duration-normal);
1745
+ }
1746
+
1747
+ .nav-content.collapsed {
1748
+ max-height: 0;
1749
+ opacity: 0;
1750
+ pointer-events: none;
1751
+ }
1752
+
1753
+ .nav-content:not(.collapsed) {
1754
+ max-height: 1000px;
1755
+ opacity: 1;
1756
+ }
1757
+
1758
+ /* Navigation Items */
1759
+ .nav-item {
1760
+ display: flex;
1761
+ align-items: center;
1762
+ gap: var(--space-2);
1763
+ padding: var(--space-1-5) var(--space-2);
1764
+ color: var(--color-text-secondary);
1765
+ text-decoration: none;
1766
+ font-size: var(--text-sm);
1767
+ border-radius: var(--radius-md);
1768
+ transition: all var(--duration-fast);
1769
+ margin-bottom: var(--space-0-5);
1770
+ }
1771
+
1772
+ .nav-item:hover {
1773
+ background: var(--color-bg-hover);
1774
+ color: var(--color-text-primary);
1775
+ }
1776
+
1777
+ .nav-item.active {
1778
+ background: var(--color-accent-blue-bg);
1779
+ color: var(--color-accent-blue);
1780
+ font-weight: var(--font-medium);
1781
+ }
1782
+
1783
+ .nav-item i {
1784
+ color: var(--color-text-tertiary);
1785
+ font-size: var(--text-xs);
1786
+ width: 12px;
1787
+ text-align: center;
1788
+ }
1789
+
1790
+ .nav-item.active i {
1791
+ color: var(--color-accent-blue);
1792
+ }
1793
+
1794
+ /* Authentication Pages */
1795
+ .auth-container {
1796
+ display: flex;
1797
+ align-items: center;
1798
+ justify-content: center;
1799
+ min-height: 100vh;
1800
+ background: var(--color-bg-primary);
1801
+ padding: var(--space-4);
1802
+ }
1803
+
1804
+ .auth-box {
1805
+ background: var(--color-bg-secondary);
1806
+ border: 1px solid var(--color-border-default);
1807
+ border-radius: var(--radius-lg);
1808
+ padding: var(--space-8);
1809
+ width: 100%;
1810
+ max-width: 400px;
1811
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
1812
+ }
1813
+
1814
+ .auth-box h1 {
1815
+ margin: 0 0 var(--space-6) 0;
1816
+ font-size: var(--text-2xl);
1817
+ font-weight: var(--font-semibold);
1818
+ color: var(--color-text-primary);
1819
+ text-align: center;
1820
+ }
1821
+
1822
+ .auth-box p {
1823
+ color: var(--color-text-secondary);
1824
+ text-align: center;
1825
+ margin-bottom: var(--space-4);
1826
+ }
1827
+
1828
+ .form-group {
1829
+ margin-bottom: var(--space-4);
1830
+ }
1831
+
1832
+ .form-group label {
1833
+ display: block;
1834
+ margin-bottom: var(--space-2);
1835
+ font-size: var(--text-sm);
1836
+ font-weight: var(--font-medium);
1837
+ color: var(--color-text-secondary);
1838
+ }
1839
+
1840
+ .form-group input {
1841
+ width: 100%;
1842
+ padding: var(--space-2) var(--space-3);
1843
+ border: 1px solid var(--color-border-default);
1844
+ border-radius: var(--radius-md);
1845
+ font-size: var(--text-base);
1846
+ background: var(--color-bg-primary);
1847
+ color: var(--color-text-primary);
1848
+ transition: all var(--duration-fast);
1849
+ }
1850
+
1851
+ .form-group input:focus {
1852
+ outline: none;
1853
+ border-color: var(--color-accent-blue);
1854
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
1855
+ }
1856
+
1857
+ .auth-button {
1858
+ width: 100%;
1859
+ padding: var(--space-2-5) var(--space-4);
1860
+ background: var(--color-accent-blue);
1861
+ color: white;
1862
+ border: none;
1863
+ border-radius: var(--radius-md);
1864
+ font-size: var(--text-base);
1865
+ font-weight: var(--font-medium);
1866
+ cursor: pointer;
1867
+ transition: all var(--duration-fast);
1868
+ text-align: center;
1869
+ text-decoration: none;
1870
+ display: inline-block;
1871
+ }
1872
+
1873
+ .auth-button:hover {
1874
+ background: #2563eb;
1875
+ transform: translateY(-1px);
1876
+ box-shadow: 0 4px 12px rgba(59, 130, 246, 0.25);
1877
+ }
1878
+
1879
+ .auth-button:active {
1880
+ transform: translateY(0);
1881
+ }
1882
+
1883
+ .error-message {
1884
+ margin-top: var(--space-4);
1885
+ padding: var(--space-3);
1886
+ background: #fef2f2;
1887
+ border: 1px solid #fee2e2;
1888
+ border-radius: var(--radius-md);
1889
+ color: #dc2626;
1890
+ font-size: var(--text-sm);
1891
+ text-align: center;
1892
+ display: none;
1893
+ }
1894
+
1895
+ .error-message:not(:empty) {
1896
+ display: block;
1897
+ }
1898
+
1899
+ /* Dark mode auth styles */
1900
+ .dark .auth-box {
1901
+ background: var(--color-bg-secondary);
1902
+ border-color: var(--color-border-default);
1903
+ }
1904
+
1905
+ .dark .form-group input {
1906
+ background: var(--color-bg-primary);
1907
+ border-color: var(--color-border-default);
1908
+ }
1909
+
1910
+ .dark .error-message {
1911
+ background: #451a1a;
1912
+ border-color: #7f1d1d;
1913
+ color: #fca5a5;
1914
+ }