@knowcode/doc-builder 1.2.3 → 1.2.5

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