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 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.2.4] - 2026-05-26
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
- - **Inline Math Space** — Spacebar now inserts `\,` (LaTeX thin space) instead of literal space
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
- - `\,` avoids cursor ambiguity and nesting
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-ABpo9sfg.js";
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-ABpo9sfg.js";
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-ABpo9sfg.js";
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-ABpo9sfg.js";
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;
@@ -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-ABpo9sfg.js";
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-ABpo9sfg.js";
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>;