@knowcode/doc-builder 1.9.30 → 1.9.31

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.
Files changed (196) hide show
  1. package/package.json +12 -2
  2. package/.claude/settings.local.json +0 -56
  3. package/CACHE-BUSTING-GUIDE.md +0 -82
  4. package/CLAUDE.md +0 -86
  5. package/CONTRIBUTING.md +0 -148
  6. package/GITHUB_SETUP.md +0 -203
  7. package/RELEASE-NOTES-1.7.5.md +0 -64
  8. package/Screenshot 2025-07-22 at 19.51.21.png +0 -0
  9. package/Screenshot 2025-07-26 at 17.06.49.png +0 -0
  10. package/add-user-clive.sql +0 -35
  11. package/add-user-lindsay-fixed.sql +0 -85
  12. package/add-user-lindsay.sql +0 -68
  13. package/add-user-pmorgan.sql +0 -35
  14. package/add-user-robbie.sql +0 -35
  15. package/add-wru-users.sql +0 -105
  16. package/debug-login.sql +0 -30
  17. package/doc-builder.config.js +0 -126
  18. package/doc-builder.config.js.backup.1753793768283 +0 -47
  19. package/doc-builder.config.js.backup.1753803964423 +0 -114
  20. package/doc-builder.config.js.backup.1753945707032 +0 -115
  21. package/doc-builder.config.js.backup.1754059241330 +0 -115
  22. package/doc-builder.config.js.backup.1754119567787 +0 -123
  23. package/doc-builder.config.js.backup.1754120048862 +0 -124
  24. package/doc-builder.config.js.backup.1754120529913 +0 -124
  25. package/doc-builder.config.js.backup.1754218469785 +0 -124
  26. package/doc-builder.config.js.backup.1754384764054 +0 -124
  27. package/doc-builder.config.js.backup.1754567425847 +0 -124
  28. package/doc-builder.config.js.backup.1754568137859 +0 -126
  29. package/doc-builder.config.js.backup.1754569388252 +0 -126
  30. package/doc-builder.config.js.backup.1754576694123 +0 -126
  31. package/doc-builder.config.js.backup.1755031374829 +0 -126
  32. package/doc-builder.config.js.backup.1755034500990 +0 -126
  33. package/doc-builder.config.js.backup.1755034809236 +0 -126
  34. package/grant-access.sql +0 -15
  35. package/html/11.png +0 -0
  36. package/html/404.html +0 -115
  37. package/html/README.html +0 -522
  38. package/html/Screenshot 2025-08-12 at 21.35.07.png +0 -0
  39. package/html/about-doc-builder.html +0 -491
  40. package/html/auth.js +0 -157
  41. package/html/claude-workflow-guide.html +0 -525
  42. package/html/css/notion-style.css +0 -2502
  43. package/html/documentation-index.html +0 -471
  44. package/html/guides/authentication-default-change.html +0 -370
  45. package/html/guides/authentication-guide.html +0 -509
  46. package/html/guides/cache-control-anti-pattern.html +0 -361
  47. package/html/guides/claude-workflow-guide.html +0 -1074
  48. package/html/guides/configuration-guide.html +0 -472
  49. package/html/guides/document-standards.html +0 -518
  50. package/html/guides/documentation-standards.html +0 -694
  51. package/html/guides/html-embedding-guide.html +0 -461
  52. package/html/guides/image-modal-guide.html +0 -515
  53. package/html/guides/next-steps-walkthrough.html +0 -638
  54. package/html/guides/phosphor-icons-guide.html +0 -584
  55. package/html/guides/private-directory-authentication-troubleshooting.html +0 -555
  56. package/html/guides/private-directory-authentication.html +0 -541
  57. package/html/guides/public-site-deployment.html +0 -431
  58. package/html/guides/search-engine-verification-guide.html +0 -542
  59. package/html/guides/seo-guide.html +0 -661
  60. package/html/guides/seo-optimization-guide.html +0 -887
  61. package/html/guides/supabase-auth-implementation-plan.html +0 -543
  62. package/html/guides/supabase-auth-integration-plan.html +0 -671
  63. package/html/guides/supabase-auth-setup-guide.html +0 -498
  64. package/html/guides/supabase-authentication-complete-guide.html +0 -866
  65. package/html/guides/troubleshooting-guide.html +0 -633
  66. package/html/guides/vercel-deployment-auth-setup.html +0 -337
  67. package/html/guides/windows-setup-guide.html +0 -859
  68. package/html/image-modal-test.html +0 -318
  69. package/html/index.html +0 -522
  70. package/html/js/auth.js +0 -157
  71. package/html/js/main.js +0 -1754
  72. package/html/launch/README.html +0 -297
  73. package/html/launch/bubble-plugin-specification.html +0 -933
  74. package/html/launch/go-to-market-strategy.html +0 -663
  75. package/html/launch/launch-announcements.html +0 -593
  76. package/html/login.html +0 -102
  77. package/html/logout.html +0 -18
  78. package/html/private/cache-control-anti-pattern.html +0 -429
  79. package/html/private/launch/README.html +0 -371
  80. package/html/private/launch/auth-cleanup-summary.html +0 -361
  81. package/html/private/launch/bubble-plugin-specification.html +0 -1007
  82. package/html/private/launch/go-to-market-strategy.html +0 -737
  83. package/html/private/launch/launch-announcements.html +0 -667
  84. package/html/private/launch/vercel-deployment-auth-setup.html +0 -417
  85. package/html/private/next-steps-walkthrough.html +0 -679
  86. package/html/private/supabase-auth-implementation-completed.html +0 -454
  87. package/html/private/supabase-auth-implementation-plan.html +0 -594
  88. package/html/private/supabase-auth-integration-plan.html +0 -704
  89. package/html/private/supabase-auth-setup-guide.html +0 -555
  90. package/html/private/test-private-doc.html +0 -302
  91. package/html/private/user-management-tooling.html +0 -601
  92. package/html/prompts/Screenshot 2025-08-02 at 08.49.55.png +0 -0
  93. package/html/prompts/beautiful-documentation-design.html +0 -784
  94. package/html/prompts/markdown-document-standards.html +0 -422
  95. package/html/prompts/project-rename-strategy-sasha-publish.html +0 -530
  96. package/html/robots.txt +0 -9
  97. package/html/sitemap.xml +0 -357
  98. package/html/test-questions/how-does-it-work%3F.html +0 -294
  99. package/html/test-questions/step-1%3A%20getting-started.html +0 -289
  100. package/html/test-questions/what-is-the-purpose.html +0 -293
  101. package/html/test-status.html +0 -281
  102. package/html/vercel-cli-setup-guide.html +0 -495
  103. package/html/vercel-first-time-setup-guide.html +0 -454
  104. package/html/vercel.json +0 -29
  105. package/html-static/11.png +0 -0
  106. package/html-static/404.html +0 -115
  107. package/html-static/README.html +0 -609
  108. package/html-static/Screenshot 2025-08-12 at 21.35.07.png +0 -0
  109. package/html-static/about-doc-builder.html +0 -578
  110. package/html-static/css/notion-style.css +0 -2502
  111. package/html-static/documentation-index.html +0 -558
  112. package/html-static/guides/authentication-default-change.html +0 -457
  113. package/html-static/guides/authentication-guide.html +0 -596
  114. package/html-static/guides/claude-workflow-guide.html +0 -1161
  115. package/html-static/guides/configuration-guide.html +0 -559
  116. package/html-static/guides/documentation-standards.html +0 -781
  117. package/html-static/guides/html-embedding-guide.html +0 -548
  118. package/html-static/guides/image-modal-guide.html +0 -602
  119. package/html-static/guides/phosphor-icons-guide.html +0 -671
  120. package/html-static/guides/private-directory-authentication-troubleshooting.html +0 -642
  121. package/html-static/guides/private-directory-authentication.html +0 -628
  122. package/html-static/guides/public-site-deployment.html +0 -518
  123. package/html-static/guides/search-engine-verification-guide.html +0 -629
  124. package/html-static/guides/seo-guide.html +0 -748
  125. package/html-static/guides/seo-optimization-guide.html +0 -974
  126. package/html-static/guides/supabase-authentication-complete-guide.html +0 -953
  127. package/html-static/guides/troubleshooting-guide.html +0 -720
  128. package/html-static/guides/windows-setup-guide.html +0 -946
  129. package/html-static/image-modal-test.html +0 -405
  130. package/html-static/index.html +0 -609
  131. package/html-static/js/main.js +0 -1754
  132. package/html-static/prompts/Screenshot 2025-08-02 at 08.49.55.png +0 -0
  133. package/html-static/prompts/beautiful-documentation-design.html +0 -871
  134. package/html-static/prompts/markdown-document-standards.html +0 -509
  135. package/html-static/prompts/project-rename-strategy-sasha-publish.html +0 -617
  136. package/html-static/robots.txt +0 -5
  137. package/html-static/sitemap.xml +0 -195
  138. package/html-static/test-questions/how-does-it-work%3F.html +0 -381
  139. package/html-static/test-questions/step-1%3A%20getting-started.html +0 -376
  140. package/html-static/test-questions/what-is-the-purpose.html +0 -380
  141. package/html-static/vercel-cli-setup-guide.html +0 -582
  142. package/html-static/vercel-first-time-setup-guide.html +0 -541
  143. package/manage-users.sql +0 -191
  144. package/migrate-to-domain-auth.sql +0 -47
  145. package/package/CACHE-BUSTING-GUIDE.md +0 -82
  146. package/package/CHANGELOG.md +0 -902
  147. package/package/README.md +0 -248
  148. package/package/assets/css/notion-style.css +0 -2211
  149. package/package/assets/js/auth.js +0 -67
  150. package/package/assets/js/main.js +0 -1565
  151. package/package/cli.js +0 -764
  152. package/package/index.js +0 -38
  153. package/package/knowcode-doc-builder-1.3.15.tgz +0 -0
  154. package/package/lib/builder.js +0 -32
  155. package/package/lib/config.js +0 -278
  156. package/package/lib/core-builder.js +0 -957
  157. package/package/lib/deploy.js +0 -497
  158. package/package/lib/dev-server.js +0 -96
  159. package/package/package.json +0 -34
  160. package/package/scripts/npx-runner.js +0 -27
  161. package/package/scripts/setup.js +0 -56
  162. package/package/test-cache-bust.sh +0 -43
  163. package/public-config.js +0 -22
  164. package/public-html/404.html +0 -115
  165. package/public-html/README.html +0 -149
  166. package/public-html/css/notion-style.css +0 -2036
  167. package/public-html/index.html +0 -149
  168. package/public-html/js/auth.js +0 -67
  169. package/public-html/js/main.js +0 -1485
  170. package/quick-test-commands.md +0 -40
  171. package/recordings/Screenshot 2025-07-24 at 18.22.01.png +0 -0
  172. package/recordings/mh-ls-22jul.txt +0 -2305
  173. package/screenshot.png +0 -0
  174. package/scripts/Screenshot 2025-07-23 at 15.39.41.png +0 -0
  175. package/setup-database-v2.sql +0 -53
  176. package/setup-database.sql +0 -41
  177. package/test-auth-config.js +0 -17
  178. package/test-cache-bust.sh +0 -43
  179. package/test-docs/README.md +0 -39
  180. package/test-html/404.html +0 -115
  181. package/test-html/README.html +0 -172
  182. package/test-html/auth.js +0 -97
  183. package/test-html/css/notion-style.css +0 -2036
  184. package/test-html/index.html +0 -172
  185. package/test-html/js/auth.js +0 -97
  186. package/test-html/js/main.js +0 -1485
  187. package/test-html/login.html +0 -102
  188. package/test-html/logout.html +0 -18
  189. package/update-domain.sql +0 -9
  190. package/user-access-view.sql +0 -49
  191. package/user-management/README.md +0 -301
  192. package/user-management/add-users.sh +0 -776
  193. package/user-management/create-user.js +0 -65
  194. package/user-management/users.txt +0 -15
  195. package/view-all-users.sql +0 -40
  196. package/wru-auth-config.js +0 -17
@@ -1,2036 +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: 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
- margin-left: calc(-1 * var(--space-8));
162
- margin-right: calc(-1 * var(--space-8));
163
- padding: 0 var(--space-8);
164
- }
165
-
166
- h2 {
167
- font-size: var(--text-2xl);
168
- margin-top: var(--space-10);
169
- margin-bottom: var(--space-5);
170
- }
171
-
172
- h3 {
173
- font-size: var(--text-xl);
174
- margin-top: var(--space-8);
175
- margin-bottom: var(--space-4);
176
- }
177
-
178
- h4 {
179
- font-size: var(--text-lg);
180
- margin-top: var(--space-6);
181
- }
182
-
183
- p {
184
- margin: 0 0 var(--space-4);
185
- color: var(--color-text-primary);
186
- }
187
-
188
- a {
189
- color: var(--color-text-link);
190
- text-decoration: none;
191
- transition: color var(--duration-fast) var(--easing-out);
192
- }
193
-
194
- a:hover {
195
- color: var(--color-text-link-hover);
196
- text-decoration: underline;
197
- }
198
-
199
- code {
200
- font-family: var(--font-mono);
201
- font-size: 0.875em;
202
- background-color: var(--color-bg-tertiary);
203
- padding: var(--space-0-5) var(--space-1);
204
- border-radius: var(--radius-sm);
205
- }
206
-
207
- pre {
208
- background-color: var(--color-bg-secondary);
209
- border: 1px solid var(--color-border-default);
210
- border-radius: var(--radius-md);
211
- padding: var(--space-4);
212
- overflow-x: auto;
213
- margin: 0 0 var(--space-4);
214
- }
215
-
216
- pre code {
217
- background: none;
218
- padding: 0;
219
- font-size: var(--text-sm);
220
- }
221
-
222
- /* Layout Components */
223
- .header {
224
- position: fixed;
225
- top: 0;
226
- left: 0;
227
- right: 0;
228
- height: var(--header-height);
229
- background: var(--color-bg-default);
230
- border-bottom: 1px solid var(--color-border-default);
231
- z-index: 1000;
232
- box-shadow: var(--shadow-xs);
233
- }
234
-
235
- .header-content {
236
- display: flex;
237
- align-items: center;
238
- justify-content: space-between;
239
- height: 100%;
240
- padding: 0 var(--space-6);
241
- max-width: 1400px;
242
- margin: 0 auto;
243
- }
244
-
245
- .logo {
246
- font-size: var(--text-lg);
247
- font-weight: var(--font-semibold);
248
- color: var(--color-text-primary);
249
- text-decoration: none;
250
- display: flex;
251
- align-items: center;
252
- gap: var(--space-2);
253
- }
254
-
255
- .logo:hover {
256
- color: var(--color-text-primary);
257
- text-decoration: none;
258
- }
259
-
260
- .header-actions {
261
- display: flex;
262
- align-items: center;
263
- gap: var(--space-4);
264
- }
265
-
266
- .deployment-info {
267
- display: flex;
268
- align-items: center;
269
- }
270
-
271
- .deployment-date {
272
- font-size: var(--text-xs);
273
- color: var(--color-text-tertiary);
274
- opacity: 0.5;
275
- font-weight: var(--font-regular);
276
- white-space: nowrap;
277
- user-select: none;
278
- transition: opacity var(--duration-fast);
279
- }
280
-
281
- .deployment-date:hover {
282
- opacity: 0.8;
283
- }
284
-
285
- /* Hide deployment info on mobile to save space */
286
- @media (max-width: 768px) {
287
- .deployment-info {
288
- display: none;
289
- }
290
- }
291
-
292
- .logout-btn {
293
- background: none;
294
- border: none;
295
- font-size: var(--text-lg);
296
- cursor: pointer;
297
- color: var(--color-text-primary);
298
- padding: var(--space-2);
299
- border-radius: var(--radius-md);
300
- transition: all var(--duration-fast);
301
- text-decoration: none;
302
- display: flex;
303
- align-items: center;
304
- justify-content: center;
305
- opacity: 0.7;
306
- }
307
-
308
- .logout-btn:hover {
309
- background: var(--color-bg-tertiary);
310
- opacity: 1;
311
- color: var(--color-accent-red);
312
- transform: translateY(-1px);
313
- }
314
-
315
- /* Sidebar */
316
- .sidebar {
317
- position: relative;
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: width var(--duration-normal), transform 0.3s ease, margin-left 0.3s ease;
323
- min-width: 200px;
324
- max-width: 500px;
325
- user-select: none;
326
- display: flex;
327
- flex-direction: column;
328
- z-index: 100;
329
- flex-shrink: 0;
330
- height: 100%;
331
- }
332
-
333
- /* Desktop sidebar closed state */
334
- @media (min-width: 769px) {
335
- .sidebar.closed {
336
- transform: translateX(-100%);
337
- margin-left: calc(var(--sidebar-width) * -1);
338
- }
339
- }
340
-
341
- /* Banner adjustment no longer needed with relative positioning */
342
-
343
-
344
- .sidebar-home-link {
345
- display: inline-flex;
346
- align-items: center;
347
- gap: var(--space-2);
348
- padding: var(--space-2) var(--space-3);
349
- color: var(--color-text-secondary);
350
- text-decoration: none;
351
- border-radius: var(--radius-base);
352
- font-size: 0.875rem;
353
- font-weight: 500;
354
- transition: all 0.2s;
355
- }
356
-
357
- .sidebar-home-link:hover {
358
- background: var(--color-bg-secondary);
359
- color: var(--color-text-primary);
360
- }
361
-
362
- .sidebar-home-link i {
363
- font-size: 1rem;
364
- }
365
-
366
- .filter-box {
367
- position: relative;
368
- }
369
-
370
- .filter-input {
371
- width: 100%;
372
- padding: var(--space-2) var(--space-3);
373
- padding-left: var(--space-8);
374
- font-size: var(--text-sm);
375
- border: 1px solid var(--color-border-default);
376
- border-radius: var(--radius-md);
377
- background: var(--color-bg-default);
378
- transition: all var(--duration-fast) var(--easing-out);
379
- outline: none;
380
- }
381
-
382
- .filter-input:hover {
383
- border-color: var(--color-border-hover);
384
- }
385
-
386
- .filter-input:focus {
387
- border-color: var(--color-border-focus);
388
- box-shadow: 0 0 0 3px rgba(35, 131, 226, 0.15);
389
- }
390
-
391
- .filter-icon {
392
- position: absolute;
393
- left: var(--space-3);
394
- top: 50%;
395
- transform: translateY(-50%);
396
- color: var(--color-text-tertiary);
397
- font-size: var(--text-sm);
398
- }
399
-
400
- /* Preview Banner */
401
- .preview-banner {
402
- background: var(--color-accent-yellow-bg);
403
- border-bottom: 1px solid var(--color-accent-yellow);
404
- color: var(--color-text-primary);
405
- padding: var(--space-2) 0;
406
- position: fixed;
407
- top: var(--header-height);
408
- left: 0;
409
- right: 0;
410
- z-index: 1000;
411
- transition: transform var(--duration-normal);
412
- }
413
-
414
- .preview-banner.hidden {
415
- transform: translateY(-100%);
416
- }
417
-
418
- .banner-content {
419
- display: flex;
420
- align-items: center;
421
- justify-content: center;
422
- gap: var(--space-2);
423
- max-width: 1400px;
424
- margin: 0 auto;
425
- padding: 0 var(--space-4);
426
- }
427
-
428
- .banner-icon {
429
- color: var(--color-accent-yellow);
430
- font-size: var(--text-sm);
431
- }
432
-
433
- .banner-text {
434
- font-size: var(--text-sm);
435
- font-weight: var(--font-medium);
436
- }
437
-
438
- .banner-dismiss {
439
- background: none;
440
- border: none;
441
- color: var(--color-text-secondary);
442
- cursor: pointer;
443
- padding: var(--space-1);
444
- margin-left: auto;
445
- border-radius: var(--radius-sm);
446
- transition: all var(--duration-fast);
447
- }
448
-
449
- .banner-dismiss:hover {
450
- background: var(--color-bg-hover);
451
- color: var(--color-text-primary);
452
- }
453
-
454
- /* Breadcrumbs - definition moved to line 888 to avoid duplication */
455
-
456
- .breadcrumb-item {
457
- display: inline-flex;
458
- align-items: center;
459
- gap: var(--space-1);
460
- color: var(--color-text-secondary);
461
- text-decoration: none;
462
- font-size: var(--text-sm);
463
- padding: var(--space-1) var(--space-2);
464
- border-radius: var(--radius-sm);
465
- transition: all var(--duration-fast);
466
- }
467
-
468
- .breadcrumb-item:hover {
469
- background: var(--color-bg-hover);
470
- color: var(--color-text-primary);
471
- }
472
-
473
- .breadcrumb-item.current {
474
- color: var(--color-text-primary);
475
- font-weight: var(--font-medium);
476
- }
477
-
478
- .breadcrumb-separator {
479
- color: var(--color-text-tertiary);
480
- font-size: var(--text-xs);
481
- margin: 0 var(--space-1);
482
- }
483
-
484
- /* Main Wrapper */
485
- .main-wrapper {
486
- display: flex;
487
- height: calc(100vh - var(--header-height) - var(--breadcrumb-height));
488
- margin-top: calc(var(--header-height) + var(--breadcrumb-height));
489
- overflow: hidden;
490
- }
491
-
492
- .main-wrapper.banner-visible {
493
- height: calc(100vh - var(--header-height) - var(--breadcrumb-height) - 3.5rem);
494
- margin-top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
495
- }
496
-
497
- .sidebar-header {
498
- padding: var(--space-3);
499
- border-bottom: 1px solid var(--color-border-default);
500
- margin-bottom: 0;
501
- }
502
-
503
-
504
- /* Navigation */
505
- .navigation {
506
- flex: 1;
507
- padding: var(--space-2);
508
- overflow-y: auto;
509
- overflow-x: visible;
510
-
511
- /* Scrollbar styling */
512
- scrollbar-width: thin;
513
- scrollbar-color: var(--color-border-default) transparent;
514
- }
515
-
516
- .resize-handle {
517
- width: 4px;
518
- background: transparent;
519
- cursor: col-resize;
520
- position: absolute;
521
- top: 0;
522
- right: 0;
523
- bottom: 0;
524
- transition: background var(--duration-fast);
525
- }
526
-
527
- .resize-handle:hover {
528
- background: var(--color-border-focus);
529
- }
530
-
531
- .navigation::-webkit-scrollbar {
532
- width: 6px;
533
- }
534
-
535
- .navigation::-webkit-scrollbar-track {
536
- background: transparent;
537
- }
538
-
539
- .navigation::-webkit-scrollbar-thumb {
540
- background: var(--color-border-default);
541
- border-radius: 3px;
542
- }
543
-
544
- .navigation::-webkit-scrollbar-thumb:hover {
545
- background: var(--color-text-tertiary);
546
- }
547
-
548
- .nav-section {
549
- margin-bottom: var(--space-0-5);
550
- }
551
-
552
- .nav-section[data-level="0"] {
553
- margin-left: 0;
554
- }
555
-
556
- .nav-section[data-level="1"] {
557
- margin-left: var(--space-4);
558
- margin-bottom: var(--space-0-5);
559
- }
560
-
561
- .nav-section[data-level="2"] {
562
- margin-left: var(--space-8);
563
- margin-bottom: var(--space-0-5);
564
- }
565
-
566
- .nav-title {
567
- display: flex;
568
- align-items: center;
569
- padding: var(--space-1-5) var(--space-3);
570
- font-size: var(--text-sm);
571
- font-weight: var(--font-medium);
572
- color: var(--color-text-secondary);
573
- cursor: pointer;
574
- border-radius: var(--radius-md);
575
- transition: all var(--duration-fast) var(--easing-out);
576
- user-select: none;
577
- }
578
-
579
- /* Indent nav titles based on their level */
580
- .nav-section[data-level="1"] .nav-title {
581
- padding-left: calc(var(--space-3) + var(--space-4));
582
- }
583
-
584
- .nav-section[data-level="2"] .nav-title {
585
- padding-left: calc(var(--space-3) + var(--space-8));
586
- }
587
-
588
- .nav-title:hover {
589
- background: var(--color-bg-hover);
590
- color: var(--color-text-primary);
591
- }
592
-
593
- .nav-title i {
594
- margin-right: var(--space-2);
595
- font-size: var(--text-sm);
596
- }
597
-
598
- .collapse-icon {
599
- margin-right: var(--space-1) !important;
600
- transition: transform var(--duration-fast) var(--easing-out);
601
- }
602
-
603
- .nav-title.expanded .collapse-icon {
604
- transform: rotate(90deg);
605
- }
606
-
607
- .nav-content {
608
- overflow: hidden;
609
- transition: all var(--duration-normal) var(--easing-out);
610
- }
611
-
612
- .nav-content.collapsed {
613
- max-height: 0;
614
- opacity: 0;
615
- }
616
-
617
- .nav-item {
618
- display: flex;
619
- align-items: center;
620
- padding: var(--space-1-5) var(--space-3);
621
- font-size: var(--text-sm);
622
- color: var(--color-text-primary);
623
- text-decoration: none;
624
- border-radius: var(--radius-md);
625
- transition: all var(--duration-fast) var(--easing-out);
626
- margin-bottom: 0;
627
- gap: var(--space-2);
628
- }
629
-
630
- /* Indent nav items based on their parent section level */
631
- .nav-section[data-level="0"] .nav-item {
632
- padding-left: calc(var(--space-3) + var(--space-6));
633
- }
634
-
635
- .nav-section[data-level="1"] .nav-item {
636
- padding-left: calc(var(--space-3) + var(--space-10));
637
- }
638
-
639
- .nav-section[data-level="2"] .nav-item {
640
- padding-left: calc(var(--space-3) + var(--space-12));
641
- }
642
-
643
- .nav-item:hover {
644
- background: var(--color-bg-hover);
645
- color: var(--color-text-primary);
646
- text-decoration: none;
647
- }
648
-
649
- .nav-item.active {
650
- background: var(--color-bg-hover);
651
- color: var(--color-text-primary);
652
- font-weight: var(--font-medium);
653
- }
654
-
655
- .nav-item i {
656
- margin-right: var(--space-2);
657
- font-size: var(--text-sm);
658
- color: var(--color-text-tertiary);
659
- }
660
-
661
- /* Main Content */
662
- .content {
663
- flex: 1;
664
- padding: 40px var(--space-8);
665
- overflow-y: auto;
666
- background: var(--color-bg-default);
667
- }
668
-
669
- .content-inner {
670
- max-width: 65rem;
671
- margin: 0 auto;
672
- }
673
-
674
- /* Tables */
675
- table {
676
- width: 100%;
677
- border-collapse: collapse;
678
- margin: var(--space-4) 0;
679
- font-size: var(--text-sm);
680
- background: var(--color-bg-default);
681
- border: 1px solid var(--color-border-default);
682
- border-radius: var(--radius-lg);
683
- overflow: hidden;
684
- }
685
-
686
- th {
687
- text-align: left;
688
- font-weight: var(--font-semibold);
689
- padding: var(--space-3) var(--space-4);
690
- background: var(--color-bg-secondary);
691
- border-bottom: 1px solid var(--color-border-default);
692
- color: var(--color-text-primary);
693
- vertical-align: top !important;
694
- }
695
-
696
- td {
697
- padding: var(--space-3) var(--space-4);
698
- border-bottom: 1px solid var(--color-border-default);
699
- color: var(--color-text-primary);
700
- vertical-align: top !important;
701
- }
702
-
703
- /* Ensure all table cell content is top-aligned */
704
- table th,
705
- table td {
706
- vertical-align: top !important;
707
- }
708
-
709
- /* Ensure nested elements in table cells don't affect alignment */
710
- table td > *,
711
- table th > * {
712
- vertical-align: top;
713
- }
714
-
715
- /* Remove top margin from first element in table cells */
716
- td > *:first-child,
717
- th > *:first-child {
718
- margin-top: 0 !important;
719
- }
720
-
721
- /* Remove bottom margin from last element in table cells */
722
- td > *:last-child,
723
- th > *:last-child {
724
- margin-bottom: 0 !important;
725
- }
726
-
727
- /* Specifically target common block elements that might be first in cells */
728
- td > h1:first-child,
729
- td > h2:first-child,
730
- td > h3:first-child,
731
- td > h4:first-child,
732
- td > h5:first-child,
733
- td > h6:first-child,
734
- td > p:first-child,
735
- td > ul:first-child,
736
- td > ol:first-child,
737
- td > blockquote:first-child,
738
- td > pre:first-child,
739
- th > h1:first-child,
740
- th > h2:first-child,
741
- th > h3:first-child,
742
- th > h4:first-child,
743
- th > h5:first-child,
744
- th > h6:first-child,
745
- th > p:first-child,
746
- th > ul:first-child,
747
- th > ol:first-child,
748
- th > blockquote:first-child,
749
- th > pre:first-child {
750
- margin-top: 0 !important;
751
- padding-top: 0 !important;
752
- }
753
-
754
- tr:last-child td {
755
- border-bottom: none;
756
- }
757
-
758
- tr:hover {
759
- background: var(--color-bg-hover);
760
- }
761
-
762
- /* Buttons */
763
- .btn {
764
- display: inline-flex;
765
- align-items: center;
766
- justify-content: center;
767
- gap: var(--space-2);
768
- padding: var(--space-2) var(--space-4);
769
- font-size: var(--text-sm);
770
- font-weight: var(--font-medium);
771
- line-height: var(--leading-tight);
772
- border-radius: var(--radius-md);
773
- border: 1px solid transparent;
774
- cursor: pointer;
775
- transition: all var(--duration-normal) var(--easing-out);
776
- outline: none;
777
- text-decoration: none;
778
- }
779
-
780
- .btn-primary {
781
- background: var(--color-primary);
782
- color: var(--color-text-inverse);
783
- border-color: var(--color-primary);
784
- }
785
-
786
- .btn-primary:hover {
787
- background: var(--color-primary-hover);
788
- border-color: var(--color-primary-hover);
789
- }
790
-
791
- .btn-secondary {
792
- background: var(--color-bg-default);
793
- color: var(--color-text-primary);
794
- border-color: var(--color-border-default);
795
- }
796
-
797
- .btn-secondary:hover {
798
- background: var(--color-bg-secondary);
799
- border-color: var(--color-border-hover);
800
- }
801
-
802
- .btn-ghost {
803
- background: transparent;
804
- color: var(--color-text-primary);
805
- border-color: transparent;
806
- }
807
-
808
- .btn-ghost:hover {
809
- background: var(--color-bg-secondary);
810
- }
811
-
812
- /* Cards */
813
- .card {
814
- background: var(--color-bg-card);
815
- border: 1px solid var(--color-border-default);
816
- border-radius: var(--radius-lg);
817
- padding: var(--space-6);
818
- margin-bottom: var(--space-4);
819
- box-shadow: var(--shadow-sm);
820
- transition: all var(--duration-normal) var(--easing-out);
821
- }
822
-
823
- .card:hover {
824
- box-shadow: var(--shadow-md);
825
- transform: translateY(-2px);
826
- }
827
-
828
- /* Badges */
829
- .badge {
830
- display: inline-flex;
831
- align-items: center;
832
- padding: var(--space-0-5) var(--space-2);
833
- font-size: var(--text-xs);
834
- font-weight: var(--font-medium);
835
- line-height: var(--leading-normal);
836
- border-radius: var(--radius-sm);
837
- background: var(--color-border-default);
838
- color: var(--color-text-primary);
839
- }
840
-
841
- .badge-primary {
842
- background: var(--color-primary);
843
- color: var(--color-text-inverse);
844
- }
845
-
846
- .badge-success {
847
- background: var(--color-accent-green-bg);
848
- color: var(--color-accent-green);
849
- }
850
-
851
- .badge-warning {
852
- background: var(--color-accent-yellow-bg);
853
- color: var(--color-accent-yellow);
854
- }
855
-
856
- .badge-danger {
857
- background: var(--color-accent-red-bg);
858
- color: var(--color-accent-red);
859
- }
860
-
861
- /* Theme Toggle */
862
- .theme-toggle {
863
- padding: var(--space-2);
864
- background: transparent;
865
- border: none;
866
- cursor: pointer;
867
- color: var(--color-text-secondary);
868
- font-size: var(--text-lg);
869
- transition: color var(--duration-fast) var(--easing-out);
870
- }
871
-
872
- .theme-toggle:hover {
873
- color: var(--color-text-primary);
874
- }
875
-
876
- /* Dark Theme */
877
- [data-theme="dark"] {
878
- --color-bg-default: #191919;
879
- --color-bg-secondary: #202020;
880
- --color-bg-tertiary: #2A2A2A;
881
- --color-bg-hover: #2A2A2A;
882
- --color-bg-card: #202020;
883
-
884
- --color-text-primary: #E6E6E6;
885
- --color-text-secondary: #ABABAB;
886
- --color-text-tertiary: #787774;
887
-
888
- --color-border-default: #373737;
889
- --color-border-hover: #474747;
890
- --color-divider: #2A2A2A;
891
-
892
- --color-shadow: rgba(0, 0, 0, 0.3);
893
- }
894
-
895
- /* Dark theme Mermaid styles */
896
- [data-theme="dark"] .mermaid-container {
897
- background: var(--color-bg-default);
898
- border-color: var(--color-border-default);
899
- }
900
-
901
- [data-theme="dark"] .mermaid-title {
902
- background: var(--color-bg-secondary);
903
- border-color: var(--color-border-default);
904
- color: var(--color-text-primary);
905
- }
906
-
907
- [data-theme="dark"] .mermaid-toolbar {
908
- background: var(--color-bg-secondary);
909
- border-color: var(--color-border-default);
910
- }
911
-
912
- [data-theme="dark"] .mermaid-btn {
913
- background: var(--color-bg-default);
914
- border-color: var(--color-border-default);
915
- color: var(--color-text-secondary);
916
- }
917
-
918
- [data-theme="dark"] .mermaid-btn:hover {
919
- background: var(--color-accent-blue);
920
- color: var(--color-text-inverse);
921
- border-color: var(--color-accent-blue);
922
- }
923
-
924
- [data-theme="dark"] .mermaid-fullscreen-wrapper {
925
- background: var(--color-bg-default);
926
- color: var(--color-text-primary);
927
- }
928
-
929
- /* Breadcrumbs */
930
- .breadcrumbs {
931
- display: flex;
932
- align-items: center;
933
- padding: 0.5rem var(--space-6);
934
- background: var(--color-bg-secondary);
935
- border-bottom: 1px solid var(--color-border-default);
936
- font-size: var(--text-sm);
937
- color: var(--color-text-secondary);
938
- position: fixed;
939
- top: var(--header-height);
940
- left: 0;
941
- right: 0;
942
- height: var(--breadcrumb-height);
943
- z-index: 900;
944
- transition: top var(--duration-normal), background-color var(--duration-normal);
945
- gap: var(--space-2);
946
- }
947
-
948
- .breadcrumbs.banner-visible {
949
- top: calc(var(--header-height) + 3.5rem);
950
- }
951
-
952
- .breadcrumbs:not(.banner-visible) {
953
- top: var(--header-height);
954
- }
955
-
956
- .breadcrumb-item {
957
- display: flex;
958
- align-items: center;
959
- gap: var(--space-1-5);
960
- color: var(--color-text-tertiary);
961
- text-decoration: none;
962
- padding: var(--space-1) var(--space-2);
963
- border-radius: var(--radius-sm);
964
- transition: all var(--duration-fast);
965
- white-space: nowrap;
966
- }
967
-
968
- .breadcrumb-item:hover:not(.current) {
969
- background: var(--color-bg-hover);
970
- color: var(--color-text-secondary);
971
- }
972
-
973
- .breadcrumb-item.current {
974
- color: var(--color-text-primary);
975
- font-weight: var(--font-medium);
976
- cursor: default;
977
- }
978
-
979
- .breadcrumb-separator {
980
- margin: 0 var(--space-1);
981
- color: var(--color-text-tertiary);
982
- font-size: var(--text-xs);
983
- opacity: 0.6;
984
- }
985
-
986
- .breadcrumb-item i {
987
- font-size: var(--text-xs);
988
- opacity: 0.8;
989
- }
990
-
991
- .breadcrumb-item.current i {
992
- opacity: 1;
993
- }
994
-
995
- /* Banner visibility handled in main breadcrumbs definition */
996
-
997
- /* Menu Toggle (Mobile) */
998
- .menu-toggle {
999
- display: none;
1000
- background: none;
1001
- border: none;
1002
- font-size: 1.5rem;
1003
- cursor: pointer;
1004
- color: var(--color-text-primary);
1005
- padding: var(--space-2);
1006
- border-radius: var(--radius-small);
1007
- transition: all var(--duration-fast) var(--easing-out);
1008
- }
1009
-
1010
- .menu-toggle:hover {
1011
- background: var(--color-bg-secondary);
1012
- color: var(--color-text-primary);
1013
- }
1014
-
1015
- /* Show menu toggle on desktop when menu starts closed or is closed */
1016
- @media (min-width: 769px) {
1017
- body.menu-starts-closed .menu-toggle {
1018
- display: block;
1019
- }
1020
- }
1021
-
1022
- /* Responsive Design */
1023
- /* Keep sidebar visible on tablets, hide only on mobile */
1024
-
1025
- @media (max-width: 768px) {
1026
- .header-content {
1027
- padding: 0 var(--space-4);
1028
- }
1029
-
1030
- /* Hide sidebar on mobile */
1031
- .sidebar {
1032
- position: fixed;
1033
- top: calc(var(--header-height) + var(--breadcrumb-height));
1034
- left: 0;
1035
- height: calc(100vh - var(--header-height) - var(--breadcrumb-height));
1036
- z-index: 1002; /* Above header and floating button */
1037
- transform: translateX(-100%);
1038
- transition: transform var(--duration-normal) var(--easing-out);
1039
- box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); /* Add shadow for depth */
1040
- }
1041
-
1042
- .sidebar.open {
1043
- transform: translateX(0);
1044
- }
1045
-
1046
- /* Mobile menu overlay */
1047
- .sidebar-overlay {
1048
- display: none;
1049
- position: fixed;
1050
- top: 0;
1051
- left: 0;
1052
- right: 0;
1053
- bottom: 0;
1054
- background: rgba(0, 0, 0, 0.5);
1055
- z-index: 1001; /* Below sidebar but above content */
1056
- opacity: 0;
1057
- transition: opacity var(--duration-normal);
1058
- }
1059
-
1060
- .sidebar-overlay.active {
1061
- display: block;
1062
- opacity: 1;
1063
- }
1064
-
1065
- .main-wrapper {
1066
- margin-left: 0;
1067
- margin-top: var(--header-height); /* Only account for fixed header on mobile */
1068
- }
1069
-
1070
- .content {
1071
- margin-left: 0;
1072
- padding: var(--space-3) var(--space-4); /* Reduced top/bottom padding on mobile */
1073
- }
1074
-
1075
- .menu-toggle {
1076
- display: block;
1077
- }
1078
- }
1079
-
1080
- /* Mermaid Diagrams */
1081
- .mermaid {
1082
- background: var(--color-bg-secondary);
1083
- padding: var(--space-4);
1084
- border-radius: var(--radius-lg);
1085
- overflow-x: auto;
1086
- margin: var(--space-2) 0;
1087
- }
1088
-
1089
- /* Mermaid Full Screen Viewer */
1090
- .mermaid-container {
1091
- position: relative;
1092
- margin: var(--space-3) 0;
1093
- border: 1px solid var(--color-border-default);
1094
- border-radius: var(--radius-lg);
1095
- overflow: hidden;
1096
- background: var(--color-bg-default);
1097
- }
1098
-
1099
- .mermaid-title {
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-base);
1104
- font-weight: var(--font-semibold);
1105
- color: var(--color-text-primary);
1106
- }
1107
-
1108
- .mermaid-toolbar {
1109
- display: flex;
1110
- justify-content: space-between;
1111
- align-items: center;
1112
- padding: var(--space-3) var(--space-4);
1113
- background: var(--color-bg-secondary);
1114
- border-bottom: 1px solid var(--color-border-default);
1115
- font-size: var(--text-sm);
1116
- color: var(--color-text-secondary);
1117
- }
1118
-
1119
- .mermaid-actions {
1120
- display: flex;
1121
- gap: var(--space-2);
1122
- }
1123
-
1124
- .mermaid-btn {
1125
- display: flex;
1126
- align-items: center;
1127
- gap: var(--space-1-5);
1128
- padding: var(--space-1-5) var(--space-3);
1129
- border: 1px solid var(--color-border-default);
1130
- border-radius: var(--radius-md);
1131
- background: var(--color-bg-default);
1132
- color: var(--color-text-secondary);
1133
- text-decoration: none;
1134
- font-size: var(--text-sm);
1135
- cursor: pointer;
1136
- transition: all var(--duration-fast);
1137
- white-space: nowrap;
1138
- }
1139
-
1140
- .mermaid-btn:hover {
1141
- background: var(--color-accent-blue);
1142
- color: var(--color-text-inverse);
1143
- border-color: var(--color-accent-blue);
1144
- transform: translateY(-1px);
1145
- box-shadow: var(--shadow-sm);
1146
- }
1147
-
1148
- .mermaid-btn i {
1149
- font-size: var(--text-xs);
1150
- flex-shrink: 0;
1151
- }
1152
-
1153
- .mermaid-wrapper {
1154
- padding: var(--space-3);
1155
- overflow: auto;
1156
- max-height: 600px;
1157
- }
1158
-
1159
- /* Full Screen Modal */
1160
- .mermaid-fullscreen {
1161
- position: fixed;
1162
- top: 0;
1163
- left: 0;
1164
- width: 100vw;
1165
- height: 100vh;
1166
- background: rgba(0, 0, 0, 0.95);
1167
- display: none;
1168
- z-index: 10000;
1169
- backdrop-filter: blur(4px);
1170
- }
1171
-
1172
- .mermaid-fullscreen.active {
1173
- display: flex;
1174
- flex-direction: column;
1175
- }
1176
-
1177
- .mermaid-fullscreen-toolbar {
1178
- display: flex;
1179
- justify-content: space-between;
1180
- align-items: center;
1181
- padding: var(--space-4) var(--space-8);
1182
- background: rgba(255, 255, 255, 0.1);
1183
- backdrop-filter: blur(8px);
1184
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1185
- }
1186
-
1187
- .mermaid-fullscreen-title {
1188
- color: white;
1189
- font-size: var(--text-lg);
1190
- font-weight: var(--font-semibold);
1191
- }
1192
-
1193
- .mermaid-fullscreen-controls {
1194
- display: flex;
1195
- gap: var(--space-4);
1196
- align-items: center;
1197
- }
1198
-
1199
- .mermaid-zoom-controls {
1200
- display: flex;
1201
- gap: var(--space-2);
1202
- align-items: center;
1203
- }
1204
-
1205
- .mermaid-zoom-btn {
1206
- padding: var(--space-2);
1207
- border: 1px solid rgba(255, 255, 255, 0.3);
1208
- border-radius: var(--radius-md);
1209
- background: rgba(255, 255, 255, 0.1);
1210
- color: white;
1211
- cursor: pointer;
1212
- transition: all var(--duration-fast);
1213
- display: flex;
1214
- align-items: center;
1215
- justify-content: center;
1216
- width: var(--space-10);
1217
- height: var(--space-10);
1218
- }
1219
-
1220
- .mermaid-zoom-btn:hover {
1221
- background: rgba(255, 255, 255, 0.2);
1222
- border-color: rgba(255, 255, 255, 0.5);
1223
- }
1224
-
1225
- .mermaid-zoom-level {
1226
- color: white;
1227
- font-size: var(--text-sm);
1228
- min-width: 3rem;
1229
- text-align: center;
1230
- font-weight: var(--font-medium);
1231
- }
1232
-
1233
- .mermaid-close-btn {
1234
- padding: var(--space-2) var(--space-4);
1235
- border: 1px solid rgba(255, 255, 255, 0.3);
1236
- border-radius: var(--radius-md);
1237
- background: rgba(255, 255, 255, 0.1);
1238
- color: white;
1239
- cursor: pointer;
1240
- transition: all var(--duration-fast);
1241
- display: flex;
1242
- align-items: center;
1243
- gap: var(--space-2);
1244
- font-size: var(--text-sm);
1245
- }
1246
-
1247
- .mermaid-close-btn:hover {
1248
- background: rgba(255, 255, 255, 0.2);
1249
- }
1250
-
1251
- .mermaid-fullscreen-content {
1252
- flex: 1;
1253
- display: flex;
1254
- align-items: center;
1255
- justify-content: center;
1256
- padding: var(--space-8);
1257
- overflow: hidden;
1258
- }
1259
-
1260
- .mermaid-fullscreen-wrapper {
1261
- background: white;
1262
- border-radius: var(--radius-lg);
1263
- padding: var(--space-8);
1264
- width: calc(100vw - var(--space-8));
1265
- height: calc(100vh - 6rem);
1266
- overflow: auto;
1267
- box-shadow: var(--shadow-xl);
1268
- transform-origin: center center;
1269
- transition: transform var(--duration-normal);
1270
- display: flex;
1271
- align-items: center;
1272
- justify-content: center;
1273
- }
1274
-
1275
- .mermaid-fullscreen-diagram {
1276
- display: flex;
1277
- justify-content: center;
1278
- align-items: center;
1279
- width: 100%;
1280
- height: 100%;
1281
- min-height: 400px;
1282
- position: relative;
1283
- }
1284
-
1285
- .mermaid-fullscreen-diagram .mermaid {
1286
- width: 100% !important;
1287
- height: 100% !important;
1288
- display: flex !important;
1289
- justify-content: center !important;
1290
- align-items: center !important;
1291
- background: transparent !important;
1292
- border: none !important;
1293
- margin: 0 !important;
1294
- padding: 0 !important;
1295
- }
1296
-
1297
- .mermaid-fullscreen-diagram svg {
1298
- max-width: 100% !important;
1299
- max-height: 100% !important;
1300
- width: auto !important;
1301
- height: auto !important;
1302
- display: block !important;
1303
- margin: 0 auto !important;
1304
- }
1305
-
1306
- /* Zoom functionality */
1307
- .mermaid-fullscreen-wrapper.zoomed {
1308
- overflow: visible;
1309
- }
1310
-
1311
- /* Animation for opening fullscreen */
1312
- @keyframes mermaidFadeIn {
1313
- from {
1314
- opacity: 0;
1315
- transform: scale(0.95);
1316
- }
1317
- to {
1318
- opacity: 1;
1319
- transform: scale(1);
1320
- }
1321
- }
1322
-
1323
- .mermaid-fullscreen.active .mermaid-fullscreen-wrapper {
1324
- animation: mermaidFadeIn var(--duration-normal) ease-out;
1325
- }
1326
-
1327
- /* Responsive design for Mermaid */
1328
- @media (max-width: 768px) {
1329
- .mermaid-toolbar {
1330
- flex-direction: column;
1331
- gap: var(--space-2);
1332
- align-items: flex-start;
1333
- padding: var(--space-3);
1334
- }
1335
-
1336
- .mermaid-actions {
1337
- width: 100%;
1338
- justify-content: flex-end;
1339
- flex-wrap: wrap;
1340
- }
1341
-
1342
- .mermaid-btn {
1343
- font-size: var(--text-xs);
1344
- padding: var(--space-1) var(--space-2);
1345
- }
1346
-
1347
- .mermaid-fullscreen-toolbar {
1348
- padding: var(--space-3);
1349
- flex-direction: column;
1350
- gap: var(--space-2);
1351
- }
1352
-
1353
- .mermaid-fullscreen-controls {
1354
- flex-direction: column;
1355
- gap: var(--space-2);
1356
- }
1357
-
1358
- .mermaid-fullscreen-content {
1359
- padding: var(--space-4);
1360
- }
1361
-
1362
- .mermaid-fullscreen-wrapper {
1363
- width: calc(100vw - var(--space-4));
1364
- height: calc(100vh - 8rem);
1365
- padding: var(--space-4);
1366
- }
1367
- }
1368
-
1369
- /* Preview Banner */
1370
- .preview-banner {
1371
- position: fixed;
1372
- top: var(--header-height);
1373
- left: 0;
1374
- right: 0;
1375
- background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
1376
- color: white;
1377
- z-index: 1000;
1378
- box-shadow: var(--shadow-md);
1379
- transition: transform var(--duration-normal), opacity var(--duration-normal);
1380
- /* Default to hidden state to prevent flash */
1381
- transform: translateY(-100%);
1382
- opacity: 0;
1383
- pointer-events: none;
1384
- }
1385
-
1386
- .preview-banner.visible {
1387
- transform: translateY(0);
1388
- opacity: 1;
1389
- pointer-events: auto;
1390
- }
1391
-
1392
- .preview-banner.hidden {
1393
- transform: translateY(-100%);
1394
- opacity: 0;
1395
- pointer-events: none;
1396
- }
1397
-
1398
- .banner-content {
1399
- display: flex;
1400
- align-items: center;
1401
- justify-content: center;
1402
- gap: var(--space-3);
1403
- max-width: 1400px;
1404
- margin: 0 auto;
1405
- }
1406
-
1407
- .banner-dismiss {
1408
- padding: var(--space-1) var(--space-2);
1409
- background: transparent;
1410
- border: none;
1411
- cursor: pointer;
1412
- color: var(--color-accent-yellow);
1413
- font-size: var(--text-base);
1414
- transition: opacity var(--duration-fast) var(--easing-out);
1415
- }
1416
-
1417
- .banner-dismiss:hover {
1418
- opacity: 0.7;
1419
- }
1420
-
1421
- /* Animations */
1422
- @keyframes fadeIn {
1423
- from {
1424
- opacity: 0;
1425
- transform: translateY(-10px);
1426
- }
1427
- to {
1428
- opacity: 1;
1429
- transform: translateY(0);
1430
- }
1431
- }
1432
-
1433
- .fade-in {
1434
- animation: fadeIn var(--duration-normal) var(--easing-out);
1435
- }
1436
-
1437
- /* Utility Classes */
1438
- .text-center { text-align: center; }
1439
- .text-right { text-align: right; }
1440
- .text-muted { color: var(--color-text-secondary); }
1441
- .text-small { font-size: var(--text-sm); }
1442
- .text-large { font-size: var(--text-lg); }
1443
- .font-mono { font-family: var(--font-mono); }
1444
- .mt-0 { margin-top: 0; }
1445
- .mb-0 { margin-bottom: 0; }
1446
- .mt-4 { margin-top: var(--space-4); }
1447
- .mb-4 { margin-bottom: var(--space-4); }
1448
- .mt-8 { margin-top: var(--space-8); }
1449
- .mb-8 { margin-bottom: var(--space-8); }
1450
-
1451
- /* Table of Contents */
1452
- .toc-container {
1453
- background: var(--color-bg-secondary);
1454
- border-radius: var(--radius-lg);
1455
- padding: var(--space-6);
1456
- margin: var(--space-6) 0;
1457
- border: 1px solid var(--color-border-default);
1458
- }
1459
-
1460
- .toc-container h2 {
1461
- font-size: var(--text-lg);
1462
- font-weight: var(--font-semibold);
1463
- color: var(--color-text-primary);
1464
- margin-bottom: var(--space-4);
1465
- padding-bottom: var(--space-2);
1466
- border-bottom: 2px solid var(--color-divider);
1467
- }
1468
-
1469
- .toc-list {
1470
- list-style: none;
1471
- padding: 0;
1472
- margin: 0;
1473
- }
1474
-
1475
- .toc-list ol,
1476
- .toc-list ul {
1477
- list-style: none;
1478
- padding: 0;
1479
- margin: 0;
1480
- }
1481
-
1482
- .toc-list li {
1483
- position: relative;
1484
- margin-bottom: 0;
1485
- line-height: 1.4;
1486
- }
1487
-
1488
- .toc-list > li {
1489
- margin-bottom: 0;
1490
- }
1491
-
1492
- .toc-list li::before {
1493
- content: '';
1494
- position: absolute;
1495
- left: 0;
1496
- top: 0.75em;
1497
- width: 6px;
1498
- height: 6px;
1499
- background: var(--color-text-tertiary);
1500
- border-radius: 50%;
1501
- opacity: 0.5;
1502
- }
1503
-
1504
- .toc-list a {
1505
- display: block;
1506
- padding: 2px var(--space-2);
1507
- padding-left: var(--space-4);
1508
- color: var(--color-text-secondary);
1509
- font-size: var(--text-sm);
1510
- transition: all var(--duration-fast);
1511
- border-radius: var(--radius-md);
1512
- text-decoration: none;
1513
- position: relative;
1514
- }
1515
-
1516
- .toc-list a:hover {
1517
- color: var(--color-accent-blue);
1518
- background: rgba(0, 115, 230, 0.05);
1519
- transform: translateX(1px);
1520
- }
1521
-
1522
- /* Nested TOC items */
1523
- .toc-list .toc-h2 {
1524
- font-weight: var(--font-medium);
1525
- }
1526
-
1527
- .toc-list .toc-h3 {
1528
- padding-left: calc(var(--space-4) + var(--space-6));
1529
- font-size: var(--text-sm);
1530
- color: var(--color-text-tertiary);
1531
- }
1532
-
1533
- .toc-list .toc-h3::before {
1534
- left: var(--space-6);
1535
- width: 4px;
1536
- height: 4px;
1537
- }
1538
-
1539
- .toc-list .toc-h4 {
1540
- padding-left: calc(var(--space-4) + var(--space-10));
1541
- font-size: var(--text-xs);
1542
- color: var(--color-text-tertiary);
1543
- font-style: italic;
1544
- }
1545
-
1546
- .toc-list .toc-h4::before {
1547
- left: var(--space-10);
1548
- width: 3px;
1549
- height: 3px;
1550
- }
1551
-
1552
- /* Active TOC item */
1553
- .toc-list a.active {
1554
- color: var(--color-accent-blue);
1555
- background: var(--color-accent-blue-bg);
1556
- font-weight: var(--font-medium);
1557
- }
1558
-
1559
- /* Number styling for ordered lists */
1560
- .toc-list > ol {
1561
- counter-reset: toc-counter;
1562
- }
1563
-
1564
- .toc-list ol > li {
1565
- counter-increment: toc-counter;
1566
- }
1567
-
1568
- .toc-list ol > li::before {
1569
- content: counter(toc-counter);
1570
- position: absolute;
1571
- left: 0;
1572
- top: var(--space-1);
1573
- width: 1.5rem;
1574
- height: 1.5rem;
1575
- background: var(--color-accent-blue);
1576
- color: var(--color-text-inverse);
1577
- border-radius: var(--radius-md);
1578
- font-size: var(--text-xs);
1579
- font-weight: var(--font-semibold);
1580
- display: flex;
1581
- align-items: center;
1582
- justify-content: center;
1583
- opacity: 1;
1584
- }
1585
-
1586
- .toc-list ol > li > a {
1587
- padding-left: calc(var(--space-4) + var(--space-5));
1588
- }
1589
-
1590
- /* Dark mode adjustments */
1591
- [data-theme="dark"] .toc-container {
1592
- background: var(--color-bg-secondary);
1593
- border-color: var(--color-border-default);
1594
- }
1595
-
1596
- [data-theme="dark"] .toc-container h2 {
1597
- border-bottom-color: var(--color-divider);
1598
- }
1599
-
1600
- [data-theme="dark"] .toc-list a:hover {
1601
- background: var(--color-bg-hover);
1602
- }
1603
-
1604
- /* Tooltip Styles */
1605
- [data-tooltip] {
1606
- position: relative;
1607
- }
1608
-
1609
- /* Tooltip content */
1610
- [data-tooltip]::after {
1611
- content: attr(data-tooltip);
1612
- position: fixed; /* Use fixed positioning to escape overflow containers */
1613
- left: var(--tooltip-left, 0);
1614
- top: var(--tooltip-top, 0);
1615
- transform: translateY(-50%);
1616
- background: #333;
1617
- color: white;
1618
- padding: 8px 12px;
1619
- border-radius: 4px;
1620
- font-size: 14px;
1621
- line-height: 1.4;
1622
- white-space: normal;
1623
- max-width: 300px;
1624
- z-index: 999999;
1625
- pointer-events: none;
1626
- opacity: 0;
1627
- visibility: hidden;
1628
- transition: opacity 0.3s, visibility 0.3s;
1629
- }
1630
-
1631
- [data-tooltip]:hover::after {
1632
- opacity: 1;
1633
- visibility: visible;
1634
- }
1635
-
1636
- /* Ensure nav items have proper stacking context */
1637
- .nav-item[data-tooltip],
1638
- .nav-title[data-tooltip] {
1639
- position: relative !important;
1640
- z-index: 1;
1641
- }
1642
-
1643
- .nav-item[data-tooltip]:hover,
1644
- .nav-title[data-tooltip]:hover {
1645
- z-index: 100000; /* Very high z-index to ensure tooltip appears above everything */
1646
- }
1647
-
1648
- /* Tooltip for nav titles (folders) */
1649
- .nav-title[data-tooltip]::after {
1650
- max-width: 350px;
1651
- font-weight: var(--font-regular);
1652
- }
1653
-
1654
- /* Ensure nav sections don't clip tooltips */
1655
- .nav-section {
1656
- position: relative;
1657
- overflow: visible !important;
1658
- }
1659
-
1660
- /* Remove forced overflow as we're using fixed positioning */
1661
-
1662
- /* Dark mode tooltip styles */
1663
- [data-theme="dark"] [data-tooltip]::after {
1664
- background: var(--color-bg-secondary);
1665
- color: var(--color-text-primary);
1666
- border-color: var(--color-border-default);
1667
- box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
1668
- }
1669
-
1670
- [data-theme="dark"] [data-tooltip]::before {
1671
- border-right-color: var(--color-bg-secondary);
1672
- }
1673
-
1674
- /* Remove custom positioning variables - tooltips always go right */
1675
-
1676
- /* Floating Menu Button */
1677
- .floating-menu-toggle {
1678
- position: fixed;
1679
- bottom: var(--space-6);
1680
- right: var(--space-6);
1681
- width: 56px;
1682
- height: 56px;
1683
- border-radius: 50%;
1684
- background: var(--color-accent-blue);
1685
- color: white;
1686
- border: none;
1687
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
1688
- display: flex;
1689
- align-items: center;
1690
- justify-content: center;
1691
- font-size: 1.25rem;
1692
- cursor: pointer;
1693
- z-index: 1001; /* Above sidebar */
1694
- opacity: 0;
1695
- transform: scale(0.8) translateY(20px);
1696
- transition: all var(--duration-normal) var(--easing-out);
1697
- -webkit-tap-highlight-color: transparent;
1698
- }
1699
-
1700
- .floating-menu-toggle.visible {
1701
- opacity: 1;
1702
- transform: scale(1) translateY(0);
1703
- }
1704
-
1705
- .floating-menu-toggle:hover {
1706
- transform: scale(1.1) translateY(0);
1707
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.15);
1708
- }
1709
-
1710
- .floating-menu-toggle:active {
1711
- transform: scale(0.95) translateY(0);
1712
- }
1713
-
1714
- .floating-menu-toggle i {
1715
- transition: transform var(--duration-fast) var(--easing-out);
1716
- }
1717
-
1718
- .floating-menu-toggle:hover i {
1719
- transform: rotate(90deg);
1720
- }
1721
-
1722
- /* Dark mode styles for floating button */
1723
- .dark-mode .floating-menu-toggle {
1724
- background: var(--color-accent-blue);
1725
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
1726
- }
1727
-
1728
- .dark-mode .floating-menu-toggle:hover {
1729
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 3px 6px rgba(0, 0, 0, 0.3);
1730
- }
1731
-
1732
- /* Mobile adjustments */
1733
- @media (max-width: 768px) {
1734
- /* Disable tooltips on mobile to prevent overlap issues */
1735
- [data-tooltip]::before,
1736
- [data-tooltip]::after {
1737
- display: none;
1738
- }
1739
-
1740
- .main-wrapper {
1741
- flex-direction: column;
1742
- height: auto;
1743
- min-height: calc(100vh - var(--header-height) - var(--breadcrumb-height));
1744
- margin-top: calc(var(--header-height) + var(--breadcrumb-height)); /* Account for both fixed elements */
1745
- }
1746
-
1747
- /* Sidebar positioning handled in earlier media query */
1748
-
1749
- .content {
1750
- padding: var(--space-3) var(--space-4); /* Consistent reduced padding on mobile */
1751
- }
1752
-
1753
- .content-inner {
1754
- max-width: none;
1755
- }
1756
-
1757
- h1 {
1758
- margin-left: calc(-1 * var(--space-4));
1759
- margin-right: calc(-1 * var(--space-4));
1760
- padding: 0 var(--space-4);
1761
- }
1762
-
1763
- /* Keep preview banner fixed on mobile */
1764
-
1765
- /* Keep breadcrumbs fixed on mobile to prevent double spacing */
1766
- }
1767
-
1768
- /* Navigation Sections */
1769
- .nav-section {
1770
- margin-bottom: var(--space-1);
1771
- }
1772
-
1773
- .nav-title {
1774
- display: flex;
1775
- align-items: center;
1776
- gap: var(--space-2);
1777
- padding: var(--space-2);
1778
- color: var(--color-text-primary);
1779
- text-decoration: none;
1780
- font-size: var(--text-sm);
1781
- font-weight: var(--font-medium);
1782
- border-radius: var(--radius-md);
1783
- transition: all var(--duration-fast);
1784
- cursor: pointer;
1785
- }
1786
-
1787
- .nav-title:hover {
1788
- background: var(--color-bg-hover);
1789
- }
1790
-
1791
- .nav-title.collapsible {
1792
- position: relative;
1793
- }
1794
-
1795
- .nav-title .collapse-icon {
1796
- transition: transform var(--duration-fast);
1797
- color: var(--color-text-tertiary);
1798
- font-size: var(--text-xs);
1799
- }
1800
-
1801
- .nav-title.expanded .collapse-icon {
1802
- transform: rotate(90deg);
1803
- }
1804
-
1805
- .nav-content {
1806
- padding-left: var(--space-4);
1807
- overflow: hidden;
1808
- transition: max-height var(--duration-normal), opacity var(--duration-normal);
1809
- }
1810
-
1811
- .nav-content.collapsed {
1812
- max-height: 0;
1813
- opacity: 0;
1814
- pointer-events: none;
1815
- }
1816
-
1817
- .nav-content:not(.collapsed) {
1818
- max-height: 1000px;
1819
- opacity: 1;
1820
- }
1821
-
1822
- /* Navigation Items */
1823
- .nav-item {
1824
- display: flex;
1825
- align-items: center;
1826
- gap: var(--space-2);
1827
- padding: var(--space-1-5) var(--space-2);
1828
- color: var(--color-text-secondary);
1829
- text-decoration: none;
1830
- font-size: var(--text-sm);
1831
- border-radius: var(--radius-md);
1832
- transition: all var(--duration-fast);
1833
- margin-bottom: var(--space-0-5);
1834
- }
1835
-
1836
- .nav-item:hover {
1837
- background: var(--color-bg-hover);
1838
- color: var(--color-text-primary);
1839
- }
1840
-
1841
- .nav-item.active {
1842
- background: var(--color-accent-blue-bg);
1843
- color: var(--color-accent-blue);
1844
- font-weight: var(--font-medium);
1845
- }
1846
-
1847
- .nav-item i {
1848
- color: var(--color-text-tertiary);
1849
- font-size: var(--text-xs);
1850
- width: 12px;
1851
- text-align: center;
1852
- }
1853
-
1854
- .nav-item.active i {
1855
- color: var(--color-accent-blue);
1856
- }
1857
-
1858
- /* Authentication Pages */
1859
- .auth-container {
1860
- display: flex;
1861
- align-items: center;
1862
- justify-content: center;
1863
- min-height: 100vh;
1864
- background: var(--color-bg-primary);
1865
- padding: var(--space-4);
1866
- }
1867
-
1868
- .auth-box {
1869
- background: var(--color-bg-secondary);
1870
- border: 1px solid var(--color-border-default);
1871
- border-radius: var(--radius-lg);
1872
- padding: var(--space-8);
1873
- width: 100%;
1874
- max-width: 400px;
1875
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
1876
- }
1877
-
1878
- .auth-box h1 {
1879
- margin: 0 0 var(--space-6) 0;
1880
- font-size: var(--text-2xl);
1881
- font-weight: var(--font-semibold);
1882
- color: var(--color-text-primary);
1883
- text-align: center;
1884
- }
1885
-
1886
- .auth-box p {
1887
- color: var(--color-text-secondary);
1888
- text-align: center;
1889
- margin-bottom: var(--space-4);
1890
- }
1891
-
1892
- .form-group {
1893
- margin-bottom: var(--space-4);
1894
- }
1895
-
1896
- .form-group label {
1897
- display: block;
1898
- margin-bottom: var(--space-2);
1899
- font-size: var(--text-sm);
1900
- font-weight: var(--font-medium);
1901
- color: var(--color-text-secondary);
1902
- }
1903
-
1904
- .form-group input {
1905
- width: 100%;
1906
- padding: var(--space-2) var(--space-3);
1907
- border: 1px solid var(--color-border-default);
1908
- border-radius: var(--radius-md);
1909
- font-size: var(--text-base);
1910
- background: var(--color-bg-primary);
1911
- color: var(--color-text-primary);
1912
- transition: all var(--duration-fast);
1913
- }
1914
-
1915
- .form-group input:focus {
1916
- outline: none;
1917
- border-color: var(--color-accent-blue);
1918
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
1919
- }
1920
-
1921
- .auth-button {
1922
- width: 100%;
1923
- padding: var(--space-2-5) var(--space-4);
1924
- background: var(--color-accent-blue);
1925
- color: white;
1926
- border: none;
1927
- border-radius: var(--radius-md);
1928
- font-size: var(--text-base);
1929
- font-weight: var(--font-medium);
1930
- cursor: pointer;
1931
- transition: all var(--duration-fast);
1932
- text-align: center;
1933
- text-decoration: none;
1934
- display: inline-block;
1935
- }
1936
-
1937
- .auth-button:hover {
1938
- background: #2563eb;
1939
- transform: translateY(-1px);
1940
- box-shadow: 0 4px 12px rgba(59, 130, 246, 0.25);
1941
- }
1942
-
1943
- .auth-button:active {
1944
- transform: translateY(0);
1945
- }
1946
-
1947
- .error-message {
1948
- margin-top: var(--space-4);
1949
- padding: var(--space-3);
1950
- background: #fef2f2;
1951
- border: 1px solid #fee2e2;
1952
- border-radius: var(--radius-md);
1953
- color: #dc2626;
1954
- font-size: var(--text-sm);
1955
- text-align: center;
1956
- display: none;
1957
- }
1958
-
1959
- .error-message:not(:empty) {
1960
- display: block;
1961
- }
1962
-
1963
- /* Dark mode auth styles */
1964
- .dark .auth-box {
1965
- background: var(--color-bg-secondary);
1966
- border-color: var(--color-border-default);
1967
- }
1968
-
1969
- .dark .form-group input {
1970
- background: var(--color-bg-primary);
1971
- border-color: var(--color-border-default);
1972
- }
1973
-
1974
- .dark .error-message {
1975
- background: #451a1a;
1976
- border-color: #7f1d1d;
1977
- color: #fca5a5;
1978
- }
1979
-
1980
- /* Phosphor Icons Alignment */
1981
- .ph {
1982
- display: inline-block;
1983
- vertical-align: middle;
1984
- line-height: 1;
1985
- position: relative;
1986
- top: -0.05em; /* Slight upward adjustment for better baseline alignment */
1987
- }
1988
-
1989
- /* Ensure icons in headings are properly aligned */
1990
- h1 .ph, h2 .ph, h3 .ph, h4 .ph, h5 .ph, h6 .ph {
1991
- font-size: 0.85em; /* Slightly smaller in headings */
1992
- line-height: 1;
1993
- top: -0.05em;
1994
- }
1995
-
1996
- /* Icons in lists need special handling */
1997
- li .ph {
1998
- margin-right: 0.3em;
1999
- font-size: 1.1em;
2000
- line-height: 1;
2001
- vertical-align: middle;
2002
- top: -0.05em;
2003
- }
2004
-
2005
- /* Icons in tables */
2006
- td .ph, th .ph {
2007
- line-height: 1;
2008
- vertical-align: middle;
2009
- top: -0.05em;
2010
- }
2011
-
2012
- /* Icons in navigation */
2013
- .nav-item .ph,
2014
- .nav-title .ph {
2015
- vertical-align: middle;
2016
- line-height: 1;
2017
- top: 0; /* Navigation items are flex, so no adjustment needed */
2018
- }
2019
-
2020
- /* Icon size adjustments for better visual balance */
2021
- .content p .ph {
2022
- font-size: 1.1em; /* Slightly larger than text for visual balance */
2023
- }
2024
-
2025
- /* Special handling for inline code with icons */
2026
- code .ph {
2027
- font-size: 0.9em;
2028
- vertical-align: middle;
2029
- line-height: 1;
2030
- top: 0;
2031
- }
2032
-
2033
- /* Additional fine-tuning for specific contexts */
2034
- .content-inner .ph {
2035
- /* Remove the transform as we're now using consistent vertical-align: middle */
2036
- }