@knowcode/doc-builder 1.4.7 → 1.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1914 +0,0 @@
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
- }