aradhyapavan commited on
Commit
8436de6
·
verified ·
1 Parent(s): 0eb7bb0

Markdown Editor

Browse files
Files changed (1) hide show
  1. static/style.css +16 -414
static/style.css CHANGED
@@ -1,414 +1,16 @@
1
- /* General */
2
- :root {
3
- --bg: #0f172a; /* slate-900 */
4
- --panel: #0b1220; /* deep card */
5
- --panel-contrast: #0b1220f5;
6
- --text: #e2e8f0; /* slate-200 */
7
- --muted: #94a3b8; /* slate-400 */
8
- --border: #1f2937; /* slate-800 */
9
- --accent: #3b82f6; /* blue-500 */
10
- --code-bg: #0b1220;
11
- --code-border: #1f2937;
12
- --blockquote-bg: rgba(255,255,255,0.03);
13
- --toolbar-icon: #e5e7eb; /* brighter by default in dark */
14
- --toolbar-icon-active: #ffffff; /* bright for active/hover */
15
- --toolbar-bg: var(--panel);
16
- --toolbar-hover: rgba(255,255,255,0.06);
17
- --toolbar-shadow: 0 2px 8px rgba(0,0,0,.25);
18
- }
19
- .light {
20
- --bg: #f6f8fa;
21
- --panel: #ffffff;
22
- --panel-contrast: #ffffffcc;
23
- --text: #24292f;
24
- --muted: #6b7280;
25
- --border: #d0d7de;
26
- --accent: #2563eb;
27
- --code-bg: #f6f8fa;
28
- --code-border: #d0d7de;
29
- --blockquote-bg: #f8fafc;
30
- --toolbar-icon: #1f2937; /* darker for light bg */
31
- --toolbar-icon-active: #111827;
32
- --toolbar-bg: #ffffff;
33
- --toolbar-hover: rgba(0,0,0,0.06);
34
- --toolbar-shadow: 0 2px 10px rgba(0,0,0,.08);
35
- }
36
- html, body { height: 100%; }
37
- body {
38
- background: radial-gradient(1200px 800px at 10% -10%, #1f2937 0%, var(--bg) 40%),
39
- radial-gradient(800px 600px at 110% 10%, #0b1220 0%, var(--bg) 50%);
40
- color: var(--text);
41
- font-family: 'Inter', 'Roboto', 'Segoe UI', Arial, sans-serif;
42
- }
43
- .light body { background: var(--bg); }
44
-
45
- /* Editor and preview */
46
- #preview { background: transparent; }
47
-
48
- .EasyMDEContainer { height: 100%; display: flex; flex-direction: column; }
49
- .EasyMDEContainer .CodeMirror { flex: 1 1 auto; height: 100% !important; font-size: 0.98rem; background: var(--panel); color: var(--text); }
50
- /* Enhanced toolbar layout for consistent alignment */
51
- .editor-toolbar {
52
- background: var(--toolbar-bg);
53
- border-color: var(--border) !important;
54
- border-radius: 12px 12px 0 0;
55
- box-shadow: var(--toolbar-shadow);
56
- padding: 6px 8px;
57
- line-height: 1; /* prevent baseline drift */
58
- }
59
- .editor-toolbar a {
60
- color: var(--toolbar-icon) !important;
61
- display: inline-flex !important;
62
- align-items: center !important;
63
- justify-content: center !important;
64
- height: 34px !important;
65
- min-width: 34px !important;
66
- padding: 0 8px !important;
67
- margin: 2px 3px !important;
68
- border-radius: 8px !important;
69
- transition: background .15s ease, color .15s ease, transform .05s ease;
70
- font-size: 1.05rem !important;
71
- }
72
- .editor-toolbar a:hover, .editor-toolbar a.active {
73
- color: var(--toolbar-icon-active) !important;
74
- background: var(--toolbar-hover) !important;
75
- }
76
- /* Ensure all icon glyphs inherit the color (FA4 + FA6 + SVGs) */
77
- .editor-toolbar .fa, .editor-toolbar .fa:before,
78
- .editor-toolbar svg { color: inherit !important; fill: currentColor !important; }
79
- .editor-toolbar i.separator { border-color: var(--border) !important; opacity: .7; margin: 0 6px !important; }
80
- .CodeMirror-cursor { border-left: 2px solid var(--accent) !important; }
81
- .CodeMirror-gutters { background: var(--panel); border-right: 1px solid var(--border); }
82
- .cm-s-default .CodeMirror-linenumber { color: var(--muted); }
83
-
84
- /* Make the separators visible in dark */
85
- .editor-toolbar i.separator { border-color: var(--border) !important; opacity: .7; }
86
- /* Ensure FA4 icons inherit color properly */
87
- .editor-toolbar .fa, .editor-toolbar .fa:before { color: inherit; }
88
- /* make icons aligned */
89
- .editor-toolbar .fa { width: 18px; text-align: center; }
90
-
91
- .navbar .nav-link, .navbar-brand { color: inherit; }
92
- .navbar .dropdown-item i { width: 1.25rem; }
93
- /* Ensure brand has correct color in dark mode and on hover */
94
- .dark .navbar .navbar-brand { color: #e5e7eb !important; }
95
- .dark .navbar .navbar-brand:hover { color: #ffffff !important; background: transparent !important; }
96
-
97
- /* Markdown content */
98
- .markdown-body { max-width: 100%; color: var(--text); line-height: 1.7; }
99
- .markdown-body h1, .markdown-body h2, .markdown-body h3,
100
- .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: var(--text); margin-top: 1.25rem; font-weight: 700; }
101
- .markdown-body p, .markdown-body li { color: var(--text); }
102
- .markdown-body a { color: var(--accent); text-decoration: none; }
103
- .markdown-body a:hover { text-decoration: underline; }
104
- .markdown-body hr { border: 0; border-top: 1px solid var(--border); margin: 1.25rem 0; }
105
- .markdown-body blockquote { border-left: 4px solid var(--border); padding: .5rem 1rem; color: var(--muted); background: var(--blockquote-bg); }
106
- .markdown-body pre, .markdown-body code { background: var(--code-bg); border: 1px solid var(--code-border); color: var(--text); }
107
- .markdown-body pre { padding: .75rem; border-radius: 8px; overflow: auto; }
108
- .markdown-body table { border-collapse: collapse; width: 100%; background: var(--panel); }
109
- /* Stronger specificity to override Bootstrap's .table */
110
- .markdown-body table th, .markdown-body table td { border: 1px solid var(--border); padding: .6rem .8rem; color: var(--text) !important; opacity: 1 !important; }
111
- .markdown-body table thead th { color: var(--text) !important; }
112
- .markdown-body table tbody td { color: var(--text) !important; }
113
- .markdown-body table tr, .markdown-body table td, .markdown-body table th { filter: none !important; }
114
- .markdown-body table th { background: #1b2433; color: #e2e8f0 !important; font-weight: 600; }
115
- /* Dark mode body cell backgrounds for contrast */
116
- .markdown-body table td { background: rgba(255,255,255,0.065); }
117
- .markdown-body tr:nth-child(even) td { background: rgba(255,255,255,0.06); }
118
- .markdown-body tr:hover td { background: rgba(59,130,246,0.12); }
119
- .light .markdown-body th { background: #f0f3f6; color: #24292f; }
120
- .light .markdown-body tr:nth-child(even) td { background: #fafbfc; }
121
- #preview img { max-width: 100%; height: auto; }
122
-
123
- /* Hard overrides for dark-mode table inside preview to defeat any framework table styles */
124
- .dark #preview .markdown-body table { background: var(--panel) !important; border-color: var(--border) !important; }
125
- .dark #preview .markdown-body table td,
126
- .dark #preview .markdown-body table th {
127
- color: var(--text) !important;
128
- border-color: var(--border) !important;
129
- opacity: 1 !important;
130
- filter: none !important;
131
- }
132
- .dark #preview .markdown-body table td { background-color: rgba(255,255,255,0.07) !important; }
133
- .dark #preview .markdown-body tr:nth-child(even) td { background-color: rgba(255,255,255,0.1) !important; }
134
- .dark #preview .markdown-body tr:hover td { background-color: rgba(59,130,246,0.18) !important; }
135
-
136
- /* Force bright text for all table content in dark mode */
137
- .dark .markdown-body table,
138
- .dark .markdown-body table * {
139
- color: var(--text) !important;
140
- opacity: 1 !important;
141
- }
142
- /* Extra specificity for body cells and their content */
143
- .dark .markdown-body table td,
144
- .dark .markdown-body table td * { color: var(--text) !important; }
145
- /* Max specificity hammer for stubborn overrides */
146
- .dark #preview .markdown-body table tbody td,
147
- .dark #preview .markdown-body table tbody td * {
148
- color: #e5e7eb !important;
149
- opacity: 1 !important;
150
- }
151
-
152
- /* Utility */
153
- button.nav-link { cursor: pointer; }
154
-
155
- /* Modern shell */
156
- .app-header {
157
- backdrop-filter: blur(12px);
158
- background: linear-gradient(180deg, var(--panel-contrast), transparent);
159
- border-bottom: 1px solid var(--border);
160
- }
161
- .modal-open .app-header { backdrop-filter: none !important; background: var(--panel) !important; }
162
- .app-shell { min-height: calc(100vh - 64px); }
163
- .pane { display: flex; flex-direction: column; min-width: 0; }
164
- .card-pane {
165
- background: linear-gradient(180deg, var(--panel), var(--panel));
166
- border: 1px solid var(--border);
167
- border-radius: 14px;
168
- box-shadow: 0 10px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.02);
169
- }
170
- .light .card-pane { box-shadow: 0 10px 24px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.6); }
171
- .pane-header {
172
- padding: .75rem 1rem;
173
- border-bottom: 1px solid var(--border);
174
- color: var(--text);
175
- }
176
- .pane-header .text-muted { color: var(--muted) !important; }
177
-
178
- /* List group harmonization in modal */
179
- .list-group-item { background: var(--panel); color: var(--text); border-color: var(--border); }
180
- .modal-content.bg-body { background: var(--panel); color: var(--text); border-color: var(--border); }
181
-
182
- /* Theme toggle */
183
- .form-switch .form-check-input { cursor: pointer; }
184
-
185
- /* Slightly lighter CodeMirror caret & line-height for readability */
186
- .EasyMDEContainer .CodeMirror { line-height: 1.55; }
187
-
188
- /* Toolbar can wrap into multiple rows (left-aligned) */
189
- .editor-toolbar {
190
- display: flex !important;
191
- flex-wrap: wrap !important; /* allow wrapping */
192
- align-items: center !important;
193
- white-space: normal !important;
194
- overflow: visible !important; /* no horizontal scrollbar */
195
- text-align: left !important;
196
- gap: 2px 4px; /* spacing between rows/items */
197
- }
198
- .editor-toolbar a, .editor-toolbar i.separator {
199
- display: inline-flex !important;
200
- flex: 0 0 auto !important;
201
- vertical-align: middle !important;
202
- }
203
- /* Keep table icon aligned */
204
- .editor-toolbar .fa-table { line-height: 1 !important; font-size: 1.05rem !important; }
205
-
206
- /* Fix Bootstrap conflict: EasyMDE 'table' toolbar button should not take full width */
207
- .editor-toolbar a.table,
208
- .editor-toolbar button.table {
209
- display: inline-flex !important;
210
- width: auto !important;
211
- min-width: 0 !important;
212
- height: 34px !important;
213
- align-items: center !important;
214
- justify-content: center !important;
215
- margin: 2px 3px !important;
216
- padding: 0 8px !important;
217
- }
218
-
219
- /* Ensure navbar dropdown overlays editor panes */
220
- .navbar { position: relative; z-index: 1500; }
221
- .dropdown-menu { z-index: 2000; }
222
-
223
- /* Force FA6 icons to render in dropdown */
224
- .dropdown-menu .fa, .dropdown-menu .fa-solid, .dropdown-menu i.fa-solid {
225
- font-family: "Font Awesome 6 Free" !important;
226
- font-weight: 900 !important;
227
- display: inline-block;
228
- width: 1.25rem;
229
- text-align: center;
230
- }
231
- /* Also ensure icon color follows text */
232
- .dropdown-menu i { color: inherit; }
233
-
234
- /* Dropdown theming */
235
- .dropdown-menu { border-radius: 10px; border: 1px solid var(--border); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
236
- .dropdown-menu .dropdown-item { padding: .6rem .9rem; display: flex; align-items: center; gap: .6rem; }
237
- .dropdown-menu .dropdown-item i { width: 1.1rem; text-align: center; }
238
-
239
- .dark .dropdown-menu { background: #0f172a; color: #e5e7eb; border-color: #1f2937; box-shadow: 0 12px 28px rgba(0,0,0,.45); }
240
- .dark .dropdown-menu .dropdown-item { color: #e5e7eb; }
241
- .dark .dropdown-menu .dropdown-item:hover { background: rgba(255,255,255,0.08); color: #fff; }
242
- /* caret contrast */
243
- .dropdown-menu::before { border-bottom-color: var(--border); }
244
-
245
- /* Dark mode overrides to make toolbar icons white */
246
- .dark .editor-toolbar a { color: #ffffff !important; }
247
- .dark .editor-toolbar a:hover, .dark .editor-toolbar a.active { color: #ffffff !important; background: rgba(255,255,255,0.12) !important; }
248
- .dark .editor-toolbar .fa, .dark .editor-toolbar .fa:before, .dark .editor-toolbar svg { color: #ffffff !important; fill: #ffffff !important; }
249
-
250
- /* Dark mode toolbar hover/focus */
251
- .dark .editor-toolbar a:hover,
252
- .dark .editor-toolbar a:focus,
253
- .dark .editor-toolbar a.active {
254
- background: rgba(255,255,255,0.18) !important;
255
- outline: none !important;
256
- box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25) !important;
257
- }
258
- .dark .editor-toolbar a:focus-visible {
259
- box-shadow: inset 0 0 0 2px #60a5fa !important; /* blue ring for keyboard focus */
260
- }
261
-
262
- /* Dark mode toolbar buttons - unified look */
263
- .dark .editor-toolbar a,
264
- .dark .editor-toolbar button {
265
- color: #ffffff !important;
266
- border-radius: 8px !important;
267
- transition: background .15s ease, box-shadow .15s ease, color .15s ease;
268
- }
269
- /* Softer hover/active (no solid white block) */
270
- .dark .editor-toolbar a:hover,
271
- .dark .editor-toolbar button:hover,
272
- .dark .editor-toolbar a.active,
273
- .dark .editor-toolbar button.active {
274
- background: rgba(255,255,255,0.12) !important;
275
- box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18) !important;
276
- }
277
- /* Remove any default white background from library styles */
278
- .dark .editor-toolbar a:hover *,
279
- .dark .editor-toolbar button:hover * { background: transparent !important; }
280
-
281
- /* Navbar icons ensure FA6 solid */
282
- .navbar .fa-solid { font-family: "Font Awesome 6 Free" !important; font-weight: 900 !important; }
283
-
284
- /* Document title input */
285
- .doc-title-input { width: 220px; background: transparent; color: var(--text); border-color: var(--border); }
286
- .doc-title-input::placeholder { color: var(--muted); }
287
- .dark .doc-title-input { background: rgba(255,255,255,0.06); color: #e5e7eb; border-color: #374151; }
288
- .dark .doc-title-input:focus { background: rgba(255,255,255,0.09); color: #fff; }
289
-
290
- /* Navbar button alignment */
291
- .navbar .nav-link,
292
- .navbar .dropdown-toggle {
293
- display: inline-flex;
294
- align-items: center;
295
- gap: 6px;
296
- padding: 6px 10px;
297
- border-radius: 8px;
298
- }
299
- .navbar .nav-link i,
300
- .navbar .dropdown-toggle i { color: inherit; }
301
- /* Light hover */
302
- .navbar .nav-link:hover,
303
- .navbar .dropdown-toggle:hover { background: rgba(0,0,0,0.06); }
304
- /* Dark hover */
305
- .dark .navbar .nav-link,
306
- .dark .navbar .dropdown-toggle { color: #e5e7eb; }
307
- .dark .navbar .nav-link:hover,
308
- .dark .navbar .dropdown-toggle:hover { background: rgba(255,255,255,0.12); color: #ffffff; }
309
- /* Ensure export caret/icon position */
310
- .navbar .dropdown-toggle::after { margin-left: 6px; }
311
-
312
- .doc-title-pill {
313
- display: inline-block;
314
- max-width: 360px;
315
- padding: 4px 10px;
316
- border-radius: 10px;
317
- background: rgba(0,0,0,0.04);
318
- border: 1px solid var(--border);
319
- color: var(--text);
320
- cursor: text;
321
- }
322
- .doc-title-pill:focus { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
323
- .dark .doc-title-pill { background: rgba(255,255,255,0.06); border-color: #374151; color: #e5e7eb; }
324
-
325
- /* Theme button */
326
- #btn-theme { display: inline-flex; align-items: center; gap: 6px; }
327
- .dark #btn-theme { color: #e5e7eb; }
328
- .dark #btn-theme:hover { background: rgba(255,255,255,0.12); border-radius: 8px; }
329
-
330
- /* Prevent dropdown text cutoff and hide arrow caret */
331
- .dropdown-menu { min-width: 260px; }
332
- .dropdown-menu .dropdown-item { white-space: nowrap; }
333
- .dropdown-menu::before, .dropdown-menu::after { display: none !important; }
334
-
335
- /* Read mode helper: smooth layout change */
336
- #leftPane, #rightPane { transition: all .2s ease; }
337
-
338
- /* Read mode: preview full page, hide editor */
339
- .read-mode .app-header { position: sticky; top: 0; z-index: 1500; }
340
- .read-mode #leftPane { display: none !important; }
341
- .read-mode #rightPane { width: 100% !important; flex: 1 1 auto; }
342
- .read-mode #rightPane[class*="col-"] { float: none; max-width: 100%; }
343
- /* Expand row height in read mode */
344
- .read-mode .app-shell .row { height: calc(100vh - 72px) !important; }
345
-
346
- /* Footer behavior: normal flow in default; fixed at bottom in read mode */
347
- .read-mode .footer-credit-wrap {
348
- position: fixed;
349
- left: 0;
350
- right: 0;
351
- bottom: 20px;
352
- z-index: 1500;
353
- }
354
- .read-mode .footer-credit-wrap .footer-credit {
355
- background: rgba(0,0,0,0.8);
356
- color: #ffffff;
357
- border: 1px solid rgba(255,255,255,0.2);
358
- }
359
- .read-mode .footer-credit-wrap .footer-credit { pointer-events: auto; }
360
-
361
- /* Samples modal theming */
362
- #samplesModal .modal-content { border: 1px solid var(--border); }
363
- #samplesModal .list-group-item { background: var(--panel); color: var(--text); border-color: var(--border); }
364
- #samplesModal .list-group-item .fw-semibold { color: var(--text); }
365
- #samplesModal .text-muted { color: var(--muted) !important; }
366
- #samplesModal .btn.btn-outline-primary { color: var(--text); border-color: var(--border); }
367
- #samplesModal .btn.btn-outline-primary:hover { background: var(--toolbar-hover); color: var(--text); }
368
- #samplesModal .btn.btn-outline-secondary { color: var(--text); border-color: var(--border); }
369
- #samplesModal .btn.btn-outline-secondary:hover { background: var(--toolbar-hover); color: var(--text); }
370
- /* Light mode hover contrast */
371
- .light #samplesModal .btn:hover { background: rgba(0,0,0,0.06); }
372
-
373
- /* Global modal dark-mode fixes */
374
- .dark .modal-content { background: var(--panel); color: var(--text); border-color: var(--border); }
375
- .dark .modal-header, .dark .modal-footer { border-color: var(--border); }
376
- .dark .modal-title { color: var(--text); }
377
- .dark .btn-close { filter: invert(1) opacity(0.8); }
378
- .dark .modal .btn-outline-primary, .dark .modal .btn-outline-secondary { color: var(--text); border-color: var(--border); }
379
- .dark .modal .btn-outline-primary:hover, .dark .modal .btn-outline-secondary:hover { background: var(--toolbar-hover); color: #fff; }
380
- /* About modal cards and links */
381
- .dark .modal .card.bg-body-secondary { background: rgba(255,255,255,0.06); border: 1px solid var(--border); color: var(--text); }
382
- .dark .modal .card.bg-body-secondary * { color: var(--text) !important; }
383
- .dark .modal a { color: var(--accent); }
384
- .dark .modal a:hover { text-decoration: underline; }
385
- /* About modal: ensure strong contrast in dark mode */
386
- .dark #aboutModal .modal-content { background: var(--panel); color: var(--text); border-color: var(--border); }
387
- .dark #aboutModal .modal-header, .dark #aboutModal .modal-footer { border-color: var(--border); }
388
- .dark #aboutModal .modal-title { color: var(--text); }
389
- .dark #aboutModal .modal-body p,
390
- .dark #aboutModal .modal-body li,
391
- .dark #aboutModal .modal-body .fw-semibold { color: var(--text) !important; }
392
- .dark #aboutModal .card { background: rgba(255,255,255,0.07) !important; border: 1px solid var(--border) !important; }
393
- .dark #aboutModal .card * { color: var(--text) !important; }
394
- .dark #aboutModal a { color: var(--accent) !important; }
395
- .dark #aboutModal a:hover { text-decoration: underline; }
396
-
397
- /* Footer credit box */
398
- .footer-credit {
399
- padding: 10px 18px;
400
- border-radius: 14px;
401
- background: linear-gradient(90deg, rgba(255,255,255,0.9), rgba(59,130,246,0.15));
402
- color: #1f2937;
403
- font-weight: 600;
404
- box-shadow: 0 6px 18px rgba(0,0,0,.12);
405
- border: 1px solid rgba(0,0,0,0.06);
406
- }
407
- .dark .footer-credit {
408
- background: linear-gradient(90deg, rgba(17,24,39,0.9), rgba(59,130,246,0.25));
409
- color: #e5e7eb;
410
- border-color: rgba(255,255,255,0.08);
411
- }
412
-
413
- .footer-credit-wrap { padding: 16px 0 24px 0; }
414
- .read-mode .footer-credit-wrap { display: none !important; }
 
1
+ :root{--bg:#0f172a;--panel:#0b1220;--panel-contrast:#0b1220f5;--text:#e2e8f0;--muted:#94a3b8;--border:#1f2937;--accent:#3b82f6;--code-bg:#0b1220;--code-border:#1f2937;--blockquote-bg:rgba(255,255,255,0.03);--toolbar-icon:#e5e7eb;--toolbar-icon-active:#ffffff;--toolbar-bg:var(--panel);--toolbar-hover:rgba(255,255,255,0.06);--toolbar-shadow:0 2px 8px rgba(0,0,0,.25)}.light{--bg:#f6f8fa;--panel:#ffffff;--panel-contrast:#ffffffcc;--text:#24292f;--muted:#6b7280;--border:#d0d7de;--accent:#2563eb;--code-bg:#f6f8fa;--code-border:#d0d7de;--blockquote-bg:#f8fafc;--toolbar-icon:#1f2937;--toolbar-icon-active:#111827;--toolbar-bg:#ffffff;--toolbar-hover:rgba(0,0,0,0.06);--toolbar-shadow:0 2px 10px rgba(0,0,0,.08)}
2
+ html,body{height:100%}
3
+ body{background:radial-gradient(1200px 800px at 10%-10%,#1f2937 0%,var(--bg)40%),radial-gradient(800px 600px at 110%10%,#0b1220 0%,var(--bg)50%);color:var(--text);font-family:'Inter','Roboto','Segoe UI',Arial,sans-serif}.light body{background:var(--bg)}
4
+ #preview{background:transparent}.EasyMDEContainer{height:100%;display:flex;flex-direction:column}.EasyMDEContainer.CodeMirror{flex:1 1 auto;height:100%!important;font-size:0.98rem;background:var(--panel);color:var(--text)}.editor-toolbar{background:var(--toolbar-bg);border-color:var(--border)!important;border-radius:12px 12px 0 0;box-shadow:var(--toolbar-shadow);padding:6px 8px;line-height:1;position:sticky!important;top:0!important;z-index:1000!important;border-bottom:1px solid var(--border)!important}.editor-toolbar a{color:var(--toolbar-icon)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;height:34px!important;min-width:34px!important;padding:0 8px!important;margin:2px 3px!important;border-radius:8px!important;transition:background.15s ease,color.15s ease,transform.05s ease;font-size:1.05rem!important}.editor-toolbar a:hover,.editor-toolbar a.active{color:var(--toolbar-icon-active)!important;background:var(--toolbar-hover)!important}.editor-toolbar.fa,.editor-toolbar.fa:before,.editor-toolbar svg{color:inherit!important;fill:currentColor!important}.editor-toolbar i.separator{border-color:var(--border)!important;opacity:.7;margin:0 6px!important}.CodeMirror-cursor{border-left:2px solid var(--accent)!important}.CodeMirror-gutters{background:var(--panel);border-right:1px solid var(--border)}.cm-s-default.CodeMirror-linenumber{color:var(--muted)}.editor-toolbar i.separator{border-color:var(--border)!important;opacity:.7}.editor-toolbar.fa,.editor-toolbar.fa:before{color:inherit}.editor-toolbar.fa{width:18px;text-align:center}.navbar.nav-link,.navbar-brand{color:inherit}.navbar.dropdown-item i{width:1.25rem}.dark.navbar.navbar-brand{color:#e5e7eb!important}.dark.navbar.navbar-brand:hover{color:#ffffff!important;background:transparent!important}.markdown-body{max-width:100%;color:var(--text);line-height:1.7}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--text);margin-top:1.25rem;font-weight:700}.markdown-body p,.markdown-body li{color:var(--text)}.markdown-body a{color:var(--accent);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body hr{border:0;border-top:1px solid var(--border);margin:1.25rem 0}.markdown-body blockquote{border-left:4px solid var(--border);padding:.5rem 1rem;color:var(--muted);background:var(--blockquote-bg)}.markdown-body pre,.markdown-body code{background:var(--code-bg);border:1px solid var(--code-border);color:var(--text)}.markdown-body pre{padding:.75rem;border-radius:8px;overflow:auto}.markdown-body table{border-collapse:collapse;width:100%;background:var(--panel)}.markdown-body table th,.markdown-body table td{border:1px solid var(--border);padding:.6rem.8rem;color:var(--text)!important;opacity:1!important}.markdown-body table thead th{color:var(--text)!important}.markdown-body table tbody td{color:var(--text)!important}.markdown-body table tr,.markdown-body table td,.markdown-body table th{filter:none!important}.markdown-body table th{background:#1b2433;color:#e2e8f0!important;font-weight:600}.markdown-body table td{background:rgba(255,255,255,0.065)}.markdown-body tr:nth-child(even)td{background:rgba(255,255,255,0.06)}.markdown-body tr:hover td{background:rgba(59,130,246,0.12)}.light.markdown-body th{background:#f0f3f6;color:#24292f}.light.markdown-body tr:nth-child(even)td{background:#fafbfc}
5
+ #preview img{max-width:100%;height:auto}.dark #preview.markdown-body table{background:var(--panel)!important;border-color:var(--border)!important}.dark #preview.markdown-body table td,.dark #preview.markdown-body table th{color:var(--text)!important;border-color:var(--border)!important;opacity:1!important;filter:none!important}.dark #preview.markdown-body table td{background-color:rgba(255,255,255,0.07)!important}.dark #preview.markdown-body tr:nth-child(even)td{background-color:rgba(255,255,255,0.1)!important}.dark #preview.markdown-body tr:hover td{background-color:rgba(59,130,246,0.18)!important}.dark.markdown-body table,.dark.markdown-body table*{color:var(--text)!important;opacity:1!important}.dark.markdown-body table td,.dark.markdown-body table td*{color:var(--text)!important}.dark #preview.markdown-body table tbody td,.dark #preview.markdown-body table tbody td*{color:#e5e7eb!important;opacity:1!important}
6
+ button.nav-link{cursor:pointer}.app-header{backdrop-filter:blur(12px);background:linear-gradient(180deg,var(--panel-contrast),transparent);border-bottom:1px solid var(--border)}.modal-open.app-header{backdrop-filter:none!important;background:var(--panel)!important}.app-shell{min-height:calc(100vh-64px)}.pane{display:flex;flex-direction:column;min-width:0}.card-pane{background:linear-gradient(180deg,var(--panel),var(--panel));border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.02)}.light.card-pane{box-shadow:0 10px 24px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.6)}.pane-header{padding:.75rem 1rem;border-bottom:1px solid var(--border);color:var(--text)}.pane-header.text-muted{color:var(--muted)!important}.list-group-item{background:var(--panel);color:var(--text);border-color:var(--border)}.modal-content.bg-body{background:var(--panel);color:var(--text);border-color:var(--border)}.form-switch.form-check-input{cursor:pointer}.EasyMDEContainer.CodeMirror{line-height:1.55}.editor-toolbar{display:flex!important;flex-wrap:wrap!important;align-items:center!important;white-space:normal!important;overflow:visible!important;text-align:left!important;gap:2px 4px}.editor-toolbar a,.editor-toolbar i.separator{display:inline-flex!important;flex:0 0 auto!important;vertical-align:middle!important}.editor-toolbar.fa-table{line-height:1!important;font-size:1.05rem!important}.editor-toolbar a.table,.editor-toolbar button.table{display:inline-flex!important;width:auto!important;min-width:0!important;height:34px!important;align-items:center!important;justify-content:center!important;margin:2px 3px!important;padding:0 8px!important}.navbar{position:relative;z-index:1500}.dropdown-menu{z-index:2000}.dropdown-menu.fa,.dropdown-menu.fa-solid,.dropdown-menu i.fa-solid{font-family:"Font Awesome 6 Free"!important;font-weight:900!important;display:inline-block;width:1.25rem;text-align:center}.dropdown-menu i{color:inherit}.dropdown-menu{border-radius:10px;border:1px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,.15)}.dropdown-menu.dropdown-item{padding:.6rem.9rem;display:flex;align-items:center;gap:.6rem}.dropdown-menu.dropdown-item i{width:1.1rem;text-align:center}.dark.dropdown-menu{background:#0f172a;color:#e5e7eb;border-color:#1f2937;box-shadow:0 12px 28px rgba(0,0,0,.45)}.dark.dropdown-menu.dropdown-item{color:#e5e7eb}.dark.dropdown-menu.dropdown-item:hover{background:rgba(255,255,255,0.08);color:#fff}.dropdown-menu::before{border-bottom-color:var(--border)}.dark.editor-toolbar a{color:#ffffff!important}.dark.editor-toolbar a:hover,.dark.editor-toolbar a.active{color:#ffffff!important;background:rgba(255,255,255,0.12)!important}.dark.editor-toolbar.fa,.dark.editor-toolbar.fa:before,.dark.editor-toolbar svg{color:#ffffff!important;fill:#ffffff!important}.dark.editor-toolbar a:hover,.dark.editor-toolbar a:focus,.dark.editor-toolbar a.active{background:rgba(255,255,255,0.18)!important;outline:none!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.25)!important}.dark.editor-toolbar a:focus-visible{box-shadow:inset 0 0 0 2px #60a5fa!important}.dark.editor-toolbar a,.dark.editor-toolbar button{color:#ffffff!important;border-radius:8px!important;transition:background.15s ease,box-shadow.15s ease,color.15s ease}.dark.editor-toolbar a:hover,.dark.editor-toolbar button:hover,.dark.editor-toolbar a.active,.dark.editor-toolbar button.active{background:rgba(255,255,255,0.12)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.18)!important}.dark.editor-toolbar a:hover*,.dark.editor-toolbar button:hover*{background:transparent!important}.navbar.fa-solid{font-family:"Font Awesome 6 Free"!important;font-weight:900!important}.doc-title-input{width:220px;background:transparent;color:var(--text);border-color:var(--border)}.doc-title-input::placeholder{color:var(--muted)}.dark.doc-title-input{background:rgba(255,255,255,0.06);color:#e5e7eb;border-color:#374151}.dark.doc-title-input:focus{background:rgba(255,255,255,0.09);color:#fff}.navbar.nav-link,.navbar.dropdown-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px}.navbar.nav-link i,.navbar.dropdown-toggle i{color:inherit}.navbar.nav-link:hover,.navbar.dropdown-toggle:hover{background:rgba(0,0,0,0.06)}.dark.navbar.nav-link,.dark.navbar.dropdown-toggle{color:#e5e7eb}.dark.navbar.nav-link:hover,.dark.navbar.dropdown-toggle:hover{background:rgba(255,255,255,0.12);color:#ffffff}.navbar.dropdown-toggle::after{margin-left:6px}.doc-title-pill{display:inline-block;max-width:360px;padding:4px 10px;border-radius:10px;background:rgba(0,0,0,0.04);border:1px solid var(--border);color:var(--text);cursor:text}.doc-title-pill:focus{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}.dark.doc-title-pill{background:rgba(255,255,255,0.06);border-color:#374151;color:#e5e7eb}
7
+ #btn-theme{display:inline-flex;align-items:center;gap:6px}.dark #btn-theme{color:#e5e7eb}.dark #btn-theme:hover{background:rgba(255,255,255,0.12);border-radius:8px}.dropdown-menu{min-width:260px}.dropdown-menu.dropdown-item{white-space:nowrap}.dropdown-menu::before,.dropdown-menu::after{display:none!important}
8
+ #leftPane,#rightPane{transition:all.2s ease}.read-mode.app-header{position:sticky;top:0;z-index:1500}.read-mode #leftPane{display:none!important}.read-mode #rightPane{width:100%!important;flex:1 1 auto}.read-mode #rightPane[class*="col-"]{float:none;max-width:100%}.read-mode.app-shell.row{height:calc(100vh-72px)!important}.read-mode.footer-credit-wrap{position:fixed;left:0;right:0;bottom:20px;z-index:1500}.read-mode.footer-credit-wrap.footer-credit{background:rgba(0,0,0,0.8);color:#ffffff;border:1px solid rgba(255,255,255,0.2)}.read-mode.footer-credit-wrap.footer-credit{pointer-events:auto}
9
+ #samplesModal.modal-content{border:1px solid var(--border)}
10
+ #samplesModal.list-group-item{background:var(--panel);color:var(--text);border-color:var(--border)}
11
+ #samplesModal.list-group-item.fw-semibold{color:var(--text)}
12
+ #samplesModal.text-muted{color:var(--muted)!important}
13
+ #samplesModal.btn.btn-outline-primary{color:var(--text);border-color:var(--border)}
14
+ #samplesModal.btn.btn-outline-primary:hover{background:var(--toolbar-hover);color:var(--text)}
15
+ #samplesModal.btn.btn-outline-secondary{color:var(--text);border-color:var(--border)}
16
+ #samplesModal.btn.btn-outline-secondary:hover{background:var(--toolbar-hover);color:var(--text)}.light #samplesModal.btn:hover{background:rgba(0,0,0,0.06)}.dark.modal-content{background:var(--panel);color:var(--text);border-color:var(--border)}.dark.modal-header,.dark.modal-footer{border-color:var(--border)}.dark.modal-title{color:var(--text)}.dark.btn-close{filter:invert(1)opacity(0.8)}.dark.modal.btn-outline-primary,.dark.modal.btn-outline-secondary{color:var(--text);border-color:var(--border)}.dark.modal.btn-outline-primary:hover,.dark.modal.btn-outline-secondary:hover{background:var(--toolbar-hover);color:#fff}.dark.modal.card.bg-body-secondary{background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text)}.dark.modal.card.bg-body-secondary*{color:var(--text)!important}.dark.modal a{color:var(--accent)}.dark.modal a:hover{text-decoration:underline}.dark #aboutModal.modal-content{background:var(--panel);color:var(--text);border-color:var(--border)}.dark #aboutModal.modal-header,.dark #aboutModal.modal-footer{border-color:var(--border)}.dark #aboutModal.modal-title{color:var(--text)}.dark #aboutModal.modal-body p,.dark #aboutModal.modal-body li,.dark #aboutModal.modal-body.fw-semibold{color:var(--text)!important}.dark #aboutModal.card{background:rgba(255,255,255,0.07)!important;border:1px solid var(--border)!important}.dark #aboutModal.card*{color:var(--text)!important}.dark #aboutModal a{color:var(--accent)!important}.dark #aboutModal a:hover{text-decoration:underline}.footer-credit{padding:10px 18px;border-radius:14px;background:linear-gradient(90deg,rgba(255,255,255,0.9),rgba(59,130,246,0.15));color:#1f2937;font-weight:600;box-shadow:0 6px 18px rgba(0,0,0,.12);border:1px solid rgba(0,0,0,0.06)}.dark.footer-credit{background:linear-gradient(90deg,rgba(17,24,39,0.9),rgba(59,130,246,0.25));color:#e5e7eb;border-color:rgba(255,255,255,0.08)}.footer-credit-wrap{padding:16px 0 24px 0}.read-mode.footer-credit-wrap{display:none!important}