@richhtmleditor/themes 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2642 @@
1
+ #richhtmleditor-root.de-root {
2
+ --de-primary: #2563eb;
3
+ --de-primary-hover: #1d4ed8;
4
+ --de-secondary: #f8fafc;
5
+ --de-text-primary: #0f172a;
6
+ --de-text-muted: #64748b;
7
+ --de-border: #e2e8f0;
8
+ --de-toolbar-bg: #ffffff;
9
+ --de-content-bg: #ffffff;
10
+ --de-radius: 10px;
11
+ --de-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);
12
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
13
+ color: var(--de-text-primary);
14
+ background: var(--de-secondary);
15
+ border: 1px solid var(--de-border);
16
+ border-radius: var(--de-radius);
17
+ display: flex;
18
+ flex-direction: column;
19
+ min-height: 280px;
20
+ min-width: 0;
21
+ max-width: 100%;
22
+ width: 100%;
23
+ overflow: hidden;
24
+ position: relative;
25
+ box-shadow: var(--de-shadow);
26
+ }
27
+
28
+ #richhtmleditor-root.de-root--dark {
29
+ --de-secondary: #0f172a;
30
+ --de-text-primary: #f1f5f9;
31
+ --de-text-muted: #94a3b8;
32
+ --de-border: #334155;
33
+ --de-toolbar-bg: #1e293b;
34
+ --de-content-bg: #0f172a;
35
+ }
36
+
37
+ #richhtmleditor-root .de-toolbar {
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 2px;
41
+ padding: 6px 8px;
42
+ border-bottom: 1px solid var(--de-border);
43
+ background: linear-gradient(
44
+ 180deg,
45
+ color-mix(in srgb, var(--de-toolbar-bg) 96%, var(--de-primary)) 0%,
46
+ var(--de-toolbar-bg) 100%
47
+ );
48
+ overflow: visible;
49
+ }
50
+
51
+ #richhtmleditor-root .de-toolbar__row {
52
+ display: flex;
53
+ flex-wrap: wrap;
54
+ align-items: center;
55
+ gap: 3px;
56
+ overflow: visible;
57
+ min-height: 34px;
58
+ }
59
+
60
+ #richhtmleditor-root .de-toolbar__row--workflow {
61
+ gap: 6px;
62
+ margin-top: 2px;
63
+ padding: 5px 8px;
64
+ border-radius: 8px;
65
+ background: color-mix(in srgb, var(--de-primary) 5%, var(--de-toolbar-bg));
66
+ border: 1px solid color-mix(in srgb, var(--de-primary) 14%, var(--de-border));
67
+ }
68
+
69
+ #richhtmleditor-root .de-toolbar__divider {
70
+ width: 1px;
71
+ align-self: stretch;
72
+ min-height: 22px;
73
+ margin: 4px 3px;
74
+ background: var(--de-border);
75
+ flex-shrink: 0;
76
+ }
77
+
78
+ #richhtmleditor-root .de-toolbar__spacer {
79
+ flex: 1;
80
+ min-width: 8px;
81
+ }
82
+
83
+ #richhtmleditor-root .de-btn {
84
+ display: inline-flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ gap: 6px;
88
+ border: 1px solid var(--de-border);
89
+ background: var(--de-toolbar-bg);
90
+ color: var(--de-text-primary);
91
+ border-radius: 8px;
92
+ padding: 8px 14px;
93
+ cursor: pointer;
94
+ font-size: 0.875rem;
95
+ font-weight: 600;
96
+ font-family: inherit;
97
+ line-height: 1.2;
98
+ transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
99
+ }
100
+
101
+ #richhtmleditor-root .de-btn:hover:not(:disabled) {
102
+ background: color-mix(in srgb, var(--de-toolbar-bg) 85%, var(--de-primary));
103
+ border-color: color-mix(in srgb, var(--de-border) 50%, var(--de-primary));
104
+ }
105
+
106
+ #richhtmleditor-root .de-btn:disabled {
107
+ opacity: 0.45;
108
+ cursor: not-allowed;
109
+ }
110
+
111
+ #richhtmleditor-root .de-btn--sm {
112
+ padding: 5px 8px;
113
+ font-size: 0.8125rem;
114
+ border-radius: 6px;
115
+ }
116
+
117
+ #richhtmleditor-root .de-toolbar__btn--active {
118
+ background: color-mix(in srgb, var(--de-primary) 12%, var(--de-toolbar-bg));
119
+ border-color: color-mix(in srgb, var(--de-primary) 35%, var(--de-border));
120
+ color: var(--de-primary);
121
+ }
122
+
123
+ #richhtmleditor-root .de-toolbar__icon {
124
+ font-weight: 700;
125
+ min-width: 1.1em;
126
+ text-align: center;
127
+ }
128
+
129
+ #richhtmleditor-root .de-toolbar__label {
130
+ font-weight: 600;
131
+ }
132
+
133
+ #richhtmleditor-root .de-toolbar__btn--icon {
134
+ width: 32px;
135
+ height: 32px;
136
+ min-width: 32px;
137
+ padding: 0;
138
+ }
139
+
140
+ #richhtmleditor-root .de-toolbar__btn--text {
141
+ padding: 5px 11px;
142
+ min-height: 30px;
143
+ border-radius: 999px;
144
+ font-size: 0.75rem;
145
+ font-weight: 600;
146
+ }
147
+
148
+ #richhtmleditor-root .de-toolbar__btn--both {
149
+ gap: 5px;
150
+ min-height: 32px;
151
+ }
152
+
153
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowStatus"] {
154
+ pointer-events: none;
155
+ border-color: transparent;
156
+ background: transparent;
157
+ color: var(--de-text-muted);
158
+ font-size: 0.7rem;
159
+ font-weight: 700;
160
+ letter-spacing: 0.04em;
161
+ text-transform: uppercase;
162
+ padding-inline: 4px 8px;
163
+ }
164
+
165
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowSubmit"]:not(:disabled) {
166
+ color: #1d4ed8;
167
+ border-color: color-mix(in srgb, #2563eb 35%, var(--de-border));
168
+ background: color-mix(in srgb, #2563eb 8%, var(--de-toolbar-bg));
169
+ }
170
+
171
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowApprove"]:not(:disabled),
172
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowPublish"]:not(:disabled) {
173
+ color: #047857;
174
+ border-color: color-mix(in srgb, #047857 35%, var(--de-border));
175
+ background: color-mix(in srgb, #047857 8%, var(--de-toolbar-bg));
176
+ }
177
+
178
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowRequestChanges"]:not(:disabled) {
179
+ color: #b45309;
180
+ border-color: color-mix(in srgb, #b45309 35%, var(--de-border));
181
+ background: color-mix(in srgb, #b45309 8%, var(--de-toolbar-bg));
182
+ }
183
+
184
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowReopen"]:not(:disabled) {
185
+ color: #6d28d9;
186
+ border-color: color-mix(in srgb, #6d28d9 35%, var(--de-border));
187
+ background: color-mix(in srgb, #6d28d9 8%, var(--de-toolbar-bg));
188
+ }
189
+
190
+ #richhtmleditor-root .de-toolbar__btn[data-tool-group="workflow"][data-tool-id^="workflowTrack"],
191
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowAcceptSelection"]:not(:disabled),
192
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowRejectSelection"]:not(:disabled),
193
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowAcceptChanges"]:not(:disabled),
194
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="workflowRejectChanges"]:not(:disabled) {
195
+ font-size: 0.72rem;
196
+ }
197
+
198
+ #richhtmleditor-root .de-toolbar__btn[data-tool-id="save"] {
199
+ min-height: 32px;
200
+ padding-inline: 14px;
201
+ color: var(--de-primary);
202
+ border-color: color-mix(in srgb, var(--de-primary) 30%, var(--de-border));
203
+ background: color-mix(in srgb, var(--de-primary) 6%, var(--de-toolbar-bg));
204
+ }
205
+
206
+ #richhtmleditor-root .de-content {
207
+ position: relative;
208
+ flex: 1;
209
+ min-height: 200px;
210
+ padding: 16px 18px;
211
+ background: var(--de-content-bg);
212
+ color: var(--de-text-primary);
213
+ outline: none;
214
+ overflow: auto;
215
+ line-height: 1.65;
216
+ }
217
+
218
+ #richhtmleditor-root .de-content:focus {
219
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--de-primary) 25%, transparent);
220
+ }
221
+
222
+ #richhtmleditor-root .de-content .de-comment-anchor {
223
+ background: color-mix(in srgb, #fbbf24 38%, transparent);
224
+ border-bottom: 2px solid #f59e0b;
225
+ border-radius: 2px;
226
+ cursor: pointer;
227
+ }
228
+
229
+ #richhtmleditor-root .de-content .de-comment-anchor--resolved {
230
+ background: color-mix(in srgb, #94a3b8 22%, transparent);
231
+ border-bottom-color: #94a3b8;
232
+ }
233
+
234
+ #richhtmleditor-root .de-status-bar {
235
+ display: flex;
236
+ align-items: center;
237
+ justify-content: space-between;
238
+ gap: 12px;
239
+ padding: 4px 12px;
240
+ border-top: 1px solid var(--de-border);
241
+ background: var(--de-toolbar-bg);
242
+ font-size: 11px;
243
+ color: var(--de-text-muted);
244
+ flex-shrink: 0;
245
+ }
246
+
247
+ #richhtmleditor-root .de-status-bar__mode {
248
+ font-weight: 600;
249
+ text-transform: uppercase;
250
+ letter-spacing: 0.04em;
251
+ }
252
+
253
+ #richhtmleditor-root .de-status-bar--suggest .de-status-bar__mode {
254
+ color: #b45309;
255
+ }
256
+
257
+ #richhtmleditor-root .de-status-bar--read .de-status-bar__mode {
258
+ color: #64748b;
259
+ }
260
+
261
+ #richhtmleditor-root.de-root--suggest .de-content {
262
+ background: color-mix(in srgb, #fef3c7 12%, var(--de-content-bg));
263
+ }
264
+
265
+ #richhtmleditor-root.de-root--read-only .de-content {
266
+ background: color-mix(in srgb, var(--de-secondary) 40%, var(--de-content-bg));
267
+ }
268
+
269
+ #richhtmleditor-root .de-outline-panel {
270
+ position: absolute;
271
+ top: 0;
272
+ left: 0;
273
+ width: min(240px, 42%);
274
+ max-height: 100%;
275
+ overflow: auto;
276
+ background: var(--de-toolbar-bg);
277
+ border-right: 1px solid var(--de-border);
278
+ padding: 10px;
279
+ z-index: 5;
280
+ box-shadow: 4px 0 16px rgba(15, 23, 42, 0.06);
281
+ font-size: 12px;
282
+ }
283
+
284
+ #richhtmleditor-root .de-outline-panel__head {
285
+ display: flex;
286
+ align-items: center;
287
+ justify-content: space-between;
288
+ gap: 8px;
289
+ margin-bottom: 8px;
290
+ }
291
+
292
+ #richhtmleditor-root .de-outline-panel__title {
293
+ margin: 0;
294
+ font-size: 13px;
295
+ font-weight: 600;
296
+ }
297
+
298
+ #richhtmleditor-root .de-outline-panel__close {
299
+ border: 0;
300
+ background: transparent;
301
+ cursor: pointer;
302
+ font-size: 18px;
303
+ line-height: 1;
304
+ padding: 2px 6px;
305
+ }
306
+
307
+ #richhtmleditor-root .de-outline-panel__nav {
308
+ display: flex;
309
+ flex-direction: column;
310
+ gap: 2px;
311
+ }
312
+
313
+ #richhtmleditor-root .de-outline-panel__item {
314
+ display: block;
315
+ width: 100%;
316
+ text-align: left;
317
+ border: 0;
318
+ background: transparent;
319
+ cursor: pointer;
320
+ padding: 4px 6px;
321
+ border-radius: 6px;
322
+ font: inherit;
323
+ color: var(--de-text-primary);
324
+ }
325
+
326
+ #richhtmleditor-root .de-outline-panel__item:hover {
327
+ background: color-mix(in srgb, var(--de-primary) 8%, transparent);
328
+ }
329
+
330
+ #richhtmleditor-root .de-outline-panel__item--active {
331
+ background: color-mix(in srgb, var(--de-primary) 14%, transparent);
332
+ font-weight: 600;
333
+ color: var(--de-primary);
334
+ }
335
+
336
+ #richhtmleditor-root .de-outline-panel__empty {
337
+ margin: 0;
338
+ color: var(--de-text-muted);
339
+ }
340
+
341
+ #richhtmleditor-root .de-content .de-table-figure {
342
+ margin: 1em 0;
343
+ }
344
+
345
+ #richhtmleditor-root .de-content .de-table-caption {
346
+ margin-top: 0.35em;
347
+ font-size: 0.9em;
348
+ color: var(--de-text-muted);
349
+ text-align: center;
350
+ }
351
+
352
+ #richhtmleditor-root .de-content p {
353
+ margin: 0 0 0.75em;
354
+ }
355
+
356
+ #richhtmleditor-root .de-content h1,
357
+ #richhtmleditor-root .de-content h2,
358
+ #richhtmleditor-root .de-content h3 {
359
+ margin: 1em 0 0.5em;
360
+ line-height: 1.25;
361
+ }
362
+
363
+ #richhtmleditor-root .de-content ul,
364
+ #richhtmleditor-root .de-content ol {
365
+ margin: 0 0 0.75em;
366
+ padding-left: 1.5em;
367
+ }
368
+
369
+ #richhtmleditor-root .de-content blockquote {
370
+ margin: 0 0 0.75em;
371
+ padding-left: 1em;
372
+ border-left: 3px solid var(--de-border);
373
+ color: var(--de-text-muted);
374
+ }
375
+
376
+ #richhtmleditor-root .de-content nav.de-toc {
377
+ display: block;
378
+ width: 100%;
379
+ max-width: 100%;
380
+ box-sizing: border-box;
381
+ margin: 0 0 1rem;
382
+ padding: 0.75rem 1rem;
383
+ border: 1px solid var(--de-border);
384
+ border-radius: 8px;
385
+ background: color-mix(in srgb, var(--de-border) 8%, var(--de-content-bg));
386
+ overflow: visible;
387
+ }
388
+
389
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__label {
390
+ font-weight: 700;
391
+ margin: 0 0 0.5em;
392
+ }
393
+
394
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list,
395
+ #richhtmleditor-root .de-content nav.de-toc > ol {
396
+ margin: 0;
397
+ padding-left: 1.25rem;
398
+ }
399
+
400
+ #richhtmleditor-root .de-content nav.de-toc[contenteditable="false"] {
401
+ user-select: none;
402
+ cursor: default;
403
+ }
404
+
405
+ #richhtmleditor-root .de-content nav.de-toc[contenteditable="false"] a {
406
+ pointer-events: none;
407
+ cursor: default;
408
+ text-decoration: none;
409
+ color: inherit;
410
+ }
411
+
412
+ #richhtmleditor-root .de-content details {
413
+ --de-acc-pad-x: 0.75rem;
414
+ --de-acc-chevron: 0.7rem;
415
+ --de-acc-gap: 0.45rem;
416
+ --de-acc-indent: calc(var(--de-acc-pad-x) + var(--de-acc-chevron) + var(--de-acc-gap));
417
+ margin: 0 0 0.75em;
418
+ border: 1px solid var(--de-border);
419
+ border-radius: 8px;
420
+ background: color-mix(in srgb, var(--de-border) 10%, var(--de-content-bg));
421
+ }
422
+
423
+ #richhtmleditor-root .de-content details > summary {
424
+ cursor: pointer;
425
+ display: flex;
426
+ align-items: center;
427
+ gap: var(--de-acc-gap);
428
+ font-weight: 600;
429
+ list-style: none;
430
+ padding: 0.55rem var(--de-acc-pad-x);
431
+ user-select: none;
432
+ }
433
+
434
+ #richhtmleditor-root .de-content details .de-collapsible__title {
435
+ flex: 1 1 auto;
436
+ min-width: 0;
437
+ user-select: text;
438
+ cursor: text;
439
+ }
440
+
441
+ #richhtmleditor-root .de-content details .de-collapsible__remove {
442
+ flex: 0 0 auto;
443
+ margin-left: auto;
444
+ display: inline-flex;
445
+ align-items: center;
446
+ justify-content: center;
447
+ width: 1.5rem;
448
+ height: 1.5rem;
449
+ padding: 0;
450
+ border: none;
451
+ border-radius: 6px;
452
+ background: transparent;
453
+ color: var(--de-text-muted);
454
+ font-size: 1.1rem;
455
+ line-height: 1;
456
+ cursor: pointer;
457
+ user-select: none;
458
+ }
459
+
460
+ #richhtmleditor-root .de-content details .de-collapsible__remove:hover,
461
+ #richhtmleditor-root .de-content details .de-collapsible__remove:focus-visible {
462
+ background: color-mix(in srgb, var(--de-danger, #dc2626) 12%, transparent);
463
+ color: var(--de-danger, #dc2626);
464
+ outline: none;
465
+ }
466
+
467
+ #richhtmleditor-root .de-content details > summary::-webkit-details-marker {
468
+ display: none;
469
+ }
470
+
471
+ #richhtmleditor-root .de-content details > summary::before {
472
+ content: "▸";
473
+ display: inline-block;
474
+ flex: 0 0 var(--de-acc-chevron);
475
+ width: var(--de-acc-chevron);
476
+ transition: transform 0.15s ease;
477
+ }
478
+
479
+ #richhtmleditor-root .de-content details[open] > summary::before {
480
+ transform: rotate(90deg);
481
+ }
482
+
483
+ #richhtmleditor-root .de-content details .de-collapsible__body {
484
+ border-top: 1px solid var(--de-border);
485
+ padding: 0.55rem var(--de-acc-pad-x) 0.65rem var(--de-acc-indent);
486
+ }
487
+
488
+ #richhtmleditor-root .de-content details:not(:has(.de-collapsible__body)) > p,
489
+ #richhtmleditor-root .de-content details:not(:has(.de-collapsible__body)) > ul,
490
+ #richhtmleditor-root .de-content details:not(:has(.de-collapsible__body)) > ol {
491
+ margin: 0;
492
+ border-top: 1px solid var(--de-border);
493
+ padding: 0.55rem var(--de-acc-pad-x) 0.65rem var(--de-acc-indent);
494
+ }
495
+
496
+ #richhtmleditor-root .de-content details .de-collapsible__body > p,
497
+ #richhtmleditor-root .de-content details .de-collapsible__body > ul,
498
+ #richhtmleditor-root .de-content details .de-collapsible__body > ol {
499
+ margin: 0 0 0.5em;
500
+ min-height: 1.5em;
501
+ max-width: 100%;
502
+ box-sizing: border-box;
503
+ }
504
+
505
+ #richhtmleditor-root .de-content details .de-collapsible__body > :last-child {
506
+ margin-bottom: 0;
507
+ }
508
+
509
+ #richhtmleditor-root .de-content details.de-collapsible--nested {
510
+ margin: 0.5rem 0 0.35rem;
511
+ }
512
+
513
+ #richhtmleditor-root .de-content pre {
514
+ margin: 0 0 0.75em;
515
+ padding: 12px 14px;
516
+ border-radius: 8px;
517
+ border: 1px solid var(--de-border);
518
+ background: color-mix(in srgb, var(--de-border) 18%, var(--de-content-bg));
519
+ overflow-x: auto;
520
+ font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
521
+ font-size: 0.875em;
522
+ line-height: 1.5;
523
+ white-space: pre-wrap;
524
+ word-break: break-word;
525
+ }
526
+
527
+ #richhtmleditor-root .de-content table.de-table {
528
+ width: 100%;
529
+ border-collapse: collapse;
530
+ margin: 0 0 0.75em;
531
+ font-size: 0.9375em;
532
+ table-layout: fixed;
533
+ }
534
+
535
+ #richhtmleditor-root .de-content table.de-table--rail-active {
536
+ --de-table-rail-gutter: 46px;
537
+ margin-left: var(--de-table-rail-gutter);
538
+ width: calc(100% - var(--de-table-rail-gutter));
539
+ }
540
+
541
+ #richhtmleditor-root .de-content td,
542
+ #richhtmleditor-root .de-content th {
543
+ border: 1px solid var(--de-border);
544
+ padding: 8px 10px;
545
+ vertical-align: top;
546
+ min-width: 48px;
547
+ position: relative;
548
+ }
549
+
550
+ #richhtmleditor-root .de-content td p,
551
+ #richhtmleditor-root .de-content th p {
552
+ margin: 0;
553
+ }
554
+
555
+ #richhtmleditor-root .de-table-col-resizer {
556
+ position: absolute;
557
+ top: 0;
558
+ right: -3px;
559
+ width: 6px;
560
+ height: 100%;
561
+ cursor: col-resize;
562
+ user-select: none;
563
+ z-index: 2;
564
+ }
565
+
566
+ #richhtmleditor-root .de-table-col-resizer:hover {
567
+ background: color-mix(in srgb, var(--de-primary) 35%, transparent);
568
+ }
569
+
570
+ #richhtmleditor-root .de-table-row-resizer {
571
+ position: absolute;
572
+ left: 0;
573
+ bottom: -3px;
574
+ width: 100%;
575
+ height: 6px;
576
+ cursor: row-resize;
577
+ user-select: none;
578
+ z-index: 2;
579
+ }
580
+
581
+ #richhtmleditor-root .de-table-row-resizer:hover {
582
+ background: color-mix(in srgb, var(--de-primary) 35%, transparent);
583
+ }
584
+
585
+ #richhtmleditor-root .de-block-style-gallery {
586
+ position: relative;
587
+ display: inline-flex;
588
+ }
589
+
590
+ #richhtmleditor-root .de-block-style-gallery__label {
591
+ min-width: 4.5rem;
592
+ text-align: left;
593
+ }
594
+
595
+ .de-block-style-gallery__menu {
596
+ position: fixed;
597
+ z-index: 10002;
598
+ min-width: 180px;
599
+ padding: 6px;
600
+ background: var(--de-toolbar-bg, #fff);
601
+ border: 1px solid var(--de-border, #e2e8f0);
602
+ border-radius: 10px;
603
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
604
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
605
+ }
606
+
607
+ .de-block-style-gallery__menu--dark {
608
+ --de-toolbar-bg: #1e293b;
609
+ --de-text-primary: #f1f5f9;
610
+ --de-border: #334155;
611
+ }
612
+
613
+ .de-block-style-gallery__menu[hidden] {
614
+ display: none !important;
615
+ }
616
+
617
+ .de-block-style-gallery__item {
618
+ display: block;
619
+ width: 100%;
620
+ padding: 8px 12px;
621
+ border: none;
622
+ border-radius: 7px;
623
+ background: transparent;
624
+ color: var(--de-text-primary, #0f172a);
625
+ font: inherit;
626
+ font-weight: 600;
627
+ text-align: left;
628
+ cursor: pointer;
629
+ }
630
+
631
+ .de-block-style-gallery__item:hover,
632
+ .de-block-style-gallery__item--active {
633
+ background: color-mix(in srgb, var(--de-primary, #2563eb) 12%, var(--de-toolbar-bg, #fff));
634
+ color: var(--de-primary, #2563eb);
635
+ }
636
+
637
+ #richhtmleditor-root .de-character-style-gallery {
638
+ position: relative;
639
+ display: inline-flex;
640
+ }
641
+
642
+ #richhtmleditor-root .de-character-style-gallery__label {
643
+ min-width: 4.5rem;
644
+ text-align: left;
645
+ }
646
+
647
+ .de-character-style-gallery__menu {
648
+ position: fixed;
649
+ z-index: 10002;
650
+ min-width: 180px;
651
+ padding: 6px;
652
+ background: var(--de-toolbar-bg, #fff);
653
+ border: 1px solid var(--de-border, #e2e8f0);
654
+ border-radius: 10px;
655
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
656
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
657
+ }
658
+
659
+ .de-character-style-gallery__menu--dark {
660
+ --de-toolbar-bg: #1e293b;
661
+ --de-text-primary: #f1f5f9;
662
+ --de-border: #334155;
663
+ }
664
+
665
+ .de-character-style-gallery__menu[hidden] {
666
+ display: none !important;
667
+ }
668
+
669
+ .de-character-style-gallery__item {
670
+ display: block;
671
+ width: 100%;
672
+ padding: 8px 12px;
673
+ border: none;
674
+ border-radius: 7px;
675
+ background: transparent;
676
+ color: var(--de-text-primary, #0f172a);
677
+ font: inherit;
678
+ font-weight: 600;
679
+ text-align: left;
680
+ cursor: pointer;
681
+ }
682
+
683
+ .de-character-style-gallery__item:hover,
684
+ .de-character-style-gallery__item--active {
685
+ background: color-mix(in srgb, var(--de-primary, #2563eb) 12%, var(--de-toolbar-bg, #fff));
686
+ color: var(--de-primary, #2563eb);
687
+ }
688
+
689
+ ins.de-track-insert,
690
+ .de-track-insert {
691
+ text-decoration: underline;
692
+ text-decoration-color: #047857;
693
+ background: rgba(16, 185, 129, 0.14);
694
+ }
695
+
696
+ del.de-track-delete,
697
+ .de-track-delete {
698
+ text-decoration: line-through;
699
+ text-decoration-color: #b91c1c;
700
+ color: #991b1b;
701
+ background: rgba(248, 113, 113, 0.16);
702
+ }
703
+
704
+ .de-page-break {
705
+ display: block;
706
+ height: 0;
707
+ margin: 0.75rem 0;
708
+ border: 0;
709
+ border-top: 1px dashed color-mix(in srgb, var(--de-border, #cbd5e1) 80%, transparent);
710
+ }
711
+
712
+ .de-section {
713
+ border: 1px solid var(--de-border, #e2e8f0);
714
+ border-radius: 10px;
715
+ margin: 0.5rem 0;
716
+ padding: 0.65rem 0.85rem;
717
+ }
718
+
719
+ .de-section__title {
720
+ margin: 0 0 0.5rem;
721
+ font-size: 1.05rem;
722
+ font-weight: 700;
723
+ }
724
+
725
+ #richhtmleditor-root .de-table-picker {
726
+ position: relative;
727
+ display: inline-flex;
728
+ }
729
+
730
+ #richhtmleditor-root .de-table-picker__popover {
731
+ position: absolute;
732
+ top: calc(100% + 6px);
733
+ left: 0;
734
+ z-index: 50;
735
+ padding: 10px;
736
+ background: var(--de-toolbar-bg);
737
+ border: 1px solid var(--de-border);
738
+ border-radius: 10px;
739
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
740
+ }
741
+
742
+ #richhtmleditor-root .de-table-picker__popover[hidden] {
743
+ display: none !important;
744
+ }
745
+
746
+ /* Portaled table picker — escapes #richhtmleditor-root overflow clipping */
747
+ .de-table-picker__popover.de-table-picker__popover--portal {
748
+ --de-primary: #2563eb;
749
+ --de-toolbar-bg: #ffffff;
750
+ --de-text-primary: #0f172a;
751
+ --de-text-muted: #64748b;
752
+ --de-border: #e2e8f0;
753
+ --de-content-bg: #ffffff;
754
+ position: fixed;
755
+ z-index: 10002;
756
+ padding: 10px;
757
+ background: var(--de-toolbar-bg);
758
+ border: 1px solid var(--de-border);
759
+ border-radius: 10px;
760
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
761
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
762
+ color: var(--de-text-primary);
763
+ }
764
+
765
+ .de-table-picker__popover.de-table-picker__popover--portal.de-table-picker__popover--dark {
766
+ --de-toolbar-bg: #1e293b;
767
+ --de-text-primary: #f1f5f9;
768
+ --de-text-muted: #94a3b8;
769
+ --de-border: #334155;
770
+ --de-content-bg: #0f172a;
771
+ }
772
+
773
+ .de-table-picker__popover.de-table-picker__popover--portal .de-table-picker__grid {
774
+ display: grid;
775
+ grid-template-columns: repeat(8, 18px);
776
+ grid-template-rows: repeat(8, 18px);
777
+ gap: 3px;
778
+ }
779
+
780
+ .de-table-picker__popover.de-table-picker__popover--portal .de-table-picker__cell {
781
+ width: 18px;
782
+ height: 18px;
783
+ padding: 0;
784
+ border: 1px solid var(--de-border);
785
+ border-radius: 3px;
786
+ background: var(--de-content-bg);
787
+ cursor: pointer;
788
+ }
789
+
790
+ .de-table-picker__popover.de-table-picker__popover--portal .de-table-picker__cell--active {
791
+ border-color: var(--de-primary);
792
+ background: color-mix(in srgb, var(--de-primary) 22%, var(--de-content-bg));
793
+ }
794
+
795
+ .de-table-picker__popover.de-table-picker__popover--portal .de-table-picker__size {
796
+ margin: 8px 0 0;
797
+ text-align: center;
798
+ font-size: 0.78rem;
799
+ font-weight: 600;
800
+ color: var(--de-text-muted);
801
+ }
802
+
803
+ .de-table-picker__popover.de-table-picker__popover--portal[hidden] {
804
+ display: none !important;
805
+ }
806
+
807
+ #richhtmleditor-root .de-table-picker__grid {
808
+ display: grid;
809
+ grid-template-columns: repeat(8, 18px);
810
+ grid-template-rows: repeat(8, 18px);
811
+ gap: 3px;
812
+ }
813
+
814
+ #richhtmleditor-root .de-table-picker__cell {
815
+ width: 18px;
816
+ height: 18px;
817
+ padding: 0;
818
+ border: 1px solid var(--de-border);
819
+ border-radius: 3px;
820
+ background: var(--de-content-bg);
821
+ cursor: pointer;
822
+ }
823
+
824
+ #richhtmleditor-root .de-table-picker__cell--active {
825
+ border-color: var(--de-primary);
826
+ background: color-mix(in srgb, var(--de-primary) 22%, var(--de-content-bg));
827
+ }
828
+
829
+ #richhtmleditor-root .de-table-picker__size {
830
+ margin: 8px 0 0;
831
+ text-align: center;
832
+ font-size: 0.78rem;
833
+ font-weight: 600;
834
+ color: var(--de-text-muted);
835
+ }
836
+
837
+ #richhtmleditor-root .de-table-controls {
838
+ position: absolute;
839
+ z-index: 35;
840
+ display: flex;
841
+ flex-wrap: wrap;
842
+ gap: 4px;
843
+ padding: 6px;
844
+ background: var(--de-toolbar-bg);
845
+ border: 1px solid var(--de-border);
846
+ border-radius: 8px;
847
+ box-shadow: 0 8px 20px rgba(15, 23, 42, 0.14);
848
+ }
849
+
850
+ #richhtmleditor-root .de-table-controls[hidden] {
851
+ display: none !important;
852
+ }
853
+
854
+ #richhtmleditor-root .de-table-controls__btn {
855
+ min-width: 2.5rem;
856
+ font-size: 0.72rem;
857
+ padding: 4px 6px;
858
+ }
859
+
860
+ #richhtmleditor-root .de-table-cell-menu-btn {
861
+ position: absolute;
862
+ z-index: 36;
863
+ width: 24px;
864
+ height: 24px;
865
+ padding: 0;
866
+ line-height: 1;
867
+ font-size: 1rem;
868
+ }
869
+
870
+ #richhtmleditor-root .de-table-cell-menu-btn[hidden] {
871
+ display: none !important;
872
+ }
873
+
874
+ #richhtmleditor-root .de-table-context-menu {
875
+ position: absolute;
876
+ z-index: 45;
877
+ min-width: 180px;
878
+ padding: 6px;
879
+ background: var(--de-toolbar-bg);
880
+ border: 1px solid var(--de-border);
881
+ border-radius: 10px;
882
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
883
+ display: flex;
884
+ flex-direction: column;
885
+ gap: 2px;
886
+ }
887
+
888
+ #richhtmleditor-root .de-table-context-menu[hidden] {
889
+ display: none !important;
890
+ }
891
+
892
+ #richhtmleditor-root .de-table-context-menu__item {
893
+ border: none;
894
+ background: transparent;
895
+ color: var(--de-text-primary);
896
+ text-align: left;
897
+ padding: 8px 10px;
898
+ border-radius: 6px;
899
+ cursor: pointer;
900
+ font-size: 0.84rem;
901
+ }
902
+
903
+ #richhtmleditor-root .de-table-context-menu__item:hover {
904
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
905
+ }
906
+
907
+ #richhtmleditor-root .de-table-side-rail {
908
+ position: absolute;
909
+ z-index: 34;
910
+ display: flex;
911
+ flex-direction: column;
912
+ gap: 2px;
913
+ padding: 4px;
914
+ background: var(--de-content-bg);
915
+ border: 1px solid var(--de-border);
916
+ border-radius: 999px;
917
+ box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
918
+ pointer-events: none;
919
+ }
920
+
921
+ #richhtmleditor-root .de-table-side-rail[hidden] {
922
+ display: none !important;
923
+ }
924
+
925
+ #richhtmleditor-root .de-table-side-rail__btn {
926
+ width: 28px;
927
+ height: 28px;
928
+ padding: 0;
929
+ border: none;
930
+ border-radius: 999px;
931
+ background: transparent;
932
+ color: var(--de-text-primary);
933
+ font-size: 0.95rem;
934
+ line-height: 1;
935
+ cursor: pointer;
936
+ pointer-events: auto;
937
+ }
938
+
939
+ #richhtmleditor-root .de-table-side-rail__btn:hover:not(:disabled) {
940
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
941
+ }
942
+
943
+ #richhtmleditor-root .de-table-side-rail__btn:disabled {
944
+ opacity: 0.35;
945
+ cursor: not-allowed;
946
+ }
947
+
948
+ #richhtmleditor-root .de-table-side-rail__btn--more {
949
+ font-size: 1.1rem;
950
+ }
951
+
952
+ #richhtmleditor-root .de-table-side-rail__menu {
953
+ position: absolute;
954
+ z-index: 44;
955
+ min-width: 140px;
956
+ padding: 6px;
957
+ background: var(--de-content-bg);
958
+ border: 1px solid var(--de-border);
959
+ border-radius: 10px;
960
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
961
+ display: flex;
962
+ flex-direction: column;
963
+ gap: 2px;
964
+ }
965
+
966
+ #richhtmleditor-root .de-table-side-rail__menu[hidden] {
967
+ display: none !important;
968
+ }
969
+
970
+ #richhtmleditor-root .de-table-side-rail__menu-item {
971
+ border: none;
972
+ background: transparent;
973
+ color: var(--de-text-primary);
974
+ text-align: left;
975
+ padding: 8px 10px;
976
+ border-radius: 6px;
977
+ cursor: pointer;
978
+ font-size: 0.84rem;
979
+ }
980
+
981
+ #richhtmleditor-root .de-table-side-rail__menu-item:hover {
982
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
983
+ }
984
+
985
+ #richhtmleditor-root .de-table-side-rail__menu-label {
986
+ margin: 6px 8px 2px;
987
+ font-size: 0.72rem;
988
+ font-weight: 700;
989
+ text-transform: uppercase;
990
+ letter-spacing: 0.04em;
991
+ color: var(--de-text-muted);
992
+ }
993
+
994
+ #richhtmleditor-root .de-table-side-rail__swatches {
995
+ display: flex;
996
+ flex-wrap: wrap;
997
+ gap: 6px;
998
+ padding: 4px 8px 8px;
999
+ }
1000
+
1001
+ #richhtmleditor-root .de-table-side-rail__swatch {
1002
+ width: 22px;
1003
+ height: 22px;
1004
+ border: 1px solid var(--de-border);
1005
+ border-radius: 4px;
1006
+ cursor: pointer;
1007
+ padding: 0;
1008
+ }
1009
+
1010
+ #richhtmleditor-root .de-table-side-rail__swatch--none {
1011
+ display: grid;
1012
+ place-items: center;
1013
+ font-size: 0.85rem;
1014
+ color: var(--de-text-muted);
1015
+ background: var(--de-content-bg);
1016
+ }
1017
+
1018
+ #richhtmleditor-root .de-content td.de-table-row-active,
1019
+ #richhtmleditor-root .de-content th.de-table-row-active {
1020
+ box-shadow: inset 3px 0 0 var(--de-primary);
1021
+ }
1022
+
1023
+ #richhtmleditor-root .de-content td.de-table-cell-active,
1024
+ #richhtmleditor-root .de-content th.de-table-cell-active {
1025
+ background: color-mix(in srgb, var(--de-primary) 12%, transparent);
1026
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--de-primary) 35%, transparent);
1027
+ }
1028
+
1029
+ #richhtmleditor-root .de-image-picker {
1030
+ position: relative;
1031
+ display: inline-flex;
1032
+ }
1033
+
1034
+ .de-image-menu {
1035
+ --de-primary: #2563eb;
1036
+ --de-toolbar-bg: #ffffff;
1037
+ --de-text-primary: #0f172a;
1038
+ --de-text-muted: #64748b;
1039
+ --de-border: #e2e8f0;
1040
+ z-index: 10000;
1041
+ min-width: 240px;
1042
+ max-width: min(280px, calc(100vw - 16px));
1043
+ padding: 10px;
1044
+ background: var(--de-toolbar-bg);
1045
+ border: 1px solid var(--de-border);
1046
+ border-radius: 12px;
1047
+ box-shadow:
1048
+ 0 16px 40px rgba(15, 23, 42, 0.14),
1049
+ 0 2px 8px rgba(15, 23, 42, 0.06);
1050
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
1051
+ color: var(--de-text-primary);
1052
+ }
1053
+
1054
+ .de-image-menu--dark {
1055
+ --de-toolbar-bg: #1e293b;
1056
+ --de-text-primary: #f1f5f9;
1057
+ --de-text-muted: #94a3b8;
1058
+ --de-border: #334155;
1059
+ }
1060
+
1061
+ .de-image-menu[hidden] {
1062
+ display: none !important;
1063
+ }
1064
+
1065
+ .de-image-menu__title {
1066
+ margin: 0 0 8px;
1067
+ padding: 0 4px;
1068
+ font-size: 0.95rem;
1069
+ font-weight: 700;
1070
+ color: var(--de-text-primary);
1071
+ }
1072
+
1073
+ .de-image-menu__divider {
1074
+ height: 1px;
1075
+ margin: 6px 0;
1076
+ background: var(--de-border);
1077
+ }
1078
+
1079
+ .de-image-menu__item {
1080
+ display: flex;
1081
+ align-items: center;
1082
+ gap: 10px;
1083
+ width: 100%;
1084
+ padding: 9px 12px;
1085
+ border: 1px solid transparent;
1086
+ border-radius: 8px;
1087
+ background: transparent;
1088
+ color: var(--de-text-primary);
1089
+ font-size: 0.8125rem;
1090
+ font-weight: 600;
1091
+ cursor: pointer;
1092
+ transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
1093
+ }
1094
+
1095
+ .de-image-menu__item:hover {
1096
+ background: color-mix(in srgb, var(--de-toolbar-bg) 78%, var(--de-primary));
1097
+ border-color: color-mix(in srgb, var(--de-border) 45%, var(--de-primary));
1098
+ color: var(--de-primary);
1099
+ }
1100
+
1101
+ .de-image-menu__icon {
1102
+ display: inline-flex;
1103
+ align-items: center;
1104
+ justify-content: center;
1105
+ min-width: 1.35rem;
1106
+ font-size: 0.95rem;
1107
+ }
1108
+
1109
+ .de-image-menu__label {
1110
+ flex: 1;
1111
+ text-align: left;
1112
+ white-space: nowrap;
1113
+ }
1114
+
1115
+ #richhtmleditor-root .de-content figure.de-image {
1116
+ position: relative;
1117
+ display: block;
1118
+ width: fit-content;
1119
+ max-width: 100%;
1120
+ margin: 0.75em 0;
1121
+ overflow: visible;
1122
+ }
1123
+
1124
+ #richhtmleditor-root .de-content figure.de-image--left {
1125
+ margin-right: auto;
1126
+ margin-left: 0;
1127
+ }
1128
+
1129
+ #richhtmleditor-root .de-content figure.de-image--center {
1130
+ margin-left: auto;
1131
+ margin-right: auto;
1132
+ }
1133
+
1134
+ #richhtmleditor-root .de-content figure.de-image--right {
1135
+ margin-left: auto;
1136
+ margin-right: 0;
1137
+ }
1138
+
1139
+ #richhtmleditor-root .de-content figure.de-image--active {
1140
+ outline: 2px solid color-mix(in srgb, var(--de-primary) 55%, transparent);
1141
+ outline-offset: 3px;
1142
+ border-radius: 6px;
1143
+ }
1144
+
1145
+ #richhtmleditor-root .de-content figure.de-image img {
1146
+ display: block;
1147
+ max-width: 100%;
1148
+ height: auto;
1149
+ margin: 0;
1150
+ border-radius: 4px;
1151
+ }
1152
+
1153
+ #richhtmleditor-root .de-image-resizer {
1154
+ position: absolute;
1155
+ top: 12px;
1156
+ right: -12px;
1157
+ width: 6px;
1158
+ height: calc(100% - 24px);
1159
+ min-height: 48px;
1160
+ border-radius: 4px;
1161
+ background: color-mix(in srgb, var(--de-primary) 35%, transparent);
1162
+ cursor: col-resize;
1163
+ opacity: 0;
1164
+ transition: opacity 0.15s ease;
1165
+ pointer-events: auto;
1166
+ }
1167
+
1168
+ #richhtmleditor-root figure.de-image--active .de-image-resizer,
1169
+ #richhtmleditor-root figure.de-image:hover .de-image-resizer {
1170
+ opacity: 1;
1171
+ }
1172
+
1173
+ #richhtmleditor-root .de-image-resizer:hover {
1174
+ background: color-mix(in srgb, var(--de-primary) 55%, transparent);
1175
+ }
1176
+
1177
+ #richhtmleditor-root .de-image-controls {
1178
+ position: absolute;
1179
+ z-index: 36;
1180
+ display: flex;
1181
+ align-items: center;
1182
+ gap: 4px;
1183
+ padding: 4px;
1184
+ background: var(--de-toolbar-bg);
1185
+ border: 1px solid var(--de-border);
1186
+ border-radius: 8px;
1187
+ box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
1188
+ }
1189
+
1190
+ #richhtmleditor-root .de-image-controls[hidden] {
1191
+ display: none !important;
1192
+ }
1193
+
1194
+ #richhtmleditor-root .de-image-controls__align {
1195
+ display: flex;
1196
+ gap: 2px;
1197
+ }
1198
+
1199
+ #richhtmleditor-root .de-image-controls__align-btn {
1200
+ min-width: 28px;
1201
+ padding: 2px 6px;
1202
+ font-size: 0.85rem;
1203
+ font-weight: 700;
1204
+ color: var(--de-text-muted);
1205
+ }
1206
+
1207
+ #richhtmleditor-root .de-image-controls__align-btn--active {
1208
+ color: var(--de-primary);
1209
+ background: color-mix(in srgb, var(--de-primary) 12%, var(--de-toolbar-bg));
1210
+ }
1211
+
1212
+ #richhtmleditor-root .de-image-controls__divider {
1213
+ width: 1px;
1214
+ height: 20px;
1215
+ margin: 0 2px;
1216
+ background: var(--de-border);
1217
+ }
1218
+
1219
+ #richhtmleditor-root .de-image-controls__btn--remove {
1220
+ font-size: 0.75rem;
1221
+ font-weight: 600;
1222
+ color: #dc2626;
1223
+ }
1224
+
1225
+ #richhtmleditor-root .de-image-controls__field {
1226
+ width: 88px;
1227
+ padding: 4px 6px;
1228
+ font-size: 0.72rem;
1229
+ border: 1px solid var(--de-border);
1230
+ border-radius: 6px;
1231
+ background: var(--de-content-bg);
1232
+ color: var(--de-text-primary);
1233
+ }
1234
+
1235
+ #richhtmleditor-root .de-content .de-image-caption {
1236
+ margin: 6px 0 0;
1237
+ font-size: 0.85rem;
1238
+ color: var(--de-text-muted);
1239
+ text-align: center;
1240
+ }
1241
+
1242
+ #richhtmleditor-root .de-content .de-image-link {
1243
+ display: block;
1244
+ text-decoration: none;
1245
+ }
1246
+
1247
+ .de-image-modal .de-image-modal__url,
1248
+ .de-image-modal .de-image-modal__dropzone,
1249
+ .de-image-modal .de-image-modal__gallery-panel,
1250
+ .de-image-modal .de-image-modal__confirm {
1251
+ display: none !important;
1252
+ }
1253
+
1254
+ .de-image-modal--url .de-image-modal__url {
1255
+ display: block !important;
1256
+ }
1257
+
1258
+ .de-image-modal--drop .de-image-modal__dropzone {
1259
+ display: flex !important;
1260
+ }
1261
+
1262
+ .de-image-modal--gallery .de-image-modal__gallery-panel {
1263
+ display: flex !important;
1264
+ flex-direction: column;
1265
+ gap: 12px;
1266
+ min-height: 0;
1267
+ }
1268
+
1269
+ .de-image-modal--gallery .de-image-modal__gallery {
1270
+ display: flex !important;
1271
+ flex-direction: column;
1272
+ gap: 8px;
1273
+ }
1274
+
1275
+ .de-image-modal--gallery .de-find-modal__actions {
1276
+ display: none !important;
1277
+ }
1278
+
1279
+ .de-image-modal--confirm .de-image-modal__confirm {
1280
+ display: flex !important;
1281
+ flex-direction: column;
1282
+ gap: 10px;
1283
+ }
1284
+
1285
+ .de-image-modal__confirm-preview {
1286
+ display: block;
1287
+ width: 100%;
1288
+ max-height: 180px;
1289
+ object-fit: contain;
1290
+ border: 1px solid var(--de-border);
1291
+ border-radius: 10px;
1292
+ background: color-mix(in srgb, var(--de-toolbar-bg) 90%, var(--de-content-bg));
1293
+ }
1294
+
1295
+ .de-image-modal__confirm-hint {
1296
+ margin: 0;
1297
+ font-size: 0.78rem;
1298
+ color: var(--de-text-muted);
1299
+ line-height: 1.45;
1300
+ }
1301
+
1302
+ .de-image-modal__gallery-heading {
1303
+ margin: 0.35rem 0 0.25rem;
1304
+ font-size: 0.72rem;
1305
+ font-weight: 700;
1306
+ letter-spacing: 0.05em;
1307
+ text-transform: uppercase;
1308
+ color: var(--de-text-muted);
1309
+ }
1310
+
1311
+ .de-image-modal__gallery-heading:first-child {
1312
+ margin-top: 0;
1313
+ }
1314
+
1315
+ .de-image-modal__gallery-grid {
1316
+ display: grid;
1317
+ grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
1318
+ gap: 10px;
1319
+ }
1320
+
1321
+ .de-image-modal__gallery-card {
1322
+ position: relative;
1323
+ }
1324
+
1325
+ .de-image-modal__gallery-delete {
1326
+ position: absolute;
1327
+ top: 6px;
1328
+ right: 6px;
1329
+ z-index: 2;
1330
+ width: 22px;
1331
+ height: 22px;
1332
+ border: 1px solid color-mix(in srgb, var(--de-border) 70%, #dc2626);
1333
+ border-radius: 999px;
1334
+ background: color-mix(in srgb, var(--de-toolbar-bg) 88%, #fff);
1335
+ color: #dc2626;
1336
+ font-size: 0.95rem;
1337
+ line-height: 1;
1338
+ font-weight: 700;
1339
+ cursor: pointer;
1340
+ display: inline-flex;
1341
+ align-items: center;
1342
+ justify-content: center;
1343
+ padding: 0;
1344
+ }
1345
+
1346
+ .de-image-modal__gallery-delete:hover {
1347
+ background: #fef2f2;
1348
+ border-color: #dc2626;
1349
+ }
1350
+
1351
+ .de-image-modal__gallery-panel--active .de-image-modal__gallery-drop,
1352
+ .de-image-modal__gallery-drop--active {
1353
+ border-color: var(--de-primary);
1354
+ background: color-mix(in srgb, var(--de-primary) 10%, var(--de-toolbar-bg));
1355
+ }
1356
+
1357
+ .de-image-modal__gallery-drop {
1358
+ display: flex;
1359
+ flex-direction: column;
1360
+ align-items: center;
1361
+ justify-content: center;
1362
+ gap: 4px;
1363
+ min-height: 88px;
1364
+ padding: 14px 16px;
1365
+ border: 2px dashed var(--de-border);
1366
+ border-radius: 12px;
1367
+ background: color-mix(in srgb, var(--de-toolbar-bg) 92%, var(--de-primary));
1368
+ cursor: pointer;
1369
+ text-align: center;
1370
+ outline: none;
1371
+ flex-shrink: 0;
1372
+ transition: border-color 0.15s ease, background 0.15s ease;
1373
+ }
1374
+
1375
+ .de-image-modal__gallery-drop--active,
1376
+ .de-image-modal__gallery-drop:focus-visible {
1377
+ border-color: var(--de-primary);
1378
+ background: color-mix(in srgb, var(--de-primary) 10%, var(--de-toolbar-bg));
1379
+ }
1380
+
1381
+ .de-image-modal__gallery-drop-icon {
1382
+ font-size: 1.35rem;
1383
+ line-height: 1;
1384
+ opacity: 0.75;
1385
+ }
1386
+
1387
+ .de-image-modal__gallery-drop-text {
1388
+ margin: 0;
1389
+ font-size: 0.88rem;
1390
+ font-weight: 600;
1391
+ }
1392
+
1393
+ .de-image-modal__gallery-drop-hint {
1394
+ margin: 0;
1395
+ font-size: 0.78rem;
1396
+ color: var(--de-text-muted);
1397
+ }
1398
+
1399
+ .de-image-modal__dropzone {
1400
+ display: flex;
1401
+ flex-direction: column;
1402
+ align-items: center;
1403
+ justify-content: center;
1404
+ gap: 6px;
1405
+ min-height: 180px;
1406
+ padding: 24px;
1407
+ border: 2px dashed var(--de-border);
1408
+ border-radius: 12px;
1409
+ background: color-mix(in srgb, var(--de-toolbar-bg) 92%, var(--de-primary));
1410
+ cursor: pointer;
1411
+ text-align: center;
1412
+ outline: none;
1413
+ }
1414
+
1415
+ .de-image-modal__dropzone--active,
1416
+ .de-image-modal__dropzone:focus-visible {
1417
+ border-color: var(--de-primary);
1418
+ background: color-mix(in srgb, var(--de-primary) 10%, var(--de-toolbar-bg));
1419
+ }
1420
+
1421
+ .de-image-modal__dropzone-icon {
1422
+ font-size: 2rem;
1423
+ line-height: 1;
1424
+ opacity: 0.75;
1425
+ }
1426
+
1427
+ .de-image-modal__dropzone-text {
1428
+ margin: 0;
1429
+ font-size: 0.95rem;
1430
+ font-weight: 600;
1431
+ }
1432
+
1433
+ .de-image-modal__dropzone-hint {
1434
+ margin: 0;
1435
+ font-size: 0.8rem;
1436
+ color: var(--de-text-muted);
1437
+ }
1438
+
1439
+ .de-image-modal__gallery {
1440
+ display: flex;
1441
+ flex-direction: column;
1442
+ gap: 8px;
1443
+ padding: 2px;
1444
+ max-height: min(360px, 42vh);
1445
+ overflow: auto;
1446
+ }
1447
+
1448
+ .de-image-modal__gallery-item {
1449
+ display: flex;
1450
+ flex-direction: column;
1451
+ gap: 6px;
1452
+ padding: 6px;
1453
+ border: 1px solid var(--de-border);
1454
+ border-radius: 10px;
1455
+ background: var(--de-toolbar-bg);
1456
+ cursor: pointer;
1457
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
1458
+ }
1459
+
1460
+ .de-image-modal__gallery-item:hover {
1461
+ border-color: var(--de-primary);
1462
+ box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
1463
+ }
1464
+
1465
+ .de-image-modal__gallery-item img {
1466
+ width: 100%;
1467
+ height: 72px;
1468
+ object-fit: cover;
1469
+ border-radius: 6px;
1470
+ display: block;
1471
+ }
1472
+
1473
+ .de-image-modal__gallery-caption {
1474
+ font-size: 0.72rem;
1475
+ font-weight: 600;
1476
+ color: var(--de-text-muted);
1477
+ white-space: nowrap;
1478
+ overflow: hidden;
1479
+ text-overflow: ellipsis;
1480
+ }
1481
+
1482
+ .de-image-modal__gallery-empty {
1483
+ margin: 0;
1484
+ padding: 12px 4px;
1485
+ font-size: 0.85rem;
1486
+ color: var(--de-text-muted);
1487
+ }
1488
+
1489
+ #richhtmleditor-root .de-image-drop-overlay {
1490
+ position: absolute;
1491
+ inset: 0;
1492
+ z-index: 30;
1493
+ display: flex;
1494
+ align-items: center;
1495
+ justify-content: center;
1496
+ background: color-mix(in srgb, var(--de-primary) 14%, transparent);
1497
+ border: 2px dashed var(--de-primary);
1498
+ border-radius: 8px;
1499
+ pointer-events: none;
1500
+ }
1501
+
1502
+ #richhtmleditor-root .de-image-drop-overlay[hidden] {
1503
+ display: none !important;
1504
+ }
1505
+
1506
+ #richhtmleditor-root .de-image-drop-overlay__label {
1507
+ margin: 0;
1508
+ padding: 10px 16px;
1509
+ border-radius: 999px;
1510
+ background: var(--de-toolbar-bg);
1511
+ border: 1px solid var(--de-border);
1512
+ font-size: 0.9rem;
1513
+ font-weight: 600;
1514
+ color: var(--de-primary);
1515
+ box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
1516
+ }
1517
+
1518
+ #richhtmleditor-root .de-content td h1,
1519
+ #richhtmleditor-root .de-content th h1,
1520
+ #richhtmleditor-root .de-content td h2,
1521
+ #richhtmleditor-root .de-content th h2,
1522
+ #richhtmleditor-root .de-content td h3,
1523
+ #richhtmleditor-root .de-content th h3 {
1524
+ margin: 0;
1525
+ line-height: 1.25;
1526
+ }
1527
+
1528
+ #richhtmleditor-root .de-content td h1,
1529
+ #richhtmleditor-root .de-content th h1 {
1530
+ font-size: 1.35em;
1531
+ font-weight: 700;
1532
+ }
1533
+
1534
+ #richhtmleditor-root .de-content td h2,
1535
+ #richhtmleditor-root .de-content th h2 {
1536
+ font-size: 1.15em;
1537
+ font-weight: 700;
1538
+ }
1539
+
1540
+ #richhtmleditor-root .de-content td h3,
1541
+ #richhtmleditor-root .de-content th h3 {
1542
+ font-size: 1em;
1543
+ font-weight: 700;
1544
+ }
1545
+
1546
+ #richhtmleditor-root .de-content th {
1547
+ border: 1px solid var(--de-border);
1548
+ padding: 8px 10px;
1549
+ vertical-align: top;
1550
+ min-width: 48px;
1551
+ font-weight: 700;
1552
+ background: color-mix(in srgb, var(--de-toolbar-bg) 88%, var(--de-primary));
1553
+ }
1554
+
1555
+ #richhtmleditor-root .de-toolbar__overflow {
1556
+ position: relative;
1557
+ display: inline-flex;
1558
+ margin-left: auto;
1559
+ }
1560
+
1561
+ #richhtmleditor-root .de-toolbar__overflow-btn {
1562
+ min-width: 2rem;
1563
+ font-size: 1.1rem;
1564
+ line-height: 1;
1565
+ }
1566
+
1567
+ /* Portaled to document.body — cannot rely on #richhtmleditor-root ancestor */
1568
+ .de-toolbar__overflow-menu {
1569
+ --de-primary: #2563eb;
1570
+ --de-toolbar-bg: #ffffff;
1571
+ --de-text-primary: #0f172a;
1572
+ --de-text-muted: #64748b;
1573
+ --de-border: #e2e8f0;
1574
+ z-index: 10000;
1575
+ min-width: 188px;
1576
+ padding: 8px;
1577
+ background: var(--de-toolbar-bg);
1578
+ border: 1px solid var(--de-border);
1579
+ border-radius: 12px;
1580
+ box-shadow:
1581
+ 0 16px 40px rgba(15, 23, 42, 0.14),
1582
+ 0 2px 8px rgba(15, 23, 42, 0.06);
1583
+ display: flex;
1584
+ flex-direction: column;
1585
+ gap: 4px;
1586
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
1587
+ color: var(--de-text-primary);
1588
+ }
1589
+
1590
+ .de-toolbar__overflow-menu--dark {
1591
+ --de-toolbar-bg: #1e293b;
1592
+ --de-text-primary: #f1f5f9;
1593
+ --de-text-muted: #94a3b8;
1594
+ --de-border: #334155;
1595
+ }
1596
+
1597
+ .de-toolbar__overflow-menu[hidden] {
1598
+ display: none !important;
1599
+ }
1600
+
1601
+ .de-toolbar__overflow-menu .de-toolbar__overflow-item {
1602
+ width: 100%;
1603
+ justify-content: flex-start;
1604
+ gap: 10px;
1605
+ border: 1px solid transparent;
1606
+ border-radius: 8px;
1607
+ padding: 9px 12px;
1608
+ background: transparent;
1609
+ color: var(--de-text-primary);
1610
+ font-size: 0.8125rem;
1611
+ font-weight: 600;
1612
+ box-shadow: none;
1613
+ transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
1614
+ }
1615
+
1616
+ .de-toolbar__overflow-menu .de-toolbar__overflow-item:hover:not(:disabled) {
1617
+ background: color-mix(in srgb, var(--de-toolbar-bg) 78%, var(--de-primary));
1618
+ border-color: color-mix(in srgb, var(--de-border) 45%, var(--de-primary));
1619
+ color: var(--de-primary);
1620
+ }
1621
+
1622
+ .de-toolbar__overflow-menu .de-toolbar__overflow-item .de-toolbar__icon {
1623
+ display: inline-flex;
1624
+ align-items: center;
1625
+ justify-content: center;
1626
+ min-width: 1.35rem;
1627
+ font-size: 0.9rem;
1628
+ opacity: 0.9;
1629
+ }
1630
+
1631
+ .de-toolbar__overflow-menu .de-toolbar__overflow-item .de-toolbar__label {
1632
+ flex: 1;
1633
+ text-align: left;
1634
+ }
1635
+
1636
+ .de-toolbar__overflow-heading {
1637
+ padding: 4px 10px 2px;
1638
+ font-size: 0.6875rem;
1639
+ font-weight: 700;
1640
+ letter-spacing: 0.06em;
1641
+ text-transform: uppercase;
1642
+ color: var(--de-text-muted);
1643
+ }
1644
+
1645
+ #richhtmleditor-root .de-toolbar__dropdown {
1646
+ display: inline-flex;
1647
+ }
1648
+
1649
+ /* Portaled image modals — escape #richhtmleditor-root overflow clipping */
1650
+ .de-find-modal__backdrop--portal {
1651
+ --de-primary: #2563eb;
1652
+ --de-primary-hover: #1d4ed8;
1653
+ --de-toolbar-bg: #ffffff;
1654
+ --de-text-primary: #0f172a;
1655
+ --de-text-muted: #64748b;
1656
+ --de-border: #e2e8f0;
1657
+ --de-content-bg: #ffffff;
1658
+ position: fixed;
1659
+ inset: 0;
1660
+ z-index: 10001;
1661
+ display: flex;
1662
+ align-items: center;
1663
+ justify-content: center;
1664
+ padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
1665
+ background: rgba(15, 23, 42, 0.4);
1666
+ font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
1667
+ color: var(--de-text-primary);
1668
+ }
1669
+
1670
+ .de-find-modal__backdrop--portal[hidden] {
1671
+ display: none !important;
1672
+ }
1673
+
1674
+ .de-find-modal__backdrop--portal.de-find-modal__backdrop--dark {
1675
+ --de-toolbar-bg: #1e293b;
1676
+ --de-text-primary: #f1f5f9;
1677
+ --de-text-muted: #94a3b8;
1678
+ --de-border: #334155;
1679
+ --de-content-bg: #0f172a;
1680
+ }
1681
+
1682
+ .de-find-modal__backdrop--portal .de-find-modal {
1683
+ width: min(420px, 100%);
1684
+ max-height: min(560px, calc(100vh - 32px));
1685
+ display: flex;
1686
+ flex-direction: column;
1687
+ background: var(--de-toolbar-bg);
1688
+ border: 1px solid var(--de-border);
1689
+ border-radius: 12px;
1690
+ box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
1691
+ overflow: hidden;
1692
+ }
1693
+
1694
+ .de-find-modal__backdrop--portal .de-find-modal.de-image-modal--gallery {
1695
+ width: min(520px, calc(100vw - 32px));
1696
+ }
1697
+
1698
+ .de-find-modal__backdrop--portal .de-find-modal__head {
1699
+ display: flex;
1700
+ align-items: center;
1701
+ justify-content: space-between;
1702
+ gap: 12px;
1703
+ padding: 12px 14px;
1704
+ border-bottom: 1px solid var(--de-border);
1705
+ flex-shrink: 0;
1706
+ }
1707
+
1708
+ .de-find-modal__backdrop--portal .de-find-modal__title {
1709
+ margin: 0;
1710
+ font-size: 0.95rem;
1711
+ font-weight: 700;
1712
+ }
1713
+
1714
+ .de-find-modal__backdrop--portal .de-find-modal__close {
1715
+ border: none;
1716
+ background: transparent;
1717
+ color: var(--de-text-muted);
1718
+ font-size: 1.35rem;
1719
+ line-height: 1;
1720
+ cursor: pointer;
1721
+ border-radius: 6px;
1722
+ padding: 2px 6px;
1723
+ }
1724
+
1725
+ .de-find-modal__backdrop--portal .de-find-modal__close:hover {
1726
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
1727
+ color: var(--de-text-primary);
1728
+ }
1729
+
1730
+ .de-find-modal__backdrop--portal .de-find-modal__body {
1731
+ display: flex;
1732
+ flex-direction: column;
1733
+ gap: 8px;
1734
+ padding: 14px;
1735
+ overflow: auto;
1736
+ min-height: 0;
1737
+ }
1738
+
1739
+ .de-find-modal__backdrop--portal .de-find-modal__label {
1740
+ font-size: 0.78rem;
1741
+ font-weight: 600;
1742
+ color: var(--de-text-muted);
1743
+ }
1744
+
1745
+ .de-find-modal__backdrop--portal .de-find-modal__input {
1746
+ width: 100%;
1747
+ box-sizing: border-box;
1748
+ padding: 8px 10px;
1749
+ border: 1px solid var(--de-border);
1750
+ border-radius: 8px;
1751
+ background: var(--de-content-bg);
1752
+ color: var(--de-text-primary);
1753
+ font-size: 0.875rem;
1754
+ }
1755
+
1756
+ .de-find-modal__backdrop--portal .de-find-modal__input:focus {
1757
+ outline: none;
1758
+ border-color: var(--de-primary);
1759
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--de-primary) 25%, transparent);
1760
+ }
1761
+
1762
+ .de-find-modal__backdrop--portal .de-find-modal__status {
1763
+ margin: 0;
1764
+ font-size: 0.8rem;
1765
+ color: var(--de-text-muted);
1766
+ }
1767
+
1768
+ .de-find-modal__backdrop--portal .de-find-modal__status--error {
1769
+ color: #dc2626;
1770
+ }
1771
+
1772
+ .de-find-modal__backdrop--portal .de-find-modal__label--replace[hidden],
1773
+ .de-find-modal__backdrop--portal .de-find-modal__input[hidden],
1774
+ .de-find-modal__backdrop--portal .de-find-modal__btn--replace[hidden],
1775
+ .de-find-modal__backdrop--portal [hidden] {
1776
+ display: none !important;
1777
+ }
1778
+
1779
+ .de-find-modal__backdrop--portal .de-find-modal__actions {
1780
+ display: flex;
1781
+ flex-wrap: wrap;
1782
+ justify-content: flex-end;
1783
+ align-items: center;
1784
+ gap: 8px;
1785
+ flex-shrink: 0;
1786
+ padding: 12px 14px;
1787
+ border-top: 1px solid var(--de-border);
1788
+ }
1789
+
1790
+ .de-find-modal__backdrop--portal .de-btn:not([hidden]) {
1791
+ display: inline-flex;
1792
+ align-items: center;
1793
+ justify-content: center;
1794
+ gap: 6px;
1795
+ min-width: 0;
1796
+ max-width: 100%;
1797
+ white-space: nowrap;
1798
+ border: 1px solid transparent;
1799
+ border-radius: 8px;
1800
+ padding: 9px 18px;
1801
+ cursor: pointer;
1802
+ font-size: 0.875rem;
1803
+ font-weight: 600;
1804
+ font-family: inherit;
1805
+ line-height: 1.2;
1806
+ transition:
1807
+ background 0.15s ease,
1808
+ border-color 0.15s ease,
1809
+ box-shadow 0.15s ease,
1810
+ color 0.15s ease,
1811
+ transform 0.1s ease;
1812
+ }
1813
+
1814
+ .de-find-modal__backdrop--portal .de-btn:disabled {
1815
+ opacity: 0.45;
1816
+ cursor: not-allowed;
1817
+ }
1818
+
1819
+ .de-find-modal__backdrop--portal .de-find-modal__btn:not(.de-find-modal__btn--ghost) {
1820
+ background: var(--de-primary);
1821
+ border-color: var(--de-primary);
1822
+ color: #ffffff;
1823
+ box-shadow:
1824
+ 0 1px 2px rgba(37, 99, 235, 0.18),
1825
+ 0 4px 12px rgba(37, 99, 235, 0.16);
1826
+ }
1827
+
1828
+ .de-find-modal__backdrop--portal .de-find-modal__btn:not(.de-find-modal__btn--ghost):hover:not(:disabled) {
1829
+ background: var(--de-primary-hover);
1830
+ border-color: var(--de-primary-hover);
1831
+ box-shadow:
1832
+ 0 2px 4px rgba(37, 99, 235, 0.22),
1833
+ 0 6px 16px rgba(37, 99, 235, 0.2);
1834
+ }
1835
+
1836
+ .de-find-modal__backdrop--portal .de-find-modal__btn:not(.de-find-modal__btn--ghost):active:not(:disabled) {
1837
+ transform: translateY(1px);
1838
+ box-shadow: 0 1px 2px rgba(37, 99, 235, 0.18);
1839
+ }
1840
+
1841
+ .de-find-modal__backdrop--portal .de-find-modal__btn:not(.de-find-modal__btn--ghost):focus-visible {
1842
+ outline: none;
1843
+ box-shadow:
1844
+ 0 0 0 3px color-mix(in srgb, var(--de-primary) 30%, transparent),
1845
+ 0 4px 12px rgba(37, 99, 235, 0.16);
1846
+ }
1847
+
1848
+ .de-find-modal__backdrop--portal .de-find-modal__btn--ghost {
1849
+ background: transparent;
1850
+ border-color: var(--de-border);
1851
+ color: var(--de-text-muted);
1852
+ box-shadow: none;
1853
+ }
1854
+
1855
+ .de-find-modal__backdrop--portal .de-find-modal__btn--ghost:hover:not(:disabled) {
1856
+ background: color-mix(in srgb, var(--de-toolbar-bg) 88%, var(--de-primary));
1857
+ border-color: color-mix(in srgb, var(--de-border) 55%, var(--de-primary));
1858
+ color: var(--de-text-primary);
1859
+ }
1860
+
1861
+ .de-find-modal__backdrop--portal .de-find-modal__btn--ghost:focus-visible {
1862
+ outline: none;
1863
+ border-color: var(--de-primary);
1864
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--de-primary) 22%, transparent);
1865
+ }
1866
+
1867
+ .de-find-modal__backdrop--portal .de-a11y-modal {
1868
+ width: min(420px, calc(100vw - 32px));
1869
+ }
1870
+
1871
+ .de-find-modal__backdrop--portal .de-a11y-modal__body {
1872
+ gap: 12px;
1873
+ }
1874
+
1875
+ .de-find-modal__backdrop--portal .de-a11y-modal__summary {
1876
+ margin: 0;
1877
+ font-size: 0.9rem;
1878
+ color: var(--de-text-muted);
1879
+ }
1880
+
1881
+ .de-find-modal__backdrop--portal .de-a11y-modal__summary--success {
1882
+ display: flex;
1883
+ align-items: center;
1884
+ gap: 10px;
1885
+ padding: 14px 16px;
1886
+ border-radius: 10px;
1887
+ background: color-mix(in srgb, #16a34a 10%, var(--de-content-bg));
1888
+ border: 1px solid color-mix(in srgb, #16a34a 28%, var(--de-border));
1889
+ color: #166534;
1890
+ font-weight: 600;
1891
+ }
1892
+
1893
+ .de-find-modal__backdrop--portal .de-a11y-modal__summary--success::before {
1894
+ content: "✓";
1895
+ display: inline-flex;
1896
+ align-items: center;
1897
+ justify-content: center;
1898
+ width: 1.5rem;
1899
+ height: 1.5rem;
1900
+ border-radius: 999px;
1901
+ background: #16a34a;
1902
+ color: #fff;
1903
+ font-size: 0.85rem;
1904
+ flex-shrink: 0;
1905
+ }
1906
+
1907
+ .de-find-modal__backdrop--portal .de-a11y-modal__list {
1908
+ margin: 0;
1909
+ padding: 0;
1910
+ list-style: none;
1911
+ display: flex;
1912
+ flex-direction: column;
1913
+ gap: 8px;
1914
+ max-height: min(50vh, 320px);
1915
+ overflow: auto;
1916
+ }
1917
+
1918
+ .de-find-modal__backdrop--portal .de-a11y-modal__item {
1919
+ display: flex;
1920
+ align-items: flex-start;
1921
+ gap: 10px;
1922
+ padding: 10px 12px;
1923
+ border-radius: 8px;
1924
+ border: 1px solid var(--de-border);
1925
+ background: var(--de-content-bg);
1926
+ }
1927
+
1928
+ .de-find-modal__backdrop--portal .de-a11y-modal__item--error {
1929
+ border-color: color-mix(in srgb, #dc2626 35%, var(--de-border));
1930
+ background: color-mix(in srgb, #dc2626 6%, var(--de-content-bg));
1931
+ }
1932
+
1933
+ .de-find-modal__backdrop--portal .de-a11y-modal__item--warning {
1934
+ border-color: color-mix(in srgb, #d97706 35%, var(--de-border));
1935
+ background: color-mix(in srgb, #d97706 6%, var(--de-content-bg));
1936
+ }
1937
+
1938
+ .de-find-modal__backdrop--portal .de-a11y-modal__badge {
1939
+ flex-shrink: 0;
1940
+ font-size: 0.6875rem;
1941
+ font-weight: 700;
1942
+ letter-spacing: 0.04em;
1943
+ text-transform: uppercase;
1944
+ padding: 3px 7px;
1945
+ border-radius: 6px;
1946
+ }
1947
+
1948
+ .de-find-modal__backdrop--portal .de-a11y-modal__item--error .de-a11y-modal__badge {
1949
+ background: #dc2626;
1950
+ color: #fff;
1951
+ }
1952
+
1953
+ .de-find-modal__backdrop--portal .de-a11y-modal__item--warning .de-a11y-modal__badge {
1954
+ background: #d97706;
1955
+ color: #fff;
1956
+ }
1957
+
1958
+ .de-find-modal__backdrop--portal .de-a11y-modal__message {
1959
+ font-size: 0.875rem;
1960
+ line-height: 1.45;
1961
+ color: var(--de-text-primary);
1962
+ }
1963
+
1964
+ .de-find-modal__backdrop--portal .de-format-modal__color-row {
1965
+ display: flex;
1966
+ align-items: center;
1967
+ gap: 10px;
1968
+ }
1969
+
1970
+ .de-find-modal__backdrop--portal .de-format-modal__color-picker {
1971
+ width: 44px;
1972
+ height: 36px;
1973
+ padding: 2px;
1974
+ border: 1px solid var(--de-border);
1975
+ border-radius: 8px;
1976
+ background: var(--de-content-bg);
1977
+ cursor: pointer;
1978
+ }
1979
+
1980
+ .de-find-modal__backdrop--portal .de-format-modal__color-row .de-find-modal__input {
1981
+ flex: 1;
1982
+ }
1983
+
1984
+ .de-find-modal__backdrop--portal .de-format-modal__presets {
1985
+ display: flex;
1986
+ flex-wrap: wrap;
1987
+ gap: 6px;
1988
+ }
1989
+
1990
+ .de-find-modal__backdrop--portal .de-format-modal__swatch {
1991
+ width: 28px;
1992
+ height: 28px;
1993
+ border: 1px solid var(--de-border);
1994
+ border-radius: 6px;
1995
+ cursor: pointer;
1996
+ }
1997
+
1998
+ .de-find-modal__backdrop--portal .de-format-modal__preset-btn {
1999
+ border: 1px solid var(--de-border);
2000
+ background: var(--de-toolbar-bg);
2001
+ color: var(--de-text-primary);
2002
+ border-radius: 6px;
2003
+ padding: 4px 10px;
2004
+ font-size: 0.78rem;
2005
+ cursor: pointer;
2006
+ }
2007
+
2008
+ .de-find-modal__backdrop--portal .de-format-modal__preset-btn:hover,
2009
+ .de-find-modal__backdrop--portal .de-format-modal__swatch:hover {
2010
+ border-color: var(--de-primary);
2011
+ }
2012
+
2013
+ .de-find-modal__backdrop--portal .de-format-modal__preset-btn--active {
2014
+ border-color: var(--de-primary);
2015
+ background: color-mix(in srgb, var(--de-primary) 14%, var(--de-toolbar-bg));
2016
+ color: var(--de-primary);
2017
+ font-weight: 700;
2018
+ }
2019
+
2020
+ .de-find-modal__backdrop--portal .de-format-modal__swatch--active {
2021
+ outline: 2px solid var(--de-primary);
2022
+ outline-offset: 2px;
2023
+ }
2024
+
2025
+ .de-find-modal__backdrop--portal.de-find-modal__backdrop--font {
2026
+ align-items: center;
2027
+ }
2028
+
2029
+ .de-find-modal__backdrop--portal .de-find-modal--font {
2030
+ width: min(320px, calc(100vw - 32px));
2031
+ max-height: min(560px, calc(100vh - 32px));
2032
+ display: flex;
2033
+ flex-direction: column;
2034
+ }
2035
+
2036
+ .de-find-modal__backdrop--portal .de-find-modal--font .de-find-modal__body {
2037
+ flex: 1 1 auto;
2038
+ min-height: 0;
2039
+ overflow: hidden;
2040
+ display: flex;
2041
+ flex-direction: column;
2042
+ gap: 8px;
2043
+ }
2044
+
2045
+ .de-find-modal__backdrop--portal .de-find-modal--font .de-find-modal__body > :not(.de-format-modal__font-list) {
2046
+ flex-shrink: 0;
2047
+ }
2048
+
2049
+ .de-find-modal__backdrop--portal .de-format-modal__font-list {
2050
+ display: flex;
2051
+ flex-direction: column;
2052
+ flex: 1 1 auto;
2053
+ min-height: 140px;
2054
+ max-height: min(260px, 42vh);
2055
+ overflow-x: hidden;
2056
+ overflow-y: auto;
2057
+ overscroll-behavior: contain;
2058
+ border: 1px solid var(--de-border);
2059
+ border-radius: 8px;
2060
+ background: var(--de-content-bg);
2061
+ }
2062
+
2063
+ .de-find-modal__backdrop--portal .de-find-modal--font .de-format-modal__font-list {
2064
+ max-height: none;
2065
+ }
2066
+
2067
+ .de-find-modal__backdrop--portal .de-format-modal__font-item {
2068
+ display: block;
2069
+ width: 100%;
2070
+ box-sizing: border-box;
2071
+ text-align: left;
2072
+ padding: 11px 14px;
2073
+ border: none;
2074
+ border-bottom: 1px solid color-mix(in srgb, var(--de-border) 70%, transparent);
2075
+ background: transparent;
2076
+ color: var(--de-text-primary);
2077
+ cursor: pointer;
2078
+ font-size: 1rem;
2079
+ line-height: 1.35;
2080
+ min-height: 2.5rem;
2081
+ }
2082
+
2083
+ .de-find-modal__backdrop--portal .de-format-modal__font-item:last-child {
2084
+ border-bottom: none;
2085
+ }
2086
+
2087
+ .de-find-modal__backdrop--portal .de-format-modal__font-item:hover {
2088
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
2089
+ }
2090
+
2091
+ .de-find-modal__backdrop--portal .de-format-modal__font-item--active {
2092
+ background: color-mix(in srgb, var(--de-primary) 14%, var(--de-toolbar-bg));
2093
+ color: var(--de-primary);
2094
+ font-weight: 600;
2095
+ }
2096
+
2097
+ .de-find-modal__backdrop--portal .de-format-modal__font-item:focus-visible {
2098
+ outline: 2px solid var(--de-primary);
2099
+ outline-offset: -2px;
2100
+ }
2101
+
2102
+ .de-find-modal__backdrop--portal .de-find-modal__status--count {
2103
+ color: var(--de-primary);
2104
+ }
2105
+
2106
+ #richhtmleditor-root .de-content pre code {
2107
+ font-family: inherit;
2108
+ font-size: inherit;
2109
+ background: none;
2110
+ padding: 0;
2111
+ }
2112
+
2113
+ #richhtmleditor-root .de-html-source {
2114
+ display: none;
2115
+ flex: 1;
2116
+ min-height: 200px;
2117
+ width: 100%;
2118
+ box-sizing: border-box;
2119
+ padding: 14px 16px;
2120
+ border: none;
2121
+ outline: none;
2122
+ resize: vertical;
2123
+ background: var(--de-content-bg);
2124
+ color: var(--de-text-primary);
2125
+ font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
2126
+ font-size: 0.8125rem;
2127
+ line-height: 1.55;
2128
+ tab-size: 2;
2129
+ white-space: pre;
2130
+ overflow-x: auto;
2131
+ }
2132
+
2133
+ #richhtmleditor-root .de-html-source:focus {
2134
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--de-primary) 25%, transparent);
2135
+ }
2136
+
2137
+ #richhtmleditor-root.de-root--html-source .de-content {
2138
+ display: none;
2139
+ }
2140
+
2141
+ #richhtmleditor-root.de-root--html-source .de-html-source {
2142
+ display: block;
2143
+ }
2144
+
2145
+ #richhtmleditor-root .de-content a {
2146
+ color: var(--de-primary);
2147
+ }
2148
+
2149
+ #richhtmleditor-root .de-content hr {
2150
+ border: none;
2151
+ border-top: 1px solid var(--de-border);
2152
+ margin: 1em 0;
2153
+ }
2154
+
2155
+ #richhtmleditor-root .de-find-modal__backdrop[hidden] {
2156
+ display: none !important;
2157
+ }
2158
+
2159
+ #richhtmleditor-root .de-find-modal__backdrop {
2160
+ position: absolute;
2161
+ inset: 0;
2162
+ z-index: 40;
2163
+ display: flex;
2164
+ align-items: flex-start;
2165
+ justify-content: center;
2166
+ padding: 48px 16px 16px;
2167
+ background: rgba(15, 23, 42, 0.35);
2168
+ }
2169
+
2170
+ #richhtmleditor-root .de-find-modal {
2171
+ width: min(420px, 100%);
2172
+ display: flex;
2173
+ flex-direction: column;
2174
+ background: var(--de-toolbar-bg);
2175
+ border: 1px solid var(--de-border);
2176
+ border-radius: 12px;
2177
+ box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
2178
+ overflow: hidden;
2179
+ }
2180
+
2181
+ #richhtmleditor-root .de-find-modal__head {
2182
+ display: flex;
2183
+ align-items: center;
2184
+ justify-content: space-between;
2185
+ gap: 12px;
2186
+ padding: 12px 14px;
2187
+ border-bottom: 1px solid var(--de-border);
2188
+ }
2189
+
2190
+ #richhtmleditor-root .de-find-modal__title {
2191
+ margin: 0;
2192
+ font-size: 0.95rem;
2193
+ font-weight: 700;
2194
+ }
2195
+
2196
+ #richhtmleditor-root .de-find-modal__close {
2197
+ border: none;
2198
+ background: transparent;
2199
+ color: var(--de-text-muted);
2200
+ font-size: 1.35rem;
2201
+ line-height: 1;
2202
+ cursor: pointer;
2203
+ padding: 2px 6px;
2204
+ border-radius: 6px;
2205
+ }
2206
+
2207
+ #richhtmleditor-root .de-find-modal__close:hover {
2208
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
2209
+ color: var(--de-text-primary);
2210
+ }
2211
+
2212
+ #richhtmleditor-root .de-find-modal__body {
2213
+ display: flex;
2214
+ flex-direction: column;
2215
+ gap: 8px;
2216
+ padding: 14px;
2217
+ min-height: 0;
2218
+ overflow: auto;
2219
+ }
2220
+
2221
+ #richhtmleditor-root .de-find-modal__label {
2222
+ font-size: 0.78rem;
2223
+ font-weight: 600;
2224
+ color: var(--de-text-muted);
2225
+ }
2226
+
2227
+ #richhtmleditor-root .de-find-modal__label--replace[hidden],
2228
+ #richhtmleditor-root .de-find-modal__input[hidden],
2229
+ #richhtmleditor-root .de-find-modal__btn--replace[hidden] {
2230
+ display: none !important;
2231
+ }
2232
+
2233
+ #richhtmleditor-root .de-find-modal__input {
2234
+ width: 100%;
2235
+ box-sizing: border-box;
2236
+ border: 1px solid var(--de-border);
2237
+ border-radius: 8px;
2238
+ padding: 8px 10px;
2239
+ font: inherit;
2240
+ font-size: 0.875rem;
2241
+ color: var(--de-text-primary);
2242
+ background: var(--de-content-bg);
2243
+ }
2244
+
2245
+ #richhtmleditor-root .de-find-modal__input:focus {
2246
+ outline: none;
2247
+ border-color: var(--de-primary);
2248
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--de-primary) 20%, transparent);
2249
+ }
2250
+
2251
+ #richhtmleditor-root .de-find-modal__status {
2252
+ margin: 0;
2253
+ min-height: 1.25rem;
2254
+ font-size: 0.84rem;
2255
+ font-weight: 600;
2256
+ color: var(--de-text-muted);
2257
+ }
2258
+
2259
+ #richhtmleditor-root .de-find-modal__status--count {
2260
+ color: var(--de-primary);
2261
+ }
2262
+
2263
+ #richhtmleditor-root .de-find-modal__status--error {
2264
+ color: #dc2626;
2265
+ }
2266
+
2267
+ #richhtmleditor-root .de-find-modal__actions {
2268
+ display: flex;
2269
+ flex-wrap: wrap;
2270
+ justify-content: flex-end;
2271
+ align-items: center;
2272
+ gap: 8px;
2273
+ flex-shrink: 0;
2274
+ padding: 12px 14px;
2275
+ border-top: 1px solid var(--de-border);
2276
+ }
2277
+
2278
+ #richhtmleditor-root .de-find-modal__btn--ghost {
2279
+ background: transparent;
2280
+ }
2281
+
2282
+ #richhtmleditor-root .de-find-match {
2283
+ background: #fef08a;
2284
+ color: inherit;
2285
+ border-radius: 2px;
2286
+ padding: 0 1px;
2287
+ }
2288
+
2289
+ #richhtmleditor-root.de-root--dark .de-find-match {
2290
+ background: #854d0e;
2291
+ color: #fef9c3;
2292
+ }
2293
+
2294
+ #richhtmleditor-root .de-format-modal__color-row {
2295
+ display: flex;
2296
+ align-items: center;
2297
+ gap: 10px;
2298
+ }
2299
+
2300
+ #richhtmleditor-root .de-format-modal__color-picker {
2301
+ width: 44px;
2302
+ height: 36px;
2303
+ padding: 2px;
2304
+ border: 1px solid var(--de-border);
2305
+ border-radius: 8px;
2306
+ background: var(--de-content-bg);
2307
+ cursor: pointer;
2308
+ }
2309
+
2310
+ #richhtmleditor-root .de-format-modal__color-row .de-find-modal__input {
2311
+ flex: 1;
2312
+ }
2313
+
2314
+ #richhtmleditor-root .de-format-modal__presets {
2315
+ display: flex;
2316
+ flex-wrap: wrap;
2317
+ gap: 6px;
2318
+ }
2319
+
2320
+ #richhtmleditor-root .de-format-modal__swatch {
2321
+ width: 28px;
2322
+ height: 28px;
2323
+ border: 1px solid var(--de-border);
2324
+ border-radius: 6px;
2325
+ cursor: pointer;
2326
+ }
2327
+
2328
+ #richhtmleditor-root .de-format-modal__preset-btn {
2329
+ border: 1px solid var(--de-border);
2330
+ background: var(--de-toolbar-bg);
2331
+ color: var(--de-text-primary);
2332
+ border-radius: 6px;
2333
+ padding: 4px 10px;
2334
+ font-size: 0.78rem;
2335
+ cursor: pointer;
2336
+ }
2337
+
2338
+ #richhtmleditor-root .de-format-modal__preset-btn:hover,
2339
+ #richhtmleditor-root .de-format-modal__swatch:hover {
2340
+ border-color: var(--de-primary);
2341
+ }
2342
+
2343
+ #richhtmleditor-root .de-format-modal__preset-btn--active {
2344
+ border-color: var(--de-primary);
2345
+ background: color-mix(in srgb, var(--de-primary) 14%, var(--de-toolbar-bg));
2346
+ color: var(--de-primary);
2347
+ font-weight: 700;
2348
+ }
2349
+
2350
+ #richhtmleditor-root .de-format-modal__swatch--active {
2351
+ outline: 2px solid var(--de-primary);
2352
+ outline-offset: 2px;
2353
+ }
2354
+
2355
+ #richhtmleditor-root .de-find-modal__backdrop--font {
2356
+ align-items: center;
2357
+ padding: 12px;
2358
+ }
2359
+
2360
+ #richhtmleditor-root .de-find-modal--font {
2361
+ width: min(320px, calc(100% - 24px));
2362
+ max-height: calc(100% - 24px);
2363
+ display: flex;
2364
+ flex-direction: column;
2365
+ }
2366
+
2367
+ #richhtmleditor-root .de-find-modal--font .de-find-modal__body {
2368
+ flex: 1 1 auto;
2369
+ min-height: 0;
2370
+ overflow: hidden;
2371
+ display: flex;
2372
+ flex-direction: column;
2373
+ gap: 8px;
2374
+ }
2375
+
2376
+ #richhtmleditor-root .de-find-modal--font .de-find-modal__body > :not(.de-format-modal__font-list) {
2377
+ flex-shrink: 0;
2378
+ }
2379
+
2380
+ #richhtmleditor-root .de-find-modal--font .de-find-modal__actions {
2381
+ flex-shrink: 0;
2382
+ margin-top: 2px;
2383
+ }
2384
+
2385
+ #richhtmleditor-root .de-format-modal__font-list {
2386
+ display: flex;
2387
+ flex-direction: column;
2388
+ flex: 1 1 auto;
2389
+ min-height: 140px;
2390
+ max-height: min(260px, 42vh);
2391
+ overflow-x: hidden;
2392
+ overflow-y: auto;
2393
+ overscroll-behavior: contain;
2394
+ scroll-padding-block: 6px;
2395
+ border: 1px solid var(--de-border);
2396
+ border-radius: 8px;
2397
+ background: var(--de-content-bg);
2398
+ scrollbar-gutter: stable;
2399
+ }
2400
+
2401
+ #richhtmleditor-root .de-find-modal--font .de-format-modal__font-list {
2402
+ max-height: none;
2403
+ }
2404
+
2405
+ #richhtmleditor-root .de-format-modal__font-list::-webkit-scrollbar {
2406
+ width: 8px;
2407
+ }
2408
+
2409
+ #richhtmleditor-root .de-format-modal__font-list::-webkit-scrollbar-thumb {
2410
+ background: color-mix(in srgb, var(--de-text-muted) 45%, transparent);
2411
+ border-radius: 999px;
2412
+ }
2413
+
2414
+ #richhtmleditor-root .de-format-modal__font-item {
2415
+ display: block;
2416
+ width: 100%;
2417
+ box-sizing: border-box;
2418
+ text-align: left;
2419
+ padding: 11px 14px;
2420
+ border: none;
2421
+ border-bottom: 1px solid color-mix(in srgb, var(--de-border) 70%, transparent);
2422
+ background: transparent;
2423
+ color: var(--de-text-primary);
2424
+ cursor: pointer;
2425
+ font-size: 1rem;
2426
+ line-height: 1.35;
2427
+ min-height: 2.5rem;
2428
+ }
2429
+
2430
+ #richhtmleditor-root .de-format-modal__font-item:last-child {
2431
+ border-bottom: none;
2432
+ }
2433
+
2434
+ #richhtmleditor-root .de-format-modal__font-item:hover {
2435
+ background: color-mix(in srgb, var(--de-toolbar-bg) 80%, var(--de-primary));
2436
+ }
2437
+
2438
+ #richhtmleditor-root .de-format-modal__font-item--active {
2439
+ background: color-mix(in srgb, var(--de-primary) 14%, var(--de-toolbar-bg));
2440
+ color: var(--de-primary);
2441
+ font-weight: 600;
2442
+ }
2443
+
2444
+ #richhtmleditor-root .de-format-modal__font-item:focus-visible {
2445
+ outline: 2px solid var(--de-primary);
2446
+ outline-offset: -2px;
2447
+ }
2448
+
2449
+ .de-shortcut-help__backdrop {
2450
+ position: fixed;
2451
+ inset: 0;
2452
+ z-index: 10050;
2453
+ display: grid;
2454
+ place-items: center;
2455
+ background: rgba(15, 23, 42, 0.45);
2456
+ }
2457
+
2458
+ .de-shortcut-help__backdrop[hidden] {
2459
+ display: none !important;
2460
+ }
2461
+
2462
+ .de-shortcut-help__panel {
2463
+ width: min(520px, calc(100vw - 32px));
2464
+ max-height: min(80vh, 640px);
2465
+ overflow: auto;
2466
+ padding: 20px 22px;
2467
+ background: var(--de-toolbar-bg, #fff);
2468
+ color: var(--de-text-primary, #111);
2469
+ border: 1px solid var(--de-border, #d1d5db);
2470
+ border-radius: 12px;
2471
+ box-shadow: 0 20px 48px rgba(15, 23, 42, 0.2);
2472
+ }
2473
+
2474
+ .de-shortcut-help__title {
2475
+ margin: 0 0 12px;
2476
+ font-size: 1.1rem;
2477
+ }
2478
+
2479
+ .de-shortcut-help__body {
2480
+ display: grid;
2481
+ gap: 14px;
2482
+ }
2483
+
2484
+ .de-shortcut-help__section h3 {
2485
+ margin: 0 0 6px;
2486
+ font-size: 0.82rem;
2487
+ text-transform: uppercase;
2488
+ letter-spacing: 0.04em;
2489
+ color: var(--de-text-muted, #6b7280);
2490
+ }
2491
+
2492
+ .de-shortcut-help__list {
2493
+ display: grid;
2494
+ grid-template-columns: minmax(120px, 1fr) 2fr;
2495
+ gap: 6px 12px;
2496
+ margin: 0;
2497
+ }
2498
+
2499
+ .de-shortcut-help__list dt {
2500
+ margin: 0;
2501
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
2502
+ font-size: 0.78rem;
2503
+ color: var(--de-text-primary, #111);
2504
+ }
2505
+
2506
+ .de-shortcut-help__list dd {
2507
+ margin: 0;
2508
+ font-size: 0.86rem;
2509
+ }
2510
+
2511
+ .de-shortcut-help__close {
2512
+ margin-top: 16px;
2513
+ }
2514
+
2515
+ #richhtmleditor-root .de-a11y-live {
2516
+ position: absolute;
2517
+ width: 1px;
2518
+ height: 1px;
2519
+ padding: 0;
2520
+ margin: -1px;
2521
+ overflow: hidden;
2522
+ clip: rect(0, 0, 0, 0);
2523
+ white-space: nowrap;
2524
+ border: 0;
2525
+ }
2526
+
2527
+ #richhtmleditor-root .de-selection-mini-toolbar {
2528
+ position: absolute;
2529
+ display: inline-flex;
2530
+ align-items: center;
2531
+ gap: 2px;
2532
+ padding: 4px 6px;
2533
+ border-radius: 10px;
2534
+ border: 1px solid var(--de-border, #d1d5db);
2535
+ background: var(--de-bg-elevated, #fff);
2536
+ box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
2537
+ z-index: 24;
2538
+ max-width: calc(100% - 8px);
2539
+ overflow-x: auto;
2540
+ }
2541
+
2542
+ #richhtmleditor-root .de-selection-mini-toolbar__btn {
2543
+ display: inline-flex;
2544
+ align-items: center;
2545
+ justify-content: center;
2546
+ gap: 1px;
2547
+ min-width: 28px;
2548
+ height: 28px;
2549
+ border: 0;
2550
+ border-radius: 6px;
2551
+ padding: 0 6px;
2552
+ font-size: 0.82rem;
2553
+ font-weight: 600;
2554
+ cursor: pointer;
2555
+ background: transparent;
2556
+ color: var(--de-text-primary, #111);
2557
+ flex: 0 0 auto;
2558
+ }
2559
+
2560
+ #richhtmleditor-root .de-selection-mini-toolbar__btn:hover {
2561
+ background: color-mix(in srgb, var(--de-primary, #2563eb) 10%, transparent);
2562
+ }
2563
+
2564
+ #richhtmleditor-root .de-selection-mini-toolbar__btn--active {
2565
+ background: color-mix(in srgb, var(--de-primary, #2563eb) 16%, transparent);
2566
+ color: var(--de-primary, #2563eb);
2567
+ }
2568
+
2569
+ #richhtmleditor-root .de-selection-mini-toolbar__chevron {
2570
+ font-size: 0.55rem;
2571
+ opacity: 0.65;
2572
+ margin-left: 1px;
2573
+ }
2574
+
2575
+ #richhtmleditor-root .de-selection-mini-toolbar__sep {
2576
+ width: 1px;
2577
+ height: 20px;
2578
+ margin: 0 2px;
2579
+ background: var(--de-border, #e2e8f0);
2580
+ flex: 0 0 auto;
2581
+ }
2582
+
2583
+ #richhtmleditor-root .de-selection-mini-toolbar__menu {
2584
+ position: absolute;
2585
+ min-width: 160px;
2586
+ padding: 4px;
2587
+ border-radius: 8px;
2588
+ border: 1px solid var(--de-border, #d1d5db);
2589
+ background: var(--de-bg-elevated, #fff);
2590
+ box-shadow: 0 10px 28px rgba(15, 23, 42, 0.16);
2591
+ z-index: 25;
2592
+ }
2593
+
2594
+ #richhtmleditor-root .de-selection-mini-toolbar__menu-item {
2595
+ display: block;
2596
+ width: 100%;
2597
+ text-align: left;
2598
+ border: 0;
2599
+ border-radius: 6px;
2600
+ padding: 6px 10px;
2601
+ font: inherit;
2602
+ font-size: 0.82rem;
2603
+ cursor: pointer;
2604
+ background: transparent;
2605
+ color: var(--de-text-primary, #111);
2606
+ }
2607
+
2608
+ #richhtmleditor-root .de-selection-mini-toolbar__menu-item:hover {
2609
+ background: color-mix(in srgb, var(--de-primary, #2563eb) 10%, transparent);
2610
+ }
2611
+
2612
+ #richhtmleditor-root .de-track-bubble {
2613
+ display: inline-flex;
2614
+ gap: 4px;
2615
+ padding: 4px;
2616
+ border-radius: 8px;
2617
+ border: 1px solid var(--de-border, #d1d5db);
2618
+ background: var(--de-bg-elevated, #fff);
2619
+ box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
2620
+ z-index: 20;
2621
+ }
2622
+
2623
+ #richhtmleditor-root .de-track-bubble__btn {
2624
+ border: 0;
2625
+ border-radius: 6px;
2626
+ padding: 4px 8px;
2627
+ font-size: 0.75rem;
2628
+ cursor: pointer;
2629
+ background: var(--de-bg-muted, #f3f4f6);
2630
+ color: var(--de-text-primary, #111);
2631
+ }
2632
+
2633
+ #richhtmleditor-root .de-track-bubble__btn:hover {
2634
+ background: var(--de-brand, #2563eb);
2635
+ color: #fff;
2636
+ }
2637
+
2638
+ #richhtmleditor-root ins.de-track-insert[data-de-hunk-active],
2639
+ #richhtmleditor-root del.de-track-delete[data-de-hunk-active] {
2640
+ outline: 2px solid var(--de-brand, #2563eb);
2641
+ outline-offset: 1px;
2642
+ }