@richhtmleditor/themes 1.1.2 → 1.1.3

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.
package/README.md CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  Shared CSS for Rich HTML Editor — toolbar, content area, outline panel, selection mini-toolbar, tables, and dark mode tokens. Pair with [`@richhtmleditor/core`](https://www.npmjs.com/package/@richhtmleditor/core) or any framework wrapper.
4
4
 
5
- **Current release: 1.1.2**
5
+ **Current release: 1.1.3**
6
6
 
7
7
  **Repository:** [github.com/rajkishorsahu89/richhtmleditor](https://github.com/rajkishorsahu89/richhtmleditor)
8
8
 
9
9
  **Demo:** [richhtmleditor.vercel.app](https://richhtmleditor.vercel.app/) — [demo](https://richhtmleditor.vercel.app/demo) · [guide](https://richhtmleditor.vercel.app/guide) · [API](https://richhtmleditor.vercel.app/api). Doc Preview joint demo: [doc-preview-app.vercel.app/demo/enterprise](https://doc-preview-app.vercel.app/demo/enterprise)
10
10
 
11
- ### What's in 1.1.2
11
+ ### What's in 1.1.3
12
12
 
13
13
  - **`richhtmleditor.css`** — complete editor chrome (toolbar rows, buttons, dropdowns, content area)
14
14
  - **Dark mode** — `.de-root--dark` class toggled when `dark: true` is passed to `createEditor`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@richhtmleditor/themes",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "CSS themes for Rich HTML Editor.",
5
5
  "type": "module",
6
6
  "style": "./src/richhtmleditor.css",
@@ -514,6 +514,320 @@
514
514
  background: rgba(239, 68, 68, 0.2);
515
515
  }
516
516
 
517
+ /* ── Undo History Panel ──────────────────────────────────────────────────────── */
518
+
519
+ #richhtmleditor-root .de-undo-panel[hidden] {
520
+ display: none;
521
+ }
522
+
523
+ #richhtmleditor-root .de-undo-panel {
524
+ position: absolute;
525
+ top: 0;
526
+ right: 0;
527
+ width: 240px;
528
+ height: 100%;
529
+ background: var(--de-toolbar-bg);
530
+ border-left: 1px solid var(--de-border);
531
+ display: flex;
532
+ flex-direction: column;
533
+ z-index: 20;
534
+ box-shadow: -2px 0 8px rgba(0,0,0,.08);
535
+ overflow: hidden;
536
+ }
537
+
538
+ #richhtmleditor-root .de-undo-panel__head {
539
+ display: flex;
540
+ align-items: center;
541
+ justify-content: space-between;
542
+ padding: 10px 12px;
543
+ border-bottom: 1px solid var(--de-border);
544
+ flex-shrink: 0;
545
+ }
546
+
547
+ #richhtmleditor-root .de-undo-panel__title {
548
+ margin: 0;
549
+ font-size: 0.8rem;
550
+ font-weight: 600;
551
+ color: var(--de-text-primary);
552
+ text-transform: uppercase;
553
+ letter-spacing: 0.05em;
554
+ }
555
+
556
+ #richhtmleditor-root .de-undo-panel__close {
557
+ background: none;
558
+ border: none;
559
+ cursor: pointer;
560
+ font-size: 1.1rem;
561
+ color: var(--de-text-muted);
562
+ line-height: 1;
563
+ padding: 2px 4px;
564
+ border-radius: 3px;
565
+ }
566
+
567
+ #richhtmleditor-root .de-undo-panel__close:hover {
568
+ color: var(--de-text-primary);
569
+ background: var(--de-border);
570
+ }
571
+
572
+ #richhtmleditor-root .de-undo-panel__list {
573
+ flex: 1;
574
+ overflow-y: auto;
575
+ padding: 6px 0;
576
+ }
577
+
578
+ #richhtmleditor-root .de-undo-panel__item {
579
+ display: flex;
580
+ align-items: center;
581
+ gap: 8px;
582
+ padding: 6px 12px;
583
+ cursor: pointer;
584
+ font-size: 0.8rem;
585
+ color: var(--de-text-primary);
586
+ transition: background 0.1s;
587
+ }
588
+
589
+ #richhtmleditor-root .de-undo-panel__item:hover {
590
+ background: var(--de-border);
591
+ }
592
+
593
+ #richhtmleditor-root .de-undo-panel__item--future {
594
+ opacity: 0.45;
595
+ }
596
+
597
+ #richhtmleditor-root .de-undo-panel__item--future:hover {
598
+ opacity: 0.8;
599
+ }
600
+
601
+ #richhtmleditor-root .de-undo-panel__num {
602
+ font-size: 0.7rem;
603
+ color: var(--de-text-muted);
604
+ min-width: 24px;
605
+ text-align: right;
606
+ flex-shrink: 0;
607
+ }
608
+
609
+ #richhtmleditor-root .de-undo-panel__text {
610
+ flex: 1;
611
+ overflow: hidden;
612
+ text-overflow: ellipsis;
613
+ white-space: nowrap;
614
+ }
615
+
616
+ #richhtmleditor-root .de-undo-panel__now {
617
+ padding: 6px 12px;
618
+ font-size: 0.78rem;
619
+ font-weight: 700;
620
+ color: var(--de-primary);
621
+ border-top: 1px solid var(--de-border);
622
+ border-bottom: 1px solid var(--de-border);
623
+ background: color-mix(in srgb, var(--de-primary) 8%, transparent);
624
+ }
625
+
626
+ /* ── Revision History Modal ──────────────────────────────────────────────────── */
627
+
628
+ #richhtmleditor-root .de-rev-modal {
629
+ width: min(640px, calc(100% - 32px));
630
+ max-height: min(600px, calc(100vh - 80px));
631
+ display: flex;
632
+ flex-direction: column;
633
+ }
634
+
635
+ #richhtmleditor-root .de-rev-modal__body {
636
+ display: flex;
637
+ flex-direction: column;
638
+ gap: 0;
639
+ padding: 0;
640
+ flex: 1;
641
+ min-height: 0;
642
+ overflow: hidden;
643
+ }
644
+
645
+ #richhtmleditor-root .de-rev-modal__save-row {
646
+ display: flex;
647
+ gap: 8px;
648
+ padding: 10px 14px;
649
+ border-bottom: 1px solid var(--de-border);
650
+ flex-shrink: 0;
651
+ }
652
+
653
+ #richhtmleditor-root .de-rev-modal__label-input {
654
+ flex: 1;
655
+ min-width: 0;
656
+ padding: 5px 8px;
657
+ font-size: 13px;
658
+ border: 1px solid var(--de-border);
659
+ border-radius: 6px;
660
+ background: var(--de-content-bg);
661
+ color: var(--de-text-primary);
662
+ }
663
+
664
+ #richhtmleditor-root .de-rev-modal__label-input:focus {
665
+ outline: 2px solid var(--de-primary);
666
+ outline-offset: -1px;
667
+ }
668
+
669
+ #richhtmleditor-root .de-rev-modal__save-btn {
670
+ padding: 5px 14px;
671
+ font-size: 13px;
672
+ font-weight: 500;
673
+ background: var(--de-primary);
674
+ color: #fff;
675
+ border: 0;
676
+ border-radius: 6px;
677
+ cursor: pointer;
678
+ white-space: nowrap;
679
+ flex-shrink: 0;
680
+ }
681
+
682
+ #richhtmleditor-root .de-rev-modal__save-btn:hover {
683
+ background: var(--de-primary-hover);
684
+ }
685
+
686
+ #richhtmleditor-root .de-rev-modal__list {
687
+ flex: 1;
688
+ overflow-y: auto;
689
+ min-height: 80px;
690
+ }
691
+
692
+ #richhtmleditor-root .de-rev-modal__empty {
693
+ margin: 16px;
694
+ font-size: 13px;
695
+ color: var(--de-text-muted);
696
+ }
697
+
698
+ #richhtmleditor-root .de-rev-modal__item {
699
+ display: flex;
700
+ align-items: center;
701
+ justify-content: space-between;
702
+ gap: 10px;
703
+ padding: 8px 14px;
704
+ border-bottom: 1px solid var(--de-border);
705
+ }
706
+
707
+ #richhtmleditor-root .de-rev-modal__item:hover {
708
+ background: color-mix(in srgb, var(--de-toolbar-bg) 60%, transparent);
709
+ }
710
+
711
+ #richhtmleditor-root .de-rev-modal__meta {
712
+ display: flex;
713
+ flex-direction: column;
714
+ gap: 2px;
715
+ min-width: 0;
716
+ flex: 1;
717
+ }
718
+
719
+ #richhtmleditor-root .de-rev-modal__date {
720
+ font-size: 11px;
721
+ color: var(--de-text-muted);
722
+ }
723
+
724
+ #richhtmleditor-root .de-rev-modal__lbl {
725
+ font-size: 13px;
726
+ font-weight: 500;
727
+ white-space: nowrap;
728
+ overflow: hidden;
729
+ text-overflow: ellipsis;
730
+ }
731
+
732
+ #richhtmleditor-root .de-rev-modal__item-btns {
733
+ display: flex;
734
+ gap: 4px;
735
+ flex-shrink: 0;
736
+ }
737
+
738
+ #richhtmleditor-root .de-rev-modal__item-btn {
739
+ padding: 3px 8px;
740
+ font-size: 12px;
741
+ border: 1px solid var(--de-border);
742
+ border-radius: 4px;
743
+ background: transparent;
744
+ color: var(--de-text-primary);
745
+ cursor: pointer;
746
+ }
747
+
748
+ #richhtmleditor-root .de-rev-modal__item-btn:hover {
749
+ background: var(--de-toolbar-bg);
750
+ }
751
+
752
+ #richhtmleditor-root .de-rev-modal__item-btn--restore {
753
+ color: var(--de-primary);
754
+ border-color: var(--de-primary);
755
+ }
756
+
757
+ #richhtmleditor-root .de-rev-modal__item-btn--restore:hover {
758
+ background: color-mix(in srgb, var(--de-primary) 8%, transparent);
759
+ }
760
+
761
+ #richhtmleditor-root .de-rev-modal__item-btn--del {
762
+ color: var(--de-text-muted);
763
+ }
764
+
765
+ #richhtmleditor-root .de-rev-modal__diff {
766
+ border-top: 2px solid var(--de-border);
767
+ max-height: 200px;
768
+ overflow-y: auto;
769
+ flex-shrink: 0;
770
+ }
771
+
772
+ #richhtmleditor-root .de-rev-modal__diff-head {
773
+ display: flex;
774
+ align-items: center;
775
+ justify-content: space-between;
776
+ padding: 6px 14px;
777
+ background: var(--de-toolbar-bg);
778
+ border-bottom: 1px solid var(--de-border);
779
+ position: sticky;
780
+ top: 0;
781
+ }
782
+
783
+ #richhtmleditor-root .de-rev-modal__diff-title {
784
+ font-size: 11px;
785
+ font-weight: 600;
786
+ text-transform: uppercase;
787
+ letter-spacing: 0.05em;
788
+ color: var(--de-text-muted);
789
+ }
790
+
791
+ #richhtmleditor-root .de-rev-modal__diff-body {
792
+ padding: 10px 14px;
793
+ font-size: 12px;
794
+ line-height: 1.6;
795
+ }
796
+
797
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__line { margin: 2px 0; padding: 3px 8px; border-radius: 4px; }
798
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__line--equal { color: var(--de-text-primary); }
799
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__line--insert { background: #dcfce7; color: #166534; }
800
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__line--delete { background: #fee2e2; color: #991b1b; text-decoration: line-through; }
801
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__line--change { background: #fef9c3; color: #854d0e; }
802
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__ins { background: #bbf7d0; color: #14532d; border-radius: 2px; padding: 0 2px; }
803
+ #richhtmleditor-root .de-rev-modal__diff-body .de-compare__del { background: #fecaca; color: #7f1d1d; text-decoration: line-through; border-radius: 2px; padding: 0 2px; }
804
+
805
+ #richhtmleditor-root.de-root--dark .de-rev-modal__diff-body .de-compare__line--insert { background: rgba(20,83,45,.3); color: #86efac; }
806
+ #richhtmleditor-root.de-root--dark .de-rev-modal__diff-body .de-compare__line--delete { background: rgba(127,29,29,.3); color: #fca5a5; }
807
+ #richhtmleditor-root.de-root--dark .de-rev-modal__diff-body .de-compare__line--change { background: rgba(133,77,14,.25); color: #fde047; }
808
+
809
+ .de-rev-confirm {
810
+ width: min(400px, calc(100% - 32px));
811
+ }
812
+
813
+ .de-rev-confirm__body {
814
+ padding: 16px 20px 4px;
815
+ }
816
+
817
+ .de-rev-confirm__msg {
818
+ margin: 0;
819
+ font-size: 14px;
820
+ line-height: 1.6;
821
+ color: var(--de-text-primary, #1e293b);
822
+ }
823
+
824
+ /* dark mode */
825
+ #richhtmleditor-root.de-root--dark .de-rev-modal__item-btn--restore:hover {
826
+ background: rgba(59, 130, 246, 0.15);
827
+ }
828
+
829
+ /* ── Table ─────────────────────────────────────────────────────────────────── */
830
+
517
831
  #richhtmleditor-root .de-content .de-table-figure {
518
832
  margin: 1em 0;
519
833
  }
@@ -570,7 +884,21 @@
570
884
  #richhtmleditor-root .de-content nav.de-toc .de-toc__list,
571
885
  #richhtmleditor-root .de-content nav.de-toc > ol {
572
886
  margin: 0;
573
- padding-left: 1.25rem;
887
+ padding-left: 0;
888
+ list-style: none;
889
+ }
890
+
891
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list--level-1 { padding-left: 0; }
892
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list--level-2 { padding-left: 1.25rem; }
893
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list--level-3 { padding-left: 2.5rem; }
894
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list li { margin: 0.15em 0; }
895
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list a {
896
+ color: var(--de-primary, #2563eb);
897
+ text-decoration: none;
898
+ font-size: 0.9em;
899
+ }
900
+ #richhtmleditor-root .de-content nav.de-toc .de-toc__list a:hover {
901
+ text-decoration: underline;
574
902
  }
575
903
 
576
904
  #richhtmleditor-root .de-content nav.de-toc[contenteditable="false"] {
@@ -582,10 +910,8 @@
582
910
  pointer-events: none;
583
911
  cursor: default;
584
912
  text-decoration: none;
585
- color: inherit;
913
+ color: var(--de-primary, #2563eb);
586
914
  }
587
- #richhtmleditor-root .de-content nav.de-toc .de-toc__list li[data-level="2"] { padding-left: 1rem; }
588
- #richhtmleditor-root .de-content nav.de-toc .de-toc__list li[data-level="3"] { padding-left: 2rem; }
589
915
 
590
916
  /* ── Spellcheck ──────────────────────────────────────── */
591
917
  .de-spell-error {
@@ -770,6 +1096,20 @@
770
1096
  margin: 0;
771
1097
  }
772
1098
 
1099
+ #richhtmleditor-root .de-content th[data-de-tcol] {
1100
+ cursor: pointer;
1101
+ user-select: none;
1102
+ }
1103
+ #richhtmleditor-root .de-content th[data-de-tcol]::after {
1104
+ content: " ↕";
1105
+ opacity: 0.3;
1106
+ font-size: 0.7em;
1107
+ font-weight: normal;
1108
+ }
1109
+ #richhtmleditor-root .de-content th[data-de-tcol]:hover::after {
1110
+ opacity: 0.7;
1111
+ }
1112
+
773
1113
  #richhtmleditor-root .de-table-col-resizer {
774
1114
  position: absolute;
775
1115
  top: 0;
@@ -3108,8 +3448,26 @@ del.de-track-delete,
3108
3448
  background: color-mix(in srgb, var(--de-primary, #2563eb) 10%, transparent);
3109
3449
  }
3110
3450
 
3111
- #richhtmleditor-root .de-track-bubble {
3112
- display: inline-flex;
3451
+ @media (pointer: coarse) {
3452
+ #richhtmleditor-root .de-selection-mini-toolbar {
3453
+ padding: 6px 8px;
3454
+ gap: 4px;
3455
+ border-radius: 12px;
3456
+ }
3457
+ #richhtmleditor-root .de-selection-mini-toolbar__btn {
3458
+ min-width: 40px;
3459
+ height: 40px;
3460
+ padding: 8px;
3461
+ border-radius: 8px;
3462
+ font-size: 1rem;
3463
+ }
3464
+ #richhtmleditor-root .de-selection-mini-toolbar__sep {
3465
+ height: 24px;
3466
+ }
3467
+ }
3468
+
3469
+ #richhtmleditor-root .de-track-bubble {
3470
+ display: inline-flex;
3113
3471
  gap: 4px;
3114
3472
  padding: 4px;
3115
3473
  border-radius: 8px;
@@ -3140,6 +3498,65 @@ del.de-track-delete,
3140
3498
  outline-offset: 1px;
3141
3499
  }
3142
3500
 
3501
+ /* ── Paste Prompt Bar ──────────────────────────────────────────────────────── */
3502
+
3503
+ .de-paste-prompt {
3504
+ display: flex;
3505
+ align-items: center;
3506
+ gap: 6px;
3507
+ padding: 5px 10px;
3508
+ background: var(--de-toolbar-bg);
3509
+ border-bottom: 1px solid var(--de-border);
3510
+ font-size: 12px;
3511
+ flex-wrap: wrap;
3512
+ animation: de-paste-prompt-in 0.15s ease;
3513
+ }
3514
+
3515
+ @keyframes de-paste-prompt-in {
3516
+ from { opacity: 0; transform: translateY(-4px); }
3517
+ to { opacity: 1; transform: translateY(0); }
3518
+ }
3519
+
3520
+ .de-paste-prompt__label {
3521
+ color: var(--de-text-muted);
3522
+ font-weight: 500;
3523
+ margin-right: 2px;
3524
+ }
3525
+
3526
+ .de-paste-prompt__btn {
3527
+ padding: 2px 10px;
3528
+ font-size: 12px;
3529
+ border: 1px solid var(--de-border);
3530
+ border-radius: 4px;
3531
+ background: var(--de-content-bg);
3532
+ color: var(--de-text-primary);
3533
+ cursor: pointer;
3534
+ line-height: 1.6;
3535
+ transition: background 0.1s, color 0.1s, border-color 0.1s;
3536
+ }
3537
+
3538
+ .de-paste-prompt__btn:hover {
3539
+ background: var(--de-primary);
3540
+ color: #fff;
3541
+ border-color: var(--de-primary);
3542
+ }
3543
+
3544
+ .de-paste-prompt__dismiss {
3545
+ background: none;
3546
+ border: none;
3547
+ cursor: pointer;
3548
+ color: var(--de-text-muted);
3549
+ font-size: 16px;
3550
+ line-height: 1;
3551
+ padding: 0 6px;
3552
+ opacity: 0.6;
3553
+ flex-shrink: 0;
3554
+ }
3555
+
3556
+ .de-paste-prompt__dismiss:hover {
3557
+ opacity: 1;
3558
+ }
3559
+
3143
3560
  /* ── Paste Special Modal ───────────────────────────────────────────────────── */
3144
3561
 
3145
3562
  .de-paste-special-backdrop {
@@ -3157,14 +3574,16 @@ del.de-track-delete,
3157
3574
  top: 50%;
3158
3575
  left: 50%;
3159
3576
  transform: translate(-50%, -50%);
3160
- width: 90%;
3161
- max-width: 400px;
3577
+ width: min(560px, calc(100vw - 32px));
3162
3578
  background: var(--de-toolbar-bg, #fff);
3163
3579
  border: 1px solid var(--de-border, #e2e8f0);
3164
3580
  border-radius: 8px;
3165
3581
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.15);
3166
3582
  z-index: 10001;
3167
3583
  color: var(--de-text-primary, #0f172a);
3584
+ display: flex;
3585
+ flex-direction: column;
3586
+ max-height: min(90vh, 720px);
3168
3587
  }
3169
3588
 
3170
3589
  .de-paste-special-modal__head {
@@ -3173,6 +3592,7 @@ del.de-track-delete,
3173
3592
  justify-content: space-between;
3174
3593
  padding: 12px 16px;
3175
3594
  border-bottom: 1px solid var(--de-border, #e2e8f0);
3595
+ flex-shrink: 0;
3176
3596
  }
3177
3597
 
3178
3598
  .de-paste-special-modal__title {
@@ -3197,27 +3617,93 @@ del.de-track-delete,
3197
3617
 
3198
3618
  .de-paste-special-modal__body {
3199
3619
  padding: 16px;
3620
+ overflow-y: auto;
3621
+ flex: 1;
3622
+ display: flex;
3623
+ flex-direction: column;
3624
+ gap: 14px;
3200
3625
  }
3201
3626
 
3202
- .de-paste-special-modal__option {
3203
- margin-bottom: 12px;
3627
+ /* Mode radio group */
3628
+ .de-paste-special-modal__modes {
3629
+ display: flex;
3630
+ flex-direction: column;
3631
+ gap: 6px;
3204
3632
  }
3205
3633
 
3206
- .de-paste-special-modal__label {
3634
+ .de-paste-special-modal__mode {
3207
3635
  display: flex;
3208
- align-items: center;
3209
- gap: 8px;
3636
+ flex-direction: column;
3637
+ gap: 2px;
3638
+ padding: 10px 12px;
3639
+ border: 1px solid var(--de-border, #e2e8f0);
3640
+ border-radius: 6px;
3210
3641
  cursor: pointer;
3642
+ transition: border-color 0.12s, background 0.12s;
3643
+ }
3644
+
3645
+ .de-paste-special-modal__mode input[type="radio"] {
3646
+ position: absolute;
3647
+ opacity: 0;
3648
+ width: 0;
3649
+ height: 0;
3650
+ }
3651
+
3652
+ .de-paste-special-modal__mode--active {
3653
+ border-color: var(--de-primary, #2563eb);
3654
+ background: color-mix(in srgb, var(--de-primary, #2563eb) 5%, transparent);
3655
+ }
3656
+
3657
+ .de-paste-special-modal__mode--disabled {
3658
+ opacity: 0.4;
3659
+ pointer-events: none;
3660
+ }
3661
+
3662
+ .de-paste-special-modal__mode-label {
3211
3663
  font-size: 13px;
3212
- user-select: none;
3664
+ font-weight: 600;
3665
+ color: var(--de-text-primary, #0f172a);
3213
3666
  }
3214
3667
 
3215
- .de-paste-special-modal__checkbox {
3216
- cursor: pointer;
3668
+ .de-paste-special-modal__mode--active .de-paste-special-modal__mode-label {
3669
+ color: var(--de-primary, #2563eb);
3670
+ }
3671
+
3672
+ .de-paste-special-modal__mode-desc {
3673
+ font-size: 12px;
3674
+ color: var(--de-text-muted, #64748b);
3675
+ }
3676
+
3677
+ /* Preview pane */
3678
+ .de-paste-special-modal__preview-wrap {
3679
+ display: flex;
3680
+ flex-direction: column;
3681
+ gap: 6px;
3682
+ }
3683
+
3684
+ .de-paste-special-modal__preview-label {
3685
+ font-size: 12px;
3686
+ font-weight: 600;
3687
+ color: var(--de-text-muted, #64748b);
3688
+ text-transform: uppercase;
3689
+ letter-spacing: 0.04em;
3690
+ }
3691
+
3692
+ .de-paste-special-modal__preview {
3693
+ border: 1px solid var(--de-border, #e2e8f0);
3694
+ border-radius: 6px;
3695
+ padding: 10px 12px;
3696
+ font-size: 13px;
3697
+ min-height: 80px;
3698
+ max-height: 180px;
3699
+ overflow-y: auto;
3700
+ background: var(--de-content-bg, #f8fafc);
3701
+ color: var(--de-text-primary, #0f172a);
3702
+ white-space: pre-wrap;
3703
+ word-break: break-word;
3217
3704
  }
3218
3705
 
3219
3706
  .de-paste-special-modal__status {
3220
- margin-top: 8px;
3221
3707
  font-size: 12px;
3222
3708
  color: var(--de-text-muted, #64748b);
3223
3709
  }
@@ -3232,6 +3718,7 @@ del.de-track-delete,
3232
3718
  padding: 12px 16px;
3233
3719
  border-top: 1px solid var(--de-border, #e2e8f0);
3234
3720
  justify-content: flex-end;
3721
+ flex-shrink: 0;
3235
3722
  }
3236
3723
 
3237
3724
  .de-paste-special-modal__btn {
@@ -3257,8 +3744,138 @@ del.de-track-delete,
3257
3744
 
3258
3745
  .de-paste-special-modal__btn--apply:hover {
3259
3746
  background: color-mix(in srgb, var(--de-primary, #2563eb) 110%, transparent);
3747
+ color: #fff;
3260
3748
  }
3261
3749
 
3750
+ /* ── Page Setup Modal ──────────────────────────────────────────────────────── */
3751
+
3752
+ .de-ps-modal-backdrop {
3753
+ position: fixed;
3754
+ inset: 0;
3755
+ background: rgba(15, 23, 42, 0.3);
3756
+ z-index: 10000;
3757
+ }
3758
+
3759
+ .de-ps-modal {
3760
+ position: fixed;
3761
+ top: 50%;
3762
+ left: 50%;
3763
+ transform: translate(-50%, -50%);
3764
+ width: min(520px, calc(100vw - 32px));
3765
+ max-height: min(90vh, 720px);
3766
+ background: var(--de-toolbar-bg, #fff);
3767
+ border: 1px solid var(--de-border, #e2e8f0);
3768
+ border-radius: 8px;
3769
+ box-shadow: 0 12px 32px rgba(15, 23, 42, 0.15);
3770
+ z-index: 10001;
3771
+ color: var(--de-text-primary, #0f172a);
3772
+ display: flex;
3773
+ flex-direction: column;
3774
+ }
3775
+
3776
+ .de-ps-modal__head {
3777
+ display: flex;
3778
+ align-items: center;
3779
+ justify-content: space-between;
3780
+ padding: 12px 16px;
3781
+ border-bottom: 1px solid var(--de-border, #e2e8f0);
3782
+ flex-shrink: 0;
3783
+ }
3784
+
3785
+ .de-ps-modal__title {
3786
+ margin: 0;
3787
+ font-size: 14px;
3788
+ font-weight: 600;
3789
+ }
3790
+
3791
+ .de-ps-modal__close {
3792
+ border: 0;
3793
+ background: transparent;
3794
+ cursor: pointer;
3795
+ font-size: 18px;
3796
+ line-height: 1;
3797
+ padding: 4px 8px;
3798
+ color: var(--de-text-muted, #64748b);
3799
+ }
3800
+ .de-ps-modal__close:hover { color: var(--de-text-primary, #0f172a); }
3801
+
3802
+ .de-ps-modal__body {
3803
+ padding: 16px;
3804
+ overflow-y: auto;
3805
+ flex: 1;
3806
+ display: flex;
3807
+ flex-direction: column;
3808
+ gap: 20px;
3809
+ }
3810
+
3811
+ .de-ps-modal__section { display: flex; flex-direction: column; gap: 10px; }
3812
+
3813
+ .de-ps-modal__section-title {
3814
+ font-size: 11px;
3815
+ font-weight: 700;
3816
+ text-transform: uppercase;
3817
+ letter-spacing: 0.06em;
3818
+ color: var(--de-text-muted, #64748b);
3819
+ }
3820
+
3821
+ .de-ps-modal__row { display: flex; gap: 12px; }
3822
+
3823
+ .de-ps-modal__field { display: flex; flex-direction: column; gap: 4px; flex: 1; }
3824
+
3825
+ .de-ps-modal__field-label {
3826
+ font-size: 12px;
3827
+ font-weight: 500;
3828
+ color: var(--de-text-muted, #64748b);
3829
+ }
3830
+
3831
+ .de-ps-modal__input,
3832
+ .de-ps-modal__select {
3833
+ border: 1px solid var(--de-border, #e2e8f0);
3834
+ border-radius: 5px;
3835
+ padding: 6px 10px;
3836
+ font: inherit;
3837
+ font-size: 13px;
3838
+ background: var(--de-content-bg, #fff);
3839
+ color: var(--de-text-primary, #0f172a);
3840
+ outline: none;
3841
+ width: 100%;
3842
+ }
3843
+ .de-ps-modal__input:focus,
3844
+ .de-ps-modal__select:focus {
3845
+ border-color: var(--de-primary, #2563eb);
3846
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--de-primary, #2563eb) 20%, transparent);
3847
+ }
3848
+
3849
+ .de-ps-modal__size-custom { display: flex; gap: 12px; }
3850
+
3851
+ .de-ps-modal__actions {
3852
+ display: flex;
3853
+ gap: 8px;
3854
+ padding: 12px 16px;
3855
+ border-top: 1px solid var(--de-border, #e2e8f0);
3856
+ justify-content: flex-end;
3857
+ flex-shrink: 0;
3858
+ }
3859
+
3860
+ .de-ps-modal__btn {
3861
+ border: 1px solid var(--de-border, #d1d5db);
3862
+ border-radius: 6px;
3863
+ padding: 6px 16px;
3864
+ font: inherit;
3865
+ font-size: 13px;
3866
+ cursor: pointer;
3867
+ background: var(--de-content-bg, #fff);
3868
+ color: var(--de-text-primary, #0f172a);
3869
+ }
3870
+ .de-ps-modal__btn:hover { background: color-mix(in srgb, var(--de-primary, #2563eb) 6%, transparent); }
3871
+
3872
+ .de-ps-modal__btn--apply {
3873
+ background: var(--de-primary, #2563eb);
3874
+ color: #fff;
3875
+ border-color: var(--de-primary, #2563eb);
3876
+ }
3877
+ .de-ps-modal__btn--apply:hover { background: color-mix(in srgb, var(--de-primary, #2563eb) 110%, transparent); }
3878
+
3262
3879
  /* ── Emoji Picker Panel ────────────────────────────────────────────────────── */
3263
3880
 
3264
3881
  .de-emoji-picker {
@@ -3860,8 +4477,23 @@ del.de-track-delete,
3860
4477
  /* ── Compare Modal ──────────────────────────────────────────────────────────── */
3861
4478
 
3862
4479
  .de-find-modal__backdrop--portal .de-compare-modal {
3863
- max-width: 860px;
3864
- width: min(860px, 96vw);
4480
+ max-width: 1100px;
4481
+ width: min(1100px, 96vw);
4482
+ }
4483
+
4484
+ .de-find-modal__backdrop--portal .de-rev-confirm {
4485
+ width: min(400px, calc(100% - 32px));
4486
+ }
4487
+
4488
+ .de-find-modal__backdrop--portal .de-rev-confirm__body {
4489
+ padding: 4px 20px 8px;
4490
+ }
4491
+
4492
+ .de-find-modal__backdrop--portal .de-rev-confirm__msg {
4493
+ margin: 0;
4494
+ font-size: 14px;
4495
+ line-height: 1.6;
4496
+ color: var(--de-text-primary);
3865
4497
  }
3866
4498
 
3867
4499
  .de-find-modal__backdrop--portal .de-compare-modal__body {
@@ -3932,6 +4564,8 @@ del.de-track-delete,
3932
4564
  .de-find-modal__backdrop--portal .de-compare__line--delete { background: #fee2e2; color: #991b1b; text-decoration: line-through; }
3933
4565
  .de-find-modal__backdrop--portal .de-compare__line--change { background: #fef9c3; color: #854d0e; }
3934
4566
 
4567
+ .de-find-modal__backdrop--portal .de-compare__line--empty { opacity: 0.25; }
4568
+
3935
4569
  .de-find-modal__backdrop--portal .de-compare__ins {
3936
4570
  background: #bbf7d0; color: #14532d; border-radius: 2px; padding: 0 1px;
3937
4571
  }
@@ -3939,6 +4573,18 @@ del.de-track-delete,
3939
4573
  background: #fecaca; color: #7f1d1d; text-decoration: line-through; border-radius: 2px; padding: 0 1px;
3940
4574
  }
3941
4575
 
4576
+ /* Tools row & output head */
4577
+ .de-compare-modal__pane--output { flex: 1 1 0; min-width: 0; }
4578
+ .de-compare-modal__output-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
4579
+ .de-compare-modal__tools { display: flex; gap: 4px; flex-shrink: 0; }
4580
+ .de-compare-modal__tool-btn { font-size: 0.72rem; padding: 2px 8px; }
4581
+
4582
+ /* Side-by-side */
4583
+ .de-compare-modal__sbs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
4584
+ .de-compare-modal__sbs-pane { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
4585
+ .de-compare-modal__sbs-label { font-size: 0.72rem; font-weight: 600; color: var(--de-text-muted); padding: 0 2px; }
4586
+ .de-compare-modal__sbs-output { min-height: 260px; max-height: 320px; }
4587
+
3942
4588
  .de-find-modal__backdrop--portal.de-find-modal__backdrop--dark .de-compare-modal__legend--add { background: rgba(20,83,45,.35); color: #86efac; }
3943
4589
  .de-find-modal__backdrop--portal.de-find-modal__backdrop--dark .de-compare-modal__legend--del { background: rgba(127,29,29,.35); color: #fca5a5; }
3944
4590
  .de-find-modal__backdrop--portal.de-find-modal__backdrop--dark .de-compare-modal__legend--chg { background: rgba(133,77,14,.3); color: #fde047; }
@@ -4501,3 +5147,395 @@ del.de-track-delete,
4501
5147
  display: table-row-group;
4502
5148
  }
4503
5149
  }
5150
+
5151
+ /* ═══════════════════════════════════════════════════════════════════════════
5152
+ Task list — unscoped so they apply in live preview divs and export HTML
5153
+ ═══════════════════════════════════════════════════════════════════════════ */
5154
+ ul.de-task-list {
5155
+ list-style: none;
5156
+ padding-left: 4px;
5157
+ }
5158
+ ul.de-task-list li.de-task-item {
5159
+ display: flex;
5160
+ align-items: flex-start;
5161
+ gap: 6px;
5162
+ margin: 2px 0;
5163
+ }
5164
+ ul.de-task-list li.de-task-item > p {
5165
+ flex: 1;
5166
+ min-width: 0;
5167
+ margin: 0;
5168
+ }
5169
+ ul.de-task-list li.de-task-item input[type="checkbox"] {
5170
+ margin-top: 3px;
5171
+ flex-shrink: 0;
5172
+ cursor: pointer;
5173
+ }
5174
+ ul.de-task-list li.de-task-item--checked > p {
5175
+ text-decoration: line-through;
5176
+ opacity: 0.6;
5177
+ }
5178
+
5179
+ /* ═══════════════════════════════════════════════════════════════════════════
5180
+ Preview modal
5181
+ ═══════════════════════════════════════════════════════════════════════════ */
5182
+ .de-preview-modal {
5183
+ background: var(--de-content-bg, #fff);
5184
+ color: var(--de-text-primary, #1e293b);
5185
+ border-radius: 8px;
5186
+ box-shadow: 0 16px 48px rgba(0,0,0,.25);
5187
+ width: min(800px, calc(100% - 32px));
5188
+ height: min(90vh, 800px);
5189
+ display: flex;
5190
+ flex-direction: column;
5191
+ overflow: hidden;
5192
+ }
5193
+ .de-preview-modal__header {
5194
+ display: flex;
5195
+ align-items: center;
5196
+ gap: 8px;
5197
+ padding: 12px 16px;
5198
+ border-bottom: 1px solid var(--de-border, #e2e8f0);
5199
+ flex-shrink: 0;
5200
+ }
5201
+ .de-preview-modal__title {
5202
+ font-size: 15px;
5203
+ font-weight: 600;
5204
+ margin: 0;
5205
+ flex: 1;
5206
+ }
5207
+ .de-preview-modal__stats {
5208
+ font-size: 12px;
5209
+ color: var(--de-text-muted, #64748b);
5210
+ }
5211
+ .de-preview-modal__body {
5212
+ overflow-y: auto;
5213
+ padding: 24px 32px;
5214
+ flex: 1;
5215
+ }
5216
+ .de-preview-modal__frame {
5217
+ flex: 1;
5218
+ border: none;
5219
+ width: 100%;
5220
+ min-height: 0;
5221
+ }
5222
+
5223
+ /* ═══════════════════════════════════════════════════════════════════════════
5224
+ Link checker panel
5225
+ ═══════════════════════════════════════════════════════════════════════════ */
5226
+ .de-lc-panel {
5227
+ position: absolute;
5228
+ top: 0;
5229
+ right: 0;
5230
+ bottom: 0;
5231
+ width: 280px;
5232
+ background: var(--de-toolbar-bg, #f8fafc);
5233
+ border-left: 1px solid var(--de-border, #e2e8f0);
5234
+ display: flex;
5235
+ flex-direction: column;
5236
+ z-index: 20;
5237
+ overflow: hidden;
5238
+ }
5239
+ .de-lc-panel[hidden] { display: none; }
5240
+ .de-lc-panel__head {
5241
+ display: flex;
5242
+ align-items: center;
5243
+ justify-content: space-between;
5244
+ padding: 10px 12px;
5245
+ border-bottom: 1px solid var(--de-border, #e2e8f0);
5246
+ flex-shrink: 0;
5247
+ }
5248
+ .de-lc-panel__title {
5249
+ font-size: 13px;
5250
+ font-weight: 600;
5251
+ margin: 0;
5252
+ color: var(--de-text-primary, #1e293b);
5253
+ }
5254
+ .de-lc-panel__close {
5255
+ background: none;
5256
+ border: none;
5257
+ font-size: 18px;
5258
+ line-height: 1;
5259
+ cursor: pointer;
5260
+ color: var(--de-text-muted, #64748b);
5261
+ padding: 2px 6px;
5262
+ border-radius: 4px;
5263
+ }
5264
+ .de-lc-panel__close:hover { background: var(--de-border, #e2e8f0); }
5265
+ .de-lc-panel__list {
5266
+ flex: 1;
5267
+ overflow-y: auto;
5268
+ padding: 8px;
5269
+ }
5270
+ .de-lc-panel__empty {
5271
+ font-size: 12px;
5272
+ color: var(--de-text-muted, #64748b);
5273
+ text-align: center;
5274
+ padding: 24px 8px;
5275
+ margin: 0;
5276
+ }
5277
+ .de-lc-panel__item {
5278
+ display: flex;
5279
+ align-items: center;
5280
+ gap: 6px;
5281
+ padding: 6px 4px;
5282
+ border-bottom: 1px solid var(--de-border, #e2e8f0);
5283
+ }
5284
+ .de-lc-panel__item:last-child { border-bottom: none; }
5285
+ .de-lc-panel__link-text {
5286
+ flex: 1;
5287
+ font-size: 12px;
5288
+ color: var(--de-text-primary, #1e293b);
5289
+ white-space: nowrap;
5290
+ overflow: hidden;
5291
+ text-overflow: ellipsis;
5292
+ min-width: 0;
5293
+ }
5294
+ .de-lc-panel__open-btn {
5295
+ flex-shrink: 0;
5296
+ font-size: 11px;
5297
+ padding: 2px 8px;
5298
+ border-radius: 4px;
5299
+ background: var(--de-primary, #2563eb);
5300
+ color: #fff;
5301
+ text-decoration: none;
5302
+ border: none;
5303
+ cursor: pointer;
5304
+ white-space: nowrap;
5305
+ }
5306
+ .de-lc-panel__open-btn:hover { background: var(--de-primary-hover, #1d4ed8); }
5307
+
5308
+ /* Dark mode */
5309
+ .de-root--dark .de-lc-panel {
5310
+ background: var(--de-toolbar-bg, #1e293b);
5311
+ border-color: var(--de-border, #334155);
5312
+ }
5313
+ .de-root--dark .de-preview-modal {
5314
+ background: var(--de-content-bg, #0f172a);
5315
+ color: var(--de-text-primary, #e2e8f0);
5316
+ }
5317
+
5318
+ /* ═══════════════════════════════════════════════════════════════════════════
5319
+ Visual blocks
5320
+ ═══════════════════════════════════════════════════════════════════════════ */
5321
+ .de-root--visual-blocks .de-content p::after,
5322
+ .de-root--visual-blocks .de-content h1::after,
5323
+ .de-root--visual-blocks .de-content h2::after,
5324
+ .de-root--visual-blocks .de-content h3::after,
5325
+ .de-root--visual-blocks .de-content h4::after,
5326
+ .de-root--visual-blocks .de-content h5::after,
5327
+ .de-root--visual-blocks .de-content h6::after {
5328
+ content: "¶";
5329
+ opacity: 0.25;
5330
+ margin-left: 2px;
5331
+ font-style: normal;
5332
+ font-weight: normal;
5333
+ pointer-events: none;
5334
+ user-select: none;
5335
+ }
5336
+ .de-root--visual-blocks .de-content p,
5337
+ .de-root--visual-blocks .de-content blockquote,
5338
+ .de-root--visual-blocks .de-content pre,
5339
+ .de-root--visual-blocks .de-content h1,
5340
+ .de-root--visual-blocks .de-content h2,
5341
+ .de-root--visual-blocks .de-content h3,
5342
+ .de-root--visual-blocks .de-content h4,
5343
+ .de-root--visual-blocks .de-content h5,
5344
+ .de-root--visual-blocks .de-content h6 {
5345
+ outline: 1px dashed var(--de-border, #e2e8f0);
5346
+ outline-offset: 2px;
5347
+ }
5348
+
5349
+ /* ═══════════════════════════════════════════════════════════════════════════
5350
+ Footnotes section (public/preview HTML)
5351
+ ═══════════════════════════════════════════════════════════════════════════ */
5352
+ .de-footnotes {
5353
+ margin-top: 2em;
5354
+ padding-top: 0;
5355
+ font-size: 0.875em;
5356
+ color: var(--de-text-muted, #64748b);
5357
+ }
5358
+ .de-footnotes hr {
5359
+ border: none;
5360
+ border-top: 1px solid var(--de-border, #e2e8f0);
5361
+ margin-bottom: 0.75em;
5362
+ }
5363
+ .de-footnotes ol {
5364
+ margin: 0;
5365
+ padding-left: 1.5em;
5366
+ }
5367
+ .de-footnotes li {
5368
+ margin-bottom: 0.35em;
5369
+ line-height: 1.5;
5370
+ }
5371
+ a.de-fn-ref {
5372
+ text-decoration: none;
5373
+ color: var(--de-primary, #2563eb);
5374
+ font-size: 0.85em;
5375
+ vertical-align: super;
5376
+ }
5377
+ a.de-fn-ref:hover { text-decoration: underline; }
5378
+ a.de-fn-back {
5379
+ text-decoration: none;
5380
+ color: var(--de-text-muted, #94a3b8);
5381
+ margin-left: 4px;
5382
+ font-size: 0.875em;
5383
+ }
5384
+ a.de-fn-back:hover { color: var(--de-primary, #2563eb); }
5385
+
5386
+ /* Heading numbers (live editor via CSS counters) */
5387
+ .de-root--heading-numbers .de-content {
5388
+ counter-reset: h1-counter 0 h2-counter 0 h3-counter 0 h4-counter 0 h5-counter 0 h6-counter 0;
5389
+ }
5390
+ .de-root--heading-numbers .de-content h1 { counter-increment: h1-counter; counter-reset: h2-counter h3-counter h4-counter h5-counter h6-counter; }
5391
+ .de-root--heading-numbers .de-content h2 { counter-increment: h2-counter; counter-reset: h3-counter h4-counter h5-counter h6-counter; }
5392
+ .de-root--heading-numbers .de-content h3 { counter-increment: h3-counter; counter-reset: h4-counter h5-counter h6-counter; }
5393
+ .de-root--heading-numbers .de-content h4 { counter-increment: h4-counter; counter-reset: h5-counter h6-counter; }
5394
+ .de-root--heading-numbers .de-content h5 { counter-increment: h5-counter; counter-reset: h6-counter; }
5395
+ .de-root--heading-numbers .de-content h6 { counter-increment: h6-counter; }
5396
+ .de-root--heading-numbers .de-content h1::before { content: counter(h1-counter) ". "; }
5397
+ .de-root--heading-numbers .de-content h2::before { content: counter(h1-counter) "." counter(h2-counter) " "; }
5398
+ .de-root--heading-numbers .de-content h3::before { content: counter(h1-counter) "." counter(h2-counter) "." counter(h3-counter) " "; }
5399
+ .de-root--heading-numbers .de-content h4::before { content: counter(h1-counter) "." counter(h2-counter) "." counter(h3-counter) "." counter(h4-counter) " "; }
5400
+ .de-root--heading-numbers .de-content h5::before { content: counter(h1-counter) "." counter(h2-counter) "." counter(h3-counter) "." counter(h4-counter) "." counter(h5-counter) " "; }
5401
+ .de-root--heading-numbers .de-content h6::before { content: counter(h1-counter) "." counter(h2-counter) "." counter(h3-counter) "." counter(h4-counter) "." counter(h5-counter) "." counter(h6-counter) " "; }
5402
+
5403
+ /* ═══════════════════════════════════════════════════════════════════════════
5404
+ Autoresize
5405
+ ═══════════════════════════════════════════════════════════════════════════ */
5406
+ .de-root--autoresize {
5407
+ height: auto !important;
5408
+ }
5409
+ .de-root--autoresize .de-content {
5410
+ overflow-y: visible;
5411
+ height: auto;
5412
+ min-height: 80px;
5413
+ }
5414
+
5415
+ /* ═══════════════════════════════════════════════════════════════════════════
5416
+ Math figures
5417
+ ═══════════════════════════════════════════════════════════════════════════ */
5418
+ figure.de-math {
5419
+ display: inline-block;
5420
+ vertical-align: middle;
5421
+ margin: 0.25em 2px;
5422
+ }
5423
+ figure.de-math--block {
5424
+ display: block;
5425
+ text-align: center;
5426
+ margin: 1rem auto;
5427
+ }
5428
+ figure.de-math[contenteditable="false"] {
5429
+ cursor: pointer;
5430
+ outline: none;
5431
+ border-radius: 4px;
5432
+ }
5433
+ figure.de-math[contenteditable="false"]:hover {
5434
+ outline: 2px solid var(--de-primary, #2563eb);
5435
+ }
5436
+ .de-math__fallback {
5437
+ font-family: monospace;
5438
+ background: color-mix(in srgb, var(--de-border, #e2e8f0) 30%, var(--de-content-bg, #fff));
5439
+ padding: 2px 6px;
5440
+ border-radius: 4px;
5441
+ }
5442
+ .de-math__error {
5443
+ color: #dc2626;
5444
+ font-size: 0.8em;
5445
+ }
5446
+
5447
+ /* ═══════════════════════════════════════════════════════════════════════════
5448
+ Math modal
5449
+ ═══════════════════════════════════════════════════════════════════════════ */
5450
+ .de-math-modal__backdrop {
5451
+ position: fixed;
5452
+ inset: 0;
5453
+ background: rgba(0, 0, 0, 0.4);
5454
+ z-index: 9999;
5455
+ display: flex;
5456
+ align-items: center;
5457
+ justify-content: center;
5458
+ }
5459
+ .de-math-modal {
5460
+ background: var(--de-toolbar-bg, #fff);
5461
+ border-radius: 12px;
5462
+ padding: 20px;
5463
+ width: min(540px, 90vw);
5464
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
5465
+ display: flex;
5466
+ flex-direction: column;
5467
+ gap: 12px;
5468
+ color: var(--de-text-primary, #1e293b);
5469
+ }
5470
+ .de-math-modal__title {
5471
+ margin: 0;
5472
+ font-size: 1rem;
5473
+ font-weight: 600;
5474
+ }
5475
+ .de-math-modal__modes {
5476
+ display: flex;
5477
+ gap: 16px;
5478
+ align-items: center;
5479
+ }
5480
+ .de-math-modal__mode {
5481
+ font-size: 0.875rem;
5482
+ display: flex;
5483
+ align-items: center;
5484
+ gap: 6px;
5485
+ cursor: pointer;
5486
+ }
5487
+ .de-math-modal__input {
5488
+ width: 100%;
5489
+ box-sizing: border-box;
5490
+ padding: 8px 10px;
5491
+ border: 1px solid var(--de-border, #e2e8f0);
5492
+ border-radius: 8px;
5493
+ font-family: monospace;
5494
+ font-size: 0.9rem;
5495
+ resize: vertical;
5496
+ background: var(--de-content-bg, #fff);
5497
+ color: var(--de-text-primary, #1e293b);
5498
+ }
5499
+ .de-math-modal__input:focus {
5500
+ outline: 2px solid var(--de-primary, #2563eb);
5501
+ outline-offset: -1px;
5502
+ }
5503
+ .de-math-modal__preview {
5504
+ min-height: 44px;
5505
+ padding: 8px 12px;
5506
+ border: 1px solid var(--de-border, #e2e8f0);
5507
+ border-radius: 8px;
5508
+ background: var(--de-content-bg, #fff);
5509
+ overflow: auto;
5510
+ font-size: 0.9rem;
5511
+ }
5512
+ .de-math-modal__actions {
5513
+ display: flex;
5514
+ justify-content: flex-end;
5515
+ gap: 8px;
5516
+ }
5517
+ .de-math-modal__cancel {
5518
+ padding: 7px 16px;
5519
+ border: 1px solid var(--de-border, #e2e8f0);
5520
+ background: none;
5521
+ border-radius: 8px;
5522
+ cursor: pointer;
5523
+ font-size: 0.875rem;
5524
+ color: var(--de-text-primary, #1e293b);
5525
+ }
5526
+ .de-math-modal__cancel:hover {
5527
+ background: color-mix(in srgb, var(--de-border, #e2e8f0) 30%, transparent);
5528
+ }
5529
+ .de-math-modal__confirm {
5530
+ padding: 7px 16px;
5531
+ background: var(--de-primary, #2563eb);
5532
+ color: #fff;
5533
+ border: none;
5534
+ border-radius: 8px;
5535
+ cursor: pointer;
5536
+ font-size: 0.875rem;
5537
+ font-weight: 500;
5538
+ }
5539
+ .de-math-modal__confirm:hover {
5540
+ background: var(--de-primary-hover, #1d4ed8);
5541
+ }