zynx-pdf 0.1.5 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,7 +24,7 @@ export default function App() {
24
24
  licenseApiUrl={import.meta.env.VITE_ZYNX_LICENSE_API_URL}
25
25
  engineApiUrl={import.meta.env.VITE_ZYNX_ENGINE_URL}
26
26
  showProTools
27
- autoFocusOnUpload
27
+ logoSrc="/logo.png"
28
28
  />
29
29
  );
30
30
  }
@@ -35,7 +35,7 @@ export default function App() {
35
35
  ```env
36
36
  VITE_ZYNX_LICENSE_KEY=zpx_test_9F2D-7KLA-ZYNX-PRO-2026
37
37
  VITE_ZYNX_LICENSE_API_URL=https://cyranix-lab-be-production.up.railway.app/api/zynx/license/validate
38
- VITE_ZYNX_ENGINE_URL=http://localhost:5050
38
+ VITE_ZYNX_ENGINE_URL=https://cyranix-lab-be-production.up.railway.app
39
39
  ```
40
40
 
41
41
  ## Frontend dev
@@ -79,13 +79,22 @@ npm run dev:all
79
79
 
80
80
  - PDF upload and viewing
81
81
  - Page navigation
82
+ - Thumbnail panel
83
+ - Search text on the current page
82
84
  - Zoom in and zoom out
85
+ - Fit to width and fit to page
83
86
  - Add text
84
87
  - Highlight
88
+ - Underline
89
+ - Strikeout
85
90
  - Freehand drawing
91
+ - Shapes: rectangle, circle, line, and arrow
92
+ - Sticky notes/comments
86
93
  - Add image
87
94
  - Add signature
88
95
  - Undo and redo
96
+ - Save as custom filename
97
+ - Print edited PDF
89
98
  - Export edited PDF
90
99
 
91
100
  ### Pro gated tools
@@ -100,11 +109,23 @@ npm run dev:all
100
109
  - Split PDF
101
110
  - Crop page
102
111
  - Forms
112
+ - Secure flattened redaction export
113
+ - Compress PDF copy
114
+ - Remove metadata
115
+ - Images to PDF
116
+ - PDF page/all pages to PNG
117
+ - Browser-encrypted password package
118
+ - Page reorder: move current page up/down
119
+ - Replace current page
103
120
  - OCR slot
104
- - Compression slot
105
- - Password protection slot
106
121
  - White-label slot
107
122
 
123
+ ## Phase 3 upgrade
124
+
125
+ Phase 3 adds security/conversion tools, full-screen workspace by default, a fixed license modal backdrop, compact toolbar layout, and logo image support through `logoSrc` or `/logo.png`.
126
+
127
+ Note: Acrobat-compatible PDF password encryption still needs a dedicated PDF security engine. The current Password Package tool uses browser AES-GCM encryption and exports `.zynxpdf`.
128
+
108
129
  ## Advanced Engine v1 note
109
130
 
110
131
  The **True Text Edit** tool does not create a frontend overlay layer. It sends the selected text to the backend engine. Advanced Engine v1 tries to decode the page content stream, find the matching `Tj` or `TJ` text operator, remove that original operator, and insert the updated text into the PDF.
@@ -29,6 +29,8 @@ type AnnotationLayerProps = {
29
29
  onCommitTrueTextDraft?: (draft: TrueTextEditDraft) => void;
30
30
  onClearTrueTextDraft?: () => void;
31
31
  isApplyingTrueTextEdit?: boolean;
32
+ searchQuery?: string;
33
+ searchActiveTextId?: string | null;
32
34
  };
33
35
  export declare function AnnotationLayer(props: AnnotationLayerProps): import("react").JSX.Element;
34
36
  export {};
@@ -1,3 +1,3 @@
1
1
  import type { PdfEditorProps } from '../types/annotations';
2
2
  import '../styles.css';
3
- export declare function PdfEditor({ file, height, defaultScale, enableUpload, showDevJson, theme, licenseKey, licenseApiUrl, engineApiUrl, preferBackendTextEdit, showProTools, autoFocusOnUpload, onSave, onAnnotationsChange, onLicenseChange }: PdfEditorProps): import("react").JSX.Element;
3
+ export declare function PdfEditor({ file, height, defaultScale, enableUpload, showDevJson, theme, licenseKey, licenseApiUrl, engineApiUrl, preferBackendTextEdit, showProTools, autoFocusOnUpload, logoSrc, onSave, onAnnotationsChange, onLicenseChange }: PdfEditorProps): import("react").JSX.Element;
@@ -8,7 +8,7 @@ type ToolSidebarProps = {
8
8
  pageIndex: number;
9
9
  pageCount: number;
10
10
  canUseDocument: boolean;
11
- processingTool: PdfTool | 'pageAction' | 'engineTextEdit' | null;
11
+ processingTool: PdfTool | 'pageAction' | 'engineTextEdit' | 'conversion' | 'security' | null;
12
12
  onToolChange: (tool: PdfTool) => void;
13
13
  onLockedToolClick: (tool: PdfTool, feature: PdfFeature) => void;
14
14
  onDefaultTextChange: (text: string) => void;
@@ -17,6 +17,13 @@ type ToolSidebarProps = {
17
17
  onSplitCurrentPage: () => void;
18
18
  onPageAction: (action: PageAction) => void;
19
19
  onCompressPdf: () => void;
20
+ onSecureRedactedExport: () => void;
21
+ onRemoveMetadata: () => void;
22
+ onImagesToPdf: (files: File[]) => void;
23
+ onExportCurrentPageImage: () => void;
24
+ onExportAllPagesImages: () => void;
25
+ onPasswordProtect: () => void;
26
+ onReplaceCurrentPage: (file: File) => void;
20
27
  collapsed?: boolean;
21
28
  onToggleCollapsed?: () => void;
22
29
  };
@@ -10,15 +10,28 @@ type ToolbarProps = {
10
10
  isProActive: boolean;
11
11
  isLicenseLoading: boolean;
12
12
  licenseStatusLabel: string;
13
+ searchQuery: string;
14
+ searchMatchCount: number;
15
+ searchActiveIndex: number;
16
+ thumbnailsOpen: boolean;
13
17
  onScaleChange: (scale: number) => void;
18
+ onFitWidth: () => void;
19
+ onFitPage: () => void;
14
20
  onPageChange: (pageIndex: number) => void;
15
21
  onUploadPdf: (file: File) => void;
16
22
  onUndo: () => void;
17
23
  onRedo: () => void;
18
24
  onExport: () => void;
25
+ onSaveAs: () => void;
26
+ onPrint: () => void;
27
+ onSearchChange: (query: string) => void;
28
+ onSearchNext: () => void;
29
+ onSearchPrevious: () => void;
30
+ onToggleThumbnails: () => void;
19
31
  onEnterFocusMode: () => void;
20
32
  onExitFocusMode: () => void;
21
33
  onOpenLicenseModal: () => void;
34
+ logoSrc?: string;
22
35
  };
23
36
  export declare function Toolbar(props: ToolbarProps): import("react").JSX.Element;
24
37
  export {};
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export type { PdfAnnotation, PdfEditorProps, PdfEditorTheme, PdfFeature, PdfPoin
6
6
  export { FREE_FEATURES, PRO_FEATURES, ZYNX_TEST_LICENSE_KEY, getToolFeature, hasFeature, validateZynxLicense } from './utils/license';
7
7
  export { exportPdfWithAnnotations } from './utils/pdfExport';
8
8
  export { downloadBytes } from './utils/file';
9
- export { mergePdfFiles, extractSinglePage, applyPageAction, optimizePdfBytes } from './utils/pdfPageTools';
9
+ export { mergePdfFiles, extractSinglePage, applyPageAction, optimizePdfBytes, replaceCurrentPage } from './utils/pdfPageTools';
10
10
  export type { PageAction } from './utils/pdfPageTools';
11
11
  export { applyTrueTextEditWithEngine } from './api/engineClient';
12
+ export { rasterizePdfToImagePdf, imagesToPdf, pdfPageToImage, pdfAllPagesToImages, encryptBytesWithPassword } from './utils/pdfConversion';
13
+ export { removePdfMetadata } from './utils/pdfMetadata';
package/dist/logo.png ADDED
Binary file
@@ -1,5 +1,5 @@
1
- export type PdfFeature = 'basic_edit' | 'advanced_text' | 'true_text_edit' | 'page_tools' | 'watermark' | 'stamps' | 'forms' | 'redaction' | 'ocr' | 'compression' | 'white_label';
2
- export type PdfTool = 'select' | 'replaceText' | 'trueTextEdit' | 'text' | 'highlight' | 'draw' | 'image' | 'signature' | 'watermark' | 'stamp' | 'redaction' | 'pageTools' | 'forms' | 'formText' | 'formCheckbox' | 'ocr' | 'compress' | 'merge' | 'split' | 'crop' | 'password' | 'whiteLabel';
1
+ export type PdfFeature = 'basic_edit' | 'advanced_text' | 'true_text_edit' | 'page_tools' | 'watermark' | 'stamps' | 'forms' | 'redaction' | 'ocr' | 'compression' | 'conversion' | 'security' | 'metadata' | 'white_label';
2
+ export type PdfTool = 'select' | 'replaceText' | 'trueTextEdit' | 'text' | 'highlight' | 'underline' | 'strikeout' | 'draw' | 'rectangle' | 'ellipse' | 'line' | 'arrow' | 'stickyNote' | 'image' | 'signature' | 'watermark' | 'stamp' | 'redaction' | 'pageTools' | 'forms' | 'formText' | 'formCheckbox' | 'ocr' | 'compress' | 'merge' | 'split' | 'crop' | 'password' | 'removeMetadata' | 'imagesToPdf' | 'pdfToImages' | 'secureRedact' | 'whiteLabel';
3
3
  export type ZynxLicensePlan = 'free' | 'pro' | 'enterprise';
4
4
  export type ZynxLicenseStatus = 'loading' | 'free' | 'valid' | 'invalid' | 'expired';
5
5
  export type ZynxLicenseState = {
@@ -69,6 +69,35 @@ export type HighlightAnnotation = BaseAnnotation & {
69
69
  color: string;
70
70
  opacity: number;
71
71
  };
72
+ export type TextMarkupAnnotation = BaseAnnotation & {
73
+ type: 'underline' | 'strikeout';
74
+ color: string;
75
+ strokeWidth: number;
76
+ opacity: number;
77
+ };
78
+ export type ShapeAnnotation = BaseAnnotation & {
79
+ type: 'rectangle' | 'ellipse';
80
+ borderColor: string;
81
+ backgroundColor: string;
82
+ strokeWidth: number;
83
+ opacity: number;
84
+ };
85
+ export type LineAnnotation = BaseAnnotation & {
86
+ type: 'line' | 'arrow';
87
+ x2: number;
88
+ y2: number;
89
+ color: string;
90
+ strokeWidth: number;
91
+ opacity: number;
92
+ };
93
+ export type StickyNoteAnnotation = BaseAnnotation & {
94
+ type: 'sticky-note';
95
+ text: string;
96
+ fontSize: number;
97
+ color: string;
98
+ backgroundColor: string;
99
+ borderColor: string;
100
+ };
72
101
  export type ImageAnnotation = BaseAnnotation & {
73
102
  type: 'image' | 'signature';
74
103
  dataUrl: string;
@@ -124,10 +153,12 @@ export type FormCheckboxAnnotation = BaseAnnotation & {
124
153
  backgroundColor: string;
125
154
  borderColor: string;
126
155
  };
127
- export type PdfAnnotation = TextAnnotation | TextReplaceAnnotation | HighlightAnnotation | ImageAnnotation | DrawAnnotation | WatermarkAnnotation | StampAnnotation | RedactionAnnotation | CropAnnotation | FormTextAnnotation | FormCheckboxAnnotation;
156
+ export type PdfAnnotation = TextAnnotation | TextReplaceAnnotation | HighlightAnnotation | TextMarkupAnnotation | ShapeAnnotation | LineAnnotation | StickyNoteAnnotation | ImageAnnotation | DrawAnnotation | WatermarkAnnotation | StampAnnotation | RedactionAnnotation | CropAnnotation | FormTextAnnotation | FormCheckboxAnnotation;
128
157
  export type AnnotationPatch = Partial<{
129
158
  x: number;
130
159
  y: number;
160
+ x2: number;
161
+ y2: number;
131
162
  width: number;
132
163
  height: number;
133
164
  text: string;
@@ -167,6 +198,7 @@ export type PdfEditorProps = {
167
198
  preferBackendTextEdit?: boolean;
168
199
  showProTools?: boolean;
169
200
  autoFocusOnUpload?: boolean;
201
+ logoSrc?: string;
170
202
  onSave?: (pdfBytes: Uint8Array, annotations: PdfAnnotation[]) => void;
171
203
  onAnnotationsChange?: (annotations: PdfAnnotation[]) => void;
172
204
  onLicenseChange?: (license: ZynxLicenseState) => void;
@@ -0,0 +1,11 @@
1
+ export type RasterizePdfOptions = {
2
+ scale?: number;
3
+ imageType?: 'image/jpeg' | 'image/png';
4
+ quality?: number;
5
+ flattenMessage?: string;
6
+ };
7
+ export declare function rasterizePdfToImagePdf(pdfBytes: Uint8Array, options?: RasterizePdfOptions): Promise<Uint8Array>;
8
+ export declare function imagesToPdf(files: File[]): Promise<Uint8Array>;
9
+ export declare function pdfPageToImage(pdfBytes: Uint8Array, pageIndex: number, scale?: number): Promise<Uint8Array>;
10
+ export declare function pdfAllPagesToImages(pdfBytes: Uint8Array, scale?: number): Promise<Uint8Array[]>;
11
+ export declare function encryptBytesWithPassword(bytes: Uint8Array, password: string): Promise<Uint8Array>;
@@ -0,0 +1 @@
1
+ export declare function removePdfMetadata(pdfBytes: Uint8Array): Promise<Uint8Array>;
@@ -1,6 +1,10 @@
1
- export type PageAction = 'rotate' | 'delete' | 'duplicate' | 'insertBlank';
1
+ export type PageAction = 'rotate' | 'delete' | 'duplicate' | 'insertBlank' | 'moveUp' | 'moveDown';
2
2
  export declare function mergePdfFiles(currentBytes: Uint8Array, files: File[]): Promise<Uint8Array>;
3
3
  export declare function extractSinglePage(currentBytes: Uint8Array, pageIndex: number): Promise<Uint8Array>;
4
+ export declare function replaceCurrentPage(currentBytes: Uint8Array, pageIndex: number, replacementFile: File): Promise<{
5
+ bytes: Uint8Array;
6
+ pageIndex: number;
7
+ }>;
4
8
  export declare function applyPageAction(currentBytes: Uint8Array, pageIndex: number, action: PageAction): Promise<{
5
9
  bytes: Uint8Array;
6
10
  pageIndex: number;
package/dist/zynx-pdf.css CHANGED
@@ -1,2 +1,2 @@
1
- :root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.mpe-root{--mpe-primary:#6d5dfc;--mpe-primary-dark:#28245f;--mpe-primary-soft:#f1efff;--mpe-background:#f6f3ff;--mpe-surface:#fff;--mpe-border:#e4def8;--mpe-text:#16142f;--mpe-muted:#746f91;--mpe-shadow:0 24px 70px #32238c2e;background:radial-gradient(circle at top left, #8168ff29, transparent 28%), linear-gradient(135deg, #fbf9ff 0%, var(--mpe-background) 42%, #eeeaff 100%);color:var(--mpe-text);box-shadow:var(--mpe-shadow);border:1px solid #6d5dfc24;border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.mpe-root *{box-sizing:border-box}.mpe-toolbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;background:#ffffffdb;border-bottom:1px solid #6d5dfc21;align-items:center;gap:14px;min-height:78px;padding:12px 14px;display:flex;position:relative}.mpe-toolbar__brand{align-items:center;gap:11px;min-width:210px;padding-right:4px;display:flex}.mpe-toolbar__logo{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#7c5cff,#382d8e);border-radius:14px;place-items:center;width:42px;height:42px;font-size:12px;font-weight:900;display:grid;box-shadow:0 14px 30px #5c4acf3d}.mpe-toolbar__brand strong,.mpe-toolbar__brand small{display:block}.mpe-toolbar__brand strong{letter-spacing:-.01em;font-size:14px}.mpe-toolbar__brand small{max-width:280px;color:var(--mpe-muted);margin-top:2px;font-size:11px;line-height:1.35}.mpe-toolbar__section{align-items:center;gap:7px;min-width:0;display:flex}.mpe-toolbar__section--view{background:#f6f3ffb8;border:1px solid #6d5dfc24;border-radius:18px;padding:8px}.mpe-toolbar__section--edit{scrollbar-width:thin;flex:1;justify-content:center;overflow-x:auto}.mpe-toolbar__section--actions{margin-left:auto}.mpe-button,.mpe-tool-button,.mpe-icon-button{color:var(--mpe-text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#fff;border:1px solid #6d5dfc29;border-radius:13px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 11px;font-size:12px;font-weight:800;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:inline-flex}.mpe-button:hover:not(:disabled),.mpe-tool-button:hover:not(:disabled),.mpe-icon-button:hover:not(:disabled){border-color:#6d5dfc73;transform:translateY(-1px);box-shadow:0 10px 24px #4d39b41f}.mpe-button:disabled,.mpe-tool-button:disabled,.mpe-icon-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.mpe-button--primary,.mpe-tool-button--active{color:#fff;background:linear-gradient(135deg,#7c5cff,#5140d7);border-color:#0000;box-shadow:0 14px 26px #5c4acf38}.mpe-button--save{padding-inline:14px}.mpe-button--danger{color:#b91c1c;background:#fff7f7;border-color:#dc262629}.mpe-icon-button{width:38px;padding:0}.mpe-icon-button--ghost{width:32px;min-height:32px;box-shadow:none;background:0 0;border-radius:10px}.mpe-page-chip{text-align:center;min-width:66px;color:var(--mpe-primary-dark);background:#fff;border:1px solid #6d5dfc24;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}.mpe-editor-shell{flex:1;grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;position:relative}.mpe-editor-hint{min-height:40px;color:var(--mpe-muted);text-align:center;background:#ffffff80;border-bottom:1px solid #6d5dfc1a;justify-content:center;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:flex}.mpe-editor-hint strong{color:var(--mpe-primary-dark)}.mpe-stage{background:linear-gradient(90deg,#7a68ff0e 1px,#0000 1px) 0 0/32px 32px,linear-gradient(#7a68ff0e 1px,#0000 1px) 0 0/32px 32px,radial-gradient(circle at 50% 0,#fffffff2,#f4f0ffd9 42%,#e8e2ffe6);justify-content:center;align-items:flex-start;min-height:0;padding:34px;display:flex;overflow:auto}.mpe-page-shell{background:#fff;border-radius:10px;flex:none;position:relative;overflow:hidden;box-shadow:0 28px 80px #1c175240}.mpe-page-canvas{background:#fff;display:block}.mpe-render-badge,.mpe-render-error{z-index:6;border-radius:999px;max-width:calc(100% - 24px);padding:8px 10px;font-size:12px;font-weight:800;position:absolute;top:12px;left:12px}.mpe-render-badge{color:#fff;background:#1f194edb}.mpe-render-error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca}.mpe-annotation-layer{touch-action:none;z-index:3;position:absolute;inset:0;overflow:hidden}.mpe-annotation-layer--text,.mpe-annotation-layer--highlight,.mpe-annotation-layer--image,.mpe-annotation-layer--signature,.mpe-annotation-layer--replaceText{cursor:crosshair}.mpe-annotation-layer--draw{cursor:cell}.mpe-annotation-layer--select{cursor:default}.mpe-text-target{z-index:2;color:#0000;cursor:text;background:#6d5dfc0f;border:1px dashed #6d5dfc6b;border-radius:3px;margin:0;padding:0;position:absolute}.mpe-text-target span{opacity:0;pointer-events:none}.mpe-text-target:hover{background:#6d5dfc2e;border-color:#6d5dfcc7;box-shadow:0 0 0 2px #6d5dfc21}.mpe-annotation{box-sizing:border-box;cursor:move;-webkit-user-select:none;user-select:none;z-index:4;border-radius:4px;position:absolute}.mpe-annotation--selected{box-shadow:0 0 0 4px #6d5dfc26}.mpe-annotation--editing{cursor:text}.mpe-annotation-text,.mpe-annotation-replacement{width:100%;height:100%}.mpe-annotation-text{white-space:pre-wrap;pointer-events:none;justify-content:flex-start;align-items:flex-start;font-weight:650;line-height:1.15;display:flex;overflow:hidden}.mpe-annotation-highlight{pointer-events:none;border-radius:4px;width:100%;height:100%}.mpe-annotation-image{object-fit:contain;pointer-events:none;width:100%;height:100%}.mpe-annotation-ink{pointer-events:none;position:absolute;inset:0;overflow:visible}.mpe-annotation-textarea{resize:none;width:100%;height:100%;font:inherit;white-space:pre-wrap;pointer-events:auto;border:0;border-radius:3px;outline:0;margin:0;padding:2px;font-weight:650;line-height:1.15;display:block;overflow:auto}.mpe-resize-handle{background:var(--mpe-primary);cursor:nwse-resize;border:2px solid #fff;border-radius:999px;width:13px;height:13px;position:absolute;bottom:-7px;right:-7px;box-shadow:0 5px 14px #1e185047}.mpe-floating-inspector{z-index:30;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border:1px solid #6d5dfc29;border-radius:20px;width:min(320px,100% - 36px);padding:14px;position:absolute;top:58px;right:18px;box-shadow:0 22px 60px #23196e2e}.mpe-inspector-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.mpe-inspector-head span,.mpe-inspector-head strong{display:block}.mpe-inspector-head span{color:var(--mpe-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.mpe-inspector-head strong{margin-top:2px;font-size:14px}.mpe-inspector-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mpe-inspector-grid--position{margin-top:10px}.mpe-inspector-field{color:var(--mpe-muted);gap:6px;margin-bottom:10px;font-size:11px;font-weight:900;display:grid}.mpe-inspector-field--full{grid-column:1/-1}.mpe-inspector-field input,.mpe-inspector-field textarea{border:1px solid var(--mpe-border);width:100%;font:inherit;color:var(--mpe-text);background:#fff;border-radius:12px;outline:none;padding:9px 10px;font-size:13px}.mpe-inspector-field input:focus,.mpe-inspector-field textarea:focus{border-color:#6d5dfcb3;box-shadow:0 0 0 3px #6d5dfc1f}.mpe-inspector-field textarea{resize:vertical}.mpe-original-text-note{background:var(--mpe-primary-soft);color:var(--mpe-muted);border-radius:12px;margin:-2px 0 10px;padding:8px 10px;font-size:11px;line-height:1.35}.mpe-original-text-note span{color:var(--mpe-primary-dark);font-weight:800}.mpe-inspector-preview{object-fit:contain;border:1px solid var(--mpe-border);background:#faf9ff;border-radius:14px;width:100%;max-height:160px;margin-bottom:10px}.mpe-inspector-delete{width:100%;margin-top:10px}.mpe-dev-drawer{z-index:25;background:#fffffff0;border:1px solid #6d5dfc29;border-radius:16px;width:min(420px,100% - 36px);max-height:300px;padding:10px 12px;position:absolute;bottom:18px;left:18px;overflow:auto;box-shadow:0 18px 40px #23196e24}.mpe-dev-drawer summary{cursor:pointer;color:var(--mpe-primary-dark);font-weight:900}.mpe-dev-drawer pre{white-space:pre-wrap;word-break:break-word;font-size:11px}.mpe-empty-state,.mpe-error{text-align:center;background:#fffffff0;border:1px solid #6d5dfc24;border-radius:28px;width:min(620px,100%);margin:70px auto;padding:34px;box-shadow:0 24px 60px #23196e24}.mpe-empty-icon{color:#fff;background:linear-gradient(135deg,#7c5cff,#382d8e);border-radius:22px;place-items:center;width:66px;height:66px;margin:0 auto 16px;font-weight:900;display:grid;box-shadow:0 14px 30px #5c4acf38}.mpe-empty-state h2{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(24px,4vw,34px)}.mpe-empty-state p{max-width:480px;color:var(--mpe-muted);margin:0 auto 18px;line-height:1.58}.mpe-error{color:#b91c1c;background:#fff1f2;border-color:#fecaca}@media (width<=1280px){.mpe-toolbar{flex-wrap:wrap}.mpe-toolbar__brand{min-width:100%}.mpe-toolbar__section--edit{order:3;justify-content:flex-start;width:100%}}@media (width<=780px){.mpe-root{border-radius:18px}.mpe-toolbar{gap:10px}.mpe-toolbar__section--view,.mpe-toolbar__section--actions{width:100%;overflow-x:auto}.mpe-toolbar__section--actions{justify-content:flex-start}.mpe-stage{justify-content:flex-start;padding:16px}.mpe-editor-hint{text-align:left;flex-direction:column;align-items:flex-start}.mpe-floating-inspector{width:auto;top:52px;left:12px;right:12px}}.mpe-root--focus{z-index:9999;width:100vw;box-shadow:none;border:0;border-radius:0;position:fixed;inset:0;height:100vh!important}.mpe-root--focus .mpe-toolbar{min-height:72px}.mpe-root--focus .mpe-stage{padding:26px}.mpe-button--subtle{color:var(--mpe-primary-dark);background:#f7f4ff}.mpe-toolbar__section--edit{scrollbar-width:thin;justify-content:flex-start;padding-bottom:2px}.mpe-pro-tools{border-left:1px solid #6d5dfc29;align-items:center;gap:7px;margin-left:2px;padding-left:8px;display:inline-flex}.mpe-license-pill{color:#6b5ca4;white-space:nowrap;background:#f6f3ffe6;border:1px solid #6d5dfc24;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:7px 10px;font-size:11px;font-weight:950;display:inline-flex}.mpe-license-pill--valid{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-tool-button--pro{position:relative}.mpe-tool-button--locked{color:#8278a7;background:#ffffffa3;border-style:dashed;overflow:hidden}.mpe-tool-button--locked span{filter:blur(.8px);opacity:.6}.mpe-tool-button--locked em{color:#fff;letter-spacing:.03em;background:linear-gradient(135deg,#7c5cff,#5140d7);border-radius:999px;margin-left:2px;padding:1px 6px;font-size:9px;font-style:normal;font-weight:950}.mpe-annotation-layer--watermark,.mpe-annotation-layer--stamp,.mpe-annotation-layer--redaction{cursor:crosshair}.mpe-annotation-watermark,.mpe-annotation-stamp,.mpe-annotation-redaction{pointer-events:none;width:100%;height:100%}.mpe-annotation-watermark{letter-spacing:.08em;text-transform:uppercase;transform-origin:50%;white-space:nowrap;justify-content:center;align-items:center;font-weight:950;display:flex}.mpe-annotation-stamp{letter-spacing:.1em;text-transform:uppercase;border:2px solid;border-radius:12px;place-items:center;font-weight:950;display:grid}.mpe-annotation-redaction{border-radius:2px}.mpe-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#16142f61;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.mpe-root--focus .mpe-modal-backdrop{position:fixed}.mpe-modal-card{text-align:center;background:#fffffffa;border:1px solid #6d5dfc29;border-radius:26px;width:min(520px,100%);padding:26px;box-shadow:0 30px 90px #1a145a42}.mpe-modal-icon{color:#fff;background:linear-gradient(135deg,#7c5cff,#382d8e);border-radius:20px;place-items:center;width:58px;height:58px;margin:0 auto 14px;font-weight:950;display:grid}.mpe-modal-card h3{color:var(--mpe-text);letter-spacing:-.03em;margin:0 0 8px;font-size:22px}.mpe-modal-card p{max-width:430px;color:var(--mpe-muted);margin:0 auto 14px;line-height:1.55}.mpe-modal-card code{color:#28245f;word-break:break-all;background:#f6f3ff;border-radius:14px;margin:12px 0 16px;padding:12px;font-size:12px;display:block}.mpe-modal-card small{color:#b91c1c;margin:-6px 0 14px;display:block}@media (width<=1280px){.mpe-pro-tools{border-left:0;padding-left:0}}.mpe-toolbar{flex-wrap:nowrap}.mpe-toolbar__section--view{max-width:min(720px,52vw);margin-left:auto;overflow-x:auto}.mpe-toolbar__section--actions{flex:none}.mpe-workspace{grid-template-columns:286px minmax(0,1fr);min-height:0;display:grid;position:relative}.mpe-tool-sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:radial-gradient(circle at 0 0,#7c5cff21,#0000 34%),#ffffffc7;border-right:1px solid #6d5dfc1f;grid-template-rows:auto auto minmax(0,1fr);gap:12px;min-height:0;padding:14px;display:grid;overflow:hidden}.mpe-tool-sidebar__head{justify-content:space-between;align-items:center;gap:10px;padding:8px 4px 2px;display:flex}.mpe-tool-sidebar__head span,.mpe-tool-sidebar__head strong{display:block}.mpe-tool-sidebar__head>div>span{color:var(--mpe-primary);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:950}.mpe-tool-sidebar__head strong{color:var(--mpe-text);letter-spacing:-.02em;margin-top:3px;font-size:14px}.mpe-license-dot{text-align:center;color:#6b5ca4;background:#f6f3ff;border:1px solid #6d5dfc29;border-radius:999px;min-width:48px;padding:6px 9px;font-size:11px;font-weight:950}.mpe-license-dot--valid{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-tool-tabs{background:#f6f3ffdb;border:1px solid #6d5dfc1f;border-radius:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px;display:grid}.mpe-tool-tabs button{color:#675f87;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;min-height:52px;padding:8px 10px;font-weight:950;transition:background .14s,box-shadow .14s,color .14s,transform .14s}.mpe-tool-tabs button:hover,.mpe-tool-tabs button.active{color:var(--mpe-primary-dark);background:#fff;transform:translateY(-1px);box-shadow:0 10px 24px #35298d1c}.mpe-tool-tabs small{color:var(--mpe-muted);margin-top:2px;font-size:10px;font-weight:800;display:block}.mpe-tool-sidebar__body{scrollbar-width:thin;min-height:0;padding:2px 2px 16px;overflow-y:auto}.mpe-tool-group{gap:8px;margin-bottom:14px;display:grid}.mpe-tool-group__title{color:#706a8f;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:6px;padding:0 3px;font-size:10px;font-weight:950;display:inline-flex}.mpe-side-tool{width:100%;min-height:62px;color:var(--mpe-text);cursor:pointer;text-align:left;background:#ffffffd6;border:1px solid #6d5dfc24;border-radius:17px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:grid;position:relative}.mpe-side-tool:hover{border-color:#6d5dfc6b;transform:translateY(-1px);box-shadow:0 14px 30px #35298d1f}.mpe-side-tool--active{background:linear-gradient(135deg,#fffffffa,#f6f3fffa);border-color:#6d5dfc94;box-shadow:0 16px 34px #35298d24}.mpe-side-tool__icon{width:38px;height:38px;color:var(--mpe-primary);background:#6d5dfc1a;border-radius:13px;place-items:center;display:grid}.mpe-side-tool--active .mpe-side-tool__icon{color:#fff;background:linear-gradient(135deg,#7c5cff,#5140d7)}.mpe-side-tool__copy{min-width:0;display:block}.mpe-side-tool__copy strong,.mpe-side-tool__copy small{display:block}.mpe-side-tool__copy strong{color:var(--mpe-text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:950;overflow:hidden}.mpe-side-tool__copy small{color:var(--mpe-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:10.5px;line-height:1.25;display:-webkit-box;overflow:hidden}.mpe-side-tool em,.mpe-side-tool b{letter-spacing:.02em;border-radius:999px;align-self:start;padding:2px 7px;font-size:9px;font-style:normal;font-weight:950}.mpe-side-tool em{color:#fff;background:linear-gradient(135deg,#f97316,#db2777)}.mpe-side-tool b{color:#fff;background:linear-gradient(135deg,#7c5cff,#5140d7)}.mpe-side-tool--locked{background:#ffffff8c;border-style:dashed}.mpe-side-tool--locked .mpe-side-tool__copy{filter:blur(.75px);opacity:.56}.mpe-side-tool--locked .mpe-side-tool__icon{color:#7b72a3;background:#6d5dfc14}.mpe-sidebar-input{color:var(--mpe-muted);background:#ffffffb8;border:1px solid #6d5dfc1f;border-radius:18px;gap:7px;padding:12px;font-size:11px;font-weight:950;display:grid}.mpe-sidebar-input input{width:100%;color:var(--mpe-text);background:#fff;border:1px solid #6d5dfc24;border-radius:13px;outline:none;padding:10px 11px;font-weight:800}.mpe-sidebar-input input:focus{border-color:#6d5dfc9e;box-shadow:0 0 0 3px #6d5dfc1f}.mpe-pro-status{color:#6b5ca4;background:#f6f3ffe6;border:1px dashed #6d5dfc38;border-radius:18px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px;display:flex}.mpe-pro-status svg{color:var(--mpe-primary);flex:none;margin-top:1px}.mpe-pro-status strong,.mpe-pro-status small{display:block}.mpe-pro-status strong{color:var(--mpe-primary-dark);font-size:12px}.mpe-pro-status small{margin-top:2px;font-size:10.5px;line-height:1.35}.mpe-pro-status--active{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-pro-status--active svg,.mpe-pro-status--active strong{color:#166534}.mpe-workspace .mpe-stage{min-width:0}@media (width<=1280px){.mpe-toolbar{flex-wrap:wrap}.mpe-toolbar__brand{min-width:100%}.mpe-toolbar__section--view{max-width:100%;margin-left:0}.mpe-workspace{grid-template-columns:254px minmax(0,1fr)}}@media (width<=860px){.mpe-workspace{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.mpe-tool-sidebar{border-bottom:1px solid #6d5dfc1f;border-right:0;max-height:310px}.mpe-tool-sidebar__body{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}}.mpe-side-tool{grid-template-columns:42px minmax(0,1fr) auto;min-height:68px;padding:12px}.mpe-side-tool__icon{width:42px;height:42px}.mpe-side-tool__copy small{-webkit-line-clamp:2;font-size:11px}.mpe-pro-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mpe-pro-action{min-height:40px;color:var(--mpe-primary-dark);cursor:pointer;background:#ffffffdb;border:1px solid #6d5dfc24;border-radius:13px;justify-content:center;align-items:center;gap:7px;font-size:11px;font-weight:900;transition:transform .14s,border-color .14s,box-shadow .14s;display:inline-flex}.mpe-pro-action:hover:not(:disabled){border-color:#6d5dfc6b;transform:translateY(-1px);box-shadow:0 12px 24px #35298d1f}.mpe-pro-action:disabled{opacity:.5;cursor:not-allowed}.mpe-pro-help{color:var(--mpe-muted);margin-top:6px;font-size:10.5px;line-height:1.35;display:block}.mpe-annotation-text{font-weight:500;line-height:1.05}.mpe-annotation-replacement{border-radius:1px;padding:0 1px;overflow:hidden}.mpe-annotation--text-replace.mpe-annotation--editing{z-index:8}.mpe-annotation--text-replace:not(.mpe-annotation--selected){box-shadow:none}.mpe-annotation-textarea{font-weight:500;line-height:1.05;box-shadow:inset 0 0 0 1px #6d5dfc6b}.mpe-annotation-crop{width:100%;height:100%;color:var(--mpe-primary);pointer-events:none;border:2px dashed;place-items:center;display:grid}.mpe-annotation-crop span{color:var(--mpe-primary-dark);background:#ffffffeb;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950}.mpe-annotation-form-text{pointer-events:none;border:1.5px solid;border-radius:5px;width:100%;height:100%;padding:6px 8px;font-weight:750;overflow:hidden}.mpe-annotation-form-checkbox{pointer-events:none;border:1.8px solid;border-radius:4px;place-items:center;width:100%;height:100%;font-weight:950;display:grid}.mpe-inspector-check{border:1px solid var(--mpe-border);color:var(--mpe-text);background:#fff;border-radius:12px;align-items:center;gap:8px;margin-bottom:10px;padding:9px 10px;font-size:12px;font-weight:850;display:flex}@media (width<=1280px){.mpe-workspace{grid-template-columns:330px minmax(0,1fr)}}@media (width<=860px){.mpe-workspace{grid-template-columns:1fr}}.mpe-annotation-layer--crop,.mpe-annotation-layer--formText,.mpe-annotation-layer--formCheckbox{cursor:crosshair}.mpe-engine-box{background:linear-gradient(135deg,#6d5dfc14,#ffffffeb);border:1px solid #6d5dfc38;border-radius:16px;gap:10px;padding:12px;display:grid}.mpe-engine-box p{color:#5f5a7c;margin:0;font-size:12px;line-height:1.45}.mpe-engine-box small{color:#8b5cf6;font-size:11px;line-height:1.35}.mpe-engine-apply{justify-content:center;width:100%}.mpe-annotation-layer--trueTextEdit{cursor:crosshair}.mpe-text-target--true{background:#0ea5e917;border-color:#0ea5e98c}.mpe-text-target--true:hover{background:#0ea5e933;border-color:#0ea5e9f2;box-shadow:0 0 0 2px #0ea5e929}.mpe-button--secondary{color:#3b3278;background:#f7f4ff;border:1px solid #6d5dfc33}.mpe-button--secondary:hover{background:#eee9ff}.mpe-engine-box--true{background:linear-gradient(135deg,#0ea5e914,#fffffff2);border-color:#0ea5e940}.mpe-engine-warning{color:#7c3aed;margin-top:10px;font-size:11px;line-height:1.4;display:block}.mpe-workspace{min-width:0;grid-template-columns:var(--mpe-left-panel-width,318px) minmax(0, 1fr) var(--mpe-right-panel-width,330px)!important}.mpe-tool-sidebar{padding:12px!important}.mpe-tool-sidebar__head-actions{align-items:center;gap:6px;display:inline-flex}.mpe-side-collapse,.mpe-inspector-collapse{width:32px;height:32px;color:var(--mpe-primary-dark);cursor:pointer;background:#ffffffd1;border:1px solid #6d5dfc29;border-radius:11px;place-items:center;font-weight:950;display:grid}.mpe-side-collapse:hover,.mpe-inspector-collapse:hover{border-color:#6d5dfc6b;box-shadow:0 10px 22px #35298d1f}.mpe-side-tool__copy strong{font-size:12px!important}.mpe-side-tool__copy small{font-size:10px!important;line-height:1.2!important}.mpe-pro-status{border-radius:15px!important;margin-bottom:10px!important;padding:10px!important}.mpe-tool-tabs button{min-height:48px!important}.mpe-tool-sidebar--collapsed{padding:10px 8px!important}.mpe-tool-sidebar--collapsed .mpe-tool-sidebar__head{justify-content:center;padding:4px 0}.mpe-tool-sidebar--collapsed .mpe-tool-sidebar__head>div,.mpe-tool-sidebar--collapsed .mpe-license-dot,.mpe-tool-sidebar--collapsed .mpe-tool-tabs,.mpe-tool-sidebar--collapsed .mpe-tool-group__title,.mpe-tool-sidebar--collapsed .mpe-side-tool__copy,.mpe-tool-sidebar--collapsed .mpe-side-tool em,.mpe-tool-sidebar--collapsed .mpe-side-tool b,.mpe-tool-sidebar--collapsed .mpe-sidebar-input,.mpe-tool-sidebar--collapsed .mpe-pro-status,.mpe-tool-sidebar--collapsed .mpe-pro-action-grid,.mpe-tool-sidebar--collapsed .mpe-pro-help{display:none!important}.mpe-tool-sidebar--collapsed .mpe-tool-sidebar__body{padding:0;overflow:hidden}.mpe-tool-sidebar--collapsed .mpe-side-tool{justify-items:center;grid-template-columns:1fr!important;width:40px!important;height:40px!important;min-height:40px!important;margin:0 auto 7px!important;padding:3px!important}.mpe-tool-sidebar--collapsed .mpe-side-tool__icon{width:32px!important;height:32px!important}.mpe-inspector-sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffc7;border-left:1px solid #6d5dfc1f;flex-direction:column;min-width:0;min-height:0;padding:12px;display:flex;position:relative;overflow:hidden}.mpe-inspector-sidebar--collapsed{align-items:center;padding:10px 8px}.mpe-inspector-resizer{cursor:ew-resize;z-index:3;width:8px;height:100%;position:absolute;top:0;left:-4px}.mpe-inspector-resizer:hover{background:#6d5dfc1f}.mpe-inspector-collapse{align-self:flex-end;margin-bottom:8px}.mpe-inspector-rail{gap:8px;margin-top:44px;display:grid}.mpe-inspector-rail button{width:38px;height:38px;color:var(--mpe-primary-dark);cursor:pointer;background:#ffffffdb;border:1px solid #6d5dfc29;border-radius:13px;font-weight:950}.mpe-true-edit-inline{z-index:12;background:#fffffffa;border-radius:4px;position:absolute;box-shadow:0 0 0 2px #6d5dfc52,0 10px 24px #1e18502e}.mpe-true-edit-inline textarea{resize:both;color:#111827;background:#fffffffa;border:0;outline:0;width:100%;min-height:100%;margin:0;padding:0 2px;font-weight:500;line-height:1.05;display:block;overflow:hidden}.mpe-true-edit-inline span{color:#fff;white-space:nowrap;background:#28245f;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;position:absolute;top:calc(100% + 5px);left:0}.mpe-true-edit-inline--busy textarea{opacity:.58;cursor:progress}@media (width<=1180px){.mpe-workspace{grid-template-columns:var(--mpe-left-panel-width,280px) minmax(0, 1fr) var(--mpe-right-panel-width,290px)!important}}@media (width<=860px){.mpe-workspace{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:1fr!important}.mpe-inspector-sidebar{border-top:1px solid #6d5dfc1f;border-left:0;max-height:260px}}.mpe-workspace{grid-template-columns:var(--mpe-left-panel-width,340px) minmax(0, 1fr)!important}.mpe-workspace--with-inspector{grid-template-columns:var(--mpe-left-panel-width,340px) minmax(0, 1fr) var(--mpe-right-panel-width,330px)!important}.mpe-tool-sidebar{gap:8px!important;padding:9px 10px!important}.mpe-tool-sidebar__head{padding:4px 2px 0!important}.mpe-tool-tabs button{min-height:39px!important;padding:7px 10px!important}.mpe-pro-status{margin-bottom:7px!important;padding:8px 9px!important}.mpe-side-tool{border-radius:12px!important;grid-template-columns:30px minmax(0,1fr) auto!important;gap:7px!important;min-height:42px!important;padding:6px 7px!important}.mpe-side-tool__icon{border-radius:10px!important;width:30px!important;height:30px!important}.mpe-side-tool__copy strong{font-size:11.5px!important;line-height:1.1!important}.mpe-side-tool__copy small{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;font-size:9.5px!important;line-height:1.14!important}.mpe-side-tool em,.mpe-side-tool b{padding:2px 6px!important;font-size:9px!important}.mpe-tool-group{gap:6px!important;margin-bottom:8px!important}.mpe-tool-group__title{margin:4px 0 5px!important;font-size:9.5px!important}.mpe-tool-sidebar__body{gap:8px!important;padding-right:4px!important}.mpe-stage{min-width:0;padding:24px!important}.mpe-inspector-sidebar{z-index:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffd1;border-left:1px solid #6d5dfc1f;min-width:0;min-height:0;padding:12px;display:block;overflow:hidden;position:relative!important}.mpe-inspector-sidebar .mpe-floating-inspector{background:#fffffff0;height:auto;max-height:calc(100vh - 170px);overflow:auto;width:100%!important;max-width:none!important;box-shadow:none!important;position:static!important;inset:auto!important}.mpe-annotation--text-replace{border-radius:1px!important}.mpe-annotation--text-replace:not(.mpe-annotation--selected):not(.mpe-annotation--editing){box-shadow:none!important;outline:none!important}.mpe-annotation-replacement,.mpe-annotation-text{font-weight:500!important;line-height:1.02!important}.mpe-annotation-textarea,.mpe-true-edit-inline textarea{font-weight:500!important;line-height:1.02!important;box-shadow:inset 0 0 0 1px #6d5dfc52!important}.mpe-true-edit-inline{z-index:18;background:#fffffffa;border-radius:2px!important}.mpe-true-edit-inline textarea{resize:none!important;padding:0 1px!important;overflow:hidden!important}@media (width<=1180px){.mpe-workspace,.mpe-workspace--with-inspector{grid-template-columns:var(--mpe-left-panel-width,300px) minmax(0, 1fr)!important}.mpe-workspace--with-inspector{grid-template-columns:var(--mpe-left-panel-width,300px) minmax(0, 1fr) minmax(260px, var(--mpe-right-panel-width,300px))!important}}.mpe-top-license{white-space:nowrap;border:1px solid #6d5dfc2e;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 12px;font-size:11px;font-weight:950;line-height:1;display:inline-flex}button.mpe-top-license{cursor:pointer;font-family:inherit}.mpe-top-license--add{color:#4936b7;background:linear-gradient(135deg,#f4f0ff,#fff);box-shadow:0 10px 22px #35298d14}.mpe-top-license--add:hover{border-color:#6d5dfc6b;transform:translateY(-1px);box-shadow:0 16px 28px #35298d24}.mpe-top-license--active{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-license-form{text-align:left;gap:13px;margin-top:12px;display:grid}.mpe-license-form label{color:#31285f;gap:7px;font-size:12px;font-weight:950;display:grid}.mpe-license-form input{color:#16142f;width:100%;min-height:46px;font:inherit;background:#fbfaff;border:1px solid #6d5dfc33;border-radius:15px;outline:none;padding:0 14px;font-size:13px}.mpe-license-form input:focus{border-color:#6d5dfcb3;box-shadow:0 0 0 4px #6d5dfc1f}.mpe-license-form small{color:#b91c1c;line-height:1.4;margin:0!important}.mpe-license-form small.mpe-license-form__ok{color:#166534}.mpe-license-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;margin-top:4px;display:flex}.mpe-license-actions .mpe-button{min-height:40px}@media (width<=720px){.mpe-top-license{width:100%}.mpe-license-actions{flex-direction:column;align-items:stretch}}
1
+ :root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.mpe-root{--mpe-primary:#6d5dfc;--mpe-primary-dark:#28245f;--mpe-primary-soft:#f1efff;--mpe-background:#f6f3ff;--mpe-surface:#fff;--mpe-border:#e4def8;--mpe-text:#16142f;--mpe-muted:#746f91;--mpe-shadow:0 24px 70px #32238c2e;background:radial-gradient(circle at top left, #8168ff29, transparent 28%), linear-gradient(135deg, #fbf9ff 0%, var(--mpe-background) 42%, #eeeaff 100%);color:var(--mpe-text);box-shadow:var(--mpe-shadow);border:1px solid #6d5dfc24;border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.mpe-root *{box-sizing:border-box}.mpe-toolbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;background:#ffffffdb;border-bottom:1px solid #6d5dfc21;align-items:center;gap:14px;min-height:78px;padding:12px 14px;display:flex;position:relative}.mpe-toolbar__brand{align-items:center;gap:11px;min-width:210px;padding-right:4px;display:flex}.mpe-toolbar__logo{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#7c5cff,#382d8e);border-radius:14px;place-items:center;width:42px;height:42px;font-size:12px;font-weight:900;display:grid;box-shadow:0 14px 30px #5c4acf3d}.mpe-toolbar__brand strong,.mpe-toolbar__brand small{display:block}.mpe-toolbar__brand strong{letter-spacing:-.01em;font-size:14px}.mpe-toolbar__brand small{max-width:280px;color:var(--mpe-muted);margin-top:2px;font-size:11px;line-height:1.35}.mpe-toolbar__section{align-items:center;gap:7px;min-width:0;display:flex}.mpe-toolbar__section--view{background:#f6f3ffb8;border:1px solid #6d5dfc24;border-radius:18px;padding:8px}.mpe-toolbar__section--edit{scrollbar-width:thin;flex:1;justify-content:center;overflow-x:auto}.mpe-toolbar__section--actions{margin-left:auto}.mpe-button,.mpe-tool-button,.mpe-icon-button{color:var(--mpe-text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#fff;border:1px solid #6d5dfc29;border-radius:13px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 11px;font-size:12px;font-weight:800;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:inline-flex}.mpe-button:hover:not(:disabled),.mpe-tool-button:hover:not(:disabled),.mpe-icon-button:hover:not(:disabled){border-color:#6d5dfc73;transform:translateY(-1px);box-shadow:0 10px 24px #4d39b41f}.mpe-button:disabled,.mpe-tool-button:disabled,.mpe-icon-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.mpe-button--primary,.mpe-tool-button--active{color:#fff;background:linear-gradient(135deg,#7c5cff,#5140d7);border-color:#0000;box-shadow:0 14px 26px #5c4acf38}.mpe-button--danger{color:#b91c1c;background:#fff7f7;border-color:#dc262629}.mpe-icon-button--ghost{width:32px;min-height:32px;box-shadow:none;background:0 0;border-radius:10px}.mpe-page-chip{text-align:center;min-width:66px;color:var(--mpe-primary-dark);background:#fff;border:1px solid #6d5dfc24;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}.mpe-editor-shell{flex:1;grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;position:relative}.mpe-editor-hint{min-height:40px;color:var(--mpe-muted);text-align:center;background:#ffffff80;border-bottom:1px solid #6d5dfc1a;justify-content:center;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:flex}.mpe-editor-hint strong{color:var(--mpe-primary-dark)}.mpe-stage{background:linear-gradient(90deg,#7a68ff0e 1px,#0000 1px) 0 0/32px 32px,linear-gradient(#7a68ff0e 1px,#0000 1px) 0 0/32px 32px,radial-gradient(circle at 50% 0,#fffffff2,#f4f0ffd9 42%,#e8e2ffe6);justify-content:center;align-items:flex-start;min-height:0;padding:34px;display:flex;overflow:auto}.mpe-page-shell{background:#fff;border-radius:10px;flex:none;position:relative;overflow:hidden;box-shadow:0 28px 80px #1c175240}.mpe-page-canvas{background:#fff;display:block}.mpe-render-badge,.mpe-render-error{z-index:6;border-radius:999px;max-width:calc(100% - 24px);padding:8px 10px;font-size:12px;font-weight:800;position:absolute;top:12px;left:12px}.mpe-render-badge{color:#fff;background:#1f194edb}.mpe-render-error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca}.mpe-annotation-layer{touch-action:none;z-index:3;position:absolute;inset:0;overflow:hidden}.mpe-annotation-layer--text,.mpe-annotation-layer--highlight,.mpe-annotation-layer--image,.mpe-annotation-layer--signature,.mpe-annotation-layer--replaceText{cursor:crosshair}.mpe-annotation-layer--draw{cursor:cell}.mpe-annotation-layer--select{cursor:default}.mpe-text-target{z-index:2;color:#0000;cursor:text;background:#6d5dfc0f;border:1px dashed #6d5dfc6b;border-radius:3px;margin:0;padding:0;position:absolute}.mpe-text-target span{opacity:0;pointer-events:none}.mpe-text-target:hover{background:#6d5dfc2e;border-color:#6d5dfcc7;box-shadow:0 0 0 2px #6d5dfc21}.mpe-annotation{box-sizing:border-box;cursor:move;-webkit-user-select:none;user-select:none;z-index:4;border-radius:4px;position:absolute}.mpe-annotation--selected{box-shadow:0 0 0 4px #6d5dfc26}.mpe-annotation--editing{cursor:text}.mpe-annotation-text,.mpe-annotation-replacement{width:100%;height:100%}.mpe-annotation-text{white-space:pre-wrap;pointer-events:none;justify-content:flex-start;align-items:flex-start;font-weight:650;line-height:1.15;display:flex;overflow:hidden}.mpe-annotation-highlight{pointer-events:none;border-radius:4px;width:100%;height:100%}.mpe-annotation-image{object-fit:contain;pointer-events:none;width:100%;height:100%}.mpe-annotation-ink{pointer-events:none;position:absolute;inset:0;overflow:visible}.mpe-annotation-textarea{resize:none;width:100%;height:100%;font:inherit;white-space:pre-wrap;pointer-events:auto;border:0;border-radius:3px;outline:0;margin:0;padding:2px;font-weight:650;line-height:1.15;display:block;overflow:auto}.mpe-resize-handle{background:var(--mpe-primary);cursor:nwse-resize;border:2px solid #fff;border-radius:999px;width:13px;height:13px;position:absolute;bottom:-7px;right:-7px;box-shadow:0 5px 14px #1e185047}.mpe-floating-inspector{z-index:30;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border:1px solid #6d5dfc29;border-radius:20px;width:min(320px,100% - 36px);padding:14px;position:absolute;top:58px;right:18px;box-shadow:0 22px 60px #23196e2e}.mpe-inspector-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.mpe-inspector-head span,.mpe-inspector-head strong{display:block}.mpe-inspector-head span{color:var(--mpe-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.mpe-inspector-head strong{margin-top:2px;font-size:14px}.mpe-inspector-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mpe-inspector-grid--position{margin-top:10px}.mpe-inspector-field{color:var(--mpe-muted);gap:6px;margin-bottom:10px;font-size:11px;font-weight:900;display:grid}.mpe-inspector-field--full{grid-column:1/-1}.mpe-inspector-field input,.mpe-inspector-field textarea{border:1px solid var(--mpe-border);width:100%;font:inherit;color:var(--mpe-text);background:#fff;border-radius:12px;outline:none;padding:9px 10px;font-size:13px}.mpe-inspector-field input:focus,.mpe-inspector-field textarea:focus{border-color:#6d5dfcb3;box-shadow:0 0 0 3px #6d5dfc1f}.mpe-inspector-field textarea{resize:vertical}.mpe-original-text-note{background:var(--mpe-primary-soft);color:var(--mpe-muted);border-radius:12px;margin:-2px 0 10px;padding:8px 10px;font-size:11px;line-height:1.35}.mpe-original-text-note span{color:var(--mpe-primary-dark);font-weight:800}.mpe-inspector-preview{object-fit:contain;border:1px solid var(--mpe-border);background:#faf9ff;border-radius:14px;width:100%;max-height:160px;margin-bottom:10px}.mpe-inspector-delete{width:100%;margin-top:10px}.mpe-dev-drawer{z-index:25;background:#fffffff0;border:1px solid #6d5dfc29;border-radius:16px;width:min(420px,100% - 36px);max-height:300px;padding:10px 12px;position:absolute;bottom:18px;left:18px;overflow:auto;box-shadow:0 18px 40px #23196e24}.mpe-dev-drawer summary{cursor:pointer;color:var(--mpe-primary-dark);font-weight:900}.mpe-dev-drawer pre{white-space:pre-wrap;word-break:break-word;font-size:11px}.mpe-empty-state,.mpe-error{text-align:center;background:#fffffff0;border:1px solid #6d5dfc24;border-radius:28px;width:min(620px,100%);margin:70px auto;padding:34px;box-shadow:0 24px 60px #23196e24}.mpe-empty-icon{color:#fff;background:linear-gradient(135deg,#7c5cff,#382d8e);border-radius:22px;place-items:center;width:66px;height:66px;margin:0 auto 16px;font-weight:900;display:grid;box-shadow:0 14px 30px #5c4acf38}.mpe-empty-state h2{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(24px,4vw,34px)}.mpe-empty-state p{max-width:480px;color:var(--mpe-muted);margin:0 auto 18px;line-height:1.58}.mpe-error{color:#b91c1c;background:#fff1f2;border-color:#fecaca}@media (width<=1280px){.mpe-toolbar{flex-wrap:wrap}.mpe-toolbar__brand{min-width:100%}.mpe-toolbar__section--edit{order:3;justify-content:flex-start;width:100%}}@media (width<=780px){.mpe-root{border-radius:18px}.mpe-toolbar{gap:10px}.mpe-toolbar__section--view,.mpe-toolbar__section--actions{width:100%;overflow-x:auto}.mpe-toolbar__section--actions{justify-content:flex-start}.mpe-stage{justify-content:flex-start;padding:16px}.mpe-editor-hint{text-align:left;flex-direction:column;align-items:flex-start}.mpe-floating-inspector{width:auto;top:52px;left:12px;right:12px}}.mpe-root--focus{z-index:9999;width:100vw;box-shadow:none;border:0;border-radius:0;position:fixed;inset:0;height:100vh!important}.mpe-root--focus .mpe-toolbar{min-height:72px}.mpe-root--focus .mpe-stage{padding:26px}.mpe-button--subtle{color:var(--mpe-primary-dark);background:#f7f4ff}.mpe-toolbar__section--edit{scrollbar-width:thin;justify-content:flex-start;padding-bottom:2px}.mpe-pro-tools{border-left:1px solid #6d5dfc29;align-items:center;gap:7px;margin-left:2px;padding-left:8px;display:inline-flex}.mpe-license-pill{color:#6b5ca4;white-space:nowrap;background:#f6f3ffe6;border:1px solid #6d5dfc24;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:7px 10px;font-size:11px;font-weight:950;display:inline-flex}.mpe-license-pill--valid{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-tool-button--pro{position:relative}.mpe-tool-button--locked{color:#8278a7;background:#ffffffa3;border-style:dashed;overflow:hidden}.mpe-tool-button--locked span{filter:blur(.8px);opacity:.6}.mpe-tool-button--locked em{color:#fff;letter-spacing:.03em;background:linear-gradient(135deg,#7c5cff,#5140d7);border-radius:999px;margin-left:2px;padding:1px 6px;font-size:9px;font-style:normal;font-weight:950}.mpe-annotation-layer--watermark,.mpe-annotation-layer--stamp,.mpe-annotation-layer--redaction{cursor:crosshair}.mpe-annotation-watermark,.mpe-annotation-stamp,.mpe-annotation-redaction{pointer-events:none;width:100%;height:100%}.mpe-annotation-watermark{letter-spacing:.08em;text-transform:uppercase;transform-origin:50%;white-space:nowrap;justify-content:center;align-items:center;font-weight:950;display:flex}.mpe-annotation-stamp{letter-spacing:.1em;text-transform:uppercase;border:2px solid;border-radius:12px;place-items:center;font-weight:950;display:grid}.mpe-annotation-redaction{border-radius:2px}.mpe-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#16142f61;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.mpe-root--focus .mpe-modal-backdrop{position:fixed}.mpe-modal-card{text-align:center;background:#fffffffa;border:1px solid #6d5dfc29;border-radius:26px;width:min(520px,100%);padding:26px;box-shadow:0 30px 90px #1a145a42}.mpe-modal-icon{color:#fff;background:linear-gradient(135deg,#7c5cff,#382d8e);border-radius:20px;place-items:center;width:58px;height:58px;margin:0 auto 14px;font-weight:950;display:grid}.mpe-modal-card h3{color:var(--mpe-text);letter-spacing:-.03em;margin:0 0 8px;font-size:22px}.mpe-modal-card p{max-width:430px;color:var(--mpe-muted);margin:0 auto 14px;line-height:1.55}.mpe-modal-card code{color:#28245f;word-break:break-all;background:#f6f3ff;border-radius:14px;margin:12px 0 16px;padding:12px;font-size:12px;display:block}.mpe-modal-card small{color:#b91c1c;margin:-6px 0 14px;display:block}@media (width<=1280px){.mpe-pro-tools{border-left:0;padding-left:0}}.mpe-toolbar{flex-wrap:nowrap}.mpe-toolbar__section--view{max-width:min(720px,52vw);margin-left:auto;overflow-x:auto}.mpe-toolbar__section--actions{flex:none}.mpe-workspace{grid-template-columns:286px minmax(0,1fr);min-height:0;display:grid;position:relative}.mpe-tool-sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:radial-gradient(circle at 0 0,#7c5cff21,#0000 34%),#ffffffc7;border-right:1px solid #6d5dfc1f;grid-template-rows:auto auto minmax(0,1fr);gap:12px;min-height:0;padding:14px;display:grid;overflow:hidden}.mpe-tool-sidebar__head{justify-content:space-between;align-items:center;gap:10px;padding:8px 4px 2px;display:flex}.mpe-tool-sidebar__head span,.mpe-tool-sidebar__head strong{display:block}.mpe-tool-sidebar__head>div>span{color:var(--mpe-primary);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:950}.mpe-tool-sidebar__head strong{color:var(--mpe-text);letter-spacing:-.02em;margin-top:3px;font-size:14px}.mpe-license-dot{text-align:center;color:#6b5ca4;background:#f6f3ff;border:1px solid #6d5dfc29;border-radius:999px;min-width:48px;padding:6px 9px;font-size:11px;font-weight:950}.mpe-license-dot--valid{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-tool-tabs{background:#f6f3ffdb;border:1px solid #6d5dfc1f;border-radius:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px;display:grid}.mpe-tool-tabs button{color:#675f87;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;min-height:52px;padding:8px 10px;font-weight:950;transition:background .14s,box-shadow .14s,color .14s,transform .14s}.mpe-tool-tabs button:hover,.mpe-tool-tabs button.active{color:var(--mpe-primary-dark);background:#fff;transform:translateY(-1px);box-shadow:0 10px 24px #35298d1c}.mpe-tool-tabs small{color:var(--mpe-muted);margin-top:2px;font-size:10px;font-weight:800;display:block}.mpe-tool-sidebar__body{scrollbar-width:thin;min-height:0;padding:2px 2px 16px;overflow-y:auto}.mpe-tool-group{gap:8px;margin-bottom:14px;display:grid}.mpe-tool-group__title{color:#706a8f;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:6px;padding:0 3px;font-size:10px;font-weight:950;display:inline-flex}.mpe-side-tool{width:100%;min-height:62px;color:var(--mpe-text);cursor:pointer;text-align:left;background:#ffffffd6;border:1px solid #6d5dfc24;border-radius:17px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:grid;position:relative}.mpe-side-tool:hover{border-color:#6d5dfc6b;transform:translateY(-1px);box-shadow:0 14px 30px #35298d1f}.mpe-side-tool--active{background:linear-gradient(135deg,#fffffffa,#f6f3fffa);border-color:#6d5dfc94;box-shadow:0 16px 34px #35298d24}.mpe-side-tool__icon{width:38px;height:38px;color:var(--mpe-primary);background:#6d5dfc1a;border-radius:13px;place-items:center;display:grid}.mpe-side-tool--active .mpe-side-tool__icon{color:#fff;background:linear-gradient(135deg,#7c5cff,#5140d7)}.mpe-side-tool__copy{min-width:0;display:block}.mpe-side-tool__copy strong,.mpe-side-tool__copy small{display:block}.mpe-side-tool__copy strong{color:var(--mpe-text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:950;overflow:hidden}.mpe-side-tool__copy small{color:var(--mpe-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:10.5px;line-height:1.25;display:-webkit-box;overflow:hidden}.mpe-side-tool em,.mpe-side-tool b{letter-spacing:.02em;border-radius:999px;align-self:start;padding:2px 7px;font-size:9px;font-style:normal;font-weight:950}.mpe-side-tool em{color:#fff;background:linear-gradient(135deg,#f97316,#db2777)}.mpe-side-tool b{color:#fff;background:linear-gradient(135deg,#7c5cff,#5140d7)}.mpe-side-tool--locked{background:#ffffff8c;border-style:dashed}.mpe-side-tool--locked .mpe-side-tool__copy{filter:blur(.75px);opacity:.56}.mpe-side-tool--locked .mpe-side-tool__icon{color:#7b72a3;background:#6d5dfc14}.mpe-sidebar-input{color:var(--mpe-muted);background:#ffffffb8;border:1px solid #6d5dfc1f;border-radius:18px;gap:7px;padding:12px;font-size:11px;font-weight:950;display:grid}.mpe-sidebar-input input{width:100%;color:var(--mpe-text);background:#fff;border:1px solid #6d5dfc24;border-radius:13px;outline:none;padding:10px 11px;font-weight:800}.mpe-sidebar-input input:focus{border-color:#6d5dfc9e;box-shadow:0 0 0 3px #6d5dfc1f}.mpe-pro-status{color:#6b5ca4;background:#f6f3ffe6;border:1px dashed #6d5dfc38;border-radius:18px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px;display:flex}.mpe-pro-status svg{color:var(--mpe-primary);flex:none;margin-top:1px}.mpe-pro-status strong,.mpe-pro-status small{display:block}.mpe-pro-status strong{color:var(--mpe-primary-dark);font-size:12px}.mpe-pro-status small{margin-top:2px;font-size:10.5px;line-height:1.35}.mpe-pro-status--active{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-pro-status--active svg,.mpe-pro-status--active strong{color:#166534}.mpe-workspace .mpe-stage{min-width:0}@media (width<=1280px){.mpe-toolbar{flex-wrap:wrap}.mpe-toolbar__brand{min-width:100%}.mpe-toolbar__section--view{max-width:100%;margin-left:0}.mpe-workspace{grid-template-columns:254px minmax(0,1fr)}}@media (width<=860px){.mpe-workspace{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.mpe-tool-sidebar{border-bottom:1px solid #6d5dfc1f;border-right:0;max-height:310px}.mpe-tool-sidebar__body{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}}.mpe-side-tool{grid-template-columns:42px minmax(0,1fr) auto;min-height:68px;padding:12px}.mpe-side-tool__icon{width:42px;height:42px}.mpe-side-tool__copy small{-webkit-line-clamp:2;font-size:11px}.mpe-pro-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mpe-pro-action{min-height:40px;color:var(--mpe-primary-dark);cursor:pointer;background:#ffffffdb;border:1px solid #6d5dfc24;border-radius:13px;justify-content:center;align-items:center;gap:7px;font-size:11px;font-weight:900;transition:transform .14s,border-color .14s,box-shadow .14s;display:inline-flex}.mpe-pro-action:hover:not(:disabled){border-color:#6d5dfc6b;transform:translateY(-1px);box-shadow:0 12px 24px #35298d1f}.mpe-pro-action:disabled{opacity:.5;cursor:not-allowed}.mpe-pro-help{color:var(--mpe-muted);margin-top:6px;font-size:10.5px;line-height:1.35;display:block}.mpe-annotation-text{font-weight:500;line-height:1.05}.mpe-annotation-replacement{border-radius:1px;padding:0 1px;overflow:hidden}.mpe-annotation--text-replace.mpe-annotation--editing{z-index:8}.mpe-annotation--text-replace:not(.mpe-annotation--selected){box-shadow:none}.mpe-annotation-textarea{font-weight:500;line-height:1.05;box-shadow:inset 0 0 0 1px #6d5dfc6b}.mpe-annotation-crop{width:100%;height:100%;color:var(--mpe-primary);pointer-events:none;border:2px dashed;place-items:center;display:grid}.mpe-annotation-crop span{color:var(--mpe-primary-dark);background:#ffffffeb;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950}.mpe-annotation-form-text{pointer-events:none;border:1.5px solid;border-radius:5px;width:100%;height:100%;padding:6px 8px;font-weight:750;overflow:hidden}.mpe-annotation-form-checkbox{pointer-events:none;border:1.8px solid;border-radius:4px;place-items:center;width:100%;height:100%;font-weight:950;display:grid}.mpe-inspector-check{border:1px solid var(--mpe-border);color:var(--mpe-text);background:#fff;border-radius:12px;align-items:center;gap:8px;margin-bottom:10px;padding:9px 10px;font-size:12px;font-weight:850;display:flex}@media (width<=1280px){.mpe-workspace{grid-template-columns:330px minmax(0,1fr)}}@media (width<=860px){.mpe-workspace{grid-template-columns:1fr}}.mpe-annotation-layer--crop,.mpe-annotation-layer--formText,.mpe-annotation-layer--formCheckbox{cursor:crosshair}.mpe-engine-box{background:linear-gradient(135deg,#6d5dfc14,#ffffffeb);border:1px solid #6d5dfc38;border-radius:16px;gap:10px;padding:12px;display:grid}.mpe-engine-box p{color:#5f5a7c;margin:0;font-size:12px;line-height:1.45}.mpe-engine-box small{color:#8b5cf6;font-size:11px;line-height:1.35}.mpe-engine-apply{justify-content:center;width:100%}.mpe-annotation-layer--trueTextEdit{cursor:crosshair}.mpe-text-target--true{background:#0ea5e917;border-color:#0ea5e98c}.mpe-text-target--true:hover{background:#0ea5e933;border-color:#0ea5e9f2;box-shadow:0 0 0 2px #0ea5e929}.mpe-button--secondary{color:#3b3278;background:#f7f4ff;border:1px solid #6d5dfc33}.mpe-button--secondary:hover{background:#eee9ff}.mpe-engine-box--true{background:linear-gradient(135deg,#0ea5e914,#fffffff2);border-color:#0ea5e940}.mpe-engine-warning{color:#7c3aed;margin-top:10px;font-size:11px;line-height:1.4;display:block}.mpe-workspace{min-width:0;grid-template-columns:var(--mpe-left-panel-width,318px) minmax(0, 1fr) var(--mpe-right-panel-width,330px)!important}.mpe-tool-sidebar{padding:12px!important}.mpe-tool-sidebar__head-actions{align-items:center;gap:6px;display:inline-flex}.mpe-side-collapse,.mpe-inspector-collapse{width:32px;height:32px;color:var(--mpe-primary-dark);cursor:pointer;background:#ffffffd1;border:1px solid #6d5dfc29;border-radius:11px;place-items:center;font-weight:950;display:grid}.mpe-side-collapse:hover,.mpe-inspector-collapse:hover{border-color:#6d5dfc6b;box-shadow:0 10px 22px #35298d1f}.mpe-side-tool__copy strong{font-size:12px!important}.mpe-side-tool__copy small{font-size:10px!important;line-height:1.2!important}.mpe-pro-status{border-radius:15px!important;margin-bottom:10px!important;padding:10px!important}.mpe-tool-tabs button{min-height:48px!important}.mpe-tool-sidebar--collapsed{padding:10px 8px!important}.mpe-tool-sidebar--collapsed .mpe-tool-sidebar__head{justify-content:center;padding:4px 0}.mpe-tool-sidebar--collapsed .mpe-tool-sidebar__head>div,.mpe-tool-sidebar--collapsed .mpe-license-dot,.mpe-tool-sidebar--collapsed .mpe-tool-tabs,.mpe-tool-sidebar--collapsed .mpe-tool-group__title,.mpe-tool-sidebar--collapsed .mpe-side-tool__copy,.mpe-tool-sidebar--collapsed .mpe-side-tool em,.mpe-tool-sidebar--collapsed .mpe-side-tool b,.mpe-tool-sidebar--collapsed .mpe-sidebar-input,.mpe-tool-sidebar--collapsed .mpe-pro-status,.mpe-tool-sidebar--collapsed .mpe-pro-action-grid,.mpe-tool-sidebar--collapsed .mpe-pro-help{display:none!important}.mpe-tool-sidebar--collapsed .mpe-tool-sidebar__body{padding:0;overflow:hidden}.mpe-tool-sidebar--collapsed .mpe-side-tool{justify-items:center;grid-template-columns:1fr!important;width:40px!important;height:40px!important;min-height:40px!important;margin:0 auto 7px!important;padding:3px!important}.mpe-tool-sidebar--collapsed .mpe-side-tool__icon{width:32px!important;height:32px!important}.mpe-inspector-sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffc7;border-left:1px solid #6d5dfc1f;flex-direction:column;min-width:0;min-height:0;padding:12px;display:flex;position:relative;overflow:hidden}.mpe-inspector-sidebar--collapsed{align-items:center;padding:10px 8px}.mpe-inspector-resizer{cursor:ew-resize;z-index:3;width:8px;height:100%;position:absolute;top:0;left:-4px}.mpe-inspector-resizer:hover{background:#6d5dfc1f}.mpe-inspector-collapse{align-self:flex-end;margin-bottom:8px}.mpe-inspector-rail{gap:8px;margin-top:44px;display:grid}.mpe-inspector-rail button{width:38px;height:38px;color:var(--mpe-primary-dark);cursor:pointer;background:#ffffffdb;border:1px solid #6d5dfc29;border-radius:13px;font-weight:950}.mpe-true-edit-inline{z-index:12;background:#fffffffa;border-radius:4px;position:absolute;box-shadow:0 0 0 2px #6d5dfc52,0 10px 24px #1e18502e}.mpe-true-edit-inline textarea{resize:both;color:#111827;background:#fffffffa;border:0;outline:0;width:100%;min-height:100%;margin:0;padding:0 2px;font-weight:500;line-height:1.05;display:block;overflow:hidden}.mpe-true-edit-inline span{color:#fff;white-space:nowrap;background:#28245f;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;position:absolute;top:calc(100% + 5px);left:0}.mpe-true-edit-inline--busy textarea{opacity:.58;cursor:progress}@media (width<=1180px){.mpe-workspace{grid-template-columns:var(--mpe-left-panel-width,280px) minmax(0, 1fr) var(--mpe-right-panel-width,290px)!important}}@media (width<=860px){.mpe-workspace{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:1fr!important}.mpe-inspector-sidebar{border-top:1px solid #6d5dfc1f;border-left:0;max-height:260px}}.mpe-workspace{grid-template-columns:var(--mpe-left-panel-width,340px) minmax(0, 1fr)!important}.mpe-workspace--with-inspector{grid-template-columns:var(--mpe-left-panel-width,340px) minmax(0, 1fr) var(--mpe-right-panel-width,330px)!important}.mpe-tool-sidebar{gap:8px!important;padding:9px 10px!important}.mpe-tool-sidebar__head{padding:4px 2px 0!important}.mpe-tool-tabs button{min-height:39px!important;padding:7px 10px!important}.mpe-pro-status{margin-bottom:7px!important;padding:8px 9px!important}.mpe-side-tool{border-radius:12px!important;grid-template-columns:30px minmax(0,1fr) auto!important;gap:7px!important;min-height:42px!important;padding:6px 7px!important}.mpe-side-tool__icon{border-radius:10px!important;width:30px!important;height:30px!important}.mpe-side-tool__copy strong{font-size:11.5px!important;line-height:1.1!important}.mpe-side-tool__copy small{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;font-size:9.5px!important;line-height:1.14!important}.mpe-side-tool em,.mpe-side-tool b{padding:2px 6px!important;font-size:9px!important}.mpe-tool-group{gap:6px!important;margin-bottom:8px!important}.mpe-tool-group__title{margin:4px 0 5px!important;font-size:9.5px!important}.mpe-tool-sidebar__body{gap:8px!important;padding-right:4px!important}.mpe-stage{min-width:0;padding:24px!important}.mpe-inspector-sidebar{z-index:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffd1;border-left:1px solid #6d5dfc1f;min-width:0;min-height:0;padding:12px;display:block;overflow:hidden;position:relative!important}.mpe-inspector-sidebar .mpe-floating-inspector{background:#fffffff0;height:auto;max-height:calc(100vh - 170px);overflow:auto;width:100%!important;max-width:none!important;box-shadow:none!important;position:static!important;inset:auto!important}.mpe-annotation--text-replace{border-radius:1px!important}.mpe-annotation--text-replace:not(.mpe-annotation--selected):not(.mpe-annotation--editing){box-shadow:none!important;outline:none!important}.mpe-annotation-replacement,.mpe-annotation-text{font-weight:500!important;line-height:1.02!important}.mpe-annotation-textarea,.mpe-true-edit-inline textarea{font-weight:500!important;line-height:1.02!important;box-shadow:inset 0 0 0 1px #6d5dfc52!important}.mpe-true-edit-inline{z-index:18;background:#fffffffa;border-radius:2px!important}.mpe-true-edit-inline textarea{resize:none!important;padding:0 1px!important;overflow:hidden!important}@media (width<=1180px){.mpe-workspace,.mpe-workspace--with-inspector{grid-template-columns:var(--mpe-left-panel-width,300px) minmax(0, 1fr)!important}.mpe-workspace--with-inspector{grid-template-columns:var(--mpe-left-panel-width,300px) minmax(0, 1fr) minmax(260px, var(--mpe-right-panel-width,300px))!important}}.mpe-top-license{white-space:nowrap;border:1px solid #6d5dfc2e;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 12px;font-size:11px;font-weight:950;line-height:1;display:inline-flex}button.mpe-top-license{cursor:pointer;font-family:inherit}.mpe-top-license--add{color:#4936b7;background:linear-gradient(135deg,#f4f0ff,#fff);box-shadow:0 10px 22px #35298d14}.mpe-top-license--add:hover{border-color:#6d5dfc6b;transform:translateY(-1px);box-shadow:0 16px 28px #35298d24}.mpe-top-license--active{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.mpe-license-form{text-align:left;gap:13px;margin-top:12px;display:grid}.mpe-license-form label{color:#31285f;gap:7px;font-size:12px;font-weight:950;display:grid}.mpe-license-form input{color:#16142f;width:100%;min-height:46px;font:inherit;background:#fbfaff;border:1px solid #6d5dfc33;border-radius:15px;outline:none;padding:0 14px;font-size:13px}.mpe-license-form input:focus{border-color:#6d5dfcb3;box-shadow:0 0 0 4px #6d5dfc1f}.mpe-license-form small{color:#b91c1c;line-height:1.4;margin:0!important}.mpe-license-form small.mpe-license-form__ok{color:#166534}.mpe-license-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;margin-top:4px;display:flex}.mpe-license-actions .mpe-button{min-height:40px}@media (width<=720px){.mpe-top-license{width:100%}.mpe-license-actions{flex-direction:column;align-items:stretch}}.mpe-toolbar__search{min-width:210px;height:38px;color:var(--mpe-muted);background:#ffffffe0;border:1px solid #6d5dfc24;border-radius:14px;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.mpe-toolbar__search input{width:120px;min-width:92px;color:var(--mpe-text);background:0 0;border:0;outline:none;font-size:12px;font-weight:800}.mpe-toolbar__search span{min-width:38px;color:var(--mpe-muted);text-align:center;font-size:10px;font-weight:950}.mpe-toolbar__search button{width:24px;height:24px;color:var(--mpe-primary-dark);cursor:pointer;background:#6d5dfc17;border:0;border-radius:8px;font-weight:950}.mpe-toolbar__search button:disabled{opacity:.35;cursor:not-allowed}.mpe-icon-button--active{background:var(--mpe-primary-soft);color:var(--mpe-primary-dark);border-color:#6d5dfc5c}.mpe-stage{gap:22px}.mpe-thumbnail-panel{background:#ffffffd6;border:1px solid #6d5dfc24;border-radius:20px;flex:0 0 132px;grid-template-rows:auto minmax(0,1fr);width:132px;max-height:calc(100vh - 210px);padding:12px;display:grid;overflow:hidden;box-shadow:0 20px 44px #35298d1f}.mpe-thumbnail-panel__head strong,.mpe-thumbnail-panel__head small{display:block}.mpe-thumbnail-panel__head strong{font-size:12px;font-weight:950}.mpe-thumbnail-panel__head small{color:var(--mpe-muted);margin-top:2px;font-size:10px;font-weight:800}.mpe-thumbnail-list{scrollbar-width:thin;gap:10px;min-height:0;padding:12px 2px 2px;display:grid;overflow-y:auto}.mpe-thumbnail-card{cursor:pointer;color:var(--mpe-text);background:#fff;border:1px solid #6d5dfc24;border-radius:14px;justify-items:center;gap:6px;padding:8px;transition:transform .14s,border-color .14s,box-shadow .14s;display:grid}.mpe-thumbnail-card:hover,.mpe-thumbnail-card--active{border-color:#6d5dfc85;transform:translateY(-1px);box-shadow:0 12px 24px #35298d1f}.mpe-thumbnail-paper{width:54px;height:72px;color:var(--mpe-primary-dark);background:linear-gradient(#fff,#f3efff);border:1px solid #6d5dfc21;border-radius:7px;place-items:center;font-size:16px;font-weight:950;display:grid}.mpe-thumbnail-card small{color:var(--mpe-muted);font-size:10px;font-weight:900}.mpe-search-match{z-index:3;pointer-events:none;background:#ffd60a6b;border-radius:3px;position:absolute;box-shadow:0 0 0 1px #f59e0b59}.mpe-search-match--active{background:#f9731661;box-shadow:0 0 0 2px #f97316c7}.mpe-annotation-markup{width:100%;height:100%;position:relative}.mpe-annotation-markup:after{content:"";height:var(--mpe-markup-stroke,2px);background:currentColor;border-radius:999px;position:absolute;left:0;right:0}.mpe-annotation-markup--underline:after{bottom:2px}.mpe-annotation-markup--strikeout:after{top:50%;transform:translateY(-50%)}.mpe-annotation-shape{border-style:solid;width:100%;height:100%}.mpe-annotation-shape--ellipse{border-radius:999px}.mpe-annotation-line{display:block;overflow:visible}.mpe-annotation-sticky-note{white-space:pre-wrap;border:1px solid;border-radius:12px;width:100%;height:100%;padding:10px;font-weight:800;line-height:1.35;overflow:hidden;box-shadow:inset 0 -18px 28px #92400e14}.mpe-tool-sidebar .mpe-side-tool{border-radius:15px;grid-template-columns:34px minmax(0,1fr) auto;min-height:54px;padding:8px}.mpe-tool-sidebar .mpe-side-tool__icon{border-radius:11px;width:34px;height:34px}@media (width<=1160px){.mpe-toolbar__search{order:4;width:100%}.mpe-toolbar{flex-wrap:wrap}}.mpe-root{border-radius:0;height:100%}.mpe-toolbar{flex-wrap:nowrap!important;gap:10px!important;min-height:62px!important;padding:9px 12px!important}.mpe-toolbar__brand{max-width:240px;gap:9px!important;min-width:176px!important}.mpe-toolbar__logo{border:1px solid #6d5dfc29;overflow:hidden;background:#fff!important;border-radius:12px!important;width:38px!important;height:38px!important;box-shadow:0 10px 22px #35298d1f!important}.mpe-toolbar__logo img{object-fit:contain;width:100%;height:100%;display:block}.mpe-toolbar__brand strong{font-size:13px!important}.mpe-toolbar__brand small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:170px!important;font-size:10px!important}.mpe-toolbar__section--view{flex:0 auto;gap:5px!important;max-width:none!important;margin-left:0!important;padding:5px!important}.mpe-toolbar__search{border-radius:12px!important;min-width:170px!important;height:34px!important}.mpe-toolbar__search input{width:84px!important}.mpe-toolbar__section--actions{gap:5px!important}.mpe-button,.mpe-tool-button,.mpe-icon-button{border-radius:11px!important;min-height:34px!important;padding:7px 9px!important}.mpe-icon-button{width:34px!important;padding:0!important}.mpe-page-chip{min-width:54px!important;padding:7px 8px!important;font-size:11px!important}.mpe-button--save{padding-inline:11px!important}.mpe-workspace{height:100%}.mpe-editor-shell{min-height:0}.mpe-editor-hint{min-height:32px!important;padding:6px 12px!important}.mpe-modal-backdrop{width:100vw;height:100vh;z-index:2147483000!important;position:fixed!important;inset:0!important}.mpe-pro-action--file{color:var(--mpe-text);text-decoration:none}.mpe-pro-action--disabled{opacity:.45;cursor:not-allowed}@media (width<=1180px){.mpe-toolbar{overflow-x:auto}.mpe-toolbar__brand{z-index:1;background:#fffffff0;border-radius:14px;padding:4px 6px 4px 0;position:sticky;left:0}}.mpe-annotation-layer--trueTextEdit .mpe-text-target{box-shadow:none;background:0 0;border-color:#0000}.mpe-annotation-layer--trueTextEdit .mpe-text-target:hover,.mpe-annotation-layer--trueTextEdit .mpe-text-target:focus-visible{background:#6d5dfc1f;border-color:#6d5dfcd9;box-shadow:0 0 0 2px #6d5dfc24}.mpe-true-edit-inline{min-width:96px;min-height:24px;z-index:80!important}.mpe-true-edit-inline textarea{cursor:text;min-height:24px}
2
2
  /*$vite$:1*/