erl-mathtextx-editor 0.2.4 → 0.3.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.
- package/CHANGELOG.md +61 -3
- package/README.md +90 -1
- package/dist/{CellPropertiesDialogImpl-CXCZM3NM.js → CellPropertiesDialogImpl-DroCD-qw.js} +1 -1
- package/dist/{ImageInsertDialog-bvVbmn5d.js → ImageInsertDialog-BprAxxIR.js} +1 -1
- package/dist/{InsertTableDialogImpl-DtB4WswI.js → InsertTableDialogImpl-U7g8UMBM.js} +1 -1
- package/dist/{LinkDialogImpl-JAK21VVR.js → LinkDialogImpl-Cs1v0Vgd.js} +1 -1
- package/dist/MathTextXEditor.d.ts +1 -1
- package/dist/{TablePropertiesDialogImpl-CS01MOsn.js → TablePropertiesDialogImpl-BmdThHz3.js} +1 -1
- package/dist/{TableTemplatesDialogImpl-Be0HjzRg.js → TableTemplatesDialogImpl-CglXYCPV.js} +1 -1
- package/dist/assets/erl-mathtextx-editor.css +1 -1
- package/dist/components/TableMenu.d.ts +6 -1
- package/dist/core/extensions.d.ts +2 -6
- package/dist/erl-mathtextx-editor.js +1 -1
- package/dist/{index-ABpo9sfg.js → index-7QYcLP1s.js} +2531 -2404
- package/dist/{index-Dfokkug6.js → index-Cv7EVaSA.js} +1 -1
- package/dist/{index-9ZbVThzh.js → index-DLjIKZ3J.js} +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/utils/pasteHandler.d.ts +33 -5
- package/package.json +1 -1
- package/dist/erl-mathtextx-editor.umd.cjs +0 -3748
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,64 @@ All notable changes to `erl-mathtextx-editor` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [0.
|
|
8
|
+
## [0.3.0] - 2026-06-18
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Table Style Prop** — New `tableStyle` prop to choose between custom styled tables or native TipTap/ProseMirror tables
|
|
13
|
+
- `'custom'` (default): Uses `mtx-table` CSS with 6 themes (plain, light, dark, blue, striped, minimal)
|
|
14
|
+
- `'native'`: Plain TipTap table without custom CSS
|
|
15
|
+
- Usage: `<MathTextXEditor tableStyle="native" />`
|
|
16
|
+
|
|
17
|
+
- **Robust Table Operations** — Enhanced table context menu with new commands:
|
|
18
|
+
- **Merge/Split** — Smart `mergeOrSplit()` command: merge if multi-select, split if single cell
|
|
19
|
+
- **Toggle Header Cell** — Toggle header status for individual cells
|
|
20
|
+
- **Tab/Shift+Tab Navigation** — Navigate between cells with keyboard shortcuts
|
|
21
|
+
|
|
22
|
+
- **Table Config Improvements** — Added missing TipTap table settings:
|
|
23
|
+
- `renderWrapper: true` — Wrapper div for layout consistency
|
|
24
|
+
- `cellMinWidth: 25` — Minimum cell width
|
|
25
|
+
- `lastColumnResizable: true` — Last column can be resized
|
|
26
|
+
|
|
27
|
+
- **Paste Table Support** — Enhanced HTML paste handling for tables from Microsoft Office:
|
|
28
|
+
- `colspan`, `rowspan`, `border`, `valign` attributes preserved
|
|
29
|
+
- `valign` and `width` attributes converted to inline styles for TipTap compatibility
|
|
30
|
+
- DOMPurify `ALLOWED_ATTR` expanded for table attributes
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- **Table Resize CSS** — Fixed CSS breaking during table column resize:
|
|
35
|
+
- Removed `overflow: hidden` from `.mtx-table` to prevent resize handle clipping
|
|
36
|
+
- Fixed `::after` pseudo-elements positioning to prevent layout shift
|
|
37
|
+
- Added `transform: translateX(50%)` for proper resize handle centering
|
|
38
|
+
- Added `table-layout: fixed` for consistent column widths during resize
|
|
39
|
+
|
|
40
|
+
- **Table Alignment CSS** — Fixed dead CSS code for `.tableWrapper` alignment
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **Table Context Menu** — Updated UI with new operations:
|
|
45
|
+
- Cells section now shows "Merge / Split" instead of separate Merge/Split buttons
|
|
46
|
+
- Headers section now includes "Toggle Header Cell" option
|
|
47
|
+
- Menu height increased to accommodate new options
|
|
48
|
+
|
|
49
|
+
## [0.2.6] - 2026-06-17
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- **Enter in Math Fields** — Pressing Enter in inline/block math now exits the MathLive field and creates a new math field below instead of creating a regular paragraph
|
|
54
|
+
- Block math: inserts empty `mathBlock` node below
|
|
55
|
+
- Inline math: inserts `hardBreak` + empty `mathInline` node
|
|
56
|
+
- New math fields auto-focus for immediate typing
|
|
57
|
+
- **Space in Math Fields** — Space key now reliably inserts visible space (`\text{ }`) in both inline and block MathLive fields
|
|
58
|
+
- Uses `executeCommand(['insert', ' ', ...])` to bypass contentEditable restrictions in ProseMirror NodeView
|
|
59
|
+
- Capture-phase listener ensures handler runs before MathLive shadow DOM
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- **keypressSound Config** — Changed from `null` to explicit object form `{ spacebar: null, return: null, delete: null, default: null }` to prevent potential MathLive spacebar handling issues
|
|
64
|
+
|
|
65
|
+
## [0.2.5] - 2026-05-26
|
|
9
66
|
|
|
10
67
|
### Added
|
|
11
68
|
|
|
@@ -15,10 +72,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
72
|
|
|
16
73
|
### Fixed
|
|
17
74
|
|
|
18
|
-
- **
|
|
75
|
+
- **Math Space Key** — Spacebar now inserts `\,` (LaTeX thin space) in both inline math (MathFieldView) and Equation Editor dialog (MathTypeDialog)
|
|
19
76
|
- Literal spaces were ignored by LaTeX math mode
|
|
20
77
|
- `\text{ }` caused nesting and character escaping on consecutive spaces
|
|
21
|
-
-
|
|
78
|
+
- `\ ` caused cursor ambiguity (next char merged into backslash as `\s`)
|
|
79
|
+
- `\,` avoids all above issues — unambiguous, no nesting, proper cursor position
|
|
22
80
|
|
|
23
81
|
### Changed
|
|
24
82
|
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ Embeddable visual math editor widget untuk CMS dan platform edukasi. User tidak
|
|
|
20
20
|
- 📄 **DOCX Import** — Import file .docx via mammoth.js (toolbar + drag-drop)
|
|
21
21
|
- 🗂️ **Google Docs Paste** — Paste dari Google Docs (equations + document) auto-cleaned
|
|
22
22
|
- 👁️ **Content Viewer** — Read-only renderer dengan KaTeX + DOMPurify
|
|
23
|
-
- 🎨 **Table Editor** — 6 templates, column resize, cell merge/split
|
|
23
|
+
- 🎨 **Table Editor** — 6 templates, column resize, cell merge/split, native/custom style
|
|
24
24
|
- 🔒 **XSS Protection** — DOMPurify sanitization di paste + serializer
|
|
25
25
|
- 🛡️ **Error Boundary** — Anti white-screen crash protection
|
|
26
26
|
|
|
@@ -186,6 +186,33 @@ function App() {
|
|
|
186
186
|
export default App
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
+
### 8. Table Style Integration
|
|
190
|
+
|
|
191
|
+
```tsx
|
|
192
|
+
import { MathTextXEditor } from 'erl-mathtextx-editor'
|
|
193
|
+
import 'erl-mathtextx-editor/styles'
|
|
194
|
+
|
|
195
|
+
// Custom styled table (default) — 6 themes available
|
|
196
|
+
function EditorWithCustomTable() {
|
|
197
|
+
return (
|
|
198
|
+
<MathTextXEditor
|
|
199
|
+
tableStyle="custom" // plain, light, dark, blue, striped, minimal
|
|
200
|
+
placeholder="Tulis soal dengan tabel..."
|
|
201
|
+
/>
|
|
202
|
+
)
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Native TipTap table — plain, no custom CSS
|
|
206
|
+
function EditorWithNativeTable() {
|
|
207
|
+
return (
|
|
208
|
+
<MathTextXEditor
|
|
209
|
+
tableStyle="native"
|
|
210
|
+
placeholder="Tulis soal dengan tabel native..."
|
|
211
|
+
/>
|
|
212
|
+
)
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
189
216
|
---
|
|
190
217
|
|
|
191
218
|
## 🎛️ Toolbar Modes
|
|
@@ -323,6 +350,7 @@ const handleImageUpload = async (file: File): Promise<string> => {
|
|
|
323
350
|
| `maxHeight` | `string` | — | Maximum editor height |
|
|
324
351
|
| `autoFocus` | `boolean` | `false` | Auto-focus editor on mount |
|
|
325
352
|
| `toolbarMode` | `'basic' \| 'advanced' \| 'olimpiade'` | `'basic'` | Toolbar preset |
|
|
353
|
+
| `tableStyle` | `'custom' \| 'native'` | `'custom'` | Table styling: custom (mtx-table themes) or native (plain TipTap) |
|
|
326
354
|
| `onInsertBlockMath` | `() => void` | — | Callback to insert a block-level math node directly |
|
|
327
355
|
| `editable` | `boolean` | `true` | Set false for read-only mode |
|
|
328
356
|
| `className` | `string` | — | Additional CSS class |
|
|
@@ -397,10 +425,71 @@ import 'erl-mathtextx-editor/viewer/styles'
|
|
|
397
425
|
| `Ctrl+Shift+T` | Insert table |
|
|
398
426
|
| `Ctrl+S` | Save document |
|
|
399
427
|
| `Shift+Ctrl+V` | Paste as plain text |
|
|
428
|
+
| `Tab` | Navigate to next cell (table) |
|
|
429
|
+
| `Shift+Tab` | Navigate to previous cell (table) |
|
|
400
430
|
| `Esc` (equation editor dialog) | Close dialog |
|
|
401
431
|
|
|
402
432
|
---
|
|
403
433
|
|
|
434
|
+
## 🎨 Table Features
|
|
435
|
+
|
|
436
|
+
### Table Style Mode
|
|
437
|
+
|
|
438
|
+
Pilih antara custom styled tables atau native TipTap tables:
|
|
439
|
+
|
|
440
|
+
```tsx
|
|
441
|
+
// Custom styling (default) — 6 themes: plain, light, dark, blue, striped, minimal
|
|
442
|
+
<MathTextXEditor tableStyle="custom" />
|
|
443
|
+
|
|
444
|
+
// Native TipTap table — plain, no custom CSS
|
|
445
|
+
<MathTextXEditor tableStyle="native" />
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
### Table Context Menu
|
|
449
|
+
|
|
450
|
+
Right-click pada tabel untuk akses operasi:
|
|
451
|
+
|
|
452
|
+
| Group | Operations |
|
|
453
|
+
|-------|------------|
|
|
454
|
+
| **Rows** | Insert Row Above/Below, Delete Row |
|
|
455
|
+
| **Columns** | Insert Column Left/Right, Delete Column |
|
|
456
|
+
| **Cells** | Merge/Split (smart: merge if multi-select, split if single) |
|
|
457
|
+
| **Properties** | Cell Properties, Table Properties |
|
|
458
|
+
| **Headers** | Toggle Header Row/Column/Cell, Fix Table |
|
|
459
|
+
| **Danger Zone** | Delete Table |
|
|
460
|
+
|
|
461
|
+
### Table Keyboard Shortcuts
|
|
462
|
+
|
|
463
|
+
| Shortcut | Action |
|
|
464
|
+
|----------|--------|
|
|
465
|
+
| `Tab` | Navigate to next cell |
|
|
466
|
+
| `Shift+Tab` | Navigate to previous cell |
|
|
467
|
+
|
|
468
|
+
### Cell Properties
|
|
469
|
+
|
|
470
|
+
Klik kanan → Cell Properties untuk mengatur:
|
|
471
|
+
- **Width** — Lebar cell (px atau %)
|
|
472
|
+
- **Background Color** — Warna latar belakang
|
|
473
|
+
- **Horizontal Align** — Kiri, tengah, kanan
|
|
474
|
+
- **Vertical Align** — Atas, tengah, bawah
|
|
475
|
+
|
|
476
|
+
### Table Properties
|
|
477
|
+
|
|
478
|
+
Klik kanan → Table Properties untuk mengatur:
|
|
479
|
+
- **Alignment** — Rata kiri, tengah, atau kanan
|
|
480
|
+
|
|
481
|
+
### Table Templates
|
|
482
|
+
|
|
483
|
+
Klik kanan → Table Templates untuk memilih tema:
|
|
484
|
+
- **Polos** — Tabel sederhana tanpa gaya tambahan
|
|
485
|
+
- **Terang** — Kepala tabel abu-abu terang
|
|
486
|
+
- **Gelap** — Kepala tabel gelap dengan teks putih
|
|
487
|
+
- **Tema Biru** — Kepala tabel biru dengan baris belang
|
|
488
|
+
- **Belang** — Warna baris selang-seling
|
|
489
|
+
- **Minimalis** — Hanya border horizontal
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
404
493
|
## ⚠️ Troubleshooting
|
|
405
494
|
|
|
406
495
|
| Error | Solution |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import V, { useId as B, useRef as M, useCallback as b, useState as d, useEffect as A } from "react";
|
|
3
|
-
import { u as $ } from "./index-
|
|
3
|
+
import { u as $ } from "./index-7QYcLP1s.js";
|
|
4
4
|
import { u as I } from "./useDraggable-DEoLIB5k.js";
|
|
5
5
|
const P = V.memo(({
|
|
6
6
|
isOpen: o,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as i, Fragment as J, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { useId as V, useRef as y, useState as d, useCallback as s } from "react";
|
|
3
|
-
import { u as q } from "./index-
|
|
3
|
+
import { u as q } from "./index-7QYcLP1s.js";
|
|
4
4
|
function Z({
|
|
5
5
|
isOpen: U,
|
|
6
6
|
onClose: w,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
2
|
import v, { useId as g, useRef as y, useState as c, useEffect as k, useCallback as w } from "react";
|
|
3
|
-
import { u as C } from "./index-
|
|
3
|
+
import { u as C } from "./index-7QYcLP1s.js";
|
|
4
4
|
import { u as M } from "./useDraggable-DEoLIB5k.js";
|
|
5
5
|
const I = v.memo(({ isOpen: i, onInsert: d, onClose: m }) => {
|
|
6
6
|
const u = g(), b = y(null), [l, n] = c(3), [a, s] = c(3), [o, h] = c(!0), { position: p, handleMouseDown: N } = M(i);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as a, jsxs as e } from "react/jsx-runtime";
|
|
2
2
|
import S, { useId as T, useRef as _, useState as r, useEffect as w, useCallback as c } from "react";
|
|
3
|
-
import { u as F } from "./index-
|
|
3
|
+
import { u as F } from "./index-7QYcLP1s.js";
|
|
4
4
|
const I = S.memo(({
|
|
5
5
|
isOpen: s,
|
|
6
6
|
currentUrl: o = "",
|
|
@@ -5,4 +5,4 @@ import { MathTextXEditorProps } from './types';
|
|
|
5
5
|
* Drop-in replacement for CKEditor in solutest.id.
|
|
6
6
|
* Supports rich text formatting and visual math input without LaTeX.
|
|
7
7
|
*/
|
|
8
|
-
export declare function MathTextXEditor({ content, onChange, onSave, editable, placeholder, toolbarMode, toolbar: _toolbar, mathToolbar: _mathToolbar, templates: _templates, outputFormat: _outputFormat, className, minHeight, maxHeight, autoFocus, onImageUpload, onBeforePasteHTML, }: MathTextXEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function MathTextXEditor({ content, onChange, onSave, editable, placeholder, toolbarMode, toolbar: _toolbar, mathToolbar: _mathToolbar, templates: _templates, outputFormat: _outputFormat, className, minHeight, maxHeight, autoFocus, onImageUpload, onBeforePasteHTML, tableStyle, }: MathTextXEditorProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/{TablePropertiesDialogImpl-CS01MOsn.js → TablePropertiesDialogImpl-BmdThHz3.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import g, { useId as x, useRef as p, useState as f, useEffect as y, useCallback as h } from "react";
|
|
3
|
-
import { u as N } from "./index-
|
|
3
|
+
import { u as N } from "./index-7QYcLP1s.js";
|
|
4
4
|
import { u as k } from "./useDraggable-DEoLIB5k.js";
|
|
5
5
|
const z = g.memo(({
|
|
6
6
|
isOpen: a,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import c, { useId as p, useRef as h, useCallback as x } from "react";
|
|
3
|
-
import { u as b } from "./index-
|
|
3
|
+
import { u as b } from "./index-7QYcLP1s.js";
|
|
4
4
|
import { u } from "./useDraggable-DEoLIB5k.js";
|
|
5
5
|
const g = [
|
|
6
6
|
{ id: "plain", name: "Polos", description: "Tabel sederhana tanpa gaya tambahan", headerStyle: "none", borderStyle: "all", stripeRows: !1 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.mtx-graph-component{border:1px solid var(--mtx-border, #e2e8f0);border-radius:12px;padding:16px;background:#fff;display:inline-block;margin:16px 0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-width:100%}.mtx-graph-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.mtx-graph-input{width:100%;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;font-family:JetBrains Mono,Consolas,monospace;font-size:14px;transition:all .2s ease;background:#f8fafc}.mtx-graph-input:focus{border-color:#3b82f6;background:#fff;outline:none;box-shadow:0 0 0 3px #3b82f626}.mtx-graph-domains{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.mtx-graph-domain-group{display:flex;align-items:center;gap:8px;background:#f1f5f9;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0}.mtx-graph-domain-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.mtx-graph-domain-separator{font-size:12px;color:#94a3b8}.mtx-graph-domain-input{width:60px;padding:4px 8px;border:1px solid #cbd5e1;border-radius:4px;font-size:13px;text-align:center;transition:border-color .2s}.mtx-graph-domain-input:focus{border-color:#3b82f6;outline:none}.mtx-graph-render text{font-family:ui-sans-serif,system-ui,sans-serif;font-size:10px;fill:#64748b}.mtx-graph-render .domain{stroke:#cbd5e1}.mtx-graph-render{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}.mtx-matrix-grid-selector{display:flex;flex-direction:column;align-items:center;padding:10px;background:#f8f9fa;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;width:fit-content}.mtx-matrix-grid-label{font-size:12px;margin-bottom:5px;font-weight:600;color:#555;min-height:1.5em}.mtx-matrix-grid-squares{display:flex;flex-direction:column;gap:2px}.mtx-matrix-grid-row{display:flex;gap:2px}.mtx-matrix-grid-cell{width:12px;height:12px;background:#fff;border:1px solid #ccc;cursor:pointer}.mtx-matrix-grid-cell.is-active{background:#3b82f6;border-color:#2563eb}:root{--mtx-primary: #3b82f6;--mtx-primary-hover: #2563eb;--mtx-primary-dark: #1e40af;--mtx-primary-light: #eff6ff;--mtx-bg: #ffffff;--mtx-toolbar-bg: #fafbfc;--mtx-border: #d4d4d8;--mtx-hover: #f4f4f5;--mtx-text: #18181b;--mtx-text-secondary: #52525b;--mtx-text-muted: #a1a1aa;--mtx-success: #22c55e;--mtx-warning: #f59e0b;--mtx-danger: #ef4444;--mtx-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mtx-font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--mtx-min-height: 200px;--mtx-max-height: none;--mtx-radius: 6px;--mtx-radius-sm: 4px}.mtx-editor{position:relative;border:1px solid var(--mtx-border);border-radius:6px;background:var(--mtx-bg);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;overflow:hidden;font-family:var(--mtx-font);transition:box-shadow .15s ease,border-color .15s ease}.mtx-editor:focus-within{border-color:var(--mtx-primary);box-shadow:0 0 0 2px #3b82f626,0 1px 3px #0000000f}.mtx-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:1px;padding:4px 6px;background:var(--mtx-toolbar-bg);border-bottom:1px solid var(--mtx-border);user-select:none;min-height:40px}.mtx-toolbar-group{display:flex;align-items:center;gap:1px}.mtx-toolbar-mode-switch{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--mtx-border);border-radius:999px;background:#fff;gap:2px}.mtx-toolbar-mode-btn{border:none;background:transparent;color:var(--mtx-text-secondary);font-size:12px;font-weight:600;line-height:1;padding:7px 10px;border-radius:999px;cursor:pointer;transition:all .12s ease}.mtx-toolbar-mode-btn:hover{background:var(--mtx-hover);color:var(--mtx-text)}.mtx-toolbar-mode-btn.is-active{background:var(--mtx-primary-light);color:var(--mtx-primary)}.mtx-toolbar-divider{width:1px;height:20px;background:var(--mtx-border);margin:0 4px;flex-shrink:0}.mtx-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--mtx-text-secondary);cursor:pointer;transition:all .12s ease;position:relative}.mtx-toolbar-btn:hover{background:var(--mtx-hover);color:var(--mtx-text)}.mtx-toolbar-btn.is-active{background:var(--mtx-primary-light);color:var(--mtx-primary)}.mtx-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.mtx-toolbar-btn:disabled:hover{background:transparent}.mtx-toolbar-btn:active:not(:disabled){transform:scale(.96)}.mtx-toolbar-btn[data-tooltip]{position:relative}.mtx-toolbar-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);padding:6px 10px;background:#1e293b;color:#fff;font-size:12px;font-weight:500;white-space:nowrap;border-radius:6px;opacity:0;visibility:hidden;transition:all .15s ease;pointer-events:none;z-index:1000;box-shadow:0 4px 12px #00000026}.mtx-toolbar-btn[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%) translateY(4px);border-width:4px;border-style:solid;border-color:#1e293b transparent transparent transparent;opacity:0;visibility:hidden;transition:all .15s ease;pointer-events:none;z-index:1000}.mtx-toolbar-btn[data-tooltip]:hover:after,.mtx-toolbar-btn[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.mtx-toolbar-btn:focus-visible,.mtx-toolbar-mode-btn:focus-visible,.mtx-toolbar-select:focus-visible,.mtx-math-toolbar__action-btn:focus-visible,.mtx-symbol-palette__close:focus-visible,.mtx-symbol-palette__item:focus-visible,.mtx-template-card:focus-visible,.mtx-modal-close:focus-visible,.mtx-btn:focus-visible,.mtx-width-unit:focus-visible,.mtx-color-picker-input:focus-visible,.mtx-align-btn:focus-visible,.mtx-btn-sm:focus-visible,.mtx-image-dialog__tab:focus-visible,.mtx-image-dialog__close:focus-visible,.mtx-image-edit-dialog__btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.mtx-toolbar-btn--wide{width:34px}.mtx-toolbar-btn--accent{color:var(--mtx-primary)}.mtx-toolbar-btn--accent:hover{background:var(--mtx-primary-light);color:var(--mtx-primary)}.mtx-toolbar-btn--accent-secondary{color:#8b5cf6}.mtx-toolbar-btn--accent-secondary:hover{background:#f5f3ff;color:#7c3aed}.mtx-toolbar-btn svg{flex-shrink:0}.mtx-toolbar-select{height:30px;padding:0 8px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--mtx-text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:all .12s ease;outline:none}.mtx-toolbar-select:hover{background:var(--mtx-hover);color:var(--mtx-text)}.mtx-toolbar-select:focus{background:#fff;border-color:var(--mtx-primary);color:var(--mtx-text)}.mtx-font-select{min-width:130px}.mtx-font-size-select{min-width:70px}.mtx-color-btn{padding:4px}.mtx-color-picker{width:0;height:0;opacity:0;position:absolute;pointer-events:none}.mtx-highlight{background-color:#fef08a;padding:2px 4px;border-radius:2px;transition:background-color .15s ease}ul[data-type=taskList],.mtx-task-list{list-style:none;padding-left:0;margin:.6em 0}.mtx-task-item{display:flex;align-items:flex-start;gap:8px;margin:.3em 0}.mtx-task-item>label{display:inline-flex;align-items:center;padding-top:2px}.mtx-task-item>div{flex:1;min-width:0}.mtx-task-item input[type=checkbox]{width:14px;height:14px}.mtx-word-count{display:flex;gap:16px;padding:6px 12px;font-size:11px;color:#64748b;border-top:1px solid #e2e8f0;background:#f8fafc;font-family:var(--mtx-font)}.mtx-word-count span{font-weight:500}.mtx-modal-overlay{position:fixed;inset:0;background:#0f172a26;display:flex;align-items:center;justify-content:center;z-index:1000;animation:mtx-fade-in .15s ease}@keyframes mtx-fade-in{0%{opacity:0}to{opacity:1}}.mtx-modal-dialog{background:#fff;border-radius:14px;box-shadow:0 0 0 1px #0f172a0a,0 35px 60px -15px #00000040,0 18px 36px -18px #00000026;min-width:400px;max-width:90vw;max-height:90vh;overflow:hidden;animation:mtx-slide-up .3s cubic-bezier(.16,1,.3,1)}@keyframes mtx-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mtx-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.06);color:#fff;user-select:none}.mtx-modal-title{margin:0;font-size:15px;font-weight:600;color:#fff;font-family:Segoe UI,system-ui,sans-serif}.mtx-modal-close{width:26px;height:26px;border:1px solid rgba(255,255,255,.05);border-radius:50%;background:#ffffff0f;cursor:pointer;color:#cbd5e1;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.16,1,.3,1)}.mtx-modal-close:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:scale(1.05)}.mtx-modal-dialog:focus-visible,.mtx-image-dialog:focus-visible,.mtx-image-edit-dialog:focus-visible{outline:2px solid rgba(37,99,235,.6);outline-offset:2px}.mtx-modal-body{padding:20px;max-height:calc(90vh - 140px);overflow-y:auto}.mtx-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e2e8f0;background:#f8fafc}.mtx-form-group{margin-bottom:16px}.mtx-form-group:last-child{margin-bottom:0}.mtx-form-label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:#475569;font-family:Segoe UI,system-ui,sans-serif}.mtx-required{color:#ef4444}.mtx-form-hint{font-weight:400;color:#94a3b8;font-size:11px;margin-left:4px}.mtx-form-input{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;font-family:inherit;color:#1e293b;background:#fff;transition:all .2s cubic-bezier(.16,1,.3,1);outline:none}.mtx-form-input:hover{border-color:#94a3b8}.mtx-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.mtx-form-input::placeholder{color:#94a3b8}.mtx-input-error{border-color:#ef4444!important}.mtx-input-error:focus{box-shadow:0 0 0 3px #ef44441a!important}.mtx-form-error{margin-top:6px;font-size:12px;color:#ef4444;font-family:Segoe UI,system-ui,sans-serif}.mtx-form-checkbox{margin-top:8px}.mtx-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569;cursor:pointer;user-select:none}.mtx-checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.mtx-btn{padding:8px 18px;border:none;border-radius:10px;font-size:13px;font-weight:500;font-family:Segoe UI,system-ui,sans-serif;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);outline:none}.mtx-btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 10px #2563eb26,inset 0 1px #fff3}.mtx-btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 14px #2563eb40,inset 0 1px #ffffff1a;transform:translateY(-1px)}.mtx-btn-primary:active{transform:scale(.98) translateY(0);box-shadow:0 1px 4px #3b82f633}.mtx-btn-secondary{background:#fff;border:1px solid #cbd5e1;color:#475569}.mtx-btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a;transform:translateY(-1px)}.mtx-btn-secondary:active{transform:scale(.98) translateY(0)}.mtx-btn-danger{background:#fee2e2;color:#dc2626}.mtx-btn-danger:hover{background:#fecaca;color:#b91c1c}.mtx-btn-danger:active{transform:scale(.98)}.mtx-link-dialog{min-width:450px}.mtx-insert-table-dialog{min-width:400px}.mtx-table-templates-dialog{min-width:600px;max-width:800px}@media (max-width: 640px){.mtx-table-templates-dialog{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}}.mtx-templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;max-height:400px;overflow-y:auto;padding:8px}.mtx-template-dialog-hint{margin:0 0 12px;font-size:13px;color:#64748b}.mtx-table-template-card{appearance:none;width:100%;padding:0;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s ease;overflow:hidden;background:#fff;text-align:left}.mtx-table-template-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f633;transform:translateY(-2px)}.mtx-template-preview{padding:12px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.mtx-template-table{display:table;width:100%;border-collapse:collapse;font-size:8px}.mtx-template-row{display:table-row}.mtx-template-cell{display:table-cell;width:33%;height:20px;background:#fff;padding:4px}.mtx-template-header{background:#e2e8f0}.mtx-template-light .mtx-template-header{background:#f1f5f9}.mtx-template-dark .mtx-template-header{background:#1e293b;color:#fff}.mtx-template-blue .mtx-template-header{background:#3b82f6;color:#fff}.mtx-template-striped .mtx-template-row:nth-child(2n) .mtx-template-cell{background:#f8fafc}.mtx-template-minimal .mtx-template-cell{border:none;border-bottom:1px solid #cbd5e1}.mtx-template-info{padding:12px}.mtx-template-name{margin:0 0 4px;font-size:14px;font-weight:600;color:#1e293b}.mtx-template-description{margin:0;font-size:12px;color:#64748b}.mtx-number-input-wrapper{display:flex;align-items:center;gap:0}.mtx-number-btn{width:36px;height:38px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center}.mtx-number-btn:first-child{border-radius:8px 0 0 8px;border-right:none}.mtx-number-btn:last-child{border-radius:0 8px 8px 0;border-left:none}.mtx-number-btn:hover:not(:disabled){background:#eff6ff;color:#2563eb;border-color:#3b82f6}.mtx-number-btn:disabled{opacity:.4;cursor:not-allowed}.mtx-number-input{width:60px!important;text-align:center;border-radius:0!important;border-left:none!important;border-right:none!important;-moz-appearance:textfield}.mtx-number-input::-webkit-outer-spin-button,.mtx-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mtx-table-preview{margin-top:16px;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.mtx-table-preview-label{font-size:12px;font-weight:600;color:#64748b;margin-bottom:12px;text-align:center}.mtx-table-preview-grid{display:grid;gap:2px;max-width:200px;margin:0 auto}.mtx-preview-cell{aspect-ratio:1;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:2px}.mtx-preview-header{background:#475569;border-color:#334155}.mtx-cell-properties-dialog{min-width:400px}.mtx-width-input-wrapper{display:flex;gap:8px}.mtx-width-input{flex:1}.mtx-width-unit{width:70px;padding:10px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;outline:none}.mtx-width-unit:hover{border-color:#94a3b8}.mtx-width-unit:focus{border-color:#3b82f6}.mtx-color-input-wrapper{display:flex;gap:8px}.mtx-color-picker-input{width:50px;height:38px;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;background:#fff}.mtx-color-text-input{flex:1}.mtx-align-buttons{display:flex;gap:4px}.mtx-table-menu-overlay{position:fixed;inset:0;width:100vw;height:100vh;border:none;padding:0;z-index:1000;background:transparent;cursor:default}.mtx-table-menu-dropdown{position:fixed;z-index:1000;left:var(--mtx-dropdown-x, 0);top:var(--mtx-dropdown-y, 0)}.mtx-toolbar-btn--dropdown{width:20px;padding:0 2px}.mtx-toolbar-btn--dropdown svg{width:12px;height:12px}.mtx-table-menu{position:absolute;background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;min-width:220px;padding:8px 0;animation:mtx-slide-down .15s ease;overflow:hidden}@keyframes mtx-slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mtx-table-menu-group{padding:4px 0;border-bottom:1px solid #e2e8f0}.mtx-table-menu-label{padding:6px 16px 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.mtx-table-menu-group:last-child{border-bottom:none}.mtx-table-menu-item{width:100%;padding:10px 16px;border:none;background:transparent;display:flex;align-items:center;gap:12px;font-size:13px;color:#475569;cursor:pointer;transition:all .12s ease;text-align:left}.mtx-table-menu-item:hover{background:#f1f5f9;color:#1e293b}.mtx-table-menu-item.is-active{background:#eff6ff;color:#1d4ed8;font-weight:600}.mtx-table-menu-item--danger{color:#dc2626}.mtx-table-menu-item--danger:hover{background:#fee2e2;color:#b91c1c}.mtx-table-menu-icon{font-size:16px;width:20px;display:flex;align-items:center;justify-content:center}.mtx-table{border-collapse:collapse;width:100%;margin:12px 0;table-layout:fixed;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px #dbe4ef}.mtx-table td,.mtx-table th{border:1px solid #cbd5e1;padding:8px 12px;min-width:50px;position:relative;vertical-align:top;transition:background-color .12s ease,box-shadow .12s ease}.mtx-table th{background:#f1f5f9;font-weight:600;text-align:left}.mtx-table td:first-child,.mtx-table th:first-child{border-left-width:1px}.mtx-table tr:first-child td,.mtx-table tr:first-child th{border-top-width:1px}.ProseMirror .selectedCell{background:#3b82f626!important;border-color:#3b82f6!important;border-style:dashed!important;box-shadow:inset 0 0 0 1px #3b82f64d!important}.mtx-table.mtx-table--plain tbody tr:nth-child(2n) td{background-image:linear-gradient(to bottom,#f8fafc59,#f8fafc59)}.mtx-table.mtx-table--plain{box-shadow:0 0 0 1px #dbe4ef}.mtx-table.mtx-table--light th{background:#f8fafc;color:#334155}.mtx-table.mtx-table--dark{box-shadow:0 0 0 1px #1e293b}.mtx-table.mtx-table--dark th{background:#1e293b;color:#f8fafc;border-color:#334155}.mtx-table.mtx-table--blue{box-shadow:0 0 0 1px #93c5fd}.mtx-table.mtx-table--blue th{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;border-color:#2563eb}.mtx-table.mtx-table--blue tbody tr:nth-child(2n) td,.mtx-table.mtx-table--striped tbody tr:nth-child(2n) td{background:#f8fbff}.mtx-table.mtx-table--minimal{box-shadow:none}.mtx-table.mtx-table--minimal td,.mtx-table.mtx-table--minimal th{border-left:none;border-right:none}.ProseMirror table{position:relative}.ProseMirror table td,.ProseMirror table th{position:relative;cursor:text}.ProseMirror table td:not(:last-child):after,.ProseMirror table th:not(:last-child):after{content:"";position:absolute;right:-2px;top:0;bottom:0;width:4px;background:#3b82f626;z-index:5;transition:background .15s ease;pointer-events:none}.ProseMirror table td:not(:last-child):hover:after,.ProseMirror table th:not(:last-child):hover:after{background:#3b82f659}.ProseMirror table:focus-within td:not(:last-child):after,.ProseMirror table:focus-within th:not(:last-child):after{background:#3b82f633}.ProseMirror table:focus-within td:not(:last-child):hover:after,.ProseMirror table:focus-within th:not(:last-child):hover:after{background:#3b82f673}.ProseMirror table .column-resize-handle{position:absolute;top:0;bottom:0;width:10px;background:transparent;cursor:col-resize;z-index:20;transition:background .12s ease}.ProseMirror table .column-resize-handle:before{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:1px;background:#3b82f640;transform:translate(-50%);transition:all .12s ease;border-radius:1px;pointer-events:none}.ProseMirror table .column-resize-handle:hover{background:#3b82f614}.ProseMirror table .column-resize-handle:hover:before{background:#3b82f6;width:2px}.ProseMirror table .column-resize-handle.is-active{background:#3b82f61f}.ProseMirror table .column-resize-handle.is-active:before{background:#2563eb;width:2px}.ProseMirror .column-resize-dragging{position:absolute;top:0;bottom:0;left:0;width:2px;background:#2563eb;z-index:30;pointer-events:none;box-shadow:0 0 8px #2563eb66}.ProseMirror .tableWrapper[data-align=center]{margin-left:auto;margin-right:auto}.ProseMirror .tableWrapper[data-align=right]{margin-left:auto;margin-right:0}.ProseMirror .tableWrapper[data-align=left]{margin-left:0;margin-right:auto}@media (max-width: 640px){.mtx-modal-dialog{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}.mtx-link-dialog,.mtx-insert-table-dialog,.mtx-cell-properties-dialog{min-width:calc(100vw - 32px)}.mtx-modal-footer{flex-wrap:wrap}.mtx-btn{flex:1;min-width:100px}.mtx-table-menu{left:16px!important;right:16px!important;min-width:auto!important}}.mtx-math-toolbar{display:flex;align-items:center;gap:4px;padding:3px 8px;background:var(--mtx-toolbar-bg, #fafbfc);border-bottom:1px solid var(--mtx-border, #d4d4d8);user-select:none;min-height:36px}.mtx-math-toolbar__label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:0 8px;height:24px;background:#f1f5f9;border:1px solid var(--mtx-border, #d4d4d8);border-radius:4px;margin-right:4px;font-family:var(--mtx-font)}.mtx-math-toolbar__search-wrap{display:inline-flex;align-items:center;flex-shrink:0}.mtx-math-toolbar__search{width:140px;height:26px;padding:0 10px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;font-size:12px;outline:none}.mtx-math-toolbar__search::placeholder{color:#94a3b8}.mtx-math-toolbar__search:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa2e}.mtx-math-toolbar__buttons{display:flex;align-items:center;gap:1px;flex-wrap:nowrap;overflow-x:auto;flex:1;min-width:0;padding-bottom:2px}.mtx-math-toolbar__section{display:inline-flex;align-items:center;gap:2px;padding-right:6px;margin-right:6px;border-right:1px solid #d6d6d6;flex-shrink:0}.mtx-math-toolbar__section-toggle{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:1px solid var(--mtx-border, #d4d4d8);border-radius:4px;background:#fff;color:#475569;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;flex-shrink:0;font-family:var(--mtx-font)}.mtx-math-toolbar__section-toggle:hover{background:#f8fafc;border-color:#94a3b8;color:#1e293b}.mtx-math-toolbar__section-toggle.is-active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.mtx-math-toolbar__section-toggle svg{transition:transform .15s ease}.mtx-math-toolbar__section-toggle.is-active svg{transform:rotate(180deg)}.mtx-math-toolbar__section:last-child{margin-right:0;padding-right:0;border-right:none}.mtx-math-toolbar__section-label{display:inline-flex;align-items:center;height:22px;padding:0 6px;margin-right:3px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.mtx-math-toolbar__section-divider{width:1px;height:20px;margin:0 3px;background:#cbd5e1;flex-shrink:0}.mtx-math-toolbar__empty{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;color:#64748b;font-size:12px;font-style:italic}.mtx-math-toolbar__buttons::-webkit-scrollbar{height:3px;background:transparent}.mtx-math-toolbar__buttons::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.mtx-math-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 4px;border:1px solid transparent;border-radius:4px;background:transparent;color:#334155;cursor:pointer;font-size:13px;font-weight:400;font-family:"Cambria Math",Times New Roman,serif;transition:all .1s ease}.mtx-math-btn:hover{background:#e8e8e8;border-color:#aaa;color:#000;box-shadow:0 1px 1px #0000001a}.mtx-math-btn:active{background:#d0d0d0;border-color:#888;box-shadow:inset 0 1px 1px #0000001a;transform:scale(.96)}.mtx-math-btn__label{line-height:1}.mtx-math-btn[data-tooltip],.mtx-math-toolbar__action-btn[data-tooltip]{position:relative}.mtx-math-btn[data-tooltip]:after,.mtx-math-toolbar__action-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);padding:5px 8px;background:#1e293b;color:#fff;font-size:11px;font-weight:500;white-space:nowrap;border-radius:5px;opacity:0;visibility:hidden;transition:all .12s ease;pointer-events:none;z-index:1000;box-shadow:0 3px 10px #00000026;font-family:Segoe UI,system-ui,sans-serif}.mtx-math-btn[data-tooltip]:before,.mtx-math-toolbar__action-btn[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%) translateY(4px);border-width:4px;border-style:solid;border-color:#1e293b transparent transparent transparent;opacity:0;visibility:hidden;transition:all .12s ease;pointer-events:none;z-index:1000}.mtx-math-btn[data-tooltip]:hover:after,.mtx-math-btn[data-tooltip]:hover:before,.mtx-math-toolbar__action-btn[data-tooltip]:hover:after,.mtx-math-toolbar__action-btn[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.mtx-math-toolbar__actions{display:flex;align-items:center;gap:4px;margin-left:auto;padding-left:6px;border-left:1px solid #ccc;flex-shrink:0}.mtx-math-toolbar__action-btn{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid var(--mtx-border, #d4d4d8);border-radius:4px;background:#fff;color:#475569;cursor:pointer;font-size:11px;font-weight:600;font-family:var(--mtx-font);transition:all .1s ease}.mtx-math-toolbar__action-btn:hover{background:var(--mtx-hover, #f4f4f5);border-color:#94a3b8;color:#1e293b}.mtx-symbol-palette{z-index:100;width:360px;max-height:420px;background:#fff;border:1px solid var(--mtx-border);border-radius:8px;box-shadow:0 10px 40px #0000001f,0 2px 10px #00000014;overflow:hidden;animation:mtx-fadeIn .15s ease}@keyframes mtx-fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mtx-symbol-palette__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--mtx-border);background:#f9fafb}.mtx-symbol-palette__title{font-size:13px;font-weight:600;color:var(--mtx-text)}.mtx-symbol-palette__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--mtx-text-secondary);cursor:pointer;font-size:16px;line-height:1}.mtx-symbol-palette__close:hover{background:#fee2e2;color:#ef4444}.mtx-symbol-palette__search{display:block;width:100%;padding:8px 12px;border:none;border-bottom:1px solid var(--mtx-border);font-size:13px;font-family:var(--mtx-font);background:#fff;outline:none}.mtx-symbol-palette__search:focus{background:#eff6ff}.mtx-symbol-palette__search::placeholder{color:#94a3b8}.mtx-symbol-palette__body{overflow-y:auto;max-height:330px;padding:8px}.mtx-symbol-palette__category{margin-bottom:8px}.mtx-symbol-palette__category-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mtx-text-secondary);padding:4px 4px 6px}.mtx-symbol-palette__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:2px}.mtx-symbol-palette__item{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--mtx-text);cursor:pointer;font-size:16px;font-family:"Cambria Math",serif;transition:all .1s ease}.mtx-symbol-palette__item:hover{background:var(--mtx-primary-light);border-color:var(--mtx-primary);color:var(--mtx-primary);transform:scale(1.1)}.mtx-content{position:relative}.mtx-content .tiptap{padding:16px 20px;min-height:var(--mtx-min-height, 200px);outline:none;font-size:15px;line-height:1.7;color:var(--mtx-text);caret-color:#2563eb;white-space:pre-wrap}.mtx-content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:#94a3b8;font-style:italic;pointer-events:none;float:left;height:0}.mtx-content .tiptap h1{font-size:1.8em;font-weight:700;margin:.6em 0 .4em;color:#0f172a;line-height:1.3;letter-spacing:-.02em}.mtx-content .tiptap h2{font-size:1.4em;font-weight:600;margin:.5em 0 .3em;color:#1e293b;line-height:1.35}.mtx-content .tiptap h3{font-size:1.15em;font-weight:600;margin:.5em 0 .3em;color:#334155;line-height:1.4}.mtx-content .tiptap ul,.mtx-content .tiptap ol{padding-left:24px;margin:.5em 0}.mtx-content .tiptap li{margin:.15em 0}.mtx-content .tiptap li p{margin:0}.mtx-content .tiptap a{color:var(--mtx-primary);text-decoration:underline;text-decoration-color:#3b82f64d;text-underline-offset:2px;cursor:pointer;transition:text-decoration-color .15s}.mtx-content .tiptap a:hover{text-decoration-color:var(--mtx-primary)}.mtx-content .tiptap blockquote{border-left:3px solid var(--mtx-primary);padding:8px 16px;margin:.8em 0;background:#eff6ff;border-radius:0 6px 6px 0;color:#1e40af;font-style:italic}.mtx-content .tiptap p[data-indent],.mtx-content .tiptap h1[data-indent],.mtx-content .tiptap h2[data-indent],.mtx-content .tiptap h3[data-indent],.mtx-content .tiptap h4[data-indent],.mtx-content .tiptap p.tt-indent,.mtx-content .tiptap h1.tt-indent,.mtx-content .tiptap h2.tt-indent,.mtx-content .tiptap h3.tt-indent,.mtx-content .tiptap h4.tt-indent,.mtx-content .tiptap li[data-indent]{position:relative}.mtx-math-btn--recent{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.mtx-math-btn--recent:hover{background:#dbeafe;border-color:#93c5fd}.mtx-content .tiptap p[data-indent="1"],.mtx-content .tiptap h1[data-indent="1"],.mtx-content .tiptap h2[data-indent="1"],.mtx-content .tiptap h3[data-indent="1"],.mtx-content .tiptap h4[data-indent="1"],.mtx-content .tiptap p.tt-indent-1,.mtx-content .tiptap h1.tt-indent-1,.mtx-content .tiptap h2.tt-indent-1,.mtx-content .tiptap h3.tt-indent-1,.mtx-content .tiptap h4.tt-indent-1,.mtx-content .tiptap li.tt-indent-1{margin-left:2em}.mtx-content .tiptap p[data-indent="2"],.mtx-content .tiptap h1[data-indent="2"],.mtx-content .tiptap h2[data-indent="2"],.mtx-content .tiptap h3[data-indent="2"],.mtx-content .tiptap h4[data-indent="2"],.mtx-content .tiptap p.tt-indent-2,.mtx-content .tiptap h1.tt-indent-2,.mtx-content .tiptap h2.tt-indent-2,.mtx-content .tiptap h3.tt-indent-2,.mtx-content .tiptap h4.tt-indent-2,.mtx-content .tiptap li.tt-indent-2{margin-left:4em}.mtx-content .tiptap p[data-indent="3"],.mtx-content .tiptap h1[data-indent="3"],.mtx-content .tiptap h2[data-indent="3"],.mtx-content .tiptap h3[data-indent="3"],.mtx-content .tiptap h4[data-indent="3"],.mtx-content .tiptap p.tt-indent-3,.mtx-content .tiptap h1.tt-indent-3,.mtx-content .tiptap h2.tt-indent-3,.mtx-content .tiptap h3.tt-indent-3,.mtx-content .tiptap h4.tt-indent-3,.mtx-content .tiptap li.tt-indent-3{margin-left:6em}.mtx-content .tiptap p[data-indent="4"],.mtx-content .tiptap h1[data-indent="4"],.mtx-content .tiptap h2[data-indent="4"],.mtx-content .tiptap h3[data-indent="4"],.mtx-content .tiptap h4[data-indent="4"],.mtx-content .tiptap p.tt-indent-4,.mtx-content .tiptap h1.tt-indent-4,.mtx-content .tiptap h2.tt-indent-4,.mtx-content .tiptap h3.tt-indent-4,.mtx-content .tiptap h4.tt-indent-4,.mtx-content .tiptap li.tt-indent-4{margin-left:8em}.mtx-content .tiptap p[data-indent="5"],.mtx-content .tiptap h1[data-indent="5"],.mtx-content .tiptap h2[data-indent="5"],.mtx-content .tiptap h3[data-indent="5"],.mtx-content .tiptap h4[data-indent="5"],.mtx-content .tiptap p.tt-indent-5,.mtx-content .tiptap h1.tt-indent-5,.mtx-content .tiptap h2.tt-indent-5,.mtx-content .tiptap h3.tt-indent-5,.mtx-content .tiptap h4.tt-indent-5,.mtx-content .tiptap li.tt-indent-5{margin-left:10em}.mtx-content .tiptap p[data-indent="6"],.mtx-content .tiptap h1[data-indent="6"],.mtx-content .tiptap h2[data-indent="6"],.mtx-content .tiptap h3[data-indent="6"],.mtx-content .tiptap h4[data-indent="6"],.mtx-content .tiptap p.tt-indent-6,.mtx-content .tiptap h1.tt-indent-6,.mtx-content .tiptap h2.tt-indent-6,.mtx-content .tiptap h3.tt-indent-6,.mtx-content .tiptap h4.tt-indent-6,.mtx-content .tiptap li.tt-indent-6{margin-left:12em}.mtx-content .tiptap p[data-indent="7"],.mtx-content .tiptap h1[data-indent="7"],.mtx-content .tiptap h2[data-indent="7"],.mtx-content .tiptap h3[data-indent="7"],.mtx-content .tiptap h4[data-indent="7"],.mtx-content .tiptap p.tt-indent-7,.mtx-content .tiptap h1.tt-indent-7,.mtx-content .tiptap h2.tt-indent-7,.mtx-content .tiptap h3.tt-indent-7,.mtx-content .tiptap h4.tt-indent-7,.mtx-content .tiptap li.tt-indent-7{margin-left:14em}.mtx-content .tiptap p[data-indent],.mtx-content .tiptap p.tt-indent{margin-left:0;text-indent:0}.mtx-content .tiptap p[data-indent="1"],.mtx-content .tiptap p.tt-indent-1{margin-left:0;text-indent:2em}.mtx-content .tiptap p[data-indent="2"],.mtx-content .tiptap p.tt-indent-2{margin-left:0;text-indent:4em}.mtx-content .tiptap p[data-indent="3"],.mtx-content .tiptap p.tt-indent-3{margin-left:0;text-indent:6em}.mtx-content .tiptap p[data-indent="4"],.mtx-content .tiptap p.tt-indent-4{margin-left:0;text-indent:8em}.mtx-content .tiptap p[data-indent="5"],.mtx-content .tiptap p.tt-indent-5{margin-left:0;text-indent:10em}.mtx-content .tiptap p[data-indent="6"],.mtx-content .tiptap p.tt-indent-6{margin-left:0;text-indent:12em}.mtx-content .tiptap p[data-indent="7"],.mtx-content .tiptap p.tt-indent-7{margin-left:0;text-indent:14em}.mtx-content .tiptap code{background:#f1f5f9;color:#e11d48;padding:1px 5px;border-radius:3px;font-size:.9em;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace}.mtx-content .tiptap pre{background:#1e293b;color:#e2e8f0;padding:16px;border-radius:6px;overflow-x:auto;margin:.8em 0;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:.85em;line-height:1.6}.mtx-content .tiptap pre code{background:none;color:inherit;padding:0;border-radius:0;font-size:inherit}.mtx-content .tiptap pre .hljs-keyword{color:#c678dd}.mtx-content .tiptap pre .hljs-string{color:#98c379}.mtx-content .tiptap pre .hljs-number{color:#d19a66}.mtx-content .tiptap pre .hljs-comment{color:#5c6370;font-style:italic}.mtx-content .tiptap pre .hljs-function{color:#61afef}.mtx-content .tiptap pre .hljs-variable{color:#e06c75}.mtx-content .tiptap pre .hljs-operator{color:#56b6c2}.mtx-content .tiptap pre .hljs-class{color:#e5c07b}.mtx-content .tiptap pre .hljs-title{color:#61afef}.mtx-content .tiptap pre .hljs-params{color:#e06c75}.mtx-content .tiptap pre .hljs-built_in{color:#56b6c2}.mtx-content .tiptap pre .hljs-type{color:#e5c07b}.mtx-content .tiptap pre .hljs-literal{color:#d19a66}.mtx-content .tiptap pre .hljs-tag{color:#e06c75}.mtx-content .tiptap pre .hljs-attr{color:#d19a66}.mtx-content .tiptap pre .hljs-attribute{color:#98c379}.mtx-content .tiptap pre .hljs-symbol,.mtx-content .tiptap pre .hljs-bullet{color:#d19a66}.mtx-content .tiptap pre .hljs-link{color:#61afef}.mtx-content .tiptap pre .hljs-emphasis{font-style:italic}.mtx-content .tiptap pre .hljs-strong{font-weight:700}.mtx-content .tiptap pre .hljs-quote{color:#5c6370}.mtx-details{border:1px solid #e2e8f0;border-radius:8px;margin:1em 0;overflow:hidden;background:#f8fafc}.mtx-details-summary{padding:.75em 1em;background:#f1f5f9;cursor:pointer;font-weight:600;color:#334155;user-select:none;list-style:none;position:relative}.mtx-details-summary::-webkit-details-marker{display:none}.mtx-details-summary:before{content:"▶";display:inline-block;margin-right:.5em;transition:transform .2s ease;font-size:.8em}.mtx-details[open]>.mtx-details-summary:before{transform:rotate(90deg)}.mtx-details-summary:hover{background:#e2e8f0}.mtx-details-content{padding:1em;border-top:1px solid #e2e8f0;background:#fff}.mtx-details-content>*:first-child{margin-top:0}.mtx-details-content>*:last-child{margin-bottom:0}.mtx-content .tiptap table{border-collapse:collapse;width:100%;margin:.8em 0;border-radius:6px;overflow:hidden}.mtx-content .tiptap table td,.mtx-content .tiptap table th{border:1px solid #e2e8f0;padding:8px 12px;text-align:left;min-width:80px;vertical-align:top}.mtx-content .tiptap table th{background:#f1f5f9;font-weight:600;color:#334155;font-size:.9em;text-transform:uppercase;letter-spacing:.03em}.mtx-content .tiptap table tr:hover td{background:#f8fafc}.mtx-content .tiptap hr{border:none;border-top:2px solid #e2e8f0;margin:1.5em 0}.mtx-content .tiptap figure.mtx-image-figure{margin:.5em 0;text-align:center;position:relative;display:inline-block;width:fit-content;max-width:100%}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper{position:relative;display:inline-block;line-height:0;user-select:none;backface-visibility:hidden}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.is-dragging{z-index:20}.mtx-content .tiptap figure.mtx-image-figure{transition:margin .18s ease,transform .18s ease}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--dragging,.mtx-content .tiptap figure.mtx-image-figure.mtx-image--dragging .mtx-image-wrapper{transition:none}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--snap-animating,.mtx-content .tiptap figure.mtx-image-figure.mtx-image--snap-animating .mtx-image-wrapper{transition:margin .18s ease,transform .18s ease}.mtx-content .tiptap figure.mtx-image-figure img{max-width:100%;height:auto;border-radius:6px;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:box-shadow .2s ease}.mtx-content .tiptap figure.mtx-image-figure:hover img{box-shadow:0 4px 8px #00000026}.mtx-content .tiptap figure.mtx-image-figure figcaption{text-align:center;font-size:.875rem;color:#64748b;margin-top:.5em;padding:.25em .5em;background:#f1f5f9;border-radius:4px}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--left{float:left;margin-right:1.5em;margin-bottom:1em;clear:none}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--right{float:right;margin-left:1.5em;margin-bottom:1em;clear:none}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--center{display:block;margin-left:auto;margin-right:auto;clear:both}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--full{display:block;width:100%!important;margin:1em 0;clear:both}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--full img{width:100%}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--dragging{opacity:.92}.mtx-content .tiptap figure.mtx-image-figure.mtx-image-snap-preview--left{box-shadow:-6px 0 #2563eb59}.mtx-content .tiptap figure.mtx-image-figure.mtx-image-snap-preview--center{box-shadow:0 0 0 2px #2563eb47}.mtx-content .tiptap figure.mtx-image-figure.mtx-image-snap-preview--right{box-shadow:6px 0 #2563eb59}.mtx-image-drag-guide{position:absolute;top:0;left:0;width:0;height:100%;border-left:2px dashed rgba(37,99,235,.5);pointer-events:none;z-index:100}.mtx-image-drag-zone{position:absolute;top:0;left:0;width:100%;height:100%;background:#2563eb0f;pointer-events:none;z-index:99}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper:after{content:"⤡";position:absolute;bottom:8px;right:8px;width:28px;height:28px;background:#2563ebd9;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:5;box-shadow:0 2px 6px #00000026}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected .mtx-image-wrapper:hover:after,.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.is-dragging:after{opacity:1}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper:hover{outline:1.5px solid rgba(37,99,235,.25);outline-offset:2px;border-radius:2px}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected .mtx-image-wrapper:hover{outline-color:#2563eb80}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper:hover img{box-shadow:0 4px 12px #0000002e}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected,.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.mtx-image--selected{outline:2px solid var(--mtx-primary);outline-offset:2px}.mtx-image-node-view{display:inline-block;max-width:100%;position:relative}.mtx-content .tiptap:after{content:"";display:table;clear:both}.mtx-math-inline,.mtx-math-block{display:inline-block;position:relative}.mtx-math-inline math-field,.mtx-math-block math-field{border:1px solid transparent;border-radius:4px;outline:none;transition:all .15s ease;font-size:1.05em;background:transparent;--selection-background-color: rgba(59, 130, 246, .2)}.mtx-math-inline math-field:focus,.mtx-math-block math-field:focus{border-color:var(--mtx-primary);background:#eff6ff;box-shadow:0 0 0 2px #3b82f61a}.mtx-math-block{display:block;text-align:center;margin:12px 0;padding:12px;background:#f8fafc;border-radius:6px;border:1px dashed #cbd5e1}.mtx-math-block math-field{font-size:1.2em}.mtx-math-inline.is-empty math-field{min-width:50px;min-height:26px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:4px}.mtx-math-inline.is-empty math-field:focus{border-color:var(--mtx-primary);background:#eff6ff;border-style:solid;box-shadow:0 0 0 2px #3b82f61a}.mtx-math-edit-btn{position:absolute;background:#2563eb;color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;z-index:10;display:flex;align-items:center;gap:4px;box-shadow:0 2px 4px #0003;transition:all .15s ease}.mtx-math-edit-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 6px #00000040}.mtx-math-inline .mtx-math-edit-btn{right:-28px;top:50%;transform:translateY(-50%)}.mtx-math-block .mtx-math-edit-btn{right:8px;top:8px}.ProseMirror-selectednode .mtx-math-inline,.ProseMirror-selectednode .mtx-math-block{outline:2px solid var(--mtx-primary);outline-offset:2px;border-radius:4px}.mtx-content::-webkit-scrollbar{width:6px}.mtx-content::-webkit-scrollbar-track{background:transparent}.mtx-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.mtx-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 640px){.mtx-toolbar-mode-switch{order:-1;margin-bottom:4px}.mtx-toolbar{gap:0;padding:3px 4px}.mtx-toolbar-btn{width:28px;height:28px}.mtx-toolbar-divider{margin:0 2px}.mtx-math-toolbar__buttons{gap:1px;flex-wrap:wrap;justify-content:center}.mtx-math-toolbar__section{padding-right:4px;margin-right:4px}.mtx-math-toolbar__section-toggle{padding:0 6px}.mtx-math-toolbar{padding:4px;min-width:unset;width:calc(100% - 20px);flex-wrap:wrap}.mtx-math-toolbar__search-wrap{order:3;width:100%}.mtx-math-toolbar__search{width:100%}.mtx-math-btn{min-width:26px;height:26px;font-size:11px}.mtx-symbol-palette{width:300px}.mtx-template-panel{width:340px}}@media (min-width: 768px){math-field::part(virtual-keyboard-toggle){display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important;position:absolute!important;z-index:-1!important;opacity:0!important}}math-field::part(menu-toggle){display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important;position:absolute!important;z-index:-1!important;opacity:0!important}.mtx-template-panel{z-index:100;width:540px;max-width:96vw;max-height:540px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000000d,0 0 1px 1px #0f172a0d;overflow:hidden;animation:mtx-fadeIn .2s cubic-bezier(.16,1,.3,1)}.mtx-template-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;background:#fff}.mtx-template-panel__title{font-size:14px;font-weight:600;color:#0f172a;font-family:var(--mtx-font),system-ui,sans-serif}.mtx-template-panel__close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;font-size:18px;line-height:1;transition:all .15s ease}.mtx-template-panel__close:hover{background:#fee2e2;color:#ef4444}.mtx-template-panel__search{display:block;width:100%;padding:10px 16px;border:none;border-bottom:1px solid #e2e8f0;font-size:13px;font-family:var(--mtx-font),system-ui,sans-serif;background:#fff;outline:none;transition:background-color .15s ease}.mtx-template-panel__search:focus{background:#f8fafc}.mtx-template-panel__search::placeholder{color:#94a3b8}.mtx-template-panel__body{display:flex;flex-direction:row;height:340px}@media (max-width: 640px){.mtx-template-panel__body{flex-direction:column;height:420px}}.mtx-template-panel__tabs{width:170px;min-width:170px;overflow-y:auto;border-right:1px solid #e2e8f0;background:#f8fafc;padding:6px}@media (max-width: 640px){.mtx-template-panel__tabs{width:100%;min-width:unset;height:auto;display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid #e2e8f0;white-space:nowrap;padding:8px;gap:6px}}.mtx-template-panel__tab{display:flex;align-items:center;gap:6px;width:100%;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:#475569;cursor:pointer;font-size:12px;font-weight:500;font-family:var(--mtx-font),system-ui,sans-serif;text-align:left;transition:all .15s ease;margin-bottom:2px}@media (max-width: 640px){.mtx-template-panel__tab{width:auto;flex:0 0 auto;padding:6px 12px;margin-bottom:0}}.mtx-template-panel__tab:hover{background:#f1f5f9;color:#0f172a}.mtx-template-panel__tab.is-active{background:#eff6ff;color:#2563eb;font-weight:600}.mtx-template-panel__tab-icon{font-size:14px;flex-shrink:0}.mtx-template-panel__tab-label{line-height:1.2}.mtx-template-panel__content{flex:1;overflow-y:auto;padding:16px;background:#fff}.mtx-template-panel__empty{padding:24px;text-align:center;color:#94a3b8;font-size:13px}.mtx-template-panel__group{margin-bottom:12px}.mtx-template-panel__group-title{font-size:11px;font-weight:600;color:#64748b;padding:4px 4px 10px;text-transform:uppercase;letter-spacing:.05em}.mtx-template-panel__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.mtx-template-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;text-align:left;transition:all .2s cubic-bezier(.16,1,.3,1);font-family:var(--mtx-font),system-ui,sans-serif;min-height:56px;overflow:hidden}.mtx-template-card:hover{border-color:#3b82f6;background:#f0f7ff;box-shadow:0 4px 12px #3b82f614;transform:translateY(-1px)}.mtx-template-card__preview{font-size:14px;font-weight:500;color:#0f172a;font-family:"Cambria Math","Latin Modern Math",serif;line-height:1.5;word-break:break-all;padding-bottom:2px;display:block}.mtx-template-card__label{font-size:10px;color:#64748b;line-height:1.2}.mtx-template-panel__levels{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;overflow-x:auto;white-space:nowrap}.mtx-template-panel__level{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid transparent;border-radius:20px;background:transparent;color:#475569;cursor:pointer;font-size:12px;font-weight:500;font-family:var(--mtx-font),system-ui,sans-serif;transition:all .15s ease}.mtx-template-panel__level:hover{background:#fff;border-color:#e2e8f0;color:#0f172a}.mtx-template-panel__level.is-active{background:#2563eb;color:#fff;border-color:#2563eb;font-weight:600}.mtx-template-panel__tab-badge{font-size:9px;padding:1px 5px;border-radius:4px;background:#e2e8f0;color:#475569;font-weight:600;margin-left:auto}.mtx-template-panel__tab.is-active .mtx-template-panel__tab-badge{background:#2563eb26;color:#2563eb}.mtx-template-panel__group-level{font-size:9px;padding:1px 5px;border-radius:4px;background:#eff6ff;color:#2563eb;font-weight:600;margin-left:6px}.mt-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0f172a1a;animation:mt-fadeIn .2s ease}@keyframes mt-fadeIn{0%{opacity:0}to{opacity:1}}.mt-dialog{width:720px;max-width:96vw;max-height:92vh;background:#fff;border-radius:14px;box-shadow:0 0 0 1px #0f172a0a,0 35px 60px -15px #00000040,0 18px 36px -18px #00000026;overflow:hidden;display:flex;flex-direction:column;animation:mt-slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes mt-slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.mt-titlebar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.06);color:#fff;user-select:none;flex-shrink:0}.mt-titlebar__left{display:flex;align-items:center;gap:8px}.mt-titlebar__title{font-size:13px;font-weight:600;font-family:var(--mtx-font),system-ui,sans-serif;letter-spacing:.02em}.mt-titlebar__close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid rgba(255,255,255,.05);border-radius:50%;background:#ffffff0f;color:#cbd5e1;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.mt-titlebar__close:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:scale(1.05)}.mt-format-bar{display:flex;align-items:center;padding:10px 18px;background:#fff;border-bottom:1px solid #f1f5f9;gap:8px}.mt-font-select{height:28px;border:1px solid #cbd5e1;border-radius:6px;padding:0 8px;font-size:12px;font-family:var(--mtx-font),system-ui,sans-serif;width:150px;background:#fff;cursor:pointer;outline:none;transition:all .15s ease}.mt-font-select:hover{border-color:#94a3b8}.mt-format-group{display:flex;align-items:center;gap:2px;margin-right:6px;padding-right:6px;border-right:1px solid #e2e8f0}.mt-format-group:last-child{border-right:none;margin-right:0;padding-right:0}.mt-format-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-family:serif;font-size:14px;color:#475569;transition:all .15s ease}.mt-format-btn:hover{background:#cbd5e1;color:#0f172a}.mt-format-btn b{font-weight:700}.mt-format-btn i{font-style:italic}.mt-format-btn u{text-decoration:underline}.mt-tab-bar{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;flex-wrap:wrap}.mt-tab{display:inline-flex;align-items:center;justify-content:center;padding:5px 12px;min-width:44px;height:30px;border:1px solid transparent;border-radius:8px;background:transparent;color:#475569;cursor:pointer;font-size:13.5px;font-family:"Cambria Math","Latin Modern Math",Times New Roman,serif;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.mt-tab:hover{background:#0f172a0a;color:#0f172a}.mt-tab.is-active{background:#fff;color:#0284c7;border-color:#e2e8f0;box-shadow:0 2px 5px #0000000a,0 1px 1px #00000005;font-weight:600}.mt-tab__icon{font-size:14px;line-height:1}.mt-grid{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:12px 16px}.mt-grid__row{display:flex;align-items:center;justify-content:flex-start;gap:6px;padding:3px 0;flex-wrap:wrap;width:100%}.mt-grid__btn{display:inline-flex;align-items:center;justify-content:center;flex:1;min-width:52px;max-width:90px;height:42px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155;cursor:pointer;font-size:15px;font-family:"Cambria Math","Latin Modern Math",Times New Roman,serif;line-height:1;transition:all .2s cubic-bezier(.16,1,.3,1);user-select:none;white-space:nowrap;box-shadow:0 1px 2px #00000005;position:relative}.mt-grid__btn:hover{background:#f0f7ff;border-color:#3b82f6;box-shadow:0 4px 10px #3b82f614;transform:translateY(-1px);color:#2563eb}.mt-grid__btn:active{background:#eff6ff;border-color:#2563eb;transform:translateY(0)}.mt-grid__btn--formula{min-width:76px;max-width:130px}.mt-ph{display:inline-block;width:11px;height:11px;border:1.5px solid #3b82f6;background:#3b82f614;border-radius:2px;margin:0 1px;transition:all .15s ease}.mt-ph--sm{width:8px;height:8px}.mt-grid__btn:hover .mt-ph{border-color:#2563eb;background:#3b82f626}.mt-grid__btn[data-tooltip],.mt-format-btn[data-tooltip],.mt-tab[data-tooltip]{position:relative}.mt-grid__btn[data-tooltip]:after,.mt-format-btn[data-tooltip]:after,.mt-tab[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);padding:5px 10px;background:#0f172a;color:#fff;font-size:11px;font-weight:500;white-space:nowrap;border-radius:6px;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:1000;box-shadow:0 4px 12px #00000026;font-family:var(--mtx-font),system-ui,sans-serif}.mt-grid__btn[data-tooltip]:before,.mt-format-btn[data-tooltip]:before,.mt-tab[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%) translateY(4px);border-width:4px;border-style:solid;border-color:#0f172a transparent transparent transparent;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:1000}.mt-grid__btn[data-tooltip]:hover:after,.mt-grid__btn[data-tooltip]:hover:before,.mt-format-btn[data-tooltip]:hover:after,.mt-format-btn[data-tooltip]:hover:before,.mt-tab[data-tooltip]:hover:after,.mt-tab[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.mt-icon-row{display:flex;align-items:center;justify-content:center;gap:3px;position:relative}.mt-icon-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;gap:2px}.mt-icon-stack--lg{transform:scale(1.15)}.mt-icon-stack--sm{transform:scale(.7)}.mt-icon-num{padding-bottom:2px;display:flex;justify-content:center;align-items:center}.mt-icon-den{padding-top:2px;display:flex;justify-content:center;align-items:center}.mt-icon-bar{width:100%;height:1.5px;background:linear-gradient(90deg,transparent 0%,currentColor 10%,currentColor 90%,transparent 100%);opacity:.7;border-radius:1px}.mt-icon-sqrt{font-size:18px;line-height:1;transform:scaleY(1.25) translateY(1px);font-weight:300}.mt-icon-sqrt-bar{border-top:1.5px solid currentColor;padding-top:2px;margin-left:-1px;opacity:.7}.mt-icon-idx{font-size:.65em;line-height:1;font-weight:500}.mt-icon-grid{display:flex;flex-direction:column;gap:2px;margin:0 2px}.mt-icon-grid-row{display:flex;gap:2px}.mt-brak{font-weight:300;transform:scaleY(1.35);color:#475569}.mt-brak--lg{transform:scaleY(1.65)}.mt-sym{font-family:Times New Roman,serif;font-style:italic;color:#334155}.mt-sym-lg{font-size:18px;font-weight:500;color:#0f172a}.mt-sym-xl{font-size:20px;line-height:.8;color:#0f172a}.mt-sym-sm{font-size:10px}.mt-sym-fn{font-family:Times New Roman,serif;font-size:12px;font-style:italic;color:#334155}.mt-txt-icon{font-family:var(--mtx-font),system-ui,sans-serif;font-size:10px;font-weight:700;color:#475569}.mt-over{position:absolute;top:-6px;left:50%;transform:translate(-50%);font-size:10px;width:100%;text-align:center;color:#64748b}.mt-under{position:absolute;bottom:-5px;left:50%;transform:translate(-50%);font-size:10px;color:#64748b}.mt-editor{flex:1;min-height:120px;background:#fff;border-top:1px solid #e2e8f0;position:relative}.mt-editor__field{min-height:120px;padding:12px;background:#fff}.mt-editor__field math-field{--caret-color: #2563eb;--selection-background-color: rgba(59, 130, 246, .2);--selection-color: #1e40af;--placeholder-color: rgba(59, 130, 246, .3);--placeholder-background-color: rgba(59, 130, 246, .05);cursor:text;font-size:18px;border:none;outline:none;width:100%}.mt-editor__field:focus-within{outline:none}.mt-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;background:#fff;z-index:10}.mt-loading__spinner{width:32px;height:32px;border:3px solid #f1f5f9;border-top-color:#2563eb;border-radius:50%;animation:mt-spin .8s linear infinite}@keyframes mt-spin{to{transform:rotate(360deg)}}.mt-loading__text{font-size:13px;color:#64748b;font-family:var(--mtx-font),system-ui,sans-serif}@media (min-width: 768px){.mt-editor__field math-field{--keyboard-zindex: -1 !important;--virtual-keyboard-toggle-display: none !important}}.mt-latex-bar{display:flex;flex-direction:column;gap:6px;padding:10px 16px;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:11px}.mt-latex-bar__row{display:flex;align-items:center;gap:8px;min-height:20px}.mt-latex-bar__label{font-weight:700;color:#64748b;font-family:var(--mtx-font),system-ui,sans-serif;flex-shrink:0}.mt-latex-bar__code{font-family:Consolas,Fira Code,monospace;font-size:11px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;background:#f1f5f9;padding:2px 6px;border-radius:4px}.mt-latex-bar__preview{padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:18px;text-align:center;overflow-x:auto;min-height:48px;display:flex;align-items:center;justify-content:center}.mt-latex-bar__error{padding:8px 12px;background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;color:#ef4444;font-size:11px;font-family:Consolas,Fira Code,monospace;white-space:pre-wrap;word-break:break-all}.mt-actions{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;gap:12px}.mt-actions__hint{font-size:11px;color:#64748b;font-family:var(--mtx-font),system-ui,sans-serif;display:flex;align-items:center;gap:8px}.mt-actions__hint kbd{display:inline-block;padding:2px 6px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;font-size:10px;font-family:inherit;box-shadow:0 1px #0000000d}.mt-display-mode-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#475569;cursor:pointer;font-size:11px;font-family:inherit;font-weight:500;transition:all .15s ease;white-space:nowrap}.mt-display-mode-toggle:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.mt-display-mode-toggle.is-block{background:#eff6ff;border-color:#3b82f6;color:#2563eb;font-weight:600}.mt-display-mode-toggle__label{line-height:1}.mt-actions__buttons{display:flex;gap:8px;flex-shrink:0}.mt-actions__cancel{padding:8px 18px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#475569;cursor:pointer;font-size:13px;font-family:var(--mtx-font),system-ui,sans-serif;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.mt-actions__cancel:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.mt-actions__insert{padding:8px 24px;border:1px solid #2563eb;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;cursor:pointer;font-size:13px;font-family:var(--mtx-font),system-ui,sans-serif;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 10px #2563eb26,inset 0 1px #fff3}.mt-actions__insert:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 14px #2563eb40,inset 0 1px #ffffff1a;transform:translateY(-1px)}.mt-actions__insert:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media (max-width: 700px){.mt-dialog{width:98vw;max-height:95vh;border-radius:12px}.mt-tab{min-width:38px;padding:2px 6px;font-size:12px}.mt-grid__btn{min-width:36px;height:34px;font-size:13px;padding:4px 6px}.mt-titlebar__title{font-size:12px}.mt-actions__hint{display:none}}.mt-color-picker{width:26px;height:26px;padding:0;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;overflow:hidden}.mt-txt-icon{font-size:10px;font-weight:700;font-family:sans-serif;color:#444}.mtx-image-edit-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;z-index:9999;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.mtx-image-edit-dialog__header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e2e8f0}.mtx-image-edit-dialog__header h3{margin:0;font-size:1.25rem;color:#1e293b}.mtx-image-edit-dialog__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#64748b;padding:4px;border-radius:4px;transition:all .15s ease}.mtx-image-edit-dialog__close:hover{background:#f1f5f9;color:#1e293b}.mtx-image-edit-dialog__body{padding:20px}.mtx-image-edit-dialog__section{margin-bottom:24px}.mtx-image-edit-dialog__section h4{margin:0 0 12px;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em}.mtx-image-edit-dialog__row{margin-bottom:12px}.mtx-image-edit-dialog__row label{display:block;margin-bottom:6px;font-size:.875rem;color:#334155;font-weight:500}.mtx-image-edit-dialog__row input[type=text],.mtx-image-edit-dialog__row textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;transition:border-color .15s ease,box-shadow .15s ease}.mtx-image-edit-dialog__row input[type=text]:focus,.mtx-image-edit-dialog__row textarea:focus{outline:none;border-color:var(--mtx-primary);box-shadow:0 0 0 3px #3b82f61a}.mtx-image-edit-dialog__checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.mtx-image-edit-dialog__checkbox-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.mtx-image-edit-dialog__checkbox-row label{margin:0;cursor:pointer;font-size:.875rem;color:#334155}.mtx-image-edit-dialog__size-presets{display:flex;gap:8px;margin-top:8px}.mtx-btn-sm{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .15s ease}.mtx-btn-sm:hover{background:#e2e8f0;border-color:#cbd5e1}.mtx-image-edit-dialog__alignment-options{display:flex;gap:8px;flex-wrap:wrap}.mtx-align-btn{flex:1;min-width:60px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.mtx-align-btn:hover{background:#f0f7ff;border-color:#3b82f6}.mtx-align-btn.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 4px 10px #3b82f614}.mtx-align-btn svg{width:24px;height:24px;color:#475569}.mtx-align-btn.is-active svg{color:var(--mtx-primary)}.mtx-align-btn span{font-size:.75rem;color:#64748b;font-weight:500}.mtx-image-edit-dialog__hint{margin-top:12px;padding:10px 12px;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px}.mtx-image-edit-dialog__hint p{margin:0;font-size:.8125rem;color:#92400e}.mtx-image-edit-dialog__footer{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid #e2e8f0;background:#f8fafc;border-radius:0 0 12px 12px}.mtx-image-edit-dialog__btn{padding:10px 20px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.mtx-image-edit-dialog__btn--reset{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.mtx-image-edit-dialog__btn--reset:hover{background:#e2e8f0}.mtx-image-edit-dialog__actions{display:flex;gap:8px}.mtx-image-edit-dialog__btn--cancel{background:#fff;color:#475569;border-color:#cbd5e1}.mtx-image-edit-dialog__btn--cancel:hover{background:#f8fafc}.mtx-image-edit-dialog__btn--apply{background:var(--mtx-primary);color:#fff;border-color:var(--mtx-primary)}.mtx-image-edit-dialog__btn--apply:hover{background:var(--mtx-primary-dark, #2563eb)}.mtx-dialog-overlay{position:fixed;inset:0;background:#00000080;z-index:9998;backdrop-filter:blur(2px)}.mtx-image-resize-overlay{position:absolute;inset:0;background-color:#3b82f61a;border:2px dashed var(--mtx-primary);pointer-events:none;z-index:9}.mtx-image-resize-handles{position:absolute;inset:0;pointer-events:none;display:none;z-index:10}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected .mtx-image-resize-handles,.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.mtx-image--selected .mtx-image-resize-handles{display:block;pointer-events:auto}.mtx-resize-handle{position:absolute;width:12px;height:12px;background:var(--mtx-primary, #3b82f6);border:2px solid white;border-radius:50%;cursor:pointer;pointer-events:auto;box-shadow:0 2px 4px #0000004d;transition:transform .15s ease,background .15s ease;z-index:11}.mtx-resize-handle:hover{transform:scale(1.4);background:#2563eb}.mtx-resize-handle--nw{top:-6px;left:-6px;cursor:nwse-resize}.mtx-resize-handle--ne{top:-6px;right:-6px;cursor:nesw-resize}.mtx-resize-handle--sw{bottom:-6px;left:-6px;cursor:nesw-resize}.mtx-resize-handle--se{bottom:-6px;right:-6px;cursor:nwse-resize}.mtx-resize-handle--n{top:-6px;left:50%;transform:translate(-50%);cursor:ns-resize}.mtx-resize-handle--e{top:50%;right:-6px;transform:translateY(-50%);cursor:ew-resize}.mtx-resize-handle--s{bottom:-6px;left:50%;transform:translate(-50%);cursor:ns-resize}.mtx-resize-handle--w{top:50%;left:-6px;transform:translateY(-50%);cursor:ew-resize}.mtx-context-menu-backdrop{position:fixed;inset:0;z-index:99998;background:transparent}.mtx-image-context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003,0 0 0 1px #0000000d;z-index:99999;min-width:220px;max-width:280px;padding:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:mtxContextMenuFadeIn .15s ease}@keyframes mtxContextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mtx-context-menu-section{padding:4px 0}.mtx-context-menu-label{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:8px 12px 4px}.mtx-context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;color:#334155;text-align:left;transition:background .15s ease,color .15s ease}.mtx-context-menu-item:hover{background:#f1f5f9;color:#1e293b}.mtx-context-menu-item svg{flex-shrink:0;width:16px;height:16px;color:#64748b}.mtx-context-menu-item:hover svg{color:#3b82f6}.mtx-context-menu-item--danger{color:#dc2626}.mtx-context-menu-item--danger:hover{background:#fef2f2;color:#dc2626}.mtx-context-menu-item--danger:hover svg{color:#dc2626}.mtx-context-menu-divider{height:1px;background:#e2e8f0;margin:8px 0}.mtx-import-overlay{position:absolute;inset:0;background:#ffffffd9;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.mtx-import-overlay__spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:mtx-spin .8s linear infinite}@keyframes mtx-spin{to{transform:rotate(360deg)}}.mtx-import-overlay__text{font-size:14px;color:#475569;font-weight:500;font-family:Segoe UI,system-ui,sans-serif}.mtx-import-error{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:110;display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:13px;font-family:Segoe UI,system-ui,sans-serif;box-shadow:0 4px 12px #0000001a;max-width:90%}.mtx-import-error__close{flex-shrink:0;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#991b1b;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s}.mtx-import-error__close:hover{background:#fecaca}.mtx-image-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(480px,90vw);max-height:85vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.mtx-image-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.mtx-image-dialog__header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.mtx-image-dialog__close{background:none;border:none;font-size:18px;cursor:pointer;color:#94a3b8;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.mtx-image-dialog__close:hover{background:#f1f5f9;color:#334155}.mtx-image-dialog__tabs{display:flex;border-bottom:1px solid #e2e8f0;padding:0 20px;gap:4px}.mtx-image-dialog__tab{background:none;border:none;padding:10px 16px;font-size:13px;font-weight:500;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;margin-bottom:-1px}.mtx-image-dialog__tab:hover{color:#334155}.mtx-image-dialog__tab.is-active{color:#3b82f6;border-bottom-color:#3b82f6}.mtx-image-dialog__body{padding:20px;overflow-y:auto;flex:1}.mtx-image-dialog__dropzone{border:2px dashed #cbd5e1;border-radius:10px;padding:32px;text-align:center;cursor:pointer;transition:all .2s;min-height:160px;display:flex;align-items:center;justify-content:center}.mtx-image-dialog__dropzone:hover{border-color:#3b82f6;background:#eff6ff}.mtx-image-dialog__dropzone.is-dragging{border-color:#3b82f6;background:#dbeafe;border-style:solid}.mtx-image-dialog__placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:#94a3b8}.mtx-image-dialog__placeholder svg{margin-bottom:4px;opacity:.5}.mtx-image-dialog__placeholder p{margin:0;font-size:14px;color:#475569}.mtx-image-dialog__placeholder span{font-size:12px;color:#94a3b8}.mtx-image-dialog__uploading{display:flex;flex-direction:column;align-items:center;gap:12px;color:#3b82f6}.mtx-image-dialog__uploading p{margin:0;font-size:14px}.mtx-image-dialog__preview img,.mtx-image-dialog__url-preview img{max-width:100%;max-height:200px;border-radius:8px;object-fit:contain}.mtx-image-dialog__url-form{display:flex;flex-direction:column;gap:8px}.mtx-image-dialog__url-form label,.mtx-image-dialog__alt label{font-size:13px;font-weight:500;color:#475569}.mtx-image-dialog__url-row{display:flex;gap:8px}.mtx-image-dialog__url-row input,.mtx-image-dialog__alt input{flex:1;padding:8px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s}.mtx-image-dialog__url-row input:focus,.mtx-image-dialog__alt input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.mtx-image-dialog__url-preview{margin-top:12px;text-align:center;padding:12px;background:#f8fafc;border-radius:8px}.mtx-image-dialog__alt{margin-top:16px;display:flex;flex-direction:column;gap:6px}.mtx-image-dialog__error{margin-top:12px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px}.mtx-image-dialog__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #e2e8f0}.mtx-image-dialog__btn{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;border:none}.mtx-image-dialog__btn--cancel{background:#f1f5f9;color:#475569}.mtx-image-dialog__btn--cancel:hover{background:#e2e8f0}.mtx-image-dialog__btn--insert{background:#3b82f6;color:#fff}.mtx-image-dialog__btn--insert:hover{background:#2563eb}.mtx-image-dialog__btn--insert:disabled{opacity:.5;cursor:not-allowed}
|
|
1
|
+
.mtx-graph-component{border:1px solid var(--mtx-border, #e2e8f0);border-radius:12px;padding:16px;background:#fff;display:inline-block;margin:16px 0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-width:100%}.mtx-graph-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.mtx-graph-input{width:100%;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;font-family:JetBrains Mono,Consolas,monospace;font-size:14px;transition:all .2s ease;background:#f8fafc}.mtx-graph-input:focus{border-color:#3b82f6;background:#fff;outline:none;box-shadow:0 0 0 3px #3b82f626}.mtx-graph-domains{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.mtx-graph-domain-group{display:flex;align-items:center;gap:8px;background:#f1f5f9;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0}.mtx-graph-domain-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.mtx-graph-domain-separator{font-size:12px;color:#94a3b8}.mtx-graph-domain-input{width:60px;padding:4px 8px;border:1px solid #cbd5e1;border-radius:4px;font-size:13px;text-align:center;transition:border-color .2s}.mtx-graph-domain-input:focus{border-color:#3b82f6;outline:none}.mtx-graph-render text{font-family:ui-sans-serif,system-ui,sans-serif;font-size:10px;fill:#64748b}.mtx-graph-render .domain{stroke:#cbd5e1}.mtx-graph-render{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}.mtx-matrix-grid-selector{display:flex;flex-direction:column;align-items:center;padding:10px;background:#f8f9fa;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;width:fit-content}.mtx-matrix-grid-label{font-size:12px;margin-bottom:5px;font-weight:600;color:#555;min-height:1.5em}.mtx-matrix-grid-squares{display:flex;flex-direction:column;gap:2px}.mtx-matrix-grid-row{display:flex;gap:2px}.mtx-matrix-grid-cell{width:12px;height:12px;background:#fff;border:1px solid #ccc;cursor:pointer}.mtx-matrix-grid-cell.is-active{background:#3b82f6;border-color:#2563eb}:root{--mtx-primary: #3b82f6;--mtx-primary-hover: #2563eb;--mtx-primary-dark: #1e40af;--mtx-primary-light: #eff6ff;--mtx-bg: #ffffff;--mtx-toolbar-bg: #fafbfc;--mtx-border: #d4d4d8;--mtx-hover: #f4f4f5;--mtx-text: #18181b;--mtx-text-secondary: #52525b;--mtx-text-muted: #a1a1aa;--mtx-success: #22c55e;--mtx-warning: #f59e0b;--mtx-danger: #ef4444;--mtx-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mtx-font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--mtx-min-height: 200px;--mtx-max-height: none;--mtx-radius: 6px;--mtx-radius-sm: 4px}.mtx-editor{position:relative;border:1px solid var(--mtx-border);border-radius:6px;background:var(--mtx-bg);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;overflow:hidden;font-family:var(--mtx-font);transition:box-shadow .15s ease,border-color .15s ease}.mtx-editor:focus-within{border-color:var(--mtx-primary);box-shadow:0 0 0 2px #3b82f626,0 1px 3px #0000000f}.mtx-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:1px;padding:4px 6px;background:var(--mtx-toolbar-bg);border-bottom:1px solid var(--mtx-border);user-select:none;min-height:40px}.mtx-toolbar-group{display:flex;align-items:center;gap:1px}.mtx-toolbar-mode-switch{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--mtx-border);border-radius:999px;background:#fff;gap:2px}.mtx-toolbar-mode-btn{border:none;background:transparent;color:var(--mtx-text-secondary);font-size:12px;font-weight:600;line-height:1;padding:7px 10px;border-radius:999px;cursor:pointer;transition:all .12s ease}.mtx-toolbar-mode-btn:hover{background:var(--mtx-hover);color:var(--mtx-text)}.mtx-toolbar-mode-btn.is-active{background:var(--mtx-primary-light);color:var(--mtx-primary)}.mtx-toolbar-divider{width:1px;height:20px;background:var(--mtx-border);margin:0 4px;flex-shrink:0}.mtx-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--mtx-text-secondary);cursor:pointer;transition:all .12s ease;position:relative}.mtx-toolbar-btn:hover{background:var(--mtx-hover);color:var(--mtx-text)}.mtx-toolbar-btn.is-active{background:var(--mtx-primary-light);color:var(--mtx-primary)}.mtx-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.mtx-toolbar-btn:disabled:hover{background:transparent}.mtx-toolbar-btn:active:not(:disabled){transform:scale(.96)}.mtx-toolbar-btn[data-tooltip]{position:relative}.mtx-toolbar-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);padding:6px 10px;background:#1e293b;color:#fff;font-size:12px;font-weight:500;white-space:nowrap;border-radius:6px;opacity:0;visibility:hidden;transition:all .15s ease;pointer-events:none;z-index:1000;box-shadow:0 4px 12px #00000026}.mtx-toolbar-btn[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%) translateY(4px);border-width:4px;border-style:solid;border-color:#1e293b transparent transparent transparent;opacity:0;visibility:hidden;transition:all .15s ease;pointer-events:none;z-index:1000}.mtx-toolbar-btn[data-tooltip]:hover:after,.mtx-toolbar-btn[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.mtx-toolbar-btn:focus-visible,.mtx-toolbar-mode-btn:focus-visible,.mtx-toolbar-select:focus-visible,.mtx-math-toolbar__action-btn:focus-visible,.mtx-symbol-palette__close:focus-visible,.mtx-symbol-palette__item:focus-visible,.mtx-template-card:focus-visible,.mtx-modal-close:focus-visible,.mtx-btn:focus-visible,.mtx-width-unit:focus-visible,.mtx-color-picker-input:focus-visible,.mtx-align-btn:focus-visible,.mtx-btn-sm:focus-visible,.mtx-image-dialog__tab:focus-visible,.mtx-image-dialog__close:focus-visible,.mtx-image-edit-dialog__btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.mtx-toolbar-btn--wide{width:34px}.mtx-toolbar-btn--accent{color:var(--mtx-primary)}.mtx-toolbar-btn--accent:hover{background:var(--mtx-primary-light);color:var(--mtx-primary)}.mtx-toolbar-btn--accent-secondary{color:#8b5cf6}.mtx-toolbar-btn--accent-secondary:hover{background:#f5f3ff;color:#7c3aed}.mtx-toolbar-btn svg{flex-shrink:0}.mtx-toolbar-select{height:30px;padding:0 8px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--mtx-text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:all .12s ease;outline:none}.mtx-toolbar-select:hover{background:var(--mtx-hover);color:var(--mtx-text)}.mtx-toolbar-select:focus{background:#fff;border-color:var(--mtx-primary);color:var(--mtx-text)}.mtx-font-select{min-width:130px}.mtx-font-size-select{min-width:70px}.mtx-color-btn{padding:4px}.mtx-color-picker{width:0;height:0;opacity:0;position:absolute;pointer-events:none}.mtx-highlight{background-color:#fef08a;padding:2px 4px;border-radius:2px;transition:background-color .15s ease}ul[data-type=taskList],.mtx-task-list{list-style:none;padding-left:0;margin:.6em 0}.mtx-task-item{display:flex;align-items:flex-start;gap:8px;margin:.3em 0}.mtx-task-item>label{display:inline-flex;align-items:center;padding-top:2px}.mtx-task-item>div{flex:1;min-width:0}.mtx-task-item input[type=checkbox]{width:14px;height:14px}.mtx-word-count{display:flex;gap:16px;padding:6px 12px;font-size:11px;color:#64748b;border-top:1px solid #e2e8f0;background:#f8fafc;font-family:var(--mtx-font)}.mtx-word-count span{font-weight:500}.mtx-modal-overlay{position:fixed;inset:0;background:#0f172a26;display:flex;align-items:center;justify-content:center;z-index:1000;animation:mtx-fade-in .15s ease}@keyframes mtx-fade-in{0%{opacity:0}to{opacity:1}}.mtx-modal-dialog{background:#fff;border-radius:14px;box-shadow:0 0 0 1px #0f172a0a,0 35px 60px -15px #00000040,0 18px 36px -18px #00000026;min-width:400px;max-width:90vw;max-height:90vh;overflow:hidden;animation:mtx-slide-up .3s cubic-bezier(.16,1,.3,1)}@keyframes mtx-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mtx-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.06);color:#fff;user-select:none}.mtx-modal-title{margin:0;font-size:15px;font-weight:600;color:#fff;font-family:Segoe UI,system-ui,sans-serif}.mtx-modal-close{width:26px;height:26px;border:1px solid rgba(255,255,255,.05);border-radius:50%;background:#ffffff0f;cursor:pointer;color:#cbd5e1;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.16,1,.3,1)}.mtx-modal-close:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:scale(1.05)}.mtx-modal-dialog:focus-visible,.mtx-image-dialog:focus-visible,.mtx-image-edit-dialog:focus-visible{outline:2px solid rgba(37,99,235,.6);outline-offset:2px}.mtx-modal-body{padding:20px;max-height:calc(90vh - 140px);overflow-y:auto}.mtx-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e2e8f0;background:#f8fafc}.mtx-form-group{margin-bottom:16px}.mtx-form-group:last-child{margin-bottom:0}.mtx-form-label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:#475569;font-family:Segoe UI,system-ui,sans-serif}.mtx-required{color:#ef4444}.mtx-form-hint{font-weight:400;color:#94a3b8;font-size:11px;margin-left:4px}.mtx-form-input{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;font-family:inherit;color:#1e293b;background:#fff;transition:all .2s cubic-bezier(.16,1,.3,1);outline:none}.mtx-form-input:hover{border-color:#94a3b8}.mtx-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.mtx-form-input::placeholder{color:#94a3b8}.mtx-input-error{border-color:#ef4444!important}.mtx-input-error:focus{box-shadow:0 0 0 3px #ef44441a!important}.mtx-form-error{margin-top:6px;font-size:12px;color:#ef4444;font-family:Segoe UI,system-ui,sans-serif}.mtx-form-checkbox{margin-top:8px}.mtx-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569;cursor:pointer;user-select:none}.mtx-checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.mtx-btn{padding:8px 18px;border:none;border-radius:10px;font-size:13px;font-weight:500;font-family:Segoe UI,system-ui,sans-serif;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);outline:none}.mtx-btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 10px #2563eb26,inset 0 1px #fff3}.mtx-btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 14px #2563eb40,inset 0 1px #ffffff1a;transform:translateY(-1px)}.mtx-btn-primary:active{transform:scale(.98) translateY(0);box-shadow:0 1px 4px #3b82f633}.mtx-btn-secondary{background:#fff;border:1px solid #cbd5e1;color:#475569}.mtx-btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a;transform:translateY(-1px)}.mtx-btn-secondary:active{transform:scale(.98) translateY(0)}.mtx-btn-danger{background:#fee2e2;color:#dc2626}.mtx-btn-danger:hover{background:#fecaca;color:#b91c1c}.mtx-btn-danger:active{transform:scale(.98)}.mtx-link-dialog{min-width:450px}.mtx-insert-table-dialog{min-width:400px}.mtx-table-templates-dialog{min-width:600px;max-width:800px}@media (max-width: 640px){.mtx-table-templates-dialog{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}}.mtx-templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;max-height:400px;overflow-y:auto;padding:8px}.mtx-template-dialog-hint{margin:0 0 12px;font-size:13px;color:#64748b}.mtx-table-template-card{appearance:none;width:100%;padding:0;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s ease;overflow:hidden;background:#fff;text-align:left}.mtx-table-template-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f633;transform:translateY(-2px)}.mtx-template-preview{padding:12px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.mtx-template-table{display:table;width:100%;border-collapse:collapse;font-size:8px}.mtx-template-row{display:table-row}.mtx-template-cell{display:table-cell;width:33%;height:20px;background:#fff;padding:4px}.mtx-template-header{background:#e2e8f0}.mtx-template-light .mtx-template-header{background:#f1f5f9}.mtx-template-dark .mtx-template-header{background:#1e293b;color:#fff}.mtx-template-blue .mtx-template-header{background:#3b82f6;color:#fff}.mtx-template-striped .mtx-template-row:nth-child(2n) .mtx-template-cell{background:#f8fafc}.mtx-template-minimal .mtx-template-cell{border:none;border-bottom:1px solid #cbd5e1}.mtx-template-info{padding:12px}.mtx-template-name{margin:0 0 4px;font-size:14px;font-weight:600;color:#1e293b}.mtx-template-description{margin:0;font-size:12px;color:#64748b}.mtx-number-input-wrapper{display:flex;align-items:center;gap:0}.mtx-number-btn{width:36px;height:38px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center}.mtx-number-btn:first-child{border-radius:8px 0 0 8px;border-right:none}.mtx-number-btn:last-child{border-radius:0 8px 8px 0;border-left:none}.mtx-number-btn:hover:not(:disabled){background:#eff6ff;color:#2563eb;border-color:#3b82f6}.mtx-number-btn:disabled{opacity:.4;cursor:not-allowed}.mtx-number-input{width:60px!important;text-align:center;border-radius:0!important;border-left:none!important;border-right:none!important;-moz-appearance:textfield}.mtx-number-input::-webkit-outer-spin-button,.mtx-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mtx-table-preview{margin-top:16px;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.mtx-table-preview-label{font-size:12px;font-weight:600;color:#64748b;margin-bottom:12px;text-align:center}.mtx-table-preview-grid{display:grid;gap:2px;max-width:200px;margin:0 auto}.mtx-preview-cell{aspect-ratio:1;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:2px}.mtx-preview-header{background:#475569;border-color:#334155}.mtx-cell-properties-dialog{min-width:400px}.mtx-width-input-wrapper{display:flex;gap:8px}.mtx-width-input{flex:1}.mtx-width-unit{width:70px;padding:10px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;outline:none}.mtx-width-unit:hover{border-color:#94a3b8}.mtx-width-unit:focus{border-color:#3b82f6}.mtx-color-input-wrapper{display:flex;gap:8px}.mtx-color-picker-input{width:50px;height:38px;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;background:#fff}.mtx-color-text-input{flex:1}.mtx-align-buttons{display:flex;gap:4px}.mtx-table-menu-overlay{position:fixed;inset:0;width:100vw;height:100vh;border:none;padding:0;z-index:1000;background:transparent;cursor:default}.mtx-table-menu-dropdown{position:fixed;z-index:1000;left:var(--mtx-dropdown-x, 0);top:var(--mtx-dropdown-y, 0)}.mtx-toolbar-btn--dropdown{width:20px;padding:0 2px}.mtx-toolbar-btn--dropdown svg{width:12px;height:12px}.mtx-table-menu{position:absolute;background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;min-width:220px;padding:8px 0;animation:mtx-slide-down .15s ease;overflow:hidden}@keyframes mtx-slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mtx-table-menu-group{padding:4px 0;border-bottom:1px solid #e2e8f0}.mtx-table-menu-label{padding:6px 16px 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.mtx-table-menu-group:last-child{border-bottom:none}.mtx-table-menu-item{width:100%;padding:10px 16px;border:none;background:transparent;display:flex;align-items:center;gap:12px;font-size:13px;color:#475569;cursor:pointer;transition:all .12s ease;text-align:left}.mtx-table-menu-item:hover{background:#f1f5f9;color:#1e293b}.mtx-table-menu-item.is-active{background:#eff6ff;color:#1d4ed8;font-weight:600}.mtx-table-menu-item--danger{color:#dc2626}.mtx-table-menu-item--danger:hover{background:#fee2e2;color:#b91c1c}.mtx-table-menu-icon{font-size:16px;width:20px;display:flex;align-items:center;justify-content:center}.mtx-table{border-collapse:collapse;width:100%;table-layout:fixed;margin:12px 0;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #dbe4ef}.mtx-table td,.mtx-table th{border:1px solid #cbd5e1;padding:8px 12px;min-width:50px;position:relative;vertical-align:top;transition:background-color .12s ease,box-shadow .12s ease}.mtx-table th{background:#f1f5f9;font-weight:600;text-align:left}.mtx-table td:first-child,.mtx-table th:first-child{border-left-width:1px}.mtx-table tr:first-child td,.mtx-table tr:first-child th{border-top-width:1px}.ProseMirror .selectedCell{background:#3b82f626!important;border-color:#3b82f6!important;border-style:dashed!important;box-shadow:inset 0 0 0 1px #3b82f64d!important}.mtx-table.mtx-table--plain tbody tr:nth-child(2n) td{background-image:linear-gradient(to bottom,#f8fafc59,#f8fafc59)}.mtx-table.mtx-table--plain{box-shadow:0 0 0 1px #dbe4ef}.mtx-table.mtx-table--light th{background:#f8fafc;color:#334155}.mtx-table.mtx-table--dark{box-shadow:0 0 0 1px #1e293b}.mtx-table.mtx-table--dark th{background:#1e293b;color:#f8fafc;border-color:#334155}.mtx-table.mtx-table--blue{box-shadow:0 0 0 1px #93c5fd}.mtx-table.mtx-table--blue th{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;border-color:#2563eb}.mtx-table.mtx-table--blue tbody tr:nth-child(2n) td,.mtx-table.mtx-table--striped tbody tr:nth-child(2n) td{background:#f8fbff}.mtx-table.mtx-table--minimal{box-shadow:none}.mtx-table.mtx-table--minimal td,.mtx-table.mtx-table--minimal th{border-left:none;border-right:none}.ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{position:relative}.ProseMirror table td,.ProseMirror table th{position:relative;cursor:text}.ProseMirror table td:not(:last-child):after,.ProseMirror table th:not(:last-child):after{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:#3b82f626;z-index:5;transition:background .15s ease;pointer-events:none;transform:translate(50%)}.ProseMirror table td:not(:last-child):hover:after,.ProseMirror table th:not(:last-child):hover:after{background:#3b82f659}.ProseMirror table:focus-within td:not(:last-child):after,.ProseMirror table:focus-within th:not(:last-child):after{background:#3b82f633}.ProseMirror table:focus-within td:not(:last-child):hover:after,.ProseMirror table:focus-within th:not(:last-child):hover:after{background:#3b82f673}.ProseMirror table .column-resize-handle{position:absolute;top:0;bottom:0;width:10px;background:transparent;cursor:col-resize;z-index:20;transition:background .12s ease;transform:translate(-50%)}.ProseMirror table .column-resize-handle:before{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:1px;background:#3b82f640;transform:translate(-50%);transition:all .12s ease;border-radius:1px;pointer-events:none}.ProseMirror table .column-resize-handle:hover{background:#3b82f614}.ProseMirror table .column-resize-handle:hover:before{background:#3b82f6;width:2px}.ProseMirror table .column-resize-handle.is-active{background:#3b82f61f}.ProseMirror table .column-resize-handle.is-active:before{background:#2563eb;width:2px}.ProseMirror .column-resize-dragging{position:absolute;top:0;bottom:0;left:0;width:2px;background:#2563eb;z-index:30;pointer-events:none;box-shadow:0 0 8px #2563eb66}.ProseMirror .tableWrapper[data-align=center]{margin-left:auto;margin-right:auto}.ProseMirror .tableWrapper[data-align=right]{margin-left:auto;margin-right:0}.ProseMirror .tableWrapper[data-align=left]{margin-left:0;margin-right:auto}@media (max-width: 640px){.mtx-modal-dialog{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}.mtx-link-dialog,.mtx-insert-table-dialog,.mtx-cell-properties-dialog{min-width:calc(100vw - 32px)}.mtx-modal-footer{flex-wrap:wrap}.mtx-btn{flex:1;min-width:100px}.mtx-table-menu{left:16px!important;right:16px!important;min-width:auto!important}}.mtx-math-toolbar{display:flex;align-items:center;gap:4px;padding:3px 8px;background:var(--mtx-toolbar-bg, #fafbfc);border-bottom:1px solid var(--mtx-border, #d4d4d8);user-select:none;min-height:36px}.mtx-math-toolbar__label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:0 8px;height:24px;background:#f1f5f9;border:1px solid var(--mtx-border, #d4d4d8);border-radius:4px;margin-right:4px;font-family:var(--mtx-font)}.mtx-math-toolbar__search-wrap{display:inline-flex;align-items:center;flex-shrink:0}.mtx-math-toolbar__search{width:140px;height:26px;padding:0 10px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;font-size:12px;outline:none}.mtx-math-toolbar__search::placeholder{color:#94a3b8}.mtx-math-toolbar__search:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa2e}.mtx-math-toolbar__buttons{display:flex;align-items:center;gap:1px;flex-wrap:nowrap;overflow-x:auto;flex:1;min-width:0;padding-bottom:2px}.mtx-math-toolbar__section{display:inline-flex;align-items:center;gap:2px;padding-right:6px;margin-right:6px;border-right:1px solid #d6d6d6;flex-shrink:0}.mtx-math-toolbar__section-toggle{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:1px solid var(--mtx-border, #d4d4d8);border-radius:4px;background:#fff;color:#475569;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;flex-shrink:0;font-family:var(--mtx-font)}.mtx-math-toolbar__section-toggle:hover{background:#f8fafc;border-color:#94a3b8;color:#1e293b}.mtx-math-toolbar__section-toggle.is-active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.mtx-math-toolbar__section-toggle svg{transition:transform .15s ease}.mtx-math-toolbar__section-toggle.is-active svg{transform:rotate(180deg)}.mtx-math-toolbar__section:last-child{margin-right:0;padding-right:0;border-right:none}.mtx-math-toolbar__section-label{display:inline-flex;align-items:center;height:22px;padding:0 6px;margin-right:3px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.mtx-math-toolbar__section-divider{width:1px;height:20px;margin:0 3px;background:#cbd5e1;flex-shrink:0}.mtx-math-toolbar__empty{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;color:#64748b;font-size:12px;font-style:italic}.mtx-math-toolbar__buttons::-webkit-scrollbar{height:3px;background:transparent}.mtx-math-toolbar__buttons::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.mtx-math-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 4px;border:1px solid transparent;border-radius:4px;background:transparent;color:#334155;cursor:pointer;font-size:13px;font-weight:400;font-family:"Cambria Math",Times New Roman,serif;transition:all .1s ease}.mtx-math-btn:hover{background:#e8e8e8;border-color:#aaa;color:#000;box-shadow:0 1px 1px #0000001a}.mtx-math-btn:active{background:#d0d0d0;border-color:#888;box-shadow:inset 0 1px 1px #0000001a;transform:scale(.96)}.mtx-math-btn__label{line-height:1}.mtx-math-btn[data-tooltip],.mtx-math-toolbar__action-btn[data-tooltip]{position:relative}.mtx-math-btn[data-tooltip]:after,.mtx-math-toolbar__action-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);padding:5px 8px;background:#1e293b;color:#fff;font-size:11px;font-weight:500;white-space:nowrap;border-radius:5px;opacity:0;visibility:hidden;transition:all .12s ease;pointer-events:none;z-index:1000;box-shadow:0 3px 10px #00000026;font-family:Segoe UI,system-ui,sans-serif}.mtx-math-btn[data-tooltip]:before,.mtx-math-toolbar__action-btn[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%) translateY(4px);border-width:4px;border-style:solid;border-color:#1e293b transparent transparent transparent;opacity:0;visibility:hidden;transition:all .12s ease;pointer-events:none;z-index:1000}.mtx-math-btn[data-tooltip]:hover:after,.mtx-math-btn[data-tooltip]:hover:before,.mtx-math-toolbar__action-btn[data-tooltip]:hover:after,.mtx-math-toolbar__action-btn[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.mtx-math-toolbar__actions{display:flex;align-items:center;gap:4px;margin-left:auto;padding-left:6px;border-left:1px solid #ccc;flex-shrink:0}.mtx-math-toolbar__action-btn{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid var(--mtx-border, #d4d4d8);border-radius:4px;background:#fff;color:#475569;cursor:pointer;font-size:11px;font-weight:600;font-family:var(--mtx-font);transition:all .1s ease}.mtx-math-toolbar__action-btn:hover{background:var(--mtx-hover, #f4f4f5);border-color:#94a3b8;color:#1e293b}.mtx-symbol-palette{z-index:100;width:360px;max-height:420px;background:#fff;border:1px solid var(--mtx-border);border-radius:8px;box-shadow:0 10px 40px #0000001f,0 2px 10px #00000014;overflow:hidden;animation:mtx-fadeIn .15s ease}@keyframes mtx-fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mtx-symbol-palette__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--mtx-border);background:#f9fafb}.mtx-symbol-palette__title{font-size:13px;font-weight:600;color:var(--mtx-text)}.mtx-symbol-palette__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--mtx-text-secondary);cursor:pointer;font-size:16px;line-height:1}.mtx-symbol-palette__close:hover{background:#fee2e2;color:#ef4444}.mtx-symbol-palette__search{display:block;width:100%;padding:8px 12px;border:none;border-bottom:1px solid var(--mtx-border);font-size:13px;font-family:var(--mtx-font);background:#fff;outline:none}.mtx-symbol-palette__search:focus{background:#eff6ff}.mtx-symbol-palette__search::placeholder{color:#94a3b8}.mtx-symbol-palette__body{overflow-y:auto;max-height:330px;padding:8px}.mtx-symbol-palette__category{margin-bottom:8px}.mtx-symbol-palette__category-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mtx-text-secondary);padding:4px 4px 6px}.mtx-symbol-palette__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:2px}.mtx-symbol-palette__item{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--mtx-text);cursor:pointer;font-size:16px;font-family:"Cambria Math",serif;transition:all .1s ease}.mtx-symbol-palette__item:hover{background:var(--mtx-primary-light);border-color:var(--mtx-primary);color:var(--mtx-primary);transform:scale(1.1)}.mtx-content{position:relative}.mtx-content .tiptap{padding:16px 20px;min-height:var(--mtx-min-height, 200px);outline:none;font-size:15px;line-height:1.7;color:var(--mtx-text);caret-color:#2563eb;white-space:pre-wrap}.mtx-content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:#94a3b8;font-style:italic;pointer-events:none;float:left;height:0}.mtx-content .tiptap h1{font-size:1.8em;font-weight:700;margin:.6em 0 .4em;color:#0f172a;line-height:1.3;letter-spacing:-.02em}.mtx-content .tiptap h2{font-size:1.4em;font-weight:600;margin:.5em 0 .3em;color:#1e293b;line-height:1.35}.mtx-content .tiptap h3{font-size:1.15em;font-weight:600;margin:.5em 0 .3em;color:#334155;line-height:1.4}.mtx-content .tiptap ul,.mtx-content .tiptap ol{padding-left:24px;margin:.5em 0}.mtx-content .tiptap li{margin:.15em 0}.mtx-content .tiptap li p{margin:0}.mtx-content .tiptap a{color:var(--mtx-primary);text-decoration:underline;text-decoration-color:#3b82f64d;text-underline-offset:2px;cursor:pointer;transition:text-decoration-color .15s}.mtx-content .tiptap a:hover{text-decoration-color:var(--mtx-primary)}.mtx-content .tiptap blockquote{border-left:3px solid var(--mtx-primary);padding:8px 16px;margin:.8em 0;background:#eff6ff;border-radius:0 6px 6px 0;color:#1e40af;font-style:italic}.mtx-content .tiptap p[data-indent],.mtx-content .tiptap h1[data-indent],.mtx-content .tiptap h2[data-indent],.mtx-content .tiptap h3[data-indent],.mtx-content .tiptap h4[data-indent],.mtx-content .tiptap p.tt-indent,.mtx-content .tiptap h1.tt-indent,.mtx-content .tiptap h2.tt-indent,.mtx-content .tiptap h3.tt-indent,.mtx-content .tiptap h4.tt-indent,.mtx-content .tiptap li[data-indent]{position:relative}.mtx-math-btn--recent{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.mtx-math-btn--recent:hover{background:#dbeafe;border-color:#93c5fd}.mtx-content .tiptap p[data-indent="1"],.mtx-content .tiptap h1[data-indent="1"],.mtx-content .tiptap h2[data-indent="1"],.mtx-content .tiptap h3[data-indent="1"],.mtx-content .tiptap h4[data-indent="1"],.mtx-content .tiptap p.tt-indent-1,.mtx-content .tiptap h1.tt-indent-1,.mtx-content .tiptap h2.tt-indent-1,.mtx-content .tiptap h3.tt-indent-1,.mtx-content .tiptap h4.tt-indent-1,.mtx-content .tiptap li.tt-indent-1{margin-left:2em}.mtx-content .tiptap p[data-indent="2"],.mtx-content .tiptap h1[data-indent="2"],.mtx-content .tiptap h2[data-indent="2"],.mtx-content .tiptap h3[data-indent="2"],.mtx-content .tiptap h4[data-indent="2"],.mtx-content .tiptap p.tt-indent-2,.mtx-content .tiptap h1.tt-indent-2,.mtx-content .tiptap h2.tt-indent-2,.mtx-content .tiptap h3.tt-indent-2,.mtx-content .tiptap h4.tt-indent-2,.mtx-content .tiptap li.tt-indent-2{margin-left:4em}.mtx-content .tiptap p[data-indent="3"],.mtx-content .tiptap h1[data-indent="3"],.mtx-content .tiptap h2[data-indent="3"],.mtx-content .tiptap h3[data-indent="3"],.mtx-content .tiptap h4[data-indent="3"],.mtx-content .tiptap p.tt-indent-3,.mtx-content .tiptap h1.tt-indent-3,.mtx-content .tiptap h2.tt-indent-3,.mtx-content .tiptap h3.tt-indent-3,.mtx-content .tiptap h4.tt-indent-3,.mtx-content .tiptap li.tt-indent-3{margin-left:6em}.mtx-content .tiptap p[data-indent="4"],.mtx-content .tiptap h1[data-indent="4"],.mtx-content .tiptap h2[data-indent="4"],.mtx-content .tiptap h3[data-indent="4"],.mtx-content .tiptap h4[data-indent="4"],.mtx-content .tiptap p.tt-indent-4,.mtx-content .tiptap h1.tt-indent-4,.mtx-content .tiptap h2.tt-indent-4,.mtx-content .tiptap h3.tt-indent-4,.mtx-content .tiptap h4.tt-indent-4,.mtx-content .tiptap li.tt-indent-4{margin-left:8em}.mtx-content .tiptap p[data-indent="5"],.mtx-content .tiptap h1[data-indent="5"],.mtx-content .tiptap h2[data-indent="5"],.mtx-content .tiptap h3[data-indent="5"],.mtx-content .tiptap h4[data-indent="5"],.mtx-content .tiptap p.tt-indent-5,.mtx-content .tiptap h1.tt-indent-5,.mtx-content .tiptap h2.tt-indent-5,.mtx-content .tiptap h3.tt-indent-5,.mtx-content .tiptap h4.tt-indent-5,.mtx-content .tiptap li.tt-indent-5{margin-left:10em}.mtx-content .tiptap p[data-indent="6"],.mtx-content .tiptap h1[data-indent="6"],.mtx-content .tiptap h2[data-indent="6"],.mtx-content .tiptap h3[data-indent="6"],.mtx-content .tiptap h4[data-indent="6"],.mtx-content .tiptap p.tt-indent-6,.mtx-content .tiptap h1.tt-indent-6,.mtx-content .tiptap h2.tt-indent-6,.mtx-content .tiptap h3.tt-indent-6,.mtx-content .tiptap h4.tt-indent-6,.mtx-content .tiptap li.tt-indent-6{margin-left:12em}.mtx-content .tiptap p[data-indent="7"],.mtx-content .tiptap h1[data-indent="7"],.mtx-content .tiptap h2[data-indent="7"],.mtx-content .tiptap h3[data-indent="7"],.mtx-content .tiptap h4[data-indent="7"],.mtx-content .tiptap p.tt-indent-7,.mtx-content .tiptap h1.tt-indent-7,.mtx-content .tiptap h2.tt-indent-7,.mtx-content .tiptap h3.tt-indent-7,.mtx-content .tiptap h4.tt-indent-7,.mtx-content .tiptap li.tt-indent-7{margin-left:14em}.mtx-content .tiptap p[data-indent],.mtx-content .tiptap p.tt-indent{margin-left:0;text-indent:0}.mtx-content .tiptap p[data-indent="1"],.mtx-content .tiptap p.tt-indent-1{margin-left:0;text-indent:2em}.mtx-content .tiptap p[data-indent="2"],.mtx-content .tiptap p.tt-indent-2{margin-left:0;text-indent:4em}.mtx-content .tiptap p[data-indent="3"],.mtx-content .tiptap p.tt-indent-3{margin-left:0;text-indent:6em}.mtx-content .tiptap p[data-indent="4"],.mtx-content .tiptap p.tt-indent-4{margin-left:0;text-indent:8em}.mtx-content .tiptap p[data-indent="5"],.mtx-content .tiptap p.tt-indent-5{margin-left:0;text-indent:10em}.mtx-content .tiptap p[data-indent="6"],.mtx-content .tiptap p.tt-indent-6{margin-left:0;text-indent:12em}.mtx-content .tiptap p[data-indent="7"],.mtx-content .tiptap p.tt-indent-7{margin-left:0;text-indent:14em}.mtx-content .tiptap code{background:#f1f5f9;color:#e11d48;padding:1px 5px;border-radius:3px;font-size:.9em;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace}.mtx-content .tiptap pre{background:#1e293b;color:#e2e8f0;padding:16px;border-radius:6px;overflow-x:auto;margin:.8em 0;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:.85em;line-height:1.6}.mtx-content .tiptap pre code{background:none;color:inherit;padding:0;border-radius:0;font-size:inherit}.mtx-content .tiptap pre .hljs-keyword{color:#c678dd}.mtx-content .tiptap pre .hljs-string{color:#98c379}.mtx-content .tiptap pre .hljs-number{color:#d19a66}.mtx-content .tiptap pre .hljs-comment{color:#5c6370;font-style:italic}.mtx-content .tiptap pre .hljs-function{color:#61afef}.mtx-content .tiptap pre .hljs-variable{color:#e06c75}.mtx-content .tiptap pre .hljs-operator{color:#56b6c2}.mtx-content .tiptap pre .hljs-class{color:#e5c07b}.mtx-content .tiptap pre .hljs-title{color:#61afef}.mtx-content .tiptap pre .hljs-params{color:#e06c75}.mtx-content .tiptap pre .hljs-built_in{color:#56b6c2}.mtx-content .tiptap pre .hljs-type{color:#e5c07b}.mtx-content .tiptap pre .hljs-literal{color:#d19a66}.mtx-content .tiptap pre .hljs-tag{color:#e06c75}.mtx-content .tiptap pre .hljs-attr{color:#d19a66}.mtx-content .tiptap pre .hljs-attribute{color:#98c379}.mtx-content .tiptap pre .hljs-symbol,.mtx-content .tiptap pre .hljs-bullet{color:#d19a66}.mtx-content .tiptap pre .hljs-link{color:#61afef}.mtx-content .tiptap pre .hljs-emphasis{font-style:italic}.mtx-content .tiptap pre .hljs-strong{font-weight:700}.mtx-content .tiptap pre .hljs-quote{color:#5c6370}.mtx-details{border:1px solid #e2e8f0;border-radius:8px;margin:1em 0;overflow:hidden;background:#f8fafc}.mtx-details-summary{padding:.75em 1em;background:#f1f5f9;cursor:pointer;font-weight:600;color:#334155;user-select:none;list-style:none;position:relative}.mtx-details-summary::-webkit-details-marker{display:none}.mtx-details-summary:before{content:"▶";display:inline-block;margin-right:.5em;transition:transform .2s ease;font-size:.8em}.mtx-details[open]>.mtx-details-summary:before{transform:rotate(90deg)}.mtx-details-summary:hover{background:#e2e8f0}.mtx-details-content{padding:1em;border-top:1px solid #e2e8f0;background:#fff}.mtx-details-content>*:first-child{margin-top:0}.mtx-details-content>*:last-child{margin-bottom:0}.mtx-content .tiptap table{border-collapse:collapse;width:100%;margin:.8em 0;border-radius:6px;overflow:hidden}.mtx-content .tiptap table td,.mtx-content .tiptap table th{border:1px solid #e2e8f0;padding:8px 12px;text-align:left;min-width:80px;vertical-align:top}.mtx-content .tiptap table th{background:#f1f5f9;font-weight:600;color:#334155;font-size:.9em;text-transform:uppercase;letter-spacing:.03em}.mtx-content .tiptap table tr:hover td{background:#f8fafc}.mtx-content .tiptap hr{border:none;border-top:2px solid #e2e8f0;margin:1.5em 0}.mtx-content .tiptap figure.mtx-image-figure{margin:.5em 0;text-align:center;position:relative;display:inline-block;width:fit-content;max-width:100%}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper{position:relative;display:inline-block;line-height:0;user-select:none;backface-visibility:hidden}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.is-dragging{z-index:20}.mtx-content .tiptap figure.mtx-image-figure{transition:margin .18s ease,transform .18s ease}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--dragging,.mtx-content .tiptap figure.mtx-image-figure.mtx-image--dragging .mtx-image-wrapper{transition:none}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--snap-animating,.mtx-content .tiptap figure.mtx-image-figure.mtx-image--snap-animating .mtx-image-wrapper{transition:margin .18s ease,transform .18s ease}.mtx-content .tiptap figure.mtx-image-figure img{max-width:100%;height:auto;border-radius:6px;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:box-shadow .2s ease}.mtx-content .tiptap figure.mtx-image-figure:hover img{box-shadow:0 4px 8px #00000026}.mtx-content .tiptap figure.mtx-image-figure figcaption{text-align:center;font-size:.875rem;color:#64748b;margin-top:.5em;padding:.25em .5em;background:#f1f5f9;border-radius:4px}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--left{float:left;margin-right:1.5em;margin-bottom:1em;clear:none}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--right{float:right;margin-left:1.5em;margin-bottom:1em;clear:none}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--center{display:block;margin-left:auto;margin-right:auto;clear:both}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--full{display:block;width:100%!important;margin:1em 0;clear:both}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--full img{width:100%}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--dragging{opacity:.92}.mtx-content .tiptap figure.mtx-image-figure.mtx-image-snap-preview--left{box-shadow:-6px 0 #2563eb59}.mtx-content .tiptap figure.mtx-image-figure.mtx-image-snap-preview--center{box-shadow:0 0 0 2px #2563eb47}.mtx-content .tiptap figure.mtx-image-figure.mtx-image-snap-preview--right{box-shadow:6px 0 #2563eb59}.mtx-image-drag-guide{position:absolute;top:0;left:0;width:0;height:100%;border-left:2px dashed rgba(37,99,235,.5);pointer-events:none;z-index:100}.mtx-image-drag-zone{position:absolute;top:0;left:0;width:100%;height:100%;background:#2563eb0f;pointer-events:none;z-index:99}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper:after{content:"⤡";position:absolute;bottom:8px;right:8px;width:28px;height:28px;background:#2563ebd9;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:5;box-shadow:0 2px 6px #00000026}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected .mtx-image-wrapper:hover:after,.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.is-dragging:after{opacity:1}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper:hover{outline:1.5px solid rgba(37,99,235,.25);outline-offset:2px;border-radius:2px}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected .mtx-image-wrapper:hover{outline-color:#2563eb80}.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper:hover img{box-shadow:0 4px 12px #0000002e}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected,.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.mtx-image--selected{outline:2px solid var(--mtx-primary);outline-offset:2px}.mtx-image-node-view{display:inline-block;max-width:100%;position:relative}.mtx-content .tiptap:after{content:"";display:table;clear:both}.mtx-math-inline,.mtx-math-block{display:inline-block;position:relative}.mtx-math-inline math-field,.mtx-math-block math-field{border:1px solid transparent;border-radius:4px;outline:none;transition:all .15s ease;font-size:1.05em;background:transparent;--selection-background-color: rgba(59, 130, 246, .2)}.mtx-math-inline math-field:focus,.mtx-math-block math-field:focus{border-color:var(--mtx-primary);background:#eff6ff;box-shadow:0 0 0 2px #3b82f61a}.mtx-math-block{display:block;text-align:center;margin:12px 0;padding:12px;background:#f8fafc;border-radius:6px;border:1px dashed #cbd5e1}.mtx-math-block math-field{font-size:1.2em}.mtx-math-inline.is-empty math-field{min-width:50px;min-height:26px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:4px}.mtx-math-inline.is-empty math-field:focus{border-color:var(--mtx-primary);background:#eff6ff;border-style:solid;box-shadow:0 0 0 2px #3b82f61a}.mtx-math-edit-btn{position:absolute;background:#2563eb;color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;z-index:10;display:flex;align-items:center;gap:4px;box-shadow:0 2px 4px #0003;transition:all .15s ease}.mtx-math-edit-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 6px #00000040}.mtx-math-inline .mtx-math-edit-btn{right:-28px;top:50%;transform:translateY(-50%)}.mtx-math-block .mtx-math-edit-btn{right:8px;top:8px}.ProseMirror-selectednode .mtx-math-inline,.ProseMirror-selectednode .mtx-math-block{outline:2px solid var(--mtx-primary);outline-offset:2px;border-radius:4px}.mtx-content::-webkit-scrollbar{width:6px}.mtx-content::-webkit-scrollbar-track{background:transparent}.mtx-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.mtx-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 640px){.mtx-toolbar-mode-switch{order:-1;margin-bottom:4px}.mtx-toolbar{gap:0;padding:3px 4px}.mtx-toolbar-btn{width:28px;height:28px}.mtx-toolbar-divider{margin:0 2px}.mtx-math-toolbar__buttons{gap:1px;flex-wrap:wrap;justify-content:center}.mtx-math-toolbar__section{padding-right:4px;margin-right:4px}.mtx-math-toolbar__section-toggle{padding:0 6px}.mtx-math-toolbar{padding:4px;min-width:unset;width:calc(100% - 20px);flex-wrap:wrap}.mtx-math-toolbar__search-wrap{order:3;width:100%}.mtx-math-toolbar__search{width:100%}.mtx-math-btn{min-width:26px;height:26px;font-size:11px}.mtx-symbol-palette{width:300px}.mtx-template-panel{width:340px}}@media (min-width: 768px){math-field::part(virtual-keyboard-toggle){display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important;position:absolute!important;z-index:-1!important;opacity:0!important}}math-field::part(menu-toggle){display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important;position:absolute!important;z-index:-1!important;opacity:0!important}.mtx-template-panel{z-index:100;width:540px;max-width:96vw;max-height:540px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000000d,0 0 1px 1px #0f172a0d;overflow:hidden;animation:mtx-fadeIn .2s cubic-bezier(.16,1,.3,1)}.mtx-template-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;background:#fff}.mtx-template-panel__title{font-size:14px;font-weight:600;color:#0f172a;font-family:var(--mtx-font),system-ui,sans-serif}.mtx-template-panel__close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;font-size:18px;line-height:1;transition:all .15s ease}.mtx-template-panel__close:hover{background:#fee2e2;color:#ef4444}.mtx-template-panel__search{display:block;width:100%;padding:10px 16px;border:none;border-bottom:1px solid #e2e8f0;font-size:13px;font-family:var(--mtx-font),system-ui,sans-serif;background:#fff;outline:none;transition:background-color .15s ease}.mtx-template-panel__search:focus{background:#f8fafc}.mtx-template-panel__search::placeholder{color:#94a3b8}.mtx-template-panel__body{display:flex;flex-direction:row;height:340px}@media (max-width: 640px){.mtx-template-panel__body{flex-direction:column;height:420px}}.mtx-template-panel__tabs{width:170px;min-width:170px;overflow-y:auto;border-right:1px solid #e2e8f0;background:#f8fafc;padding:6px}@media (max-width: 640px){.mtx-template-panel__tabs{width:100%;min-width:unset;height:auto;display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid #e2e8f0;white-space:nowrap;padding:8px;gap:6px}}.mtx-template-panel__tab{display:flex;align-items:center;gap:6px;width:100%;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:#475569;cursor:pointer;font-size:12px;font-weight:500;font-family:var(--mtx-font),system-ui,sans-serif;text-align:left;transition:all .15s ease;margin-bottom:2px}@media (max-width: 640px){.mtx-template-panel__tab{width:auto;flex:0 0 auto;padding:6px 12px;margin-bottom:0}}.mtx-template-panel__tab:hover{background:#f1f5f9;color:#0f172a}.mtx-template-panel__tab.is-active{background:#eff6ff;color:#2563eb;font-weight:600}.mtx-template-panel__tab-icon{font-size:14px;flex-shrink:0}.mtx-template-panel__tab-label{line-height:1.2}.mtx-template-panel__content{flex:1;overflow-y:auto;padding:16px;background:#fff}.mtx-template-panel__empty{padding:24px;text-align:center;color:#94a3b8;font-size:13px}.mtx-template-panel__group{margin-bottom:12px}.mtx-template-panel__group-title{font-size:11px;font-weight:600;color:#64748b;padding:4px 4px 10px;text-transform:uppercase;letter-spacing:.05em}.mtx-template-panel__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.mtx-template-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;text-align:left;transition:all .2s cubic-bezier(.16,1,.3,1);font-family:var(--mtx-font),system-ui,sans-serif;min-height:56px;overflow:hidden}.mtx-template-card:hover{border-color:#3b82f6;background:#f0f7ff;box-shadow:0 4px 12px #3b82f614;transform:translateY(-1px)}.mtx-template-card__preview{font-size:14px;font-weight:500;color:#0f172a;font-family:"Cambria Math","Latin Modern Math",serif;line-height:1.5;word-break:break-all;padding-bottom:2px;display:block}.mtx-template-card__label{font-size:10px;color:#64748b;line-height:1.2}.mtx-template-panel__levels{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;overflow-x:auto;white-space:nowrap}.mtx-template-panel__level{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid transparent;border-radius:20px;background:transparent;color:#475569;cursor:pointer;font-size:12px;font-weight:500;font-family:var(--mtx-font),system-ui,sans-serif;transition:all .15s ease}.mtx-template-panel__level:hover{background:#fff;border-color:#e2e8f0;color:#0f172a}.mtx-template-panel__level.is-active{background:#2563eb;color:#fff;border-color:#2563eb;font-weight:600}.mtx-template-panel__tab-badge{font-size:9px;padding:1px 5px;border-radius:4px;background:#e2e8f0;color:#475569;font-weight:600;margin-left:auto}.mtx-template-panel__tab.is-active .mtx-template-panel__tab-badge{background:#2563eb26;color:#2563eb}.mtx-template-panel__group-level{font-size:9px;padding:1px 5px;border-radius:4px;background:#eff6ff;color:#2563eb;font-weight:600;margin-left:6px}.mt-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0f172a1a;animation:mt-fadeIn .2s ease}@keyframes mt-fadeIn{0%{opacity:0}to{opacity:1}}.mt-dialog{width:720px;max-width:96vw;max-height:92vh;background:#fff;border-radius:14px;box-shadow:0 0 0 1px #0f172a0a,0 35px 60px -15px #00000040,0 18px 36px -18px #00000026;overflow:hidden;display:flex;flex-direction:column;animation:mt-slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes mt-slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.mt-titlebar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.06);color:#fff;user-select:none;flex-shrink:0}.mt-titlebar__left{display:flex;align-items:center;gap:8px}.mt-titlebar__title{font-size:13px;font-weight:600;font-family:var(--mtx-font),system-ui,sans-serif;letter-spacing:.02em}.mt-titlebar__close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid rgba(255,255,255,.05);border-radius:50%;background:#ffffff0f;color:#cbd5e1;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.mt-titlebar__close:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:scale(1.05)}.mt-format-bar{display:flex;align-items:center;padding:10px 18px;background:#fff;border-bottom:1px solid #f1f5f9;gap:8px}.mt-font-select{height:28px;border:1px solid #cbd5e1;border-radius:6px;padding:0 8px;font-size:12px;font-family:var(--mtx-font),system-ui,sans-serif;width:150px;background:#fff;cursor:pointer;outline:none;transition:all .15s ease}.mt-font-select:hover{border-color:#94a3b8}.mt-format-group{display:flex;align-items:center;gap:2px;margin-right:6px;padding-right:6px;border-right:1px solid #e2e8f0}.mt-format-group:last-child{border-right:none;margin-right:0;padding-right:0}.mt-format-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-family:serif;font-size:14px;color:#475569;transition:all .15s ease}.mt-format-btn:hover{background:#cbd5e1;color:#0f172a}.mt-format-btn b{font-weight:700}.mt-format-btn i{font-style:italic}.mt-format-btn u{text-decoration:underline}.mt-tab-bar{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;flex-wrap:wrap}.mt-tab{display:inline-flex;align-items:center;justify-content:center;padding:5px 12px;min-width:44px;height:30px;border:1px solid transparent;border-radius:8px;background:transparent;color:#475569;cursor:pointer;font-size:13.5px;font-family:"Cambria Math","Latin Modern Math",Times New Roman,serif;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.mt-tab:hover{background:#0f172a0a;color:#0f172a}.mt-tab.is-active{background:#fff;color:#0284c7;border-color:#e2e8f0;box-shadow:0 2px 5px #0000000a,0 1px 1px #00000005;font-weight:600}.mt-tab__icon{font-size:14px;line-height:1}.mt-grid{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:12px 16px}.mt-grid__row{display:flex;align-items:center;justify-content:flex-start;gap:6px;padding:3px 0;flex-wrap:wrap;width:100%}.mt-grid__btn{display:inline-flex;align-items:center;justify-content:center;flex:1;min-width:52px;max-width:90px;height:42px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155;cursor:pointer;font-size:15px;font-family:"Cambria Math","Latin Modern Math",Times New Roman,serif;line-height:1;transition:all .2s cubic-bezier(.16,1,.3,1);user-select:none;white-space:nowrap;box-shadow:0 1px 2px #00000005;position:relative}.mt-grid__btn:hover{background:#f0f7ff;border-color:#3b82f6;box-shadow:0 4px 10px #3b82f614;transform:translateY(-1px);color:#2563eb}.mt-grid__btn:active{background:#eff6ff;border-color:#2563eb;transform:translateY(0)}.mt-grid__btn--formula{min-width:76px;max-width:130px}.mt-ph{display:inline-block;width:11px;height:11px;border:1.5px solid #3b82f6;background:#3b82f614;border-radius:2px;margin:0 1px;transition:all .15s ease}.mt-ph--sm{width:8px;height:8px}.mt-grid__btn:hover .mt-ph{border-color:#2563eb;background:#3b82f626}.mt-grid__btn[data-tooltip],.mt-format-btn[data-tooltip],.mt-tab[data-tooltip]{position:relative}.mt-grid__btn[data-tooltip]:after,.mt-format-btn[data-tooltip]:after,.mt-tab[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);padding:5px 10px;background:#0f172a;color:#fff;font-size:11px;font-weight:500;white-space:nowrap;border-radius:6px;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:1000;box-shadow:0 4px 12px #00000026;font-family:var(--mtx-font),system-ui,sans-serif}.mt-grid__btn[data-tooltip]:before,.mt-format-btn[data-tooltip]:before,.mt-tab[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%) translateY(4px);border-width:4px;border-style:solid;border-color:#0f172a transparent transparent transparent;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:1000}.mt-grid__btn[data-tooltip]:hover:after,.mt-grid__btn[data-tooltip]:hover:before,.mt-format-btn[data-tooltip]:hover:after,.mt-format-btn[data-tooltip]:hover:before,.mt-tab[data-tooltip]:hover:after,.mt-tab[data-tooltip]:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.mt-icon-row{display:flex;align-items:center;justify-content:center;gap:3px;position:relative}.mt-icon-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;gap:2px}.mt-icon-stack--lg{transform:scale(1.15)}.mt-icon-stack--sm{transform:scale(.7)}.mt-icon-num{padding-bottom:2px;display:flex;justify-content:center;align-items:center}.mt-icon-den{padding-top:2px;display:flex;justify-content:center;align-items:center}.mt-icon-bar{width:100%;height:1.5px;background:linear-gradient(90deg,transparent 0%,currentColor 10%,currentColor 90%,transparent 100%);opacity:.7;border-radius:1px}.mt-icon-sqrt{font-size:18px;line-height:1;transform:scaleY(1.25) translateY(1px);font-weight:300}.mt-icon-sqrt-bar{border-top:1.5px solid currentColor;padding-top:2px;margin-left:-1px;opacity:.7}.mt-icon-idx{font-size:.65em;line-height:1;font-weight:500}.mt-icon-grid{display:flex;flex-direction:column;gap:2px;margin:0 2px}.mt-icon-grid-row{display:flex;gap:2px}.mt-brak{font-weight:300;transform:scaleY(1.35);color:#475569}.mt-brak--lg{transform:scaleY(1.65)}.mt-sym{font-family:Times New Roman,serif;font-style:italic;color:#334155}.mt-sym-lg{font-size:18px;font-weight:500;color:#0f172a}.mt-sym-xl{font-size:20px;line-height:.8;color:#0f172a}.mt-sym-sm{font-size:10px}.mt-sym-fn{font-family:Times New Roman,serif;font-size:12px;font-style:italic;color:#334155}.mt-txt-icon{font-family:var(--mtx-font),system-ui,sans-serif;font-size:10px;font-weight:700;color:#475569}.mt-over{position:absolute;top:-6px;left:50%;transform:translate(-50%);font-size:10px;width:100%;text-align:center;color:#64748b}.mt-under{position:absolute;bottom:-5px;left:50%;transform:translate(-50%);font-size:10px;color:#64748b}.mt-editor{flex:1;min-height:120px;background:#fff;border-top:1px solid #e2e8f0;position:relative}.mt-editor__field{min-height:120px;padding:12px;background:#fff}.mt-editor__field math-field{--caret-color: #2563eb;--selection-background-color: rgba(59, 130, 246, .2);--selection-color: #1e40af;--placeholder-color: rgba(59, 130, 246, .3);--placeholder-background-color: rgba(59, 130, 246, .05);cursor:text;font-size:18px;border:none;outline:none;width:100%}.mt-editor__field:focus-within{outline:none}.mt-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;background:#fff;z-index:10}.mt-loading__spinner{width:32px;height:32px;border:3px solid #f1f5f9;border-top-color:#2563eb;border-radius:50%;animation:mt-spin .8s linear infinite}@keyframes mt-spin{to{transform:rotate(360deg)}}.mt-loading__text{font-size:13px;color:#64748b;font-family:var(--mtx-font),system-ui,sans-serif}@media (min-width: 768px){.mt-editor__field math-field{--keyboard-zindex: -1 !important;--virtual-keyboard-toggle-display: none !important}}.mt-latex-bar{display:flex;flex-direction:column;gap:6px;padding:10px 16px;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:11px}.mt-latex-bar__row{display:flex;align-items:center;gap:8px;min-height:20px}.mt-latex-bar__label{font-weight:700;color:#64748b;font-family:var(--mtx-font),system-ui,sans-serif;flex-shrink:0}.mt-latex-bar__code{font-family:Consolas,Fira Code,monospace;font-size:11px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;background:#f1f5f9;padding:2px 6px;border-radius:4px}.mt-latex-bar__preview{padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:18px;text-align:center;overflow-x:auto;min-height:48px;display:flex;align-items:center;justify-content:center}.mt-latex-bar__error{padding:8px 12px;background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;color:#ef4444;font-size:11px;font-family:Consolas,Fira Code,monospace;white-space:pre-wrap;word-break:break-all}.mt-actions{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;gap:12px}.mt-actions__hint{font-size:11px;color:#64748b;font-family:var(--mtx-font),system-ui,sans-serif;display:flex;align-items:center;gap:8px}.mt-actions__hint kbd{display:inline-block;padding:2px 6px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;font-size:10px;font-family:inherit;box-shadow:0 1px #0000000d}.mt-display-mode-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#475569;cursor:pointer;font-size:11px;font-family:inherit;font-weight:500;transition:all .15s ease;white-space:nowrap}.mt-display-mode-toggle:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.mt-display-mode-toggle.is-block{background:#eff6ff;border-color:#3b82f6;color:#2563eb;font-weight:600}.mt-display-mode-toggle__label{line-height:1}.mt-actions__buttons{display:flex;gap:8px;flex-shrink:0}.mt-actions__cancel{padding:8px 18px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#475569;cursor:pointer;font-size:13px;font-family:var(--mtx-font),system-ui,sans-serif;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.mt-actions__cancel:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.mt-actions__insert{padding:8px 24px;border:1px solid #2563eb;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;cursor:pointer;font-size:13px;font-family:var(--mtx-font),system-ui,sans-serif;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 10px #2563eb26,inset 0 1px #fff3}.mt-actions__insert:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 14px #2563eb40,inset 0 1px #ffffff1a;transform:translateY(-1px)}.mt-actions__insert:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media (max-width: 700px){.mt-dialog{width:98vw;max-height:95vh;border-radius:12px}.mt-tab{min-width:38px;padding:2px 6px;font-size:12px}.mt-grid__btn{min-width:36px;height:34px;font-size:13px;padding:4px 6px}.mt-titlebar__title{font-size:12px}.mt-actions__hint{display:none}}.mt-color-picker{width:26px;height:26px;padding:0;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;overflow:hidden}.mt-txt-icon{font-size:10px;font-weight:700;font-family:sans-serif;color:#444}.mtx-image-edit-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;z-index:9999;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.mtx-image-edit-dialog__header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e2e8f0}.mtx-image-edit-dialog__header h3{margin:0;font-size:1.25rem;color:#1e293b}.mtx-image-edit-dialog__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#64748b;padding:4px;border-radius:4px;transition:all .15s ease}.mtx-image-edit-dialog__close:hover{background:#f1f5f9;color:#1e293b}.mtx-image-edit-dialog__body{padding:20px}.mtx-image-edit-dialog__section{margin-bottom:24px}.mtx-image-edit-dialog__section h4{margin:0 0 12px;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em}.mtx-image-edit-dialog__row{margin-bottom:12px}.mtx-image-edit-dialog__row label{display:block;margin-bottom:6px;font-size:.875rem;color:#334155;font-weight:500}.mtx-image-edit-dialog__row input[type=text],.mtx-image-edit-dialog__row textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;transition:border-color .15s ease,box-shadow .15s ease}.mtx-image-edit-dialog__row input[type=text]:focus,.mtx-image-edit-dialog__row textarea:focus{outline:none;border-color:var(--mtx-primary);box-shadow:0 0 0 3px #3b82f61a}.mtx-image-edit-dialog__checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.mtx-image-edit-dialog__checkbox-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.mtx-image-edit-dialog__checkbox-row label{margin:0;cursor:pointer;font-size:.875rem;color:#334155}.mtx-image-edit-dialog__size-presets{display:flex;gap:8px;margin-top:8px}.mtx-btn-sm{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .15s ease}.mtx-btn-sm:hover{background:#e2e8f0;border-color:#cbd5e1}.mtx-image-edit-dialog__alignment-options{display:flex;gap:8px;flex-wrap:wrap}.mtx-align-btn{flex:1;min-width:60px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.mtx-align-btn:hover{background:#f0f7ff;border-color:#3b82f6}.mtx-align-btn.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 4px 10px #3b82f614}.mtx-align-btn svg{width:24px;height:24px;color:#475569}.mtx-align-btn.is-active svg{color:var(--mtx-primary)}.mtx-align-btn span{font-size:.75rem;color:#64748b;font-weight:500}.mtx-image-edit-dialog__hint{margin-top:12px;padding:10px 12px;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px}.mtx-image-edit-dialog__hint p{margin:0;font-size:.8125rem;color:#92400e}.mtx-image-edit-dialog__footer{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid #e2e8f0;background:#f8fafc;border-radius:0 0 12px 12px}.mtx-image-edit-dialog__btn{padding:10px 20px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.mtx-image-edit-dialog__btn--reset{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.mtx-image-edit-dialog__btn--reset:hover{background:#e2e8f0}.mtx-image-edit-dialog__actions{display:flex;gap:8px}.mtx-image-edit-dialog__btn--cancel{background:#fff;color:#475569;border-color:#cbd5e1}.mtx-image-edit-dialog__btn--cancel:hover{background:#f8fafc}.mtx-image-edit-dialog__btn--apply{background:var(--mtx-primary);color:#fff;border-color:var(--mtx-primary)}.mtx-image-edit-dialog__btn--apply:hover{background:var(--mtx-primary-dark, #2563eb)}.mtx-dialog-overlay{position:fixed;inset:0;background:#00000080;z-index:9998;backdrop-filter:blur(2px)}.mtx-image-resize-overlay{position:absolute;inset:0;background-color:#3b82f61a;border:2px dashed var(--mtx-primary);pointer-events:none;z-index:9}.mtx-image-resize-handles{position:absolute;inset:0;pointer-events:none;display:none;z-index:10}.mtx-content .tiptap figure.mtx-image-figure.mtx-image--selected .mtx-image-resize-handles,.mtx-content .tiptap figure.mtx-image-figure .mtx-image-wrapper.mtx-image--selected .mtx-image-resize-handles{display:block;pointer-events:auto}.mtx-resize-handle{position:absolute;width:12px;height:12px;background:var(--mtx-primary, #3b82f6);border:2px solid white;border-radius:50%;cursor:pointer;pointer-events:auto;box-shadow:0 2px 4px #0000004d;transition:transform .15s ease,background .15s ease;z-index:11}.mtx-resize-handle:hover{transform:scale(1.4);background:#2563eb}.mtx-resize-handle--nw{top:-6px;left:-6px;cursor:nwse-resize}.mtx-resize-handle--ne{top:-6px;right:-6px;cursor:nesw-resize}.mtx-resize-handle--sw{bottom:-6px;left:-6px;cursor:nesw-resize}.mtx-resize-handle--se{bottom:-6px;right:-6px;cursor:nwse-resize}.mtx-resize-handle--n{top:-6px;left:50%;transform:translate(-50%);cursor:ns-resize}.mtx-resize-handle--e{top:50%;right:-6px;transform:translateY(-50%);cursor:ew-resize}.mtx-resize-handle--s{bottom:-6px;left:50%;transform:translate(-50%);cursor:ns-resize}.mtx-resize-handle--w{top:50%;left:-6px;transform:translateY(-50%);cursor:ew-resize}.mtx-context-menu-backdrop{position:fixed;inset:0;z-index:99998;background:transparent}.mtx-image-context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003,0 0 0 1px #0000000d;z-index:99999;min-width:220px;max-width:280px;padding:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:mtxContextMenuFadeIn .15s ease}@keyframes mtxContextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mtx-context-menu-section{padding:4px 0}.mtx-context-menu-label{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:8px 12px 4px}.mtx-context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;color:#334155;text-align:left;transition:background .15s ease,color .15s ease}.mtx-context-menu-item:hover{background:#f1f5f9;color:#1e293b}.mtx-context-menu-item svg{flex-shrink:0;width:16px;height:16px;color:#64748b}.mtx-context-menu-item:hover svg{color:#3b82f6}.mtx-context-menu-item--danger{color:#dc2626}.mtx-context-menu-item--danger:hover{background:#fef2f2;color:#dc2626}.mtx-context-menu-item--danger:hover svg{color:#dc2626}.mtx-context-menu-divider{height:1px;background:#e2e8f0;margin:8px 0}.mtx-import-overlay{position:absolute;inset:0;background:#ffffffd9;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.mtx-import-overlay__spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:mtx-spin .8s linear infinite}@keyframes mtx-spin{to{transform:rotate(360deg)}}.mtx-import-overlay__text{font-size:14px;color:#475569;font-weight:500;font-family:Segoe UI,system-ui,sans-serif}.mtx-import-error{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:110;display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:13px;font-family:Segoe UI,system-ui,sans-serif;box-shadow:0 4px 12px #0000001a;max-width:90%}.mtx-import-error__close{flex-shrink:0;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#991b1b;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s}.mtx-import-error__close:hover{background:#fecaca}.mtx-image-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(480px,90vw);max-height:85vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.mtx-image-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.mtx-image-dialog__header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.mtx-image-dialog__close{background:none;border:none;font-size:18px;cursor:pointer;color:#94a3b8;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.mtx-image-dialog__close:hover{background:#f1f5f9;color:#334155}.mtx-image-dialog__tabs{display:flex;border-bottom:1px solid #e2e8f0;padding:0 20px;gap:4px}.mtx-image-dialog__tab{background:none;border:none;padding:10px 16px;font-size:13px;font-weight:500;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;margin-bottom:-1px}.mtx-image-dialog__tab:hover{color:#334155}.mtx-image-dialog__tab.is-active{color:#3b82f6;border-bottom-color:#3b82f6}.mtx-image-dialog__body{padding:20px;overflow-y:auto;flex:1}.mtx-image-dialog__dropzone{border:2px dashed #cbd5e1;border-radius:10px;padding:32px;text-align:center;cursor:pointer;transition:all .2s;min-height:160px;display:flex;align-items:center;justify-content:center}.mtx-image-dialog__dropzone:hover{border-color:#3b82f6;background:#eff6ff}.mtx-image-dialog__dropzone.is-dragging{border-color:#3b82f6;background:#dbeafe;border-style:solid}.mtx-image-dialog__placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:#94a3b8}.mtx-image-dialog__placeholder svg{margin-bottom:4px;opacity:.5}.mtx-image-dialog__placeholder p{margin:0;font-size:14px;color:#475569}.mtx-image-dialog__placeholder span{font-size:12px;color:#94a3b8}.mtx-image-dialog__uploading{display:flex;flex-direction:column;align-items:center;gap:12px;color:#3b82f6}.mtx-image-dialog__uploading p{margin:0;font-size:14px}.mtx-image-dialog__preview img,.mtx-image-dialog__url-preview img{max-width:100%;max-height:200px;border-radius:8px;object-fit:contain}.mtx-image-dialog__url-form{display:flex;flex-direction:column;gap:8px}.mtx-image-dialog__url-form label,.mtx-image-dialog__alt label{font-size:13px;font-weight:500;color:#475569}.mtx-image-dialog__url-row{display:flex;gap:8px}.mtx-image-dialog__url-row input,.mtx-image-dialog__alt input{flex:1;padding:8px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s}.mtx-image-dialog__url-row input:focus,.mtx-image-dialog__alt input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.mtx-image-dialog__url-preview{margin-top:12px;text-align:center;padding:12px;background:#f8fafc;border-radius:8px}.mtx-image-dialog__alt{margin-top:16px;display:flex;flex-direction:column;gap:6px}.mtx-image-dialog__error{margin-top:12px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px}.mtx-image-dialog__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #e2e8f0}.mtx-image-dialog__btn{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;border:none}.mtx-image-dialog__btn--cancel{background:#f1f5f9;color:#475569}.mtx-image-dialog__btn--cancel:hover{background:#e2e8f0}.mtx-image-dialog__btn--insert{background:#3b82f6;color:#fff}.mtx-image-dialog__btn--insert:hover{background:#2563eb}.mtx-image-dialog__btn--insert:disabled{opacity:.5;cursor:not-allowed}
|
|
@@ -13,12 +13,17 @@ export interface TableMenuProps {
|
|
|
13
13
|
onAddColumnAfter: () => void;
|
|
14
14
|
onDeleteColumn: () => void;
|
|
15
15
|
onDeleteTable: () => void;
|
|
16
|
+
/** Smart merge/split: merge if multi-select, split if single cell */
|
|
17
|
+
onMergeOrSplit?: () => void;
|
|
18
|
+
/** @deprecated Use onMergeOrSplit */
|
|
16
19
|
onMergeCells?: () => void;
|
|
20
|
+
/** @deprecated Use onMergeOrSplit */
|
|
17
21
|
onSplitCell?: () => void;
|
|
18
22
|
onCellProperties?: () => void;
|
|
19
23
|
onTableProperties?: () => void;
|
|
20
24
|
onToggleHeaderRow?: () => void;
|
|
21
25
|
onToggleHeaderColumn?: () => void;
|
|
26
|
+
onToggleHeaderCell?: () => void;
|
|
22
27
|
onFixTables?: () => void;
|
|
23
28
|
}
|
|
24
|
-
export declare const TableMenu: React.MemoExoticComponent<({ isOpen, position, onClose, onAddRowBefore, onAddRowAfter, onDeleteRow, onAddColumnBefore, onAddColumnAfter, onDeleteColumn, onDeleteTable, onMergeCells, onSplitCell, onCellProperties, onTableProperties, onToggleHeaderRow, onToggleHeaderColumn, onFixTables, }: TableMenuProps) => import("react/jsx-runtime").JSX.Element | null>;
|
|
29
|
+
export declare const TableMenu: React.MemoExoticComponent<({ isOpen, position, onClose, onAddRowBefore, onAddRowAfter, onDeleteRow, onAddColumnBefore, onAddColumnAfter, onDeleteColumn, onDeleteTable, onMergeOrSplit, onMergeCells, onSplitCell, onCellProperties, onTableProperties, onToggleHeaderRow, onToggleHeaderColumn, onToggleHeaderCell, onFixTables, }: TableMenuProps) => import("react/jsx-runtime").JSX.Element | null>;
|