@eddyter/angular 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,477 @@
1
+ # @eddyter/angular
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@eddyter/angular.svg)](https://www.npmjs.com/package/@eddyter/angular)
4
+ [![npm downloads](https://img.shields.io/npm/dw/@eddyter/angular.svg)](https://www.npmjs.com/package/@eddyter/angular)
5
+ [![Bundle Size](https://img.shields.io/bundlephobia/minzip/@eddyter/angular)](https://bundlephobia.com/package/@eddyter/angular)
6
+
7
+ Plug and Play AI Rich Text Editor for Angular — built on [Lexical](https://lexical.dev/) with dark mode support, full reactive forms integration (`ControlValueAccessor`), and API key authentication.
8
+
9
+ This is the **official Angular wrapper** for the Eddyter editor. It exposes the editor as a standalone Angular component (`<eddyter-editor>`) that works seamlessly with `ngModel` and Reactive Forms, while internally calling [`@eddyter/core`](https://www.npmjs.com/package/@eddyter/core) under the hood.
10
+
11
+ ![Eddyter Editor](https://dsckj64r0usqg.cloudfront.net/assets/seo-screen.png)
12
+
13
+ ## Resources
14
+
15
+ - [Docs](https://eddyter.com/docs) — Full API reference and integration guides
16
+ - [What is Eddyter? Why Developers Are Switching to This AI Editor (2026)](https://youtu.be/oNHBa-DImZc) — YouTube
17
+ - [Integrate Eddyter in 30 Minutes Using AI Tools Cursor, Claude, Lovable](https://youtu.be/5lTjRFjUWgs) — YouTube
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install @eddyter/angular
23
+ # or
24
+ yarn add @eddyter/angular
25
+ # or
26
+ pnpm add @eddyter/angular
27
+ ```
28
+
29
+ You'll also need to load the editor stylesheet **once** in your global styles. Add this line to your app's global stylesheet (e.g. `styles.css` or `styles.scss`):
30
+
31
+ ```css
32
+ @import '@eddyter/angular/styles.css';
33
+ ```
34
+
35
+ Or include it via the `styles` array in `angular.json`:
36
+
37
+ ```json
38
+ {
39
+ "styles": [
40
+ "src/styles.css",
41
+ "node_modules/@eddyter/angular/styles.css"
42
+ ]
43
+ }
44
+ ```
45
+
46
+ ### Compatibility
47
+
48
+ | Requirement | Version |
49
+ |-------------|---------|
50
+ | Angular | 17, 18, 19, 20, 21 |
51
+ | Node.js | 18+ |
52
+ | Browsers | Evergreen (Chrome, Edge, Firefox, Safari) |
53
+
54
+ > The wrapper depends on `@eddyter/core`, which bundles React + ReactDOM internally. Your Angular app does **not** need to install or configure React.
55
+
56
+ ## Quick Start
57
+
58
+ ### 1. Get your API key
59
+
60
+ 1. Create an account at [eddyter.com](https://www.eddyter.com/)
61
+ 2. Navigate to [License Keys](https://www.eddyter.com/user/license-key) in your dashboard
62
+ 3. Copy your API key
63
+
64
+ ### 2. Use the component
65
+
66
+ ```ts
67
+ // app.component.ts
68
+ import { Component } from '@angular/core';
69
+ import { FormsModule } from '@angular/forms';
70
+ import { EddyterAngularComponent } from '@eddyter/angular';
71
+
72
+ @Component({
73
+ selector: 'app-root',
74
+ standalone: true,
75
+ imports: [EddyterAngularComponent, FormsModule],
76
+ template: `
77
+ <eddyter-editor
78
+ [(ngModel)]="html"
79
+ [apiKey]="apiKey"
80
+ [user]="currentUser"
81
+ [mentionUserList]="['Alice', 'Bob', 'Charlie']"
82
+ (ready)="onReady()"
83
+ (authError)="onAuthError($event)"
84
+ ></eddyter-editor>
85
+ `,
86
+ })
87
+ export class AppComponent {
88
+ apiKey = 'YOUR_API_KEY';
89
+ html = '<p>Start writing...</p>';
90
+
91
+ currentUser = {
92
+ id: 'user-123',
93
+ name: 'John Doe',
94
+ email: 'john@example.com',
95
+ avatar: 'https://example.com/avatar.jpg',
96
+ };
97
+
98
+ onReady() {
99
+ console.log('Editor ready!');
100
+ }
101
+
102
+ onAuthError(error: string) {
103
+ console.error('Auth failed:', error);
104
+ }
105
+ }
106
+ ```
107
+
108
+ ### Reactive Forms
109
+
110
+ The component implements `ControlValueAccessor`, so it plugs into reactive forms out of the box:
111
+
112
+ ```ts
113
+ import { ReactiveFormsModule, FormControl } from '@angular/forms';
114
+
115
+ @Component({
116
+ standalone: true,
117
+ imports: [EddyterAngularComponent, ReactiveFormsModule],
118
+ template: `
119
+ <eddyter-editor
120
+ [apiKey]="apiKey"
121
+ [formControl]="content"
122
+ ></eddyter-editor>
123
+ `,
124
+ })
125
+ export class EditorPage {
126
+ apiKey = 'YOUR_API_KEY';
127
+ content = new FormControl('<p>Hello!</p>');
128
+ }
129
+ ```
130
+
131
+ ## Features
132
+
133
+ ### Text & Formatting
134
+ - Bold, italic, underline, strikethrough, subscript, superscript
135
+ - Text color and background highlight with color picker
136
+ - 20+ font families with adjustable font sizes
137
+ - Text alignment (left, center, right, justify)
138
+ - Line height and letter spacing controls
139
+
140
+ ### Lists & Structure
141
+ - Bullet lists, numbered lists (decimal, alpha, roman)
142
+ - Interactive checklists with strikethrough
143
+ - Headings (H1-H6), blockquotes
144
+ - Horizontal rules
145
+
146
+ ### Tables
147
+ - Insert/delete rows and columns, merge cells
148
+ - Drag-to-resize columns and rows
149
+ - Header row styling, row striping
150
+ - Right-click context menu for table actions
151
+
152
+ ### Media
153
+ - Image upload with drag-drop and 8-point resize handles
154
+ - Video embed with drag-drop and paste support
155
+ - File attachments (downloadable files)
156
+ - Link insertion with floating editor
157
+ - Automatic link preview on hover
158
+ - Rich embeds for external content (YouTube, etc.)
159
+
160
+ ### AI Features (Premium)
161
+ - AI Chat assistant for content help
162
+ - Smart autocomplete (AI-powered text suggestions)
163
+ - Real-time grammar check and corrections
164
+ - Text enhancement (improve, shorten, expand)
165
+ - Tone adjustment (formal, casual, professional)
166
+ - AI image generation from text prompts
167
+
168
+ ### Advanced
169
+ - Slash commands (`/` for quick formatting)
170
+ - @Mentions with customizable user list
171
+ - Inline comments with bubble UI and sidebar
172
+ - Note panels (info, warning, error, success)
173
+ - Code blocks with syntax highlighting
174
+ - Interactive charts
175
+ - Digital signature capture
176
+ - Voice input / transcription
177
+ - Export to PDF
178
+ - HTML view toggle
179
+ - Drag-and-drop block reordering
180
+ - Markdown shortcuts
181
+
182
+ ### Dark Mode
183
+
184
+ The editor automatically detects your app's theme:
185
+ - Checks for `dark` class on `<html>` or `<body>`
186
+ - Falls back to `prefers-color-scheme: dark` system preference
187
+ - Or set explicitly via `[darkMode]` — changes apply at runtime without remounting.
188
+
189
+ ```html
190
+ <eddyter-editor [apiKey]="apiKey" [darkMode]="isDark"></eddyter-editor>
191
+ ```
192
+
193
+ ### Preview Mode
194
+
195
+ Display saved editor content in read-only mode with interactive features:
196
+
197
+ ```html
198
+ <eddyter-editor
199
+ [apiKey]="apiKey"
200
+ [value]="savedHtml"
201
+ mode="preview"
202
+ containerClass="my-preview-styles"
203
+ (previewClick)="switchToEditMode()"
204
+ ></eddyter-editor>
205
+ ```
206
+
207
+ ## API Reference
208
+
209
+ ### `<eddyter-editor>`
210
+
211
+ The main editor component. Selector: `eddyter-editor`. Standalone component (no `NgModule` required).
212
+
213
+ #### Inputs
214
+
215
+ | Input | Type | Required | Description |
216
+ |-------|------|----------|-------------|
217
+ | `apiKey` | `string` | Yes | Your Eddyter license key |
218
+ | `value` | `string` | No | HTML content. Two-way bind via `[(value)]` or use `[(ngModel)]` / `[formControl]` |
219
+ | `user` | `EddyterCurrentUser` | No | Current user for comments / mentions. Defaults to anonymous |
220
+ | `mode` | `'edit' \| 'preview'` | No | Editor mode (default: `'edit'`) |
221
+ | `darkMode` | `boolean` | No | `true`/`false`. Omit to auto-detect host's `.dark` class |
222
+ | `customVerifyKey` | `(key: string) => Promise<EddyterApiResponse>` | No | Use your own backend to validate the API key |
223
+ | `mentionUserList` | `string[]` | No | Names that appear in `@mention` suggestions |
224
+ | `defaultFontFamilies` | `string[]` | No | Font family names for the font selector |
225
+ | `className` | `string` | No | CSS class applied to the outermost editor wrapper |
226
+ | `containerClass` | `string` | No | CSS class applied to the **preview** container (only used when `mode: 'preview'`) |
227
+ | `contentClass` | `string` | No | CSS class applied to the editable **content area** |
228
+ | `floatingToolbarClass` | `string` | No | CSS class applied to the floating toolbar and its portal container |
229
+ | `style` | `Record<string, string \| number>` | No | Inline style object applied to the wrapper |
230
+ | `toolbar` | `EddyterToolbarConfig` | No | Toolbar behavior (default: `{ mode: 'sticky', offset: 20, zIndex: 1000 }`) |
231
+ | `editor` | `EddyterEditorOptions` | No | Editor container options (`maxHeight`) |
232
+ | `enableReactNativeBridge` | `boolean` | No | Force-enable RN WebView bridge messaging |
233
+
234
+ #### Outputs
235
+
236
+ | Output | Payload | Fires when |
237
+ |--------|---------|------------|
238
+ | `valueChange` | `string` | Editor content changes (debounced) — drives `[(value)]` / `[(ngModel)]` |
239
+ | `ready` | `void` | Editor finished mounting and authenticated |
240
+ | `authSuccess` | `void` | API key validated successfully |
241
+ | `authError` | `string` | API key validation failed |
242
+ | `focus` | `void` | Editor gained focus (React Native bridge) |
243
+ | `blur` | `void` | Editor lost focus (React Native bridge) |
244
+ | `heightChange` | `number` | Editor content height changes (React Native bridge) |
245
+ | `previewClick` | `void` | User clicks anywhere inside the preview (e.g. to open edit mode) |
246
+
247
+ #### Forms Integration
248
+
249
+ The component implements `ControlValueAccessor`, so it supports:
250
+
251
+ - `[(ngModel)]` with `FormsModule`
252
+ - `[formControl]` and `[formControlName]` with `ReactiveFormsModule`
253
+ - Touched / dirty state tracking (touched on blur)
254
+
255
+ ### Supporting Types
256
+
257
+ ```ts
258
+ import type {
259
+ EddyterInstance,
260
+ EddyterCurrentUser,
261
+ EddyterToolbarConfig,
262
+ EddyterEditorOptions,
263
+ EddyterApiResponse,
264
+ } from '@eddyter/core';
265
+
266
+ interface EddyterCurrentUser {
267
+ id: string;
268
+ name: string;
269
+ email?: string;
270
+ avatar?: string;
271
+ }
272
+
273
+ interface EddyterApiResponse {
274
+ success: boolean;
275
+ message: string;
276
+ data?: unknown;
277
+ }
278
+
279
+ interface EddyterToolbarConfig {
280
+ mode?: 'sticky' | 'static';
281
+ offset?: number;
282
+ zIndex?: number;
283
+ }
284
+
285
+ interface EddyterEditorOptions {
286
+ maxHeight?: string | number;
287
+ }
288
+ ```
289
+
290
+ ### Toolbar Configuration
291
+
292
+ ```html
293
+ <eddyter-editor
294
+ [apiKey]="apiKey"
295
+ [toolbar]="{ mode: 'sticky', offset: 64, zIndex: 1200 }"
296
+ ></eddyter-editor>
297
+ ```
298
+
299
+ Modes:
300
+
301
+ - `mode: 'sticky'` -> toolbar detaches/sticks while scrolling and applies `offset` + `zIndex`
302
+ - `mode: 'static'` -> toolbar stays attached and ignores `offset` + `zIndex` even if provided
303
+
304
+ Defaults: `{ mode: 'sticky', offset: 20, zIndex: 1000 }`.
305
+
306
+ In static mode, if you want only the editor content area to scroll, pass a `maxHeight` using `editor`:
307
+
308
+ ```html
309
+ <eddyter-editor
310
+ [apiKey]="apiKey"
311
+ [toolbar]="{ mode: 'static' }"
312
+ [editor]="{ maxHeight: 600 }"
313
+ ></eddyter-editor>
314
+ ```
315
+
316
+ ## Examples
317
+
318
+ ### Basic Editor
319
+
320
+ ```ts
321
+ @Component({
322
+ standalone: true,
323
+ imports: [EddyterAngularComponent],
324
+ template: `
325
+ <eddyter-editor
326
+ [apiKey]="'your-api-key'"
327
+ (ready)="console.log('Ready!')"
328
+ ></eddyter-editor>
329
+ `,
330
+ })
331
+ export class BasicEditorComponent {}
332
+ ```
333
+
334
+ ### Editor with Reactive Forms & Save
335
+
336
+ ```ts
337
+ @Component({
338
+ standalone: true,
339
+ imports: [EddyterAngularComponent, ReactiveFormsModule],
340
+ template: `
341
+ <eddyter-editor
342
+ [apiKey]="apiKey"
343
+ [formControl]="content"
344
+ ></eddyter-editor>
345
+ <button (click)="save()">Save</button>
346
+ `,
347
+ })
348
+ export class EditorWithFormComponent {
349
+ apiKey = 'your-api-key';
350
+ content = new FormControl('<p>Start writing...</p>');
351
+
352
+ async save() {
353
+ await fetch('/api/save', {
354
+ method: 'POST',
355
+ headers: { 'Content-Type': 'application/json' },
356
+ body: JSON.stringify({ content: this.content.value }),
357
+ });
358
+ }
359
+ }
360
+ ```
361
+
362
+ ### Comments & Mentions
363
+
364
+ ```ts
365
+ @Component({
366
+ standalone: true,
367
+ imports: [EddyterAngularComponent],
368
+ template: `
369
+ <eddyter-editor
370
+ [apiKey]="apiKey"
371
+ [user]="currentUser"
372
+ [mentionUserList]="['Alice', 'Bob', 'Charlie']"
373
+ ></eddyter-editor>
374
+ `,
375
+ })
376
+ export class CommentsEditor {
377
+ apiKey = 'your-api-key';
378
+ currentUser = {
379
+ id: 'u-1',
380
+ name: 'Jane Doe',
381
+ email: 'jane@example.com',
382
+ };
383
+ }
384
+ ```
385
+
386
+ ### Custom API Key Verification
387
+
388
+ ```ts
389
+ @Component({
390
+ standalone: true,
391
+ imports: [EddyterAngularComponent],
392
+ template: `
393
+ <eddyter-editor
394
+ [apiKey]="apiKey"
395
+ [customVerifyKey]="customVerifyKey"
396
+ ></eddyter-editor>
397
+ `,
398
+ })
399
+ export class CustomAuthEditor {
400
+ apiKey = 'your-api-key';
401
+
402
+ customVerifyKey = async (apiKey: string) => {
403
+ try {
404
+ const res = await fetch('/api/verify-key', {
405
+ method: 'POST',
406
+ headers: { 'Content-Type': 'application/json' },
407
+ body: JSON.stringify({ apiKey }),
408
+ });
409
+ const data = await res.json();
410
+ return { success: data.valid, message: data.message || 'Verified' };
411
+ } catch {
412
+ return { success: false, message: 'Verification failed' };
413
+ }
414
+ };
415
+ }
416
+ ```
417
+
418
+ ### Theme Toggle Without Remount
419
+
420
+ ```ts
421
+ @Component({
422
+ standalone: true,
423
+ imports: [EddyterAngularComponent],
424
+ template: `
425
+ <button (click)="isDark = !isDark">Toggle theme</button>
426
+ <eddyter-editor [apiKey]="apiKey" [darkMode]="isDark"></eddyter-editor>
427
+ `,
428
+ })
429
+ export class ThemedEditor {
430
+ apiKey = 'your-api-key';
431
+ isDark = false;
432
+ }
433
+ ```
434
+
435
+ ### Static Toolbar with Scrollable Content
436
+
437
+ ```html
438
+ <eddyter-editor
439
+ [apiKey]="apiKey"
440
+ [toolbar]="{ mode: 'static' }"
441
+ [editor]="{ maxHeight: '420px' }"
442
+ ></eddyter-editor>
443
+ ```
444
+
445
+ ## Migration
446
+
447
+ If you are upgrading from an earlier release, two legacy inputs were removed because they targeted SDK options that never reached the underlying editor:
448
+
449
+ | Old input | New input | Status |
450
+ |-----------|-----------|--------|
451
+ | `previewClass` | `containerClass` | Removed — old value was a no-op |
452
+ | `editorClass` | `contentClass` | Removed — old value was a no-op |
453
+ | — | `floatingToolbarClass` | **New** — style the floating toolbar / portal |
454
+
455
+ ```diff
456
+ - <eddyter-editor [apiKey]="key" previewClass="p" editorClass="c"></eddyter-editor>
457
+ + <eddyter-editor [apiKey]="key" containerClass="p" contentClass="c"></eddyter-editor>
458
+ ```
459
+
460
+ ## Troubleshooting
461
+
462
+ | Symptom | Fix |
463
+ |---------|-----|
464
+ | Editor renders but toolbars look broken | Add `@eddyter/angular/styles.css` to the `styles` array in `angular.json` (or `@import` it in your global stylesheet). |
465
+ | Theme does not switch | Bind `[darkMode]="isDark"` — it updates the editor without remounting. |
466
+ | API key errors | Confirm the key in your env vars and check the network tab for the verification request. |
467
+ | `ngModel` does not update parent | Make sure `FormsModule` is imported and you're binding via `[(ngModel)]`. |
468
+
469
+ ## License
470
+
471
+ Eddyter is **proprietary software**.
472
+
473
+ - Free for evaluation and non-commercial use
474
+ - **Commercial use requires a paid license**
475
+ - SaaS, redistribution, and competing products are prohibited without permission
476
+
477
+ For commercial licensing, visit [eddyter.com](https://www.eddyter.com/)
@@ -0,0 +1,239 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, forwardRef, Output, Input, ViewChild, Component } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { init } from '@eddyter/core';
5
+
6
+ class EddyterAngularComponent {
7
+ editorRef;
8
+ // -----------------------------
9
+ // Content
10
+ // -----------------------------
11
+ value = '';
12
+ // -----------------------------
13
+ // Auth
14
+ // -----------------------------
15
+ apiKey;
16
+ customVerifyKey;
17
+ // -----------------------------
18
+ // User
19
+ // -----------------------------
20
+ user;
21
+ // -----------------------------
22
+ // UI
23
+ // -----------------------------
24
+ mode;
25
+ darkMode;
26
+ className;
27
+ containerClass;
28
+ contentClass;
29
+ floatingToolbarClass;
30
+ style;
31
+ // -----------------------------
32
+ // Config
33
+ // -----------------------------
34
+ toolbar;
35
+ editor;
36
+ defaultFontFamilies;
37
+ mentionUserList;
38
+ enableReactNativeBridge;
39
+ // -----------------------------
40
+ // Outputs
41
+ // -----------------------------
42
+ valueChange = new EventEmitter();
43
+ ready = new EventEmitter();
44
+ focus = new EventEmitter();
45
+ blur = new EventEmitter();
46
+ heightChange = new EventEmitter();
47
+ authSuccess = new EventEmitter();
48
+ authError = new EventEmitter();
49
+ previewClick = new EventEmitter();
50
+ // -----------------------------
51
+ // Internal
52
+ // -----------------------------
53
+ instance = null;
54
+ onTouched = () => { };
55
+ onChangeFn = (_value) => { };
56
+ // -----------------------------
57
+ // Lifecycle
58
+ // -----------------------------
59
+ ngAfterViewInit() {
60
+ this.instance = init({
61
+ container: this.editorRef.nativeElement,
62
+ // Auth
63
+ apiKey: this.apiKey,
64
+ customVerifyKey: this.customVerifyKey,
65
+ // User
66
+ user: this.user,
67
+ // Content
68
+ initialContent: this.value,
69
+ // Events
70
+ onChange: (html) => {
71
+ this.value = html;
72
+ this.onChangeFn(html);
73
+ this.valueChange.emit(html);
74
+ },
75
+ onReady: () => {
76
+ this.ready.emit();
77
+ },
78
+ onFocus: () => {
79
+ this.focus.emit();
80
+ },
81
+ onBlur: () => {
82
+ this.onTouched();
83
+ this.blur.emit();
84
+ },
85
+ onHeightChange: (height) => {
86
+ this.heightChange.emit(height);
87
+ },
88
+ onAuthSuccess: () => {
89
+ this.authSuccess.emit();
90
+ },
91
+ onAuthError: (error) => {
92
+ this.authError.emit(error);
93
+ },
94
+ onPreviewClick: () => {
95
+ this.previewClick.emit();
96
+ },
97
+ // UI
98
+ mode: this.mode,
99
+ darkMode: this.darkMode,
100
+ class: this.className,
101
+ containerClass: this.containerClass,
102
+ contentClass: this.contentClass,
103
+ floatingToolbarClass: this.floatingToolbarClass,
104
+ style: this.style,
105
+ // Config
106
+ toolbar: this.toolbar,
107
+ editor: this.editor,
108
+ defaultFontFamilies: this.defaultFontFamilies,
109
+ mentionUserList: this.mentionUserList,
110
+ enableReactNativeBridge: this.enableReactNativeBridge,
111
+ });
112
+ }
113
+ ngOnChanges(_changes) {
114
+ if (!this.instance)
115
+ return;
116
+ this.instance.update({
117
+ mode: this.mode,
118
+ darkMode: this.darkMode,
119
+ class: this.className,
120
+ containerClass: this.containerClass,
121
+ contentClass: this.contentClass,
122
+ floatingToolbarClass: this.floatingToolbarClass,
123
+ style: this.style,
124
+ toolbar: this.toolbar,
125
+ editor: this.editor,
126
+ defaultFontFamilies: this.defaultFontFamilies,
127
+ mentionUserList: this.mentionUserList,
128
+ enableReactNativeBridge: this.enableReactNativeBridge,
129
+ });
130
+ }
131
+ ngOnDestroy() {
132
+ this.instance?.destroy();
133
+ this.instance = null;
134
+ }
135
+ // -----------------------------
136
+ // ControlValueAccessor
137
+ // -----------------------------
138
+ writeValue(value) {
139
+ this.value = value || '';
140
+ }
141
+ registerOnChange(fn) {
142
+ this.onChangeFn = fn;
143
+ }
144
+ registerOnTouched(fn) {
145
+ this.onTouched = fn;
146
+ }
147
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: EddyterAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
148
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.16", type: EddyterAngularComponent, isStandalone: true, selector: "eddyter-editor", inputs: { value: "value", apiKey: "apiKey", customVerifyKey: "customVerifyKey", user: "user", mode: "mode", darkMode: "darkMode", className: "className", containerClass: "containerClass", contentClass: "contentClass", floatingToolbarClass: "floatingToolbarClass", style: "style", toolbar: "toolbar", editor: "editor", defaultFontFamilies: "defaultFontFamilies", mentionUserList: "mentionUserList", enableReactNativeBridge: "enableReactNativeBridge" }, outputs: { valueChange: "valueChange", ready: "ready", focus: "focus", blur: "blur", heightChange: "heightChange", authSuccess: "authSuccess", authError: "authError", previewClick: "previewClick" }, providers: [
149
+ {
150
+ provide: NG_VALUE_ACCESSOR,
151
+ useExisting: forwardRef(() => EddyterAngularComponent),
152
+ multi: true,
153
+ },
154
+ ], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editorContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
155
+ <div #editorContainer></div>
156
+ `, isInline: true });
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: EddyterAngularComponent, decorators: [{
159
+ type: Component,
160
+ args: [{
161
+ selector: 'eddyter-editor',
162
+ template: `
163
+ <div #editorContainer></div>
164
+ `,
165
+ standalone: true,
166
+ providers: [
167
+ {
168
+ provide: NG_VALUE_ACCESSOR,
169
+ useExisting: forwardRef(() => EddyterAngularComponent),
170
+ multi: true,
171
+ },
172
+ ],
173
+ }]
174
+ }], propDecorators: { editorRef: [{
175
+ type: ViewChild,
176
+ args: ['editorContainer', {
177
+ static: true,
178
+ }]
179
+ }], value: [{
180
+ type: Input
181
+ }], apiKey: [{
182
+ type: Input,
183
+ args: [{ required: true }]
184
+ }], customVerifyKey: [{
185
+ type: Input
186
+ }], user: [{
187
+ type: Input
188
+ }], mode: [{
189
+ type: Input
190
+ }], darkMode: [{
191
+ type: Input
192
+ }], className: [{
193
+ type: Input
194
+ }], containerClass: [{
195
+ type: Input
196
+ }], contentClass: [{
197
+ type: Input
198
+ }], floatingToolbarClass: [{
199
+ type: Input
200
+ }], style: [{
201
+ type: Input
202
+ }], toolbar: [{
203
+ type: Input
204
+ }], editor: [{
205
+ type: Input
206
+ }], defaultFontFamilies: [{
207
+ type: Input
208
+ }], mentionUserList: [{
209
+ type: Input
210
+ }], enableReactNativeBridge: [{
211
+ type: Input
212
+ }], valueChange: [{
213
+ type: Output
214
+ }], ready: [{
215
+ type: Output
216
+ }], focus: [{
217
+ type: Output
218
+ }], blur: [{
219
+ type: Output
220
+ }], heightChange: [{
221
+ type: Output
222
+ }], authSuccess: [{
223
+ type: Output
224
+ }], authError: [{
225
+ type: Output
226
+ }], previewClick: [{
227
+ type: Output
228
+ }] } });
229
+
230
+ /*
231
+ * Public API Surface of @eddyter/angular
232
+ */
233
+
234
+ /**
235
+ * Generated bundle index. Do not edit.
236
+ */
237
+
238
+ export { EddyterAngularComponent };
239
+ //# sourceMappingURL=eddyter-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddyter-angular.mjs","sources":["../../../projects/eddyter-angular/src/lib/eddyter-angular.component.ts","../../../projects/eddyter-angular/src/public-api.ts","../../../projects/eddyter-angular/src/eddyter-angular.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n ViewChild,\r\n AfterViewInit,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n forwardRef,\r\n} from '@angular/core';\r\n\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\n\r\nimport {\r\n init,\r\n type EddyterInstance,\r\n type EddyterToolbarConfig,\r\n type EddyterEditorOptions,\r\n type EddyterCurrentUser,\r\n type EddyterApiResponse,\r\n} from '@eddyter/core';\r\n\r\n@Component({\r\n selector: 'eddyter-editor',\r\n\r\n template: `\r\n <div #editorContainer></div>\r\n `,\r\n\r\n standalone: true,\r\n\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(\r\n () => EddyterAngularComponent\r\n ),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EddyterAngularComponent\r\n implements\r\n AfterViewInit,\r\n OnDestroy,\r\n OnChanges,\r\n ControlValueAccessor\r\n{\r\n @ViewChild('editorContainer', {\r\n static: true,\r\n })\r\n editorRef!: ElementRef<HTMLElement>;\r\n\r\n // -----------------------------\r\n // Content\r\n // -----------------------------\r\n\r\n @Input()\r\n value = '';\r\n\r\n // -----------------------------\r\n // Auth\r\n // -----------------------------\r\n\r\n @Input({ required: true })\r\n apiKey!: string;\r\n\r\n @Input()\r\n customVerifyKey?: (\r\n apiKey: string\r\n ) => Promise<EddyterApiResponse>;\r\n\r\n // -----------------------------\r\n // User\r\n // -----------------------------\r\n\r\n @Input()\r\n user?: EddyterCurrentUser;\r\n\r\n // -----------------------------\r\n // UI\r\n // -----------------------------\r\n\r\n @Input()\r\n mode?: 'edit' | 'preview';\r\n\r\n @Input()\r\n darkMode?: boolean;\r\n\r\n @Input()\r\n className?: string;\r\n\r\n @Input()\r\n containerClass?: string;\r\n\r\n @Input()\r\n contentClass?: string;\r\n\r\n @Input()\r\n floatingToolbarClass?: string;\r\n\r\n @Input()\r\n style?: Record<\r\n string,\r\n string | number\r\n >;\r\n\r\n // -----------------------------\r\n // Config\r\n // -----------------------------\r\n\r\n @Input()\r\n toolbar?: EddyterToolbarConfig;\r\n\r\n @Input()\r\n editor?: EddyterEditorOptions;\r\n\r\n @Input()\r\n defaultFontFamilies?: string[];\r\n\r\n @Input()\r\n mentionUserList?: string[];\r\n\r\n @Input()\r\n enableReactNativeBridge?: boolean;\r\n\r\n // -----------------------------\r\n // Outputs\r\n // -----------------------------\r\n\r\n @Output()\r\n valueChange =\r\n new EventEmitter<string>();\r\n\r\n @Output()\r\n ready = new EventEmitter<void>();\r\n\r\n @Output()\r\n focus = new EventEmitter<void>();\r\n\r\n @Output()\r\n blur = new EventEmitter<void>();\r\n\r\n @Output()\r\n heightChange =\r\n new EventEmitter<number>();\r\n\r\n @Output()\r\n authSuccess =\r\n new EventEmitter<void>();\r\n\r\n @Output()\r\n authError =\r\n new EventEmitter<string>();\r\n\r\n @Output()\r\n previewClick =\r\n new EventEmitter<void>();\r\n\r\n // -----------------------------\r\n // Internal\r\n // -----------------------------\r\n\r\n private instance:\r\n | EddyterInstance\r\n | null = null;\r\n\r\n private onTouched = () => {};\r\n\r\n private onChangeFn = (\r\n _value: string\r\n ) => {};\r\n\r\n // -----------------------------\r\n // Lifecycle\r\n // -----------------------------\r\n\r\n ngAfterViewInit(): void {\r\n this.instance = init({\r\n container:\r\n this.editorRef.nativeElement,\r\n\r\n // Auth\r\n apiKey: this.apiKey,\r\n\r\n customVerifyKey:\r\n this.customVerifyKey,\r\n\r\n // User\r\n user: this.user,\r\n\r\n // Content\r\n initialContent: this.value,\r\n\r\n // Events\r\n onChange: (html: string) => {\r\n this.value = html;\r\n\r\n this.onChangeFn(html);\r\n\r\n this.valueChange.emit(html);\r\n },\r\n\r\n onReady: () => {\r\n this.ready.emit();\r\n },\r\n\r\n onFocus: () => {\r\n this.focus.emit();\r\n },\r\n\r\n onBlur: () => {\r\n this.onTouched();\r\n\r\n this.blur.emit();\r\n },\r\n\r\n onHeightChange: (\r\n height: number\r\n ) => {\r\n this.heightChange.emit(height);\r\n },\r\n\r\n onAuthSuccess: () => {\r\n this.authSuccess.emit();\r\n },\r\n\r\n onAuthError: (\r\n error: string\r\n ) => {\r\n this.authError.emit(error);\r\n },\r\n\r\n onPreviewClick: () => {\r\n this.previewClick.emit();\r\n },\r\n\r\n // UI\r\n mode: this.mode,\r\n\r\n darkMode: this.darkMode,\r\n\r\n class: this.className,\r\n\r\n containerClass:\r\n this.containerClass,\r\n\r\n contentClass:\r\n this.contentClass,\r\n\r\n floatingToolbarClass:\r\n this.floatingToolbarClass,\r\n\r\n style: this.style as any,\r\n\r\n // Config\r\n toolbar: this.toolbar,\r\n\r\n editor: this.editor,\r\n\r\n defaultFontFamilies:\r\n this.defaultFontFamilies,\r\n\r\n mentionUserList:\r\n this.mentionUserList,\r\n\r\n enableReactNativeBridge:\r\n this.enableReactNativeBridge,\r\n });\r\n }\r\n\r\n ngOnChanges(_changes: SimpleChanges): void {\r\n if (!this.instance) return;\r\n\r\n this.instance.update({\r\n mode: this.mode,\r\n darkMode: this.darkMode,\r\n class: this.className,\r\n containerClass: this.containerClass,\r\n contentClass: this.contentClass,\r\n floatingToolbarClass:\r\n this.floatingToolbarClass,\r\n style: this.style as any,\r\n toolbar: this.toolbar,\r\n editor: this.editor,\r\n defaultFontFamilies:\r\n this.defaultFontFamilies,\r\n mentionUserList: this.mentionUserList,\r\n enableReactNativeBridge:\r\n this.enableReactNativeBridge,\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.instance?.destroy();\r\n\r\n this.instance = null;\r\n }\r\n\r\n // -----------------------------\r\n // ControlValueAccessor\r\n // -----------------------------\r\n\r\n writeValue(value: string): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(\r\n fn: (value: string) => void\r\n ): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n registerOnTouched(\r\n fn: () => void\r\n ): void {\r\n this.onTouched = fn;\r\n }\r\n}","/*\r\n * Public API Surface of @eddyter/angular\r\n */\r\n\r\nexport * from './lib/eddyter-angular.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MA+Ca,uBAAuB,CAAA;AAUlC,IAAA,SAAS;;;;IAOT,KAAK,GAAG,EAAE;;;;AAOV,IAAA,MAAM;AAGN,IAAA,eAAe;;;;AASf,IAAA,IAAI;;;;AAOJ,IAAA,IAAI;AAGJ,IAAA,QAAQ;AAGR,IAAA,SAAS;AAGT,IAAA,cAAc;AAGd,IAAA,YAAY;AAGZ,IAAA,oBAAoB;AAGpB,IAAA,KAAK;;;;AAUL,IAAA,OAAO;AAGP,IAAA,MAAM;AAGN,IAAA,mBAAmB;AAGnB,IAAA,eAAe;AAGf,IAAA,uBAAuB;;;;AAOvB,IAAA,WAAW,GACT,IAAI,YAAY,EAAU;AAG5B,IAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;AAGhC,IAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;AAGhC,IAAA,IAAI,GAAG,IAAI,YAAY,EAAQ;AAG/B,IAAA,YAAY,GACV,IAAI,YAAY,EAAU;AAG5B,IAAA,WAAW,GACT,IAAI,YAAY,EAAQ;AAG1B,IAAA,SAAS,GACP,IAAI,YAAY,EAAU;AAG5B,IAAA,YAAY,GACV,IAAI,YAAY,EAAQ;;;;IAMlB,QAAQ,GAEL,IAAI;AAEP,IAAA,SAAS,GAAG,MAAK,EAAE,CAAC;AAEpB,IAAA,UAAU,GAAG,CACnB,MAAc,KACZ,EAAE,CAAC;;;;IAMP,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACnB,YAAA,SAAS,EACP,IAAI,CAAC,SAAS,CAAC,aAAa;;YAG9B,MAAM,EAAE,IAAI,CAAC,MAAM;YAEnB,eAAe,EACb,IAAI,CAAC,eAAe;;YAGtB,IAAI,EAAE,IAAI,CAAC,IAAI;;YAGf,cAAc,EAAE,IAAI,CAAC,KAAK;;AAG1B,YAAA,QAAQ,EAAE,CAAC,IAAY,KAAI;AACzB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAEjB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAErB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,CAAC;YAED,OAAO,EAAE,MAAK;AACZ,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACnB,CAAC;YAED,OAAO,EAAE,MAAK;AACZ,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACnB,CAAC;YAED,MAAM,EAAE,MAAK;gBACX,IAAI,CAAC,SAAS,EAAE;AAEhB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAClB,CAAC;AAED,YAAA,cAAc,EAAE,CACd,MAAc,KACZ;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,CAAC;YAED,aAAa,EAAE,MAAK;AAClB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACzB,CAAC;AAED,YAAA,WAAW,EAAE,CACX,KAAa,KACX;AACF,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5B,CAAC;YAED,cAAc,EAAE,MAAK;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YAC1B,CAAC;;YAGD,IAAI,EAAE,IAAI,CAAC,IAAI;YAEf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YAEvB,KAAK,EAAE,IAAI,CAAC,SAAS;YAErB,cAAc,EACZ,IAAI,CAAC,cAAc;YAErB,YAAY,EACV,IAAI,CAAC,YAAY;YAEnB,oBAAoB,EAClB,IAAI,CAAC,oBAAoB;YAE3B,KAAK,EAAE,IAAI,CAAC,KAAY;;YAGxB,OAAO,EAAE,IAAI,CAAC,OAAO;YAErB,MAAM,EAAE,IAAI,CAAC,MAAM;YAEnB,mBAAmB,EACjB,IAAI,CAAC,mBAAmB;YAE1B,eAAe,EACb,IAAI,CAAC,eAAe;YAEtB,uBAAuB,EACrB,IAAI,CAAC,uBAAuB;AAC/B,SAAA,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,QAAuB,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;AAEpB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,oBAAoB,EAClB,IAAI,CAAC,oBAAoB;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAY;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,mBAAmB,EACjB,IAAI,CAAC,mBAAmB;YAC1B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,uBAAuB,EACrB,IAAI,CAAC,uBAAuB;AAC/B,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;AAExB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;;;;AAMA,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CACd,EAA2B,EAAA;AAE3B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEA,IAAA,iBAAiB,CACf,EAAc,EAAA;AAEd,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;wGApRW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAVvB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CACrB,MAAM,uBAAuB,CAC9B;AACD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdS,CAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;4FAcU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAE1B,oBAAA,QAAQ,EAAE,CAAA;;AAET,EAAA,CAAA;AAED,oBAAA,UAAU,EAAE,IAAI;AAEhB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CACrB,6BAA6B,CAC9B;AACD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;;sBAQE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE;AAC5B,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;;sBAOA;;sBAOA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAGxB;;sBASA;;sBAOA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAUA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAOA;;sBAIA;;sBAGA;;sBAGA;;sBAGA;;sBAIA;;sBAIA;;sBAIA;;;ACjKH;;AAEG;;ACFH;;AAEG;;;;"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@eddyter/angular",
3
+ "version": "1.0.0",
4
+ "description": "Angular wrapper for Eddyter editor",
5
+ "keywords": [
6
+ "editor",
7
+ "richtext",
8
+ "angular",
9
+ "wysiwyg"
10
+ ],
11
+ "license": "MIT",
12
+ "peerDependencies": {
13
+ "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
14
+ "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
15
+ "@angular/forms": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0"
16
+ },
17
+ "dependencies": {
18
+ "@eddyter/core": "^1.0.1",
19
+ "tslib": "^2.3.0"
20
+ },
21
+ "sideEffects": false,
22
+ "exports": {
23
+ ".": {
24
+ "types": "./types/eddyter-angular.d.ts",
25
+ "default": "./fesm2022/eddyter-angular.mjs"
26
+ },
27
+ "./styles.css": "./styles.css",
28
+ "./package.json": {
29
+ "default": "./package.json"
30
+ }
31
+ },
32
+ "module": "fesm2022/eddyter-angular.mjs",
33
+ "typings": "types/eddyter-angular.d.ts",
34
+ "type": "module"
35
+ }
package/styles.css ADDED
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap";.eddyter-scope *,.eddyter-scope :before,.eddyter-scope :after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.eddyter-scope ::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.eddyter-scope *,.eddyter-scope :before,.eddyter-scope :after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}.eddyter-scope :before,.eddyter-scope :after{--tw-content: ""}.eddyter-scope,.eddyter-scope :host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}.eddyter-scope{margin:0;line-height:inherit}.eddyter-scope hr{height:0;color:inherit;border-top-width:1px}.eddyter-scope abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.eddyter-scope h1,.eddyter-scope h2,.eddyter-scope h3,.eddyter-scope h4,.eddyter-scope h5,.eddyter-scope h6{font-size:inherit;font-weight:inherit}.eddyter-scope a{color:inherit;text-decoration:inherit}.eddyter-scope b,.eddyter-scope strong{font-weight:bolder}.eddyter-scope code,.eddyter-scope kbd,.eddyter-scope samp,.eddyter-scope pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}.eddyter-scope small{font-size:80%}.eddyter-scope sub,.eddyter-scope sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.eddyter-scope sub{bottom:-.25em}.eddyter-scope sup{top:-.5em}.eddyter-scope table{text-indent:0;border-color:inherit;border-collapse:collapse}.eddyter-scope button,.eddyter-scope input,.eddyter-scope optgroup,.eddyter-scope select,.eddyter-scope textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}.eddyter-scope button,.eddyter-scope select{text-transform:none}.eddyter-scope button,.eddyter-scope input:where([type=button]),.eddyter-scope input:where([type=reset]),.eddyter-scope input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}.eddyter-scope :-moz-focusring{outline:auto}.eddyter-scope :-moz-ui-invalid{box-shadow:none}.eddyter-scope progress{vertical-align:baseline}.eddyter-scope ::-webkit-inner-spin-button,.eddyter-scope ::-webkit-outer-spin-button{height:auto}.eddyter-scope [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.eddyter-scope ::-webkit-search-decoration{-webkit-appearance:none}.eddyter-scope ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.eddyter-scope summary{display:list-item}.eddyter-scope blockquote,.eddyter-scope dl,.eddyter-scope dd,.eddyter-scope h1,.eddyter-scope h2,.eddyter-scope h3,.eddyter-scope h4,.eddyter-scope h5,.eddyter-scope h6,.eddyter-scope hr,.eddyter-scope figure,.eddyter-scope p,.eddyter-scope pre{margin:0}.eddyter-scope fieldset{margin:0;padding:0}.eddyter-scope legend{padding:0}.eddyter-scope ol,.eddyter-scope ul,.eddyter-scope menu{list-style:none;margin:0;padding:0}.eddyter-scope dialog{padding:0}.eddyter-scope textarea{resize:vertical}.eddyter-scope input::-moz-placeholder,.eddyter-scope textarea::-moz-placeholder{opacity:1;color:#9ca3af}.eddyter-scope input::placeholder,.eddyter-scope textarea::placeholder{opacity:1;color:#9ca3af}.eddyter-scope button,.eddyter-scope [role=button]{cursor:pointer}.eddyter-scope :disabled{cursor:default}.eddyter-scope img,.eddyter-scope svg,.eddyter-scope video,.eddyter-scope canvas,.eddyter-scope audio,.eddyter-scope iframe,.eddyter-scope embed,.eddyter-scope object{display:block;vertical-align:middle}.eddyter-scope img,.eddyter-scope video{max-width:100%;height:auto}.eddyter-scope [hidden]:where(:not([hidden=until-found])){display:none}:root{--cteditorf47ac10b-background: 0 0% 100%;--cteditorf47ac10b-foreground: 240 6% 10%;--cteditorf47ac10b-secondary: 0 0% 95.3%;--cteditorf47ac10b-main-secondary: 0 0% 94.1%;--cteditorf47ac10b-body: 0 0% 92%;--cteditorf47ac10b-card: 0 0% 100%;--cteditorf47ac10b-card-foreground: 0 0% 3.9%;--cteditorf47ac10b-popover: 0 0% 100%;--cteditorf47ac10b-popover-foreground: 0 0% 3.9%;--cteditorf47ac10b-primary: 0 0% 9%;--cteditorf47ac10b-primary-foreground: 0 0% 98%;--cteditorf47ac10b-secondary-foreground: 0 0% 9%;--cteditorf47ac10b-muted: 0 0% 96.1%;--cteditorf47ac10b-muted-foreground: 0 0% 45.1%;--cteditorf47ac10b-accent: 0 0% 96.1%;--cteditorf47ac10b-accent-foreground: 0 0% 9%;--cteditorf47ac10b-destructive: 0 84.2% 60.2%;--cteditorf47ac10b-destructive-foreground: 0 0% 98%;--cteditorf47ac10b-border: 0 0% 89.8%;--cteditorf47ac10b-input: 0 0% 89.8%;--cteditorf47ac10b-ring: 0 0% 3.9%;--cteditorf47ac10b-radius: .5rem;--cteditorf47ac10b-main-background: 0 0% 98%;--cteditorf47ac10b-grammar-tooltip-bg: 0 0% 98%;--cteditorf47ac10b-suggestion-bg:138 76% 97%;--cteditorf47ac10b-suggestion-border:142 55% 56%;--cteditorf47ac10b-suggestion-text:142 72% 29%;--cteditorf47ac10b-incorrect-word-bg:0 86% 97%;--cteditorf47ac10b-incorrect-word-border:0 96% 89%;--cteditorf47ac10b-incorrect-word-text:0 74% 42%;--cteditorf47ac10b-explanation-bg:214 100% 97%;--cteditorf47ac10b-explanation-border:212 96% 78%}.eddyter-scope.dark{--cteditorf47ac10b-background: 240 6% 10%;--cteditorf47ac10b-foreground: 0 0% 100%;--cteditorf47ac10b-secondary: 240 7% 15%;--cteditorf47ac10b-main-secondary: 0 0% 16.1%;--cteditorf47ac10b-body: 240 10% 4%;--cteditorf47ac10b-card: 0 0% 14.9%;--cteditorf47ac10b-card-foreground: 0 0% 98%;--cteditorf47ac10b-popover: 0 0% 14.9%;--cteditorf47ac10b-popover-foreground: 0 0% 98%;--cteditorf47ac10b-primary: 0 0% 98%;--cteditorf47ac10b-primary-foreground: 0 0% 9%;--cteditorf47ac10b-secondary-foreground: 0 0% 98%;--cteditorf47ac10b-muted: 0 0% 14.9%;--cteditorf47ac10b-muted-foreground: 0 0% 63.9%;--cteditorf47ac10b-accent: 0 0% 14.9%;--cteditorf47ac10b-accent-foreground: 0 0% 98%;--cteditorf47ac10b-destructive: 0 62.8% 30.6%;--cteditorf47ac10b-destructive-foreground: 0 0% 98%;--cteditorf47ac10b-border: 0 0% 14.9%;--cteditorf47ac10b-input: 0 0% 14.9%;--cteditorf47ac10b-ring: 0 0% 83.1%;--cteditorf47ac10b-main-background: 0 0% 12.9%;--cteditorf47ac10b-grammar-tooltip-bg: 219 32% 12%;--cteditorf47ac10b-suggestion-bg:148 19% 18%;--cteditorf47ac10b-suggestion-border:144 100% 62%;--cteditorf47ac10b-suggestion-text:144 100% 62%;--cteditorf47ac10b-incorrect-word-bg:219 59% 7%;--cteditorf47ac10b-incorrect-word-border:4 100% 50%;--cteditorf47ac10b-incorrect-word-text:3 100% 80%;--cteditorf47ac10b-explanation-bg:230 35% 17%;--cteditorf47ac10b-explanation-border:221 83% 53%}.eddyter-scope .\!cteditor-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.eddyter-scope .cteditor-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.eddyter-scope .cteditor-pointer-events-none{pointer-events:none}.eddyter-scope .cteditor-pointer-events-auto{pointer-events:auto}.eddyter-scope .cteditor-fixed{position:fixed}.eddyter-scope .cteditor-absolute{position:absolute}.eddyter-scope .cteditor-relative{position:relative}.eddyter-scope .cteditor-sticky{position:sticky}.eddyter-scope .cteditor-inset-0{inset:0}.eddyter-scope .cteditor-inset-x-0{left:0;right:0}.eddyter-scope .cteditor-inset-y-0{top:0;bottom:0}.eddyter-scope .cteditor--bottom-1{bottom:-.25rem}.eddyter-scope .cteditor--right-1{right:-.25rem}.eddyter-scope .cteditor--right-2{right:-.5rem}.eddyter-scope .cteditor--top-2{top:-.5rem}.eddyter-scope .cteditor-bottom-0{bottom:0}.eddyter-scope .cteditor-bottom-1{bottom:.25rem}.eddyter-scope .cteditor-bottom-2{bottom:.5rem}.eddyter-scope .cteditor-bottom-4{bottom:1rem}.eddyter-scope .cteditor-bottom-full{bottom:100%}.eddyter-scope .cteditor-left-0{left:0}.eddyter-scope .cteditor-left-1\/2{left:50%}.eddyter-scope .cteditor-left-2{left:.5rem}.eddyter-scope .cteditor-left-2\.5{left:.625rem}.eddyter-scope .cteditor-left-4{left:1rem}.eddyter-scope .cteditor-left-7{left:1.75rem}.eddyter-scope .cteditor-left-\[50\%\]{left:50%}.eddyter-scope .cteditor-right-0{right:0}.eddyter-scope .cteditor-right-1{right:.25rem}.eddyter-scope .cteditor-right-2{right:.5rem}.eddyter-scope .cteditor-right-4{right:1rem}.eddyter-scope .cteditor-top-0{top:0}.eddyter-scope .cteditor-top-1{top:.25rem}.eddyter-scope .cteditor-top-1\/2{top:50%}.eddyter-scope .cteditor-top-2{top:.5rem}.eddyter-scope .cteditor-top-4{top:1rem}.eddyter-scope .cteditor-top-7{top:1.75rem}.eddyter-scope .cteditor-top-\[50\%\]{top:50%}.eddyter-scope .cteditor-top-\[7px\]{top:7px}.eddyter-scope .cteditor-top-full{top:100%}.eddyter-scope .\!cteditor-z-\[99999\]{z-index:99999!important}.eddyter-scope .cteditor-z-10{z-index:10}.eddyter-scope .cteditor-z-20{z-index:20}.eddyter-scope .cteditor-z-50{z-index:50}.eddyter-scope .cteditor-z-\[10001\]{z-index:10001}.eddyter-scope .cteditor-z-\[100\]{z-index:100}.eddyter-scope .cteditor-z-\[1\]{z-index:1}.eddyter-scope .cteditor-z-\[5\]{z-index:5}.eddyter-scope .cteditor-z-\[9999\]{z-index:9999}.eddyter-scope .cteditor-m-0{margin:0}.eddyter-scope .cteditor-m-4{margin:1rem}.eddyter-scope .cteditor-m-\[2px\]{margin:2px}.eddyter-scope .\!cteditor-my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.eddyter-scope .cteditor--mx-1{margin-left:-.25rem;margin-right:-.25rem}.eddyter-scope .cteditor-mx-0\.5{margin-left:.125rem;margin-right:.125rem}.eddyter-scope .cteditor-mx-auto{margin-left:auto;margin-right:auto}.eddyter-scope .cteditor-my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.eddyter-scope .cteditor-my-1{margin-top:.25rem;margin-bottom:.25rem}.eddyter-scope .cteditor-my-2{margin-top:.5rem;margin-bottom:.5rem}.eddyter-scope .cteditor-my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.eddyter-scope .cteditor-my-3{margin-top:.75rem;margin-bottom:.75rem}.eddyter-scope .cteditor-my-4{margin-top:1rem;margin-bottom:1rem}.eddyter-scope .\!cteditor-mb-2{margin-bottom:.5rem!important}.eddyter-scope .\!cteditor-mt-0{margin-top:0!important}.eddyter-scope .-cteditor-ml-1\.5{margin-left:-.375rem}.eddyter-scope .cteditor-mb-0{margin-bottom:0}.eddyter-scope .cteditor-mb-0\.5{margin-bottom:.125rem}.eddyter-scope .cteditor-mb-1{margin-bottom:.25rem}.eddyter-scope .cteditor-mb-2{margin-bottom:.5rem}.eddyter-scope .cteditor-mb-2\.5{margin-bottom:.625rem}.eddyter-scope .cteditor-mb-3{margin-bottom:.75rem}.eddyter-scope .cteditor-mb-4{margin-bottom:1rem}.eddyter-scope .cteditor-ml-1{margin-left:.25rem}.eddyter-scope .cteditor-ml-2{margin-left:.5rem}.eddyter-scope .cteditor-ml-auto{margin-left:auto}.eddyter-scope .cteditor-mr-1\.5{margin-right:.375rem}.eddyter-scope .cteditor-mr-2{margin-right:.5rem}.eddyter-scope .cteditor-ms-auto{margin-inline-start:auto}.eddyter-scope .cteditor-mt-0\.5{margin-top:.125rem}.eddyter-scope .cteditor-mt-1{margin-top:.25rem}.eddyter-scope .cteditor-mt-1\.5{margin-top:.375rem}.eddyter-scope .cteditor-mt-2{margin-top:.5rem}.eddyter-scope .cteditor-mt-3{margin-top:.75rem}.eddyter-scope .cteditor-mt-4{margin-top:1rem}.eddyter-scope .cteditor-mt-5{margin-top:1.25rem}.eddyter-scope .cteditor-mt-6{margin-top:1.5rem}.eddyter-scope .cteditor-line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.eddyter-scope .cteditor-line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.eddyter-scope .\!cteditor-block{display:block!important}.eddyter-scope .cteditor-block{display:block}.eddyter-scope .cteditor-inline-block{display:inline-block}.eddyter-scope .\!cteditor-flex{display:flex!important}.eddyter-scope .cteditor-flex{display:flex}.eddyter-scope .cteditor-inline-flex{display:inline-flex}.eddyter-scope .cteditor-grid{display:grid}.eddyter-scope .cteditor-contents{display:contents}.eddyter-scope .cteditor-hidden{display:none}.eddyter-scope .cteditor-aspect-\[120\/88\]{aspect-ratio:120/88}.eddyter-scope .cteditor-aspect-square{aspect-ratio:1 / 1}.eddyter-scope .\!cteditor-size-3{width:.75rem!important;height:.75rem!important}.eddyter-scope .\!cteditor-size-3\.5{width:.875rem!important;height:.875rem!important}.eddyter-scope .\!cteditor-size-4{width:1rem!important;height:1rem!important}.eddyter-scope .\!cteditor-size-5{width:1.25rem!important;height:1.25rem!important}.eddyter-scope .\!cteditor-size-6{width:1.5rem!important;height:1.5rem!important}.eddyter-scope .\!cteditor-size-8{width:2rem!important;height:2rem!important}.eddyter-scope .\!cteditor-size-\[14px\]{width:14px!important;height:14px!important}.eddyter-scope .\!cteditor-size-\[18px\]{width:18px!important;height:18px!important}.eddyter-scope .\!cteditor-size-full{width:100%!important;height:100%!important}.eddyter-scope .cteditor-size-1\.5{width:.375rem;height:.375rem}.eddyter-scope .cteditor-size-10{width:2.5rem;height:2.5rem}.eddyter-scope .cteditor-size-11{width:2.75rem;height:2.75rem}.eddyter-scope .cteditor-size-3{width:.75rem;height:.75rem}.eddyter-scope .cteditor-size-3\.5{width:.875rem;height:.875rem}.eddyter-scope .cteditor-size-4{width:1rem;height:1rem}.eddyter-scope .cteditor-size-5{width:1.25rem;height:1.25rem}.eddyter-scope .cteditor-size-6{width:1.5rem;height:1.5rem}.eddyter-scope .cteditor-size-7{width:1.75rem;height:1.75rem}.eddyter-scope .cteditor-size-8{width:2rem;height:2rem}.eddyter-scope .cteditor-size-9{width:2.25rem;height:2.25rem}.eddyter-scope .cteditor-size-\[18px\]{width:18px;height:18px}.eddyter-scope .cteditor-size-auto{width:auto;height:auto}.eddyter-scope .\!cteditor-h-10{height:2.5rem!important}.eddyter-scope .\!cteditor-h-11{height:2.75rem!important}.eddyter-scope .\!cteditor-h-4{height:1rem!important}.eddyter-scope .\!cteditor-h-6{height:1.5rem!important}.eddyter-scope .\!cteditor-h-7{height:1.75rem!important}.eddyter-scope .\!cteditor-h-8{height:2rem!important}.eddyter-scope .\!cteditor-h-auto{height:auto!important}.eddyter-scope .\!cteditor-h-full{height:100%!important}.eddyter-scope .cteditor-h-1{height:.25rem}.eddyter-scope .cteditor-h-1\.5{height:.375rem}.eddyter-scope .cteditor-h-10{height:2.5rem}.eddyter-scope .cteditor-h-11{height:2.75rem}.eddyter-scope .cteditor-h-12{height:3rem}.eddyter-scope .cteditor-h-14{height:3.5rem}.eddyter-scope .cteditor-h-2{height:.5rem}.eddyter-scope .cteditor-h-20{height:5rem}.eddyter-scope .cteditor-h-3{height:.75rem}.eddyter-scope .cteditor-h-3\.5{height:.875rem}.eddyter-scope .cteditor-h-32{height:8rem}.eddyter-scope .cteditor-h-4{height:1rem}.eddyter-scope .cteditor-h-44{height:11rem}.eddyter-scope .cteditor-h-5{height:1.25rem}.eddyter-scope .cteditor-h-6{height:1.5rem}.eddyter-scope .cteditor-h-7{height:1.75rem}.eddyter-scope .cteditor-h-8{height:2rem}.eddyter-scope .cteditor-h-9{height:2.25rem}.eddyter-scope .cteditor-h-\[1px\]{height:1px}.eddyter-scope .cteditor-h-\[2px\]{height:2px}.eddyter-scope .cteditor-h-\[90vh\]{height:90vh}.eddyter-scope .cteditor-h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.eddyter-scope .cteditor-h-auto{height:auto}.eddyter-scope .cteditor-h-full{height:100%}.eddyter-scope .cteditor-h-px{height:1px}.eddyter-scope .\!cteditor-max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)!important}.eddyter-scope .cteditor-max-h-24{max-height:6rem}.eddyter-scope .cteditor-max-h-44{max-height:11rem}.eddyter-scope .cteditor-max-h-48{max-height:12rem}.eddyter-scope .cteditor-max-h-56{max-height:14rem}.eddyter-scope .cteditor-max-h-64{max-height:16rem}.eddyter-scope .cteditor-max-h-96{max-height:24rem}.eddyter-scope .cteditor-max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.eddyter-scope .cteditor-max-h-\[120px\]{max-height:120px}.eddyter-scope .cteditor-max-h-\[200px\]{max-height:200px}.eddyter-scope .cteditor-max-h-\[240px\]{max-height:240px}.eddyter-scope .cteditor-max-h-\[300px\]{max-height:300px}.eddyter-scope .cteditor-max-h-\[350px\]{max-height:350px}.eddyter-scope .cteditor-max-h-\[400px\]{max-height:400px}.eddyter-scope .cteditor-max-h-\[450px\]{max-height:450px}.eddyter-scope .cteditor-max-h-\[460px\]{max-height:460px}.eddyter-scope .cteditor-max-h-\[47vh\]{max-height:47vh}.eddyter-scope .cteditor-max-h-\[600px\]{max-height:600px}.eddyter-scope .cteditor-max-h-\[650px\]{max-height:650px}.eddyter-scope .cteditor-max-h-\[90vh\]{max-height:90vh}.eddyter-scope .cteditor-max-h-\[calc\(100svh-195px\)\]{max-height:calc(100svh - 195px)}.eddyter-scope .cteditor-max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.eddyter-scope .cteditor-min-h-0{min-height:0px}.eddyter-scope .cteditor-min-h-11{min-height:2.75rem}.eddyter-scope .cteditor-min-h-52{min-height:13rem}.eddyter-scope .cteditor-min-h-8{min-height:2rem}.eddyter-scope .cteditor-min-h-\[1\.25rem\]{min-height:1.25rem}.eddyter-scope .cteditor-min-h-\[100px\]{min-height:100px}.eddyter-scope .cteditor-min-h-\[120px\]{min-height:120px}.eddyter-scope .cteditor-min-h-\[180px\]{min-height:180px}.eddyter-scope .cteditor-min-h-\[200px\]{min-height:200px}.eddyter-scope .cteditor-min-h-\[300px\]{min-height:300px}.eddyter-scope .cteditor-min-h-\[340px\]{min-height:340px}.eddyter-scope .cteditor-min-h-\[40px\]{min-height:40px}.eddyter-scope .cteditor-min-h-\[60px\]{min-height:60px}.eddyter-scope .cteditor-min-h-\[80px\]{min-height:80px}.eddyter-scope .cteditor-min-h-screen{min-height:100vh}.eddyter-scope .\!cteditor-w-24{width:6rem!important}.eddyter-scope .\!cteditor-w-4{width:1rem!important}.eddyter-scope .\!cteditor-w-9{width:2.25rem!important}.eddyter-scope .\!cteditor-w-full{width:100%!important}.eddyter-scope .cteditor-w-10{width:2.5rem}.eddyter-scope .cteditor-w-11{width:2.75rem}.eddyter-scope .cteditor-w-12{width:3rem}.eddyter-scope .cteditor-w-14{width:3.5rem}.eddyter-scope .cteditor-w-16{width:4rem}.eddyter-scope .cteditor-w-2{width:.5rem}.eddyter-scope .cteditor-w-2\/3{width:66.666667%}.eddyter-scope .cteditor-w-20{width:5rem}.eddyter-scope .cteditor-w-3{width:.75rem}.eddyter-scope .cteditor-w-3\.5{width:.875rem}.eddyter-scope .cteditor-w-3\/4{width:75%}.eddyter-scope .cteditor-w-4{width:1rem}.eddyter-scope .cteditor-w-48{width:12rem}.eddyter-scope .cteditor-w-5{width:1.25rem}.eddyter-scope .cteditor-w-56{width:14rem}.eddyter-scope .cteditor-w-6{width:1.5rem}.eddyter-scope .cteditor-w-64{width:16rem}.eddyter-scope .cteditor-w-7{width:1.75rem}.eddyter-scope .cteditor-w-72{width:18rem}.eddyter-scope .cteditor-w-8{width:2rem}.eddyter-scope .cteditor-w-80{width:20rem}.eddyter-scope .cteditor-w-9{width:2.25rem}.eddyter-scope .cteditor-w-\[1px\]{width:1px}.eddyter-scope .cteditor-w-\[20rem\]{width:20rem}.eddyter-scope .cteditor-w-\[340px\]{width:340px}.eddyter-scope .cteditor-w-\[512px\]{width:512px}.eddyter-scope .cteditor-w-\[7px\]{width:7px}.eddyter-scope .cteditor-w-\[calc\(100vw-1rem\)\]{width:calc(100vw - 1rem)}.eddyter-scope .cteditor-w-auto{width:auto}.eddyter-scope .cteditor-w-fit{width:-moz-fit-content;width:fit-content}.eddyter-scope .cteditor-w-full{width:100%}.eddyter-scope .cteditor-w-px{width:1px}.eddyter-scope .cteditor-min-w-0{min-width:0px}.eddyter-scope .cteditor-min-w-10{min-width:2.5rem}.eddyter-scope .cteditor-min-w-44{min-width:11rem}.eddyter-scope .cteditor-min-w-\[160px\]{min-width:160px}.eddyter-scope .cteditor-min-w-\[200px\]{min-width:200px}.eddyter-scope .cteditor-min-w-\[220px\]{min-width:220px}.eddyter-scope .cteditor-min-w-\[40px\]{min-width:40px}.eddyter-scope .cteditor-min-w-\[8rem\]{min-width:8rem}.eddyter-scope .cteditor-min-w-\[90px\]{min-width:90px}.eddyter-scope .cteditor-min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.eddyter-scope .\!cteditor-max-w-3xl{max-width:48rem!important}.eddyter-scope .\!cteditor-max-w-\[1320px\]{max-width:1320px!important}.eddyter-scope .cteditor-max-w-24{max-width:6rem}.eddyter-scope .cteditor-max-w-2xl{max-width:42rem}.eddyter-scope .cteditor-max-w-\[150px\]{max-width:150px}.eddyter-scope .cteditor-max-w-\[220px\]{max-width:220px}.eddyter-scope .cteditor-max-w-\[240px\]{max-width:240px}.eddyter-scope .cteditor-max-w-\[280px\]{max-width:280px}.eddyter-scope .cteditor-max-w-\[300px\]{max-width:300px}.eddyter-scope .cteditor-max-w-\[320px\]{max-width:320px}.eddyter-scope .cteditor-max-w-\[50vw\]{max-width:50vw}.eddyter-scope .cteditor-max-w-\[550px\]{max-width:550px}.eddyter-scope .cteditor-max-w-\[90px\]{max-width:90px}.eddyter-scope .cteditor-max-w-\[calc\(100\%-1\.5rem\)\]{max-width:calc(100% - 1.5rem)}.eddyter-scope .cteditor-max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.eddyter-scope .cteditor-max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.eddyter-scope .cteditor-max-w-\[min\(260px\,calc\(100vw-24px\)\)\]{max-width:min(260px,calc(100vw - 24px))}.eddyter-scope .cteditor-max-w-full{max-width:100%}.eddyter-scope .cteditor-max-w-lg{max-width:32rem}.eddyter-scope .cteditor-max-w-md{max-width:28rem}.eddyter-scope .cteditor-max-w-none{max-width:none}.eddyter-scope .cteditor-max-w-xs{max-width:20rem}.eddyter-scope .cteditor-flex-1{flex:1 1 0%}.eddyter-scope .cteditor-flex-none{flex:none}.eddyter-scope .cteditor-flex-shrink-0,.eddyter-scope .cteditor-shrink-0{flex-shrink:0}.eddyter-scope .cteditor-origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.eddyter-scope .cteditor-origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.eddyter-scope .cteditor-origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.eddyter-scope .cteditor-origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.eddyter-scope .-cteditor-translate-y-0\.5{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .-cteditor-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor--translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor--translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .cteditor-animate-\[pulse_1\.5s_ease-in-out_infinite\]{animation:cteditor-pulse 1.5s ease-in-out infinite}@keyframes cteditor-pulse{50%{opacity:.5}}.eddyter-scope .cteditor-animate-pulse{animation:cteditor-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes cteditor-spin{to{transform:rotate(360deg)}}.eddyter-scope .cteditor-animate-spin{animation:cteditor-spin 1s linear infinite}.eddyter-scope .cteditor-cursor-e-resize{cursor:e-resize}.eddyter-scope .cteditor-cursor-move{cursor:move}.eddyter-scope .cteditor-cursor-n-resize{cursor:n-resize}.eddyter-scope .cteditor-cursor-ne-resize{cursor:ne-resize}.eddyter-scope .cteditor-cursor-not-allowed{cursor:not-allowed}.eddyter-scope .cteditor-cursor-ns-resize{cursor:ns-resize}.eddyter-scope .cteditor-cursor-nw-resize{cursor:nw-resize}.eddyter-scope .cteditor-cursor-pointer{cursor:pointer}.eddyter-scope .cteditor-cursor-s-resize{cursor:s-resize}.eddyter-scope .cteditor-cursor-se-resize{cursor:se-resize}.eddyter-scope .cteditor-cursor-sw-resize{cursor:sw-resize}.eddyter-scope .cteditor-cursor-w-resize{cursor:w-resize}.eddyter-scope .cteditor-touch-none{touch-action:none}.eddyter-scope .cteditor-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.eddyter-scope .cteditor-resize-none{resize:none}.eddyter-scope .cteditor-list-none{list-style-type:none}.eddyter-scope .cteditor-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.eddyter-scope .cteditor-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.eddyter-scope .cteditor-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.eddyter-scope .cteditor-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.eddyter-scope .cteditor-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.eddyter-scope .cteditor-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.eddyter-scope .cteditor-grid-cols-\[1fr_1fr_80px_40px\]{grid-template-columns:1fr 1fr 80px 40px}.eddyter-scope .cteditor-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.eddyter-scope .\!cteditor-flex-col{flex-direction:column!important}.eddyter-scope .cteditor-flex-col{flex-direction:column}.eddyter-scope .cteditor-flex-col-reverse{flex-direction:column-reverse}.eddyter-scope .cteditor-flex-wrap{flex-wrap:wrap}.eddyter-scope .cteditor-flex-nowrap{flex-wrap:nowrap}.eddyter-scope .cteditor-items-start{align-items:flex-start}.eddyter-scope .cteditor-items-center{align-items:center}.eddyter-scope .\!cteditor-justify-start{justify-content:flex-start!important}.eddyter-scope .cteditor-justify-start{justify-content:flex-start}.eddyter-scope .cteditor-justify-end{justify-content:flex-end}.eddyter-scope .cteditor-justify-center{justify-content:center}.eddyter-scope .cteditor-justify-between{justify-content:space-between}.eddyter-scope .\!cteditor-gap-0{gap:0px!important}.eddyter-scope .\!cteditor-gap-1{gap:.25rem!important}.eddyter-scope .\!cteditor-gap-2{gap:.5rem!important}.eddyter-scope .\!cteditor-gap-3{gap:.75rem!important}.eddyter-scope .cteditor-gap-0{gap:0px}.eddyter-scope .cteditor-gap-0\.5{gap:.125rem}.eddyter-scope .cteditor-gap-1{gap:.25rem}.eddyter-scope .cteditor-gap-1\.5{gap:.375rem}.eddyter-scope .cteditor-gap-2{gap:.5rem}.eddyter-scope .cteditor-gap-2\.5{gap:.625rem}.eddyter-scope .cteditor-gap-3{gap:.75rem}.eddyter-scope .cteditor-gap-4{gap:1rem}.eddyter-scope .cteditor-gap-6{gap:1.5rem}.eddyter-scope .cteditor-gap-\[1px\]{gap:1px}.eddyter-scope .cteditor-gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.eddyter-scope .cteditor-gap-y-1\.5{row-gap:.375rem}.eddyter-scope .cteditor-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.eddyter-scope .cteditor-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.eddyter-scope .cteditor-space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.eddyter-scope .cteditor-overflow-auto{overflow:auto}.eddyter-scope .cteditor-overflow-hidden{overflow:hidden}.eddyter-scope .cteditor-overflow-clip{overflow:clip}.eddyter-scope .cteditor-overflow-visible{overflow:visible}.eddyter-scope .cteditor-overflow-x-auto{overflow-x:auto}.eddyter-scope .cteditor-overflow-y-auto{overflow-y:auto}.eddyter-scope .cteditor-overflow-x-hidden{overflow-x:hidden}.eddyter-scope .cteditor-overflow-y-hidden{overflow-y:hidden}.eddyter-scope .cteditor-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eddyter-scope .cteditor-text-ellipsis{text-overflow:ellipsis}.eddyter-scope .cteditor-whitespace-nowrap{white-space:nowrap}.eddyter-scope .cteditor-break-words{overflow-wrap:break-word}.eddyter-scope .cteditor-break-all{word-break:break-all}.eddyter-scope .cteditor-rounded{border-radius:.25rem}.eddyter-scope .cteditor-rounded-2xl{border-radius:1rem}.eddyter-scope .cteditor-rounded-full{border-radius:9999px}.eddyter-scope .cteditor-rounded-lg{border-radius:var(--cteditorf47ac10b-radius)}.eddyter-scope .cteditor-rounded-md{border-radius:calc(var(--cteditorf47ac10b-radius) - 2px)}.eddyter-scope .cteditor-rounded-none{border-radius:0}.eddyter-scope .cteditor-rounded-sm{border-radius:calc(var(--cteditorf47ac10b-radius) - 4px)}.eddyter-scope .cteditor-rounded-xl{border-radius:.75rem}.eddyter-scope .cteditor-rounded-b-lg{border-bottom-right-radius:var(--cteditorf47ac10b-radius);border-bottom-left-radius:var(--cteditorf47ac10b-radius)}.eddyter-scope .cteditor-rounded-l-sm{border-top-left-radius:calc(var(--cteditorf47ac10b-radius) - 4px);border-bottom-left-radius:calc(var(--cteditorf47ac10b-radius) - 4px)}.eddyter-scope .cteditor-rounded-r-md{border-top-right-radius:calc(var(--cteditorf47ac10b-radius) - 2px);border-bottom-right-radius:calc(var(--cteditorf47ac10b-radius) - 2px)}.eddyter-scope .cteditor-rounded-t-lg{border-top-left-radius:var(--cteditorf47ac10b-radius);border-top-right-radius:var(--cteditorf47ac10b-radius)}.eddyter-scope .\!cteditor-border{border-width:1px!important}.eddyter-scope .cteditor-border{border-width:1px}.eddyter-scope .cteditor-border-0{border-width:0px}.eddyter-scope .cteditor-border-2{border-width:2px}.eddyter-scope .cteditor-border-b{border-bottom-width:1px}.eddyter-scope .cteditor-border-b-2{border-bottom-width:2px}.eddyter-scope .cteditor-border-l{border-left-width:1px}.eddyter-scope .cteditor-border-l-2{border-left-width:2px}.eddyter-scope .cteditor-border-l-4{border-left-width:4px}.eddyter-scope .cteditor-border-r{border-right-width:1px}.eddyter-scope .cteditor-border-t{border-top-width:1px}.eddyter-scope .cteditor-border-dashed{border-style:dashed}.eddyter-scope .\!cteditor-border-none{border-style:none!important}.eddyter-scope .cteditor-border-none{border-style:none}.eddyter-scope .\!cteditor-border-amber-400{--tw-border-opacity: 1 !important;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))!important}.eddyter-scope .\!cteditor-border-foreground\/10{border-color:hsl(var(--cteditorf47ac10b-foreground) / .1)!important}.eddyter-scope .\!cteditor-border-foreground\/15{border-color:hsl(var(--cteditorf47ac10b-foreground) / .15)!important}.eddyter-scope .\!cteditor-border-foreground\/30{border-color:hsl(var(--cteditorf47ac10b-foreground) / .3)!important}.eddyter-scope .\!cteditor-border-rose-400{--tw-border-opacity: 1 !important;border-color:rgb(251 113 133 / var(--tw-border-opacity, 1))!important}.eddyter-scope .cteditor-border-\[\#404040\]{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-\[\#e0e0e0\]{--tw-border-opacity: 1;border-color:rgb(224 224 224 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-amber-500\/30{border-color:#f59e0b4d}.eddyter-scope .cteditor-border-background\/10{border-color:hsl(var(--cteditorf47ac10b-background) / .1)}.eddyter-scope .cteditor-border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-blue-500\/20{border-color:#3b82f633}.eddyter-scope .cteditor-border-border{border-color:hsl(var(--cteditorf47ac10b-border))}.eddyter-scope .cteditor-border-destructive{border-color:hsl(var(--cteditorf47ac10b-destructive))}.eddyter-scope .cteditor-border-destructive\/20{border-color:hsl(var(--cteditorf47ac10b-destructive) / .2)}.eddyter-scope .cteditor-border-destructive\/50{border-color:hsl(var(--cteditorf47ac10b-destructive) / .5)}.eddyter-scope .cteditor-border-explanation-border{border-color:hsl(var(--cteditorf47ac10b-explanation-border))}.eddyter-scope .cteditor-border-foreground{border-color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .cteditor-border-foreground\/10{border-color:hsl(var(--cteditorf47ac10b-foreground) / .1)}.eddyter-scope .cteditor-border-foreground\/15{border-color:hsl(var(--cteditorf47ac10b-foreground) / .15)}.eddyter-scope .cteditor-border-foreground\/20{border-color:hsl(var(--cteditorf47ac10b-foreground) / .2)}.eddyter-scope .cteditor-border-foreground\/30{border-color:hsl(var(--cteditorf47ac10b-foreground) / .3)}.eddyter-scope .cteditor-border-foreground\/5{border-color:hsl(var(--cteditorf47ac10b-foreground) / .05)}.eddyter-scope .cteditor-border-foreground\/50{border-color:hsl(var(--cteditorf47ac10b-foreground) / .5)}.eddyter-scope .cteditor-border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-green-500\/20{border-color:#22c55e33}.eddyter-scope .cteditor-border-green-600{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-incorrect-word-border{border-color:hsl(var(--cteditorf47ac10b-incorrect-word-border))}.eddyter-scope .cteditor-border-input{border-color:hsl(var(--cteditorf47ac10b-input))}.eddyter-scope .cteditor-border-main-secondary{border-color:hsl(var(--cteditorf47ac10b-main-secondary))}.eddyter-scope .cteditor-border-muted-foreground\/25{border-color:hsl(var(--cteditorf47ac10b-muted-foreground) / .25)}.eddyter-scope .cteditor-border-muted-foreground\/50{border-color:hsl(var(--cteditorf47ac10b-muted-foreground) / .5)}.eddyter-scope .cteditor-border-primary{border-color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .cteditor-border-primary\/20{border-color:hsl(var(--cteditorf47ac10b-primary) / .2)}.eddyter-scope .cteditor-border-purple-500\/20{border-color:#a855f733}.eddyter-scope .cteditor-border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-red-500\/20{border-color:#ef444433}.eddyter-scope .cteditor-border-red-500\/30{border-color:#ef44444d}.eddyter-scope .cteditor-border-suggestion-border{border-color:hsl(var(--cteditorf47ac10b-suggestion-border))}.eddyter-scope .cteditor-border-transparent{border-color:transparent}.eddyter-scope .cteditor-border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-white\/10{border-color:#ffffff1a}.eddyter-scope .cteditor-border-white\/30{border-color:#ffffff4d}.eddyter-scope .cteditor-border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-l-amber-500{--tw-border-opacity: 1;border-left-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-l-blue-500{--tw-border-opacity: 1;border-left-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-l-green-500{--tw-border-opacity: 1;border-left-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-l-red-500{--tw-border-opacity: 1;border-left-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-l-yellow-500{--tw-border-opacity: 1;border-left-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.eddyter-scope .cteditor-border-t-transparent{border-top-color:transparent}.eddyter-scope .\!cteditor-bg-accent{background-color:hsl(var(--cteditorf47ac10b-accent))!important}.eddyter-scope .\!cteditor-bg-foreground\/10{background-color:hsl(var(--cteditorf47ac10b-foreground) / .1)!important}.eddyter-scope .\!cteditor-bg-foreground\/15{background-color:hsl(var(--cteditorf47ac10b-foreground) / .15)!important}.eddyter-scope .\!cteditor-bg-main-secondary{background-color:hsl(var(--cteditorf47ac10b-main-secondary))!important}.eddyter-scope .cteditor-bg-\[\#141414\]{--tw-bg-opacity: 1;background-color:rgb(20 20 20 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-accent{background-color:hsl(var(--cteditorf47ac10b-accent))}.eddyter-scope .cteditor-bg-accent\/30{background-color:hsl(var(--cteditorf47ac10b-accent) / .3)}.eddyter-scope .cteditor-bg-accent\/50{background-color:hsl(var(--cteditorf47ac10b-accent) / .5)}.eddyter-scope .cteditor-bg-accent\/80{background-color:hsl(var(--cteditorf47ac10b-accent) / .8)}.eddyter-scope .cteditor-bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-amber-500\/10{background-color:#f59e0b1a}.eddyter-scope .cteditor-bg-background{background-color:hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .cteditor-bg-background\/10{background-color:hsl(var(--cteditorf47ac10b-background) / .1)}.eddyter-scope .cteditor-bg-background\/50{background-color:hsl(var(--cteditorf47ac10b-background) / .5)}.eddyter-scope .cteditor-bg-background\/80{background-color:hsl(var(--cteditorf47ac10b-background) / .8)}.eddyter-scope .cteditor-bg-background\/85{background-color:hsl(var(--cteditorf47ac10b-background) / .85)}.eddyter-scope .cteditor-bg-background\/95{background-color:hsl(var(--cteditorf47ac10b-background) / .95)}.eddyter-scope .cteditor-bg-black\/40{background-color:#0006}.eddyter-scope .cteditor-bg-black\/60{background-color:#0009}.eddyter-scope .cteditor-bg-black\/70{background-color:#000000b3}.eddyter-scope .cteditor-bg-black\/80{background-color:#000c}.eddyter-scope .cteditor-bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-blue-500\/10{background-color:#3b82f61a}.eddyter-scope .cteditor-bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-border{background-color:hsl(var(--cteditorf47ac10b-border))}.eddyter-scope .cteditor-bg-card{background-color:hsl(var(--cteditorf47ac10b-card))}.eddyter-scope .cteditor-bg-destructive{background-color:hsl(var(--cteditorf47ac10b-destructive))}.eddyter-scope .cteditor-bg-destructive\/10{background-color:hsl(var(--cteditorf47ac10b-destructive) / .1)}.eddyter-scope .cteditor-bg-explanation-bg{background-color:hsl(var(--cteditorf47ac10b-explanation-bg))}.eddyter-scope .cteditor-bg-foreground{background-color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .cteditor-bg-foreground\/10{background-color:hsl(var(--cteditorf47ac10b-foreground) / .1)}.eddyter-scope .cteditor-bg-foreground\/15{background-color:hsl(var(--cteditorf47ac10b-foreground) / .15)}.eddyter-scope .cteditor-bg-foreground\/20{background-color:hsl(var(--cteditorf47ac10b-foreground) / .2)}.eddyter-scope .cteditor-bg-foreground\/5{background-color:hsl(var(--cteditorf47ac10b-foreground) / .05)}.eddyter-scope .cteditor-bg-foreground\/\[0\.01\]{background-color:hsl(var(--cteditorf47ac10b-foreground) / .01)}.eddyter-scope .cteditor-bg-foreground\/\[0\.02\]{background-color:hsl(var(--cteditorf47ac10b-foreground) / .02)}.eddyter-scope .cteditor-bg-foreground\/\[0\.03\]{background-color:hsl(var(--cteditorf47ac10b-foreground) / .03)}.eddyter-scope .cteditor-bg-grammar-tooltip-bg{background-color:hsl(var(--cteditorf47ac10b-grammar-tooltip-bg))}.eddyter-scope .cteditor-bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-green-500\/10{background-color:#22c55e1a}.eddyter-scope .cteditor-bg-incorrect-word-bg{background-color:hsl(var(--cteditorf47ac10b-incorrect-word-bg))}.eddyter-scope .cteditor-bg-main-background{background-color:hsl(var(--cteditorf47ac10b-main-background))}.eddyter-scope .cteditor-bg-main-secondary{background-color:hsl(var(--cteditorf47ac10b-main-secondary))}.eddyter-scope .cteditor-bg-muted{background-color:hsl(var(--cteditorf47ac10b-muted))}.eddyter-scope .cteditor-bg-muted\/20{background-color:hsl(var(--cteditorf47ac10b-muted) / .2)}.eddyter-scope .cteditor-bg-muted\/50{background-color:hsl(var(--cteditorf47ac10b-muted) / .5)}.eddyter-scope .cteditor-bg-popover{background-color:hsl(var(--cteditorf47ac10b-popover))}.eddyter-scope .cteditor-bg-primary{background-color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .cteditor-bg-primary\/10{background-color:hsl(var(--cteditorf47ac10b-primary) / .1)}.eddyter-scope .cteditor-bg-primary\/20{background-color:hsl(var(--cteditorf47ac10b-primary) / .2)}.eddyter-scope .cteditor-bg-primary\/5{background-color:hsl(var(--cteditorf47ac10b-primary) / .05)}.eddyter-scope .cteditor-bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-red-500\/10{background-color:#ef44441a}.eddyter-scope .cteditor-bg-red-500\/5{background-color:#ef44440d}.eddyter-scope .cteditor-bg-red-500\/50{background-color:#ef444480}.eddyter-scope .cteditor-bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-secondary{background-color:hsl(var(--cteditorf47ac10b-secondary))}.eddyter-scope .cteditor-bg-slate-100\/10{background-color:#f1f5f91a}.eddyter-scope .cteditor-bg-slate-100\/5{background-color:#f1f5f90d}.eddyter-scope .cteditor-bg-suggestion-bg{background-color:hsl(var(--cteditorf47ac10b-suggestion-bg))}.eddyter-scope .cteditor-bg-transparent{background-color:transparent}.eddyter-scope .cteditor-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.eddyter-scope .cteditor-bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.eddyter-scope .cteditor-bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.eddyter-scope .cteditor-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.eddyter-scope .cteditor-bg-none{background-image:none}.eddyter-scope .cteditor-from-foreground\/0{--tw-gradient-from: hsl(var(--cteditorf47ac10b-foreground) / 0) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--cteditorf47ac10b-foreground) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.eddyter-scope .cteditor-from-popover{--tw-gradient-from: hsl(var(--cteditorf47ac10b-popover)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--cteditorf47ac10b-popover) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.eddyter-scope .cteditor-from-purple-500\/5{--tw-gradient-from: rgb(168 85 247 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.eddyter-scope .cteditor-via-foreground\/15{--tw-gradient-to: hsl(var(--cteditorf47ac10b-foreground) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--cteditorf47ac10b-foreground) / .15) var(--tw-gradient-via-position), var(--tw-gradient-to)}.eddyter-scope .cteditor-via-popover{--tw-gradient-to: hsl(var(--cteditorf47ac10b-popover) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--cteditorf47ac10b-popover)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.eddyter-scope .cteditor-to-foreground\/0{--tw-gradient-to: hsl(var(--cteditorf47ac10b-foreground) / 0) var(--tw-gradient-to-position)}.eddyter-scope .cteditor-to-pink-500\/5{--tw-gradient-to: rgb(236 72 153 / .05) var(--tw-gradient-to-position)}.eddyter-scope .cteditor-to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.eddyter-scope .cteditor-fill-\[\#141414\]{fill:#141414}.eddyter-scope .cteditor-fill-current{fill:currentColor}.eddyter-scope .cteditor-fill-yellow-400{fill:#facc15}.eddyter-scope .cteditor-object-contain{-o-object-fit:contain;object-fit:contain}.eddyter-scope .cteditor-object-cover{-o-object-fit:cover;object-fit:cover}.eddyter-scope .\!cteditor-p-0{padding:0!important}.eddyter-scope .\!cteditor-p-1{padding:.25rem!important}.eddyter-scope .\!cteditor-p-2{padding:.5rem!important}.eddyter-scope .\!cteditor-p-3{padding:.75rem!important}.eddyter-scope .\!cteditor-p-4{padding:1rem!important}.eddyter-scope .cteditor-p-0{padding:0}.eddyter-scope .cteditor-p-0\.5{padding:.125rem}.eddyter-scope .cteditor-p-1{padding:.25rem}.eddyter-scope .cteditor-p-1\.5{padding:.375rem}.eddyter-scope .cteditor-p-2{padding:.5rem}.eddyter-scope .cteditor-p-2\.5{padding:.625rem}.eddyter-scope .cteditor-p-3{padding:.75rem}.eddyter-scope .cteditor-p-4{padding:1rem}.eddyter-scope .cteditor-p-5{padding:1.25rem}.eddyter-scope .cteditor-p-6{padding:1.5rem}.eddyter-scope .cteditor-p-8{padding:2rem}.eddyter-scope .cteditor-p-\[2px\]{padding:2px}.eddyter-scope .cteditor-p-\[6px\]{padding:6px}.eddyter-scope .\!cteditor-px-1{padding-left:.25rem!important;padding-right:.25rem!important}.eddyter-scope .\!cteditor-px-2{padding-left:.5rem!important;padding-right:.5rem!important}.eddyter-scope .\!cteditor-px-3{padding-left:.75rem!important;padding-right:.75rem!important}.eddyter-scope .\!cteditor-py-0\.5{padding-top:.125rem!important;padding-bottom:.125rem!important}.eddyter-scope .\!cteditor-py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.eddyter-scope .cteditor-px-0\.5{padding-left:.125rem;padding-right:.125rem}.eddyter-scope .cteditor-px-1{padding-left:.25rem;padding-right:.25rem}.eddyter-scope .cteditor-px-1\.5{padding-left:.375rem;padding-right:.375rem}.eddyter-scope .cteditor-px-2{padding-left:.5rem;padding-right:.5rem}.eddyter-scope .cteditor-px-2\.5{padding-left:.625rem;padding-right:.625rem}.eddyter-scope .cteditor-px-3{padding-left:.75rem;padding-right:.75rem}.eddyter-scope .cteditor-px-3\.5{padding-left:.875rem;padding-right:.875rem}.eddyter-scope .cteditor-px-4{padding-left:1rem;padding-right:1rem}.eddyter-scope .cteditor-px-5{padding-left:1.25rem;padding-right:1.25rem}.eddyter-scope .cteditor-px-6{padding-left:1.5rem;padding-right:1.5rem}.eddyter-scope .cteditor-px-7{padding-left:1.75rem;padding-right:1.75rem}.eddyter-scope .cteditor-px-8{padding-left:2rem;padding-right:2rem}.eddyter-scope .cteditor-py-0{padding-top:0;padding-bottom:0}.eddyter-scope .cteditor-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.eddyter-scope .cteditor-py-1{padding-top:.25rem;padding-bottom:.25rem}.eddyter-scope .cteditor-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.eddyter-scope .cteditor-py-2{padding-top:.5rem;padding-bottom:.5rem}.eddyter-scope .cteditor-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.eddyter-scope .cteditor-py-3{padding-top:.75rem;padding-bottom:.75rem}.eddyter-scope .cteditor-py-4{padding-top:1rem;padding-bottom:1rem}.eddyter-scope .cteditor-py-8{padding-top:2rem;padding-bottom:2rem}.eddyter-scope .cteditor-pb-1\.5{padding-bottom:.375rem}.eddyter-scope .cteditor-pb-12{padding-bottom:3rem}.eddyter-scope .cteditor-pb-14{padding-bottom:3.5rem}.eddyter-scope .cteditor-pb-2{padding-bottom:.5rem}.eddyter-scope .cteditor-pb-3{padding-bottom:.75rem}.eddyter-scope .cteditor-pb-4{padding-bottom:1rem}.eddyter-scope .cteditor-pl-2{padding-left:.5rem}.eddyter-scope .cteditor-pl-2\.5{padding-left:.625rem}.eddyter-scope .cteditor-pl-8{padding-left:2rem}.eddyter-scope .cteditor-pr-1{padding-right:.25rem}.eddyter-scope .cteditor-pr-11{padding-right:2.75rem}.eddyter-scope .cteditor-pr-12{padding-right:3rem}.eddyter-scope .cteditor-pr-2{padding-right:.5rem}.eddyter-scope .cteditor-pr-6{padding-right:1.5rem}.eddyter-scope .cteditor-pr-8{padding-right:2rem}.eddyter-scope .cteditor-pt-0{padding-top:0}.eddyter-scope .cteditor-pt-1{padding-top:.25rem}.eddyter-scope .cteditor-pt-1\.5{padding-top:.375rem}.eddyter-scope .cteditor-pt-2{padding-top:.5rem}.eddyter-scope .cteditor-pt-3{padding-top:.75rem}.eddyter-scope .cteditor-pt-5{padding-top:1.25rem}.eddyter-scope .cteditor-text-left{text-align:left}.eddyter-scope .\!cteditor-text-center{text-align:center!important}.eddyter-scope .cteditor-text-center{text-align:center}.eddyter-scope .cteditor-text-right{text-align:right}.eddyter-scope .cteditor-align-middle{vertical-align:middle}.eddyter-scope .cteditor-font-\[monospace\]{font-family:monospace}.eddyter-scope .cteditor-font-geist{font-family:Geist,sans-serif}.eddyter-scope .cteditor-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.eddyter-scope .cteditor-text-2xl{font-size:1.5rem;line-height:2rem}.eddyter-scope .cteditor-text-6xl{font-size:3.75rem;line-height:1}.eddyter-scope .cteditor-text-\[10px\]{font-size:10px}.eddyter-scope .cteditor-text-\[11px\]{font-size:11px}.eddyter-scope .cteditor-text-\[13px\]{font-size:13px}.eddyter-scope .cteditor-text-\[9px\]{font-size:9px}.eddyter-scope .cteditor-text-base{font-size:1rem;line-height:1.5rem}.eddyter-scope .cteditor-text-lg{font-size:1.125rem;line-height:1.75rem}.eddyter-scope .cteditor-text-sm{font-size:.875rem;line-height:1.25rem}.eddyter-scope .cteditor-text-xl{font-size:1.25rem;line-height:1.75rem}.eddyter-scope .cteditor-text-xs{font-size:.75rem;line-height:1rem}.eddyter-scope .\!cteditor-font-medium{font-weight:500!important}.eddyter-scope .\!cteditor-font-normal{font-weight:400!important}.eddyter-scope .cteditor-font-bold{font-weight:700}.eddyter-scope .cteditor-font-medium{font-weight:500}.eddyter-scope .cteditor-font-normal{font-weight:400}.eddyter-scope .cteditor-font-semibold{font-weight:600}.eddyter-scope .cteditor-uppercase{text-transform:uppercase}.eddyter-scope .cteditor-capitalize{text-transform:capitalize}.eddyter-scope .cteditor-italic{font-style:italic}.eddyter-scope .cteditor-leading-none{line-height:1}.eddyter-scope .cteditor-leading-relaxed{line-height:1.625}.eddyter-scope .cteditor-leading-tight{line-height:1.25}.eddyter-scope .cteditor-tracking-tight{letter-spacing:-.025em}.eddyter-scope .cteditor-tracking-wider{letter-spacing:.05em}.eddyter-scope .cteditor-tracking-widest{letter-spacing:.1em}.eddyter-scope .\!cteditor-text-amber-700{--tw-text-opacity: 1 !important;color:rgb(180 83 9 / var(--tw-text-opacity, 1))!important}.eddyter-scope .cteditor-text-\[\#525252\]{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-background{color:hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .cteditor-text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-black\/50{color:#00000080}.eddyter-scope .cteditor-text-black\/80{color:#000c}.eddyter-scope .cteditor-text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-card-foreground{color:hsl(var(--cteditorf47ac10b-card-foreground))}.eddyter-scope .cteditor-text-current{color:currentColor}.eddyter-scope .cteditor-text-destructive{color:hsl(var(--cteditorf47ac10b-destructive))}.eddyter-scope .cteditor-text-destructive-foreground{color:hsl(var(--cteditorf47ac10b-destructive-foreground))}.eddyter-scope .cteditor-text-destructive\/80{color:hsl(var(--cteditorf47ac10b-destructive) / .8)}.eddyter-scope .cteditor-text-destructive\/90{color:hsl(var(--cteditorf47ac10b-destructive) / .9)}.eddyter-scope .cteditor-text-foreground{color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .cteditor-text-foreground\/30{color:hsl(var(--cteditorf47ac10b-foreground) / .3)}.eddyter-scope .cteditor-text-foreground\/40{color:hsl(var(--cteditorf47ac10b-foreground) / .4)}.eddyter-scope .cteditor-text-foreground\/50{color:hsl(var(--cteditorf47ac10b-foreground) / .5)}.eddyter-scope .cteditor-text-foreground\/60{color:hsl(var(--cteditorf47ac10b-foreground) / .6)}.eddyter-scope .cteditor-text-foreground\/80{color:hsl(var(--cteditorf47ac10b-foreground) / .8)}.eddyter-scope .cteditor-text-foreground\/90{color:hsl(var(--cteditorf47ac10b-foreground) / .9)}.eddyter-scope .cteditor-text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-green-900{--tw-text-opacity: 1;color:rgb(20 83 45 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-incorrect-word-text{color:hsl(var(--cteditorf47ac10b-incorrect-word-text))}.eddyter-scope .cteditor-text-muted-foreground{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .cteditor-text-muted-foreground\/40{color:hsl(var(--cteditorf47ac10b-muted-foreground) / .4)}.eddyter-scope .cteditor-text-muted-foreground\/60{color:hsl(var(--cteditorf47ac10b-muted-foreground) / .6)}.eddyter-scope .cteditor-text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-popover-foreground{color:hsl(var(--cteditorf47ac10b-popover-foreground))}.eddyter-scope .cteditor-text-primary{color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .cteditor-text-primary-foreground{color:hsl(var(--cteditorf47ac10b-primary-foreground))}.eddyter-scope .cteditor-text-primary\/90{color:hsl(var(--cteditorf47ac10b-primary) / .9)}.eddyter-scope .cteditor-text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-secondary-foreground{color:hsl(var(--cteditorf47ac10b-secondary-foreground))}.eddyter-scope .cteditor-text-suggestion-text{color:hsl(var(--cteditorf47ac10b-suggestion-text))}.eddyter-scope .cteditor-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-white\/95{color:#fffffff2}.eddyter-scope .cteditor-text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.eddyter-scope .cteditor-line-through{text-decoration-line:line-through}.eddyter-scope .cteditor-no-underline{text-decoration-line:none}.eddyter-scope .cteditor-underline-offset-4{text-underline-offset:4px}.eddyter-scope .cteditor-placeholder-muted-foreground::-moz-placeholder{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .cteditor-placeholder-muted-foreground::placeholder{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .cteditor-placeholder-muted-foreground\/60::-moz-placeholder{color:hsl(var(--cteditorf47ac10b-muted-foreground) / .6)}.eddyter-scope .cteditor-placeholder-muted-foreground\/60::placeholder{color:hsl(var(--cteditorf47ac10b-muted-foreground) / .6)}.eddyter-scope .cteditor-caret-\[\#3b82f6\]{caret-color:#3b82f6}.eddyter-scope .cteditor-opacity-0{opacity:0}.eddyter-scope .cteditor-opacity-100{opacity:1}.eddyter-scope .cteditor-opacity-25{opacity:.25}.eddyter-scope .cteditor-opacity-40{opacity:.4}.eddyter-scope .cteditor-opacity-50{opacity:.5}.eddyter-scope .cteditor-opacity-60{opacity:.6}.eddyter-scope .cteditor-opacity-70{opacity:.7}.eddyter-scope .cteditor-opacity-75{opacity:.75}.eddyter-scope .\!cteditor-shadow-none{--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.eddyter-scope .cteditor-shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .cteditor-shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .cteditor-shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .cteditor-shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .cteditor-shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .cteditor-shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .cteditor-shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .\!cteditor-outline-none{outline:2px solid transparent!important;outline-offset:2px!important}.eddyter-scope .cteditor-outline-none{outline:2px solid transparent;outline-offset:2px}.eddyter-scope .\!cteditor-outline-0{outline-width:0px!important}.eddyter-scope .cteditor-outline-0{outline-width:0px}.eddyter-scope .\!cteditor-ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important}.eddyter-scope .cteditor-ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .cteditor-ring-background{--tw-ring-color: hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .cteditor-ring-foreground{--tw-ring-color: hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .cteditor-ring-primary\/20{--tw-ring-color: hsl(var(--cteditorf47ac10b-primary) / .2)}.eddyter-scope .cteditor-ring-offset-background{--tw-ring-offset-color: hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .cteditor-drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.eddyter-scope .cteditor-invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.eddyter-scope .cteditor-backdrop-blur-\[1px\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.eddyter-scope .cteditor-backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.eddyter-scope .cteditor-backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.eddyter-scope .cteditor-backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.eddyter-scope .cteditor-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.eddyter-scope .cteditor-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.eddyter-scope .cteditor-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.eddyter-scope .cteditor-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.eddyter-scope .cteditor-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.eddyter-scope .cteditor-duration-150{transition-duration:.15s}.eddyter-scope .cteditor-duration-200{transition-duration:.2s}.eddyter-scope .cteditor-duration-300{transition-duration:.3s}.eddyter-scope .cteditor-duration-500{transition-duration:.5s}.eddyter-scope .cteditor-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.eddyter-scope .cteditor-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.eddyter-scope .cteditor-will-change-transform{will-change:transform}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.eddyter-scope .cteditor-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.eddyter-scope .cteditor-fade-in,.eddyter-scope .cteditor-fade-in-0{--tw-enter-opacity: 0}.eddyter-scope .cteditor-zoom-in-95{--tw-enter-scale: .95}.eddyter-scope .cteditor-slide-in-from-bottom-4{--tw-enter-translate-y: 1rem}.eddyter-scope .cteditor-duration-150{animation-duration:.15s}.eddyter-scope .cteditor-duration-200{animation-duration:.2s}.eddyter-scope .cteditor-duration-300{animation-duration:.3s}.eddyter-scope .cteditor-duration-500{animation-duration:.5s}.eddyter-scope .cteditor-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.eddyter-scope .cteditor-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.eddyter-scope .editor-image,.eddyter-scope .editor-image>div,.eddyter-scope .editor-image img{border:0 none!important;border-style:none!important;outline:none!important;box-shadow:none!important}.eddyter-scope .editor-image img.focused{outline:2px solid rgb(60,132,244)!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.eddyter-scope .eddyter-scope,#ct-editor-f47ac10b,.eddyter-scope #eddyter-portal-container{color:hsl(var(--cteditorf47ac10b-foreground));font-family:Geist,sans-serif;font-optical-sizing:auto;font-weight:400;font-style:normal}#ct-editor-f47ac10b ::-webkit-scrollbar{width:4px;height:4px}#ct-editor-f47ac10b ::-webkit-scrollbar-track{background:#f0f0f0;border-radius:20px}#ct-editor-f47ac10b ::-webkit-scrollbar-thumb{background:#aaa;border-radius:20px}#ct-editor-f47ac10b ::-webkit-scrollbar-thumb:hover{background:#888}#ct-editor-f47ac10b.dark ::-webkit-scrollbar-track{background:#2a2a2a}#ct-editor-f47ac10b.dark ::-webkit-scrollbar-thumb{background:#777}#ct-editor-f47ac10b.dark ::-webkit-scrollbar-thumb:hover{background:#999}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader,.eddyter-scope .PlaygroundEditorTheme__table th,.eddyter-scope .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader{word-wrap:break-word!important;overflow-wrap:break-word!important;white-space:normal!important}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader *,.eddyter-scope .PlaygroundEditorTheme__table th *,.eddyter-scope .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader *{white-space:normal!important}#ct-editor-f47ac10b.dark .PlaygroundEditorTheme__tableCell[style*=background-color]:not(.PlaygroundEditorTheme__tableCellHeader){color:#000000de}#ct-editor-f47ac10b.dark .PlaygroundEditorTheme__tableCell:not([style*=background-color]){background-color:transparent!important}.eddyter-scope .editor .PlaygroundEditorTheme__tableAddRows,.eddyter-scope .editor .PlaygroundEditorTheme__tableAddColumns{background-color:hsla(var(--cteditorf47ac10b-foreground));color:hsla(var(--cteditorf47ac10b-background));display:flex;align-items:center;justify-content:center}.eddyter-scope .editor .PlaygroundEditorTheme__tableAddRows svg,.eddyter-scope .editor .PlaygroundEditorTheme__tableAddColumns svg{width:14px;height:auto}.eddyter-scope .table-insert-dot{box-shadow:0 2px 4px #0000001a;opacity:.6;transition:all .2s ease}.eddyter-scope .table-insert-dot:hover,.eddyter-scope .table-insert-dot.hovered{opacity:1;transform:scale(1.1)}.eddyter-scope .table-insert-dot:focus{outline:2px solid #3b82f6;outline-offset:2px}#ct-editor-f47ac10b .ai-chat-popup{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;color:hsla(var(--cteditorf47ac10b-foreground))}#ct-editor-f47ac10b .ai-chat-popup .ai-chat-input{background-color:hsla(var(--cteditorf47ac10b-background));color:hsla(var(--cteditorf47ac10b-foreground))}.eddyter-scope .editorView textarea{background:hsla(var(--cteditorf47ac10b-background));color:hsla(var(--cteditorf47ac10b-foreground));border-radius:10px;padding:14px;border-color:hsla(var(--cteditorf47ac10b-foreground)/ .2)}.eddyter-scope .editor{border:1px solid hsla(var(--cteditorf47ac10b-background));color:hsla(var(--cteditorf47ac10b-foreground));border-radius:8px}.eddyter-scope .html-codemirror-wrapper{min-height:0;overflow:hidden}.eddyter-scope .html-codemirror-wrapper .cm-editor{flex:1;min-height:0;height:100%}.eddyter-scope .html-codemirror-wrapper .cm-scroller{overflow:auto!important}.eddyter-scope .html-canvas-code-wrap{max-height:540px}.eddyter-scope .html-canvas-code-wrap .cm-editor{max-height:540px;height:540px!important}.eddyter-scope .html-canvas-code-wrap .cm-scroller{overflow:auto!important;max-height:540px}.eddyter-scope .comment-count-bubble{position:fixed;background:#f59e0b;color:#fff;border-radius:50%;width:22px;height:22px;align-items:center;justify-content:center;font-size:11px;font-weight:600;z-index:99999;pointer-events:none;box-shadow:0 2px 8px #f59e0b66}#ct-editor-f47ac10b *{box-sizing:border-box}#ct-editor-f47ac10b .cteditor-overflow-x-auto::-webkit-scrollbar{height:6px}#ct-editor-f47ac10b .cteditor-overflow-x-auto::-webkit-scrollbar-track{background:transparent}#ct-editor-f47ac10b .cteditor-overflow-x-auto::-webkit-scrollbar-thumb{background:hsl(var(--cteditorf47ac10b-border));border-radius:3px}#ct-editor-f47ac10b .cteditor-overflow-x-auto::-webkit-scrollbar-thumb:hover{background:hsl(var(--cteditorf47ac10b-foreground) / .3)}#ct-editor-f47ac10b [data-toolbar-item]{flex-shrink:0}.eddyter-scope .no-scrollbar::-webkit-scrollbar{display:none}.eddyter-scope .no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}#ct-editor-f47ac10b .EmojiPickerReact{--epr-bg-color: hsl(var(--cteditorf47ac10b-background) / .5);--epr-picker-border-color: hsl(var(--cteditorf47ac10b-foreground) / .2);--epr-search-input-bg-color: hsl(var(--cteditorf47ac10b-background));--epr-search-border-color: hsl(var(--cteditorf47ac10b-foreground) / .2);--epr-category-label-bg-color: hsl(var(--cteditorf47ac10b-foreground) / .03);--epr-category-label-text-color: hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .epr-header{height:auto!important}.eddyter-scope button.epr-cat-btn{background-image:none!important;background-color:transparent!important;position:relative!important;overflow:visible!important}.eddyter-scope button.epr-cat-btn:after{content:""!important;position:absolute!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:18px!important;pointer-events:none!important}.eddyter-scope button.epr-icn-suggested:after{content:"🕐"!important}.eddyter-scope button.epr-icn-smileys_people:after{content:"😀"!important}.eddyter-scope button.epr-icn-animals_nature:after{content:"🐻"!important}.eddyter-scope button.epr-icn-food_drink:after{content:"🍔"!important}.eddyter-scope button.epr-icn-travel_places:after{content:"✈️"!important}.eddyter-scope button.epr-icn-activities:after{content:"⚽"!important}.eddyter-scope button.epr-icn-objects:after{content:"💡"!important}.eddyter-scope button.epr-icn-symbols:after{content:"💕"!important}.eddyter-scope button.epr-icn-flags:after{content:"🏁"!important}.eddyter-scope .EmojiPickerReact .epr-search-container input{padding-left:35px;font-size:13px}.eddyter-scope .EmojiPickerReact .epr-emoji-img{height:40px!important;width:40px!important;min-width:40px!important;min-height:40px!important}.eddyter-scope .\*\:cteditor-size-5>*{width:1.25rem;height:1.25rem}.eddyter-scope .\*\:cteditor-size-8>*{width:2rem;height:2rem}.eddyter-scope .file\:cteditor-border-0::file-selector-button{border-width:0px}.eddyter-scope .file\:cteditor-bg-transparent::file-selector-button{background-color:transparent}.eddyter-scope .file\:cteditor-text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.eddyter-scope .file\:cteditor-font-medium::file-selector-button{font-weight:500}.eddyter-scope .file\:cteditor-text-foreground::file-selector-button{color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .placeholder\:cteditor-text-muted-foreground::-moz-placeholder{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .placeholder\:cteditor-text-muted-foreground::placeholder{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .before\:cteditor-pointer-events-none:before{content:var(--tw-content);pointer-events:none}.eddyter-scope .before\:cteditor-absolute:before{content:var(--tw-content);position:absolute}.eddyter-scope .before\:cteditor-inset-0:before{content:var(--tw-content);inset:0}.eddyter-scope .before\:cteditor-bg-\[url\(\'data\:image\/svg\+xml\,\%3Csvg\%20viewBox\%3D\%220\%200\%20256\%20256\%22\%20xmlns\%3D\%22http\%3A\%2F\%2Fwww\.w3\.org\%2F2000\%2Fsvg\%22\%3E\%3Cfilter\%20id\%3D\%22n\%22\%3E\%3CfeTurbulence\%20type\%3D\%22fractalNoise\%22\%20baseFrequency\%3D\%220\.9\%22\%20numOctaves\%3D\%224\%22\%20stitchTiles\%3D\%22stitch\%22\%2F\%3E\%3C\%2Ffilter\%3E\%3Crect\%20width\%3D\%22100\%25\%22\%20height\%3D\%22100\%25\%22\%20filter\%3D\%22url\(\%23n\)\%22\%2F\%3E\%3C\%2Fsvg\%3E\'\)\]:before{content:var(--tw-content);background-image:url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20256%20256%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.9%22%20numOctaves%3D%224%22%20stitchTiles%3D%22stitch%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23n)%22%2F%3E%3C%2Fsvg%3E")}.eddyter-scope .before\:cteditor-opacity-\[0\.07\]:before{content:var(--tw-content);opacity:.07}.eddyter-scope .before\:cteditor-content-\[\'\'\]:before{--tw-content: "";content:var(--tw-content)}.eddyter-scope .last\:cteditor-border-b-0:last-child{border-bottom-width:0px}.eddyter-scope .empty\:before\:cteditor-text-muted-foreground\/60:empty:before{content:var(--tw-content);color:hsl(var(--cteditorf47ac10b-muted-foreground) / .6)}.eddyter-scope .empty\:before\:cteditor-content-\[attr\(data-placeholder\)\]:empty:before{--tw-content: attr(data-placeholder);content:var(--tw-content)}.eddyter-scope .hover\:cteditor-scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .hover\:cteditor-scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .hover\:cteditor-border-border:hover{border-color:hsl(var(--cteditorf47ac10b-border))}.eddyter-scope .hover\:cteditor-border-foreground\/50:hover{border-color:hsl(var(--cteditorf47ac10b-foreground) / .5)}.eddyter-scope .hover\:cteditor-border-muted-foreground:hover{border-color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .hover\:cteditor-border-muted-foreground\/50:hover{border-color:hsl(var(--cteditorf47ac10b-muted-foreground) / .5)}.eddyter-scope .hover\:cteditor-border-primary:hover{border-color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .hover\:cteditor-border-primary\/50:hover{border-color:hsl(var(--cteditorf47ac10b-primary) / .5)}.eddyter-scope .hover\:cteditor-border-white:hover{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.eddyter-scope .hover\:\!cteditor-bg-foreground\/10:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .1)!important}.eddyter-scope .hover\:cteditor-bg-accent:hover{background-color:hsl(var(--cteditorf47ac10b-accent))}.eddyter-scope .hover\:cteditor-bg-accent\/50:hover{background-color:hsl(var(--cteditorf47ac10b-accent) / .5)}.eddyter-scope .hover\:cteditor-bg-accent\/90:hover{background-color:hsl(var(--cteditorf47ac10b-accent) / .9)}.eddyter-scope .hover\:cteditor-bg-accent\/95:hover{background-color:hsl(var(--cteditorf47ac10b-accent) / .95)}.eddyter-scope .hover\:cteditor-bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-background:hover{background-color:hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .hover\:cteditor-bg-background\/80:hover{background-color:hsl(var(--cteditorf47ac10b-background) / .8)}.eddyter-scope .hover\:cteditor-bg-black\/10:hover{background-color:#0000001a}.eddyter-scope .hover\:cteditor-bg-black\/80:hover{background-color:#000c}.eddyter-scope .hover\:cteditor-bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-destructive:hover{background-color:hsl(var(--cteditorf47ac10b-destructive))}.eddyter-scope .hover\:cteditor-bg-destructive\/10:hover{background-color:hsl(var(--cteditorf47ac10b-destructive) / .1)}.eddyter-scope .hover\:cteditor-bg-destructive\/80:hover{background-color:hsl(var(--cteditorf47ac10b-destructive) / .8)}.eddyter-scope .hover\:cteditor-bg-destructive\/90:hover{background-color:hsl(var(--cteditorf47ac10b-destructive) / .9)}.eddyter-scope .hover\:cteditor-bg-foreground:hover{background-color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .hover\:cteditor-bg-foreground\/10:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .1)}.eddyter-scope .hover\:cteditor-bg-foreground\/20:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .2)}.eddyter-scope .hover\:cteditor-bg-foreground\/5:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .05)}.eddyter-scope .hover\:cteditor-bg-foreground\/90:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .9)}.eddyter-scope .hover\:cteditor-bg-foreground\/95:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .95)}.eddyter-scope .hover\:cteditor-bg-foreground\/\[0\.04\]:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .04)}.eddyter-scope .hover\:cteditor-bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-main-secondary:hover{background-color:hsl(var(--cteditorf47ac10b-main-secondary))}.eddyter-scope .hover\:cteditor-bg-muted:hover{background-color:hsl(var(--cteditorf47ac10b-muted))}.eddyter-scope .hover\:cteditor-bg-primary:hover{background-color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .hover\:cteditor-bg-primary\/80:hover{background-color:hsl(var(--cteditorf47ac10b-primary) / .8)}.eddyter-scope .hover\:cteditor-bg-primary\/90:hover{background-color:hsl(var(--cteditorf47ac10b-primary) / .9)}.eddyter-scope .hover\:cteditor-bg-red-500\/10:hover{background-color:#ef44441a}.eddyter-scope .hover\:cteditor-bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-rose-100:hover{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.eddyter-scope .hover\:cteditor-bg-secondary\/80:hover{background-color:hsl(var(--cteditorf47ac10b-secondary) / .8)}.eddyter-scope .hover\:cteditor-bg-white\/90:hover{background-color:#ffffffe6}.eddyter-scope .hover\:cteditor-text-accent-foreground:hover{color:hsl(var(--cteditorf47ac10b-accent-foreground))}.eddyter-scope .hover\:cteditor-text-background:hover{color:hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .hover\:cteditor-text-destructive:hover{color:hsl(var(--cteditorf47ac10b-destructive))}.eddyter-scope .hover\:cteditor-text-destructive-foreground:hover{color:hsl(var(--cteditorf47ac10b-destructive-foreground))}.eddyter-scope .hover\:cteditor-text-foreground:hover{color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .hover\:cteditor-text-foreground\/60:hover{color:hsl(var(--cteditorf47ac10b-foreground) / .6)}.eddyter-scope .hover\:cteditor-text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.eddyter-scope .hover\:cteditor-text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.eddyter-scope .hover\:cteditor-text-primary:hover{color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .hover\:cteditor-text-primary-foreground:hover{color:hsl(var(--cteditorf47ac10b-primary-foreground))}.eddyter-scope .hover\:cteditor-text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.eddyter-scope .hover\:cteditor-text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.eddyter-scope .hover\:cteditor-text-yellow-400\/60:hover{color:#facc1599}.eddyter-scope .hover\:cteditor-underline:hover{text-decoration-line:underline}.eddyter-scope .hover\:cteditor-opacity-100:hover{opacity:1}.eddyter-scope .hover\:cteditor-opacity-90:hover{opacity:.9}.eddyter-scope .hover\:cteditor-shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .focus\:cteditor-border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.eddyter-scope .focus\:cteditor-border-foreground:focus{border-color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .focus\:cteditor-border-foreground\/40:focus{border-color:hsl(var(--cteditorf47ac10b-foreground) / .4)}.eddyter-scope .focus\:cteditor-border-primary:focus{border-color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .focus\:cteditor-border-primary\/60:focus{border-color:hsl(var(--cteditorf47ac10b-primary) / .6)}.eddyter-scope .focus\:cteditor-bg-foreground\/5:focus{background-color:hsl(var(--cteditorf47ac10b-foreground) / .05)}.eddyter-scope .focus\:cteditor-bg-secondary:focus{background-color:hsl(var(--cteditorf47ac10b-secondary))}.eddyter-scope .focus\:cteditor-text-accent-foreground:focus{color:hsl(var(--cteditorf47ac10b-accent-foreground))}.eddyter-scope .focus\:cteditor-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.eddyter-scope .focus\:cteditor-ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .focus\:cteditor-ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .focus\:cteditor-ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .focus\:cteditor-ring-background:focus{--tw-ring-color: hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .focus\:cteditor-ring-primary\/20:focus{--tw-ring-color: hsl(var(--cteditorf47ac10b-primary) / .2)}.eddyter-scope .focus\:cteditor-ring-ring:focus{--tw-ring-color: hsl(var(--cteditorf47ac10b-ring))}.eddyter-scope .focus\:cteditor-ring-offset-2:focus{--tw-ring-offset-width: 2px}.eddyter-scope .focus-visible\:cteditor-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.eddyter-scope .focus-visible\:cteditor-ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .focus-visible\:cteditor-ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .focus-visible\:cteditor-ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.eddyter-scope .focus-visible\:cteditor-ring-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.eddyter-scope .focus-visible\:cteditor-ring-ring:focus-visible{--tw-ring-color: hsl(var(--cteditorf47ac10b-ring))}.eddyter-scope .focus-visible\:cteditor-ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.eddyter-scope .active\:cteditor-scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .disabled\:cteditor-pointer-events-none:disabled{pointer-events:none}.eddyter-scope .disabled\:cteditor-cursor-not-allowed:disabled{cursor:not-allowed}.eddyter-scope .disabled\:cteditor-opacity-30:disabled{opacity:.3}.eddyter-scope .disabled\:cteditor-opacity-50:disabled{opacity:.5}.eddyter-scope .cteditor-group:focus-within .group-focus-within\:cteditor-text-primary{color:hsl(var(--cteditorf47ac10b-primary))}.eddyter-scope .cteditor-group.selected .group-\[\.selected\]\:cteditor-bg-primary-foreground\/20{background-color:hsl(var(--cteditorf47ac10b-primary-foreground) / .2)}.eddyter-scope .cteditor-peer:disabled~.peer-disabled\:cteditor-cursor-not-allowed{cursor:not-allowed}.eddyter-scope .cteditor-peer:disabled~.peer-disabled\:cteditor-opacity-70{opacity:.7}.eddyter-scope .data-\[disabled\]\:cteditor-pointer-events-none[data-disabled]{pointer-events:none}.eddyter-scope .data-\[side\=bottom\]\:cteditor-translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .data-\[side\=left\]\:-cteditor-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .data-\[side\=right\]\:cteditor-translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .data-\[side\=top\]\:-cteditor-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.eddyter-scope .data-\[state\=active\]\:cteditor-bg-background[data-state=active]{background-color:hsl(var(--cteditorf47ac10b-background))}.eddyter-scope .data-\[state\=open\]\:cteditor-bg-accent[data-state=open]{background-color:hsl(var(--cteditorf47ac10b-accent))}.eddyter-scope .data-\[state\=open\]\:cteditor-bg-secondary[data-state=open]{background-color:hsl(var(--cteditorf47ac10b-secondary))}.eddyter-scope .data-\[placeholder\]\:cteditor-text-muted-foreground[data-placeholder]{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .data-\[state\=active\]\:cteditor-text-foreground[data-state=active]{color:hsl(var(--cteditorf47ac10b-foreground))}.eddyter-scope .data-\[state\=open\]\:cteditor-text-muted-foreground[data-state=open]{color:hsl(var(--cteditorf47ac10b-muted-foreground))}.eddyter-scope .data-\[disabled\]\:cteditor-opacity-50[data-disabled]{opacity:.5}.eddyter-scope .data-\[state\=active\]\:cteditor-shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.eddyter-scope .data-\[state\=closed\]\:cteditor-duration-300[data-state=closed]{transition-duration:.3s}.eddyter-scope .data-\[state\=open\]\:cteditor-duration-500[data-state=open]{transition-duration:.5s}.eddyter-scope .data-\[state\=open\]\:cteditor-animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.eddyter-scope .data-\[state\=closed\]\:cteditor-animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.eddyter-scope .data-\[state\=closed\]\:cteditor-fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.eddyter-scope .data-\[state\=open\]\:cteditor-fade-in-0[data-state=open]{--tw-enter-opacity: 0}.eddyter-scope .data-\[state\=closed\]\:cteditor-zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.eddyter-scope .data-\[state\=open\]\:cteditor-zoom-in-95[data-state=open]{--tw-enter-scale: .95}.eddyter-scope .data-\[side\=bottom\]\:cteditor-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.eddyter-scope .data-\[side\=left\]\:cteditor-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.eddyter-scope .data-\[side\=right\]\:cteditor-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.eddyter-scope .data-\[side\=top\]\:cteditor-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-top-2[data-state=closed]{--tw-exit-translate-y: -.5rem}.eddyter-scope .data-\[state\=closed\]\:cteditor-slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.eddyter-scope .data-\[state\=left\]\:cteditor-slide-out-to-right-2[data-state=left]{--tw-exit-translate-x: .5rem}.eddyter-scope .data-\[state\=open\]\:cteditor-slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.eddyter-scope .data-\[state\=open\]\:cteditor-slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.eddyter-scope .data-\[state\=open\]\:cteditor-slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.eddyter-scope .data-\[state\=open\]\:cteditor-slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.eddyter-scope .data-\[state\=open\]\:cteditor-slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.eddyter-scope .data-\[state\=open\]\:cteditor-slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.eddyter-scope .data-\[state\=right\]\:cteditor-slide-out-to-left-2[data-state=right]{--tw-exit-translate-x: -.5rem}.eddyter-scope .data-\[state\=top\]\:cteditor-slide-out-to-bottom-2[data-state=top]{--tw-exit-translate-y: .5rem}.eddyter-scope .data-\[state\=closed\]\:cteditor-duration-300[data-state=closed]{animation-duration:.3s}.eddyter-scope .data-\[state\=open\]\:cteditor-duration-500[data-state=open]{animation-duration:.5s}.eddyter-scope .dark\:cteditor-border-amber-800:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(146 64 14 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-border-blue-800:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-border-gray-300:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-border-gray-700:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-border-green-800:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(22 101 52 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-border-red-800:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-border-red-900\/50:is(.cteditor-dark *){border-color:#7f1d1d80}.eddyter-scope .dark\:cteditor-border-yellow-800:is(.cteditor-dark *){--tw-border-opacity: 1;border-color:rgb(133 77 14 / var(--tw-border-opacity, 1))}.eddyter-scope .dark\:cteditor-bg-amber-950\/50:is(.cteditor-dark *){background-color:#451a0380}.eddyter-scope .dark\:cteditor-bg-blue-900\/30:is(.cteditor-dark *){background-color:#1e3a8a4d}.eddyter-scope .dark\:cteditor-bg-blue-950\/20:is(.cteditor-dark *){background-color:#17255433}.eddyter-scope .dark\:cteditor-bg-blue-950\/50:is(.cteditor-dark *){background-color:#17255480}.eddyter-scope .dark\:cteditor-bg-gray-900:is(.cteditor-dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.eddyter-scope .dark\:cteditor-bg-gray-900\/50:is(.cteditor-dark *){background-color:#11182780}.eddyter-scope .dark\:cteditor-bg-green-950\/50:is(.cteditor-dark *){background-color:#052e1680}.eddyter-scope .dark\:cteditor-bg-input:is(.cteditor-dark *){background-color:hsl(var(--cteditorf47ac10b-input))}.eddyter-scope .dark\:cteditor-bg-input\/5:is(.cteditor-dark *){background-color:hsl(var(--cteditorf47ac10b-input) / .05)}.eddyter-scope .dark\:cteditor-bg-red-900\/30:is(.cteditor-dark *){background-color:#7f1d1d4d}.eddyter-scope .dark\:cteditor-bg-red-950\/20:is(.cteditor-dark *){background-color:#450a0a33}.eddyter-scope .dark\:cteditor-bg-red-950\/50:is(.cteditor-dark *){background-color:#450a0a80}.eddyter-scope .dark\:cteditor-bg-yellow-950\/50:is(.cteditor-dark *){background-color:#42200680}.eddyter-scope .dark\:cteditor-text-amber-100:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-amber-200:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-amber-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-blue-100:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-blue-200:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-blue-300:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-blue-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-gray-100:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-gray-300:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-gray-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-green-100:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(220 252 231 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-green-200:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-green-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-red-100:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-red-200:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-red-300:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-red-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-rose-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-text-yellow-400:is(.cteditor-dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.eddyter-scope .dark\:cteditor-invert-0:is(.cteditor-dark *){--tw-invert: invert(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.eddyter-scope .dark\:hover\:cteditor-bg-amber-900\/30:hover:is(.cteditor-dark *){background-color:#78350f4d}.eddyter-scope .dark\:hover\:cteditor-bg-gray-800:hover:is(.cteditor-dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.eddyter-scope .dark\:hover\:cteditor-bg-rose-900\/30:hover:is(.cteditor-dark *){background-color:#8813374d}.eddyter-scope .hover\:dark\:\!cteditor-bg-foreground\/5:is(.cteditor-dark *):hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .05)!important}.eddyter-scope .hover\:dark\:cteditor-bg-foreground\/5:is(.cteditor-dark *):hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .05)}@media not all and (min-width:768px){.eddyter-scope .max-md\:cteditor-hidden{display:none}.eddyter-scope .max-md\:cteditor-w-full{width:100%}}@media not all and (min-width:640px){.eddyter-scope .max-sm\:cteditor-hidden{display:none}.eddyter-scope .max-sm\:cteditor-text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:640px){.eddyter-scope .sm\:cteditor-right-4{right:1rem}.eddyter-scope .sm\:cteditor-top-4{top:1rem}.eddyter-scope .sm\:cteditor-inline{display:inline}.eddyter-scope .sm\:cteditor-hidden{display:none}.eddyter-scope .sm\:cteditor-h-5{height:1.25rem}.eddyter-scope .sm\:cteditor-h-7{height:1.75rem}.eddyter-scope .sm\:cteditor-h-8{height:2rem}.eddyter-scope .sm\:cteditor-h-9{height:2.25rem}.eddyter-scope .sm\:cteditor-w-5{width:1.25rem}.eddyter-scope .sm\:cteditor-w-7{width:1.75rem}.eddyter-scope .sm\:cteditor-w-8{width:2rem}.eddyter-scope .sm\:cteditor-w-\[28rem\]{width:28rem}.eddyter-scope .sm\:cteditor-w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.eddyter-scope .sm\:cteditor-max-w-4xl{max-width:56rem}.eddyter-scope .sm\:cteditor-max-w-\[450px\]{max-width:450px}.eddyter-scope .sm\:cteditor-max-w-\[500px\]{max-width:500px}.eddyter-scope .sm\:cteditor-max-w-\[60rem\]{max-width:60rem}.eddyter-scope .sm\:cteditor-max-w-\[860px\]{max-width:860px}.eddyter-scope .sm\:cteditor-max-w-lg{max-width:32rem}.eddyter-scope .sm\:cteditor-max-w-md{max-width:28rem}.eddyter-scope .sm\:cteditor-max-w-sm{max-width:24rem}.eddyter-scope .sm\:cteditor-max-w-xl{max-width:36rem}.eddyter-scope .sm\:cteditor-flex-row{flex-direction:row}.eddyter-scope .sm\:cteditor-justify-end{justify-content:flex-end}.eddyter-scope .sm\:cteditor-gap-2{gap:.5rem}.eddyter-scope .sm\:cteditor-gap-3{gap:.75rem}.eddyter-scope .sm\:cteditor-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.eddyter-scope .sm\:cteditor-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.eddyter-scope .sm\:cteditor-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.eddyter-scope .sm\:cteditor-rounded-lg{border-radius:var(--cteditorf47ac10b-radius)}.eddyter-scope .sm\:\!cteditor-p-5{padding:1.25rem!important}.eddyter-scope .sm\:\!cteditor-p-6{padding:1.5rem!important}.eddyter-scope .sm\:cteditor-px-4{padding-left:1rem;padding-right:1rem}.eddyter-scope .sm\:cteditor-pt-3{padding-top:.75rem}.eddyter-scope .sm\:cteditor-text-left{text-align:left}.eddyter-scope .sm\:cteditor-text-base{font-size:1rem;line-height:1.5rem}.eddyter-scope .sm\:cteditor-text-lg{font-size:1.125rem;line-height:1.75rem}.eddyter-scope .sm\:cteditor-text-sm{font-size:.875rem;line-height:1.25rem}}@media(min-width:768px){.eddyter-scope .md\:cteditor-mr-auto{margin-right:auto}.eddyter-scope .md\:cteditor-hidden{display:none}.eddyter-scope .md\:\!cteditor-w-\[120px\]{width:120px!important}.eddyter-scope .md\:cteditor-min-w-80{min-width:20rem}.eddyter-scope .md\:cteditor-grid-cols-\[1\.4fr_320px\]{grid-template-columns:1.4fr 320px}.eddyter-scope .md\:cteditor-justify-between{justify-content:space-between}.eddyter-scope .md\:cteditor-overflow-hidden{overflow:hidden}.eddyter-scope .md\:cteditor-whitespace-nowrap{white-space:nowrap}.eddyter-scope .md\:cteditor-p-2{padding:.5rem}.eddyter-scope .md\:cteditor-p-5{padding:1.25rem}.eddyter-scope .md\:cteditor-p-6{padding:1.5rem}.eddyter-scope .md\:cteditor-pt-3{padding-top:.75rem}.eddyter-scope .md\:cteditor-text-sm{font-size:.875rem;line-height:1.25rem}}.eddyter-scope .\[\&\>\.closeDialog\]\:cteditor-right-1>.closeDialog{right:.25rem}.eddyter-scope .\[\&\>\.closeDialog\]\:cteditor-right-1\.5>.closeDialog{right:.375rem}.eddyter-scope .\[\&\>\.closeDialog\]\:cteditor-top-1>.closeDialog{top:.25rem}.eddyter-scope .\[\&\>\.closeDialog\]\:cteditor-top-1\.5>.closeDialog{top:.375rem}.eddyter-scope .\[\&\>\[data-lock-icon\]\]\:cteditor-absolute>[data-lock-icon]{position:absolute}.eddyter-scope .\[\&\>\[data-lock-icon\]\]\:cteditor-left-1>[data-lock-icon]{left:.25rem}.eddyter-scope .\[\&\>\[data-lock-icon\]\]\:cteditor-right-auto>[data-lock-icon]{right:auto}.eddyter-scope .\[\&\>\[data-lock-icon\]\]\:cteditor-top-2\.5>[data-lock-icon]{top:.625rem}.eddyter-scope .\[\&\>\[data-lock-icon\]\]\:cteditor-translate-x-0>[data-lock-icon]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media(min-width:768px){.eddyter-scope .md\:\[\&\>\[data-lock-icon\]\]\:cteditor-opacity-0>[data-lock-icon]{opacity:0}}.eddyter-scope .\[\&\>button\>div\]\:cteditor-size-6>button>div{width:1.5rem;height:1.5rem}.eddyter-scope .\[\&\>button\>span\]\:cteditor-hidden>button>span{display:none}.eddyter-scope .\[\&\>button\>svg\:first-child\]\:cteditor-opacity-0>button>svg:first-child{opacity:0}.eddyter-scope .\[\&\>button\]\:\!cteditor-size-6>button{width:1.5rem!important;height:1.5rem!important}.eddyter-scope .\[\&\>button\]\:cteditor-size-6>button{width:1.5rem;height:1.5rem}.eddyter-scope .\[\&\>button\]\:cteditor-h-6>button{height:1.5rem}.eddyter-scope .\[\&\>button\]\:cteditor-w-full>button{width:100%}.eddyter-scope .\[\&\>button\]\:cteditor-rounded-full>button{border-radius:9999px}.eddyter-scope .\[\&\>button\]\:cteditor-rounded-sm>button{border-radius:calc(var(--cteditorf47ac10b-radius) - 4px)}.eddyter-scope .\[\&\>button\]\:cteditor-p-0>button{padding:0}.eddyter-scope .\[\&\>button\]\:cteditor-px-0>button{padding-left:0;padding-right:0}.eddyter-scope .\[\&\>button\]\:cteditor-px-2>button{padding-left:.5rem;padding-right:.5rem}.eddyter-scope .\[\&\>button\]\:cteditor-py-1\.5>button{padding-top:.375rem;padding-bottom:.375rem}.eddyter-scope .\[\&\>button\]\:cteditor-text-xs>button{font-size:.75rem;line-height:1rem}.eddyter-scope .\[\&\>button\]\:cteditor-outline-none>button{outline:2px solid transparent;outline-offset:2px}.eddyter-scope .hover\:\[\&\>button\]\:cteditor-bg-foreground\/5>button:hover{background-color:hsl(var(--cteditorf47ac10b-foreground) / .05)}.eddyter-scope .\[\&\>div\>div\]\:cteditor-w-full>div>div{width:100%}.eddyter-scope .\[\&\>div\>input\]\:\!cteditor-h-6>div>input{height:1.5rem!important}.eddyter-scope .\[\&\>div\>input\]\:\!cteditor-w-5>div>input{width:1.25rem!important}.eddyter-scope .\[\&\>div\]\:cteditor-pointer-events-none>div{pointer-events:none}.eddyter-scope .\[\&\>div\]\:cteditor-w-full>div{width:100%}.eddyter-scope .\[\&\>hr\]\:cteditor-h-\[2px\]>hr{height:2px}.eddyter-scope .\[\&\>hr\]\:cteditor-border-none>hr{border-style:none}.eddyter-scope .\[\&\>span\]\:cteditor-line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.eddyter-scope .\[\&\>svg\]\:\!cteditor-size-3>svg{width:.75rem!important;height:.75rem!important}.eddyter-scope .\[\&\>svg\]\:\!cteditor-size-4>svg{width:1rem!important;height:1rem!important}.eddyter-scope .\[\&\>svg\]\:cteditor-size-2\.5>svg{width:.625rem;height:.625rem}.eddyter-scope .\[\&\>svg\]\:cteditor-size-3\.5>svg{width:.875rem;height:.875rem}.eddyter-scope .\[\&\>svg\]\:cteditor-size-4>svg{width:1rem;height:1rem}.eddyter-scope .\[\&\>svg\]\:cteditor-size-5>svg{width:1.25rem;height:1.25rem}.eddyter-scope .\[\&\>svg\]\:cteditor-size-6>svg{width:1.5rem;height:1.5rem}.eddyter-scope .\[\&\>svg\]\:cteditor-h-full>svg{height:100%}.eddyter-scope .\[\&\>svg\]\:cteditor-w-full>svg{width:100%}.eddyter-scope .\[\&\>svg\]\:cteditor-shrink-0>svg{flex-shrink:0}.eddyter-scope .\[\&_\.closeDialog\]\:cteditor-hidden .closeDialog{display:none}.eddyter-scope .\[\&_svg\]\:cteditor-pointer-events-none svg{pointer-events:none}.eddyter-scope .\[\&_svg\]\:\!cteditor-size-5 svg{width:1.25rem!important;height:1.25rem!important}.eddyter-scope .\[\&_svg\]\:cteditor-size-6 svg{width:1.5rem;height:1.5rem}.eddyter-scope .\[\&_svg\]\:cteditor-shrink-0 svg{flex-shrink:0}@keyframes bubble-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}#ct-editor-f47ac10b .eddyter-scope .editor-container{max-width:100%;min-width:0;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}#ct-editor-f47ac10b .eddyter-scope .cteditor-content{min-width:0}#ct-editor-f47ac10b .eddyter-scope .editor-image,#ct-editor-f47ac10b .eddyter-scope img{max-width:100%;height:auto}#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table{position:relative;margin-left:24px!important;margin-top:24px!important;margin-bottom:24px!important}#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table,#ct-editor-f47ac10b .eddyter-scope .table{table-layout:fixed!important;overflow-x:auto;display:table;clear:both}#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper.table-full-width-active,#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper:has(.PlaygroundEditorTheme__table[data-table-full-width=true]),#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper:has(.table[data-table-full-width=true]){width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important;margin-right:0!important;box-sizing:border-box}#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table[data-table-full-width=true],#ct-editor-f47ac10b .eddyter-scope .table[data-table-full-width=true]{width:calc(100% - 24px)!important;max-width:calc(100% - 24px)!important;min-width:0!important;overflow-x:hidden!important;box-sizing:border-box;table-layout:fixed!important}#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table[data-table-full-width=false],#ct-editor-f47ac10b .eddyter-scope .table[data-table-full-width=false],#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table:not([data-table-full-width]),#ct-editor-f47ac10b .eddyter-scope .table:not([data-table-full-width]){width:auto!important;max-width:calc(100% - 24px)}#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__tableCellHeader,#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table th,#ct-editor-f47ac10b .eddyter-scope .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader{word-wrap:break-word;overflow-wrap:break-word}#ct-editor-f47ac10b .eddyter-scope [contenteditable=true]{max-width:100%;overflow-wrap:break-word;word-wrap:break-word}#ct-editor-f47ac10b .eddyter-scope .ltr{text-align:left}#ct-editor-f47ac10b .eddyter-scope .rtl{text-align:right}#ct-editor-f47ac10b .eddyter-scope .paragraph{position:relative;display:block;margin:0;line-height:1.5;min-height:1.5em}#ct-editor-f47ac10b .eddyter-scope .quote{margin:0 0 10px 20px;font-size:15px;color:#65676b;border-left-color:#ced0d4;border-left-width:4px;border-left-style:solid;padding-left:16px}#ct-editor-f47ac10b .eddyter-scope .h1{display:block;font-size:2em;margin:.67em 0}#ct-editor-f47ac10b .eddyter-scope .h2{display:block;font-size:1.5em;margin:.83em 0}#ct-editor-f47ac10b .eddyter-scope .h3{display:block;font-size:1.17em;margin:1em 0}#ct-editor-f47ac10b .eddyter-scope .h4{display:block;margin:1.33em 0}#ct-editor-f47ac10b .eddyter-scope .h5{display:block;font-size:.83em;margin:1.67em 0}#ct-editor-f47ac10b .eddyter-scope .h6{display:block;font-size:.67em;margin:2.33em 0}#ct-editor-f47ac10b .eddyter-scope .indent{--lexical-indent-base-value: 20px}#ct-editor-f47ac10b .eddyter-scope .textBold{font-weight:700}#ct-editor-f47ac10b .eddyter-scope .textItalic{font-style:italic}#ct-editor-f47ac10b .eddyter-scope .textUnderline{text-decoration:underline}#ct-editor-f47ac10b .eddyter-scope .textStrikethrough{text-decoration:line-through}#ct-editor-f47ac10b .eddyter-scope .textUnderlineStrikethrough{text-decoration:underline line-through}#ct-editor-f47ac10b .eddyter-scope .textSubscript{font-size:.8em;vertical-align:sub!important}#ct-editor-f47ac10b .eddyter-scope .textSuperscript{font-size:.8em;vertical-align:super}#ct-editor-f47ac10b .eddyter-scope .textCode{background-color:hsla(var(--cteditorf47ac10b-foreground) / .08);color:hsla(var(--cteditorf47ac10b-foreground) / .9);padding:2px 6px;font-family:Menlo,Consolas,Monaco,monospace;font-size:90%;border-radius:4px;border:1px solid hsla(var(--cteditorf47ac10b-foreground) / .1);transition:all .2s ease}#ct-editor-f47ac10b .eddyter-scope .textCode:hover{background-color:hsla(var(--cteditorf47ac10b-foreground) / .12);border-color:hsla(var(--cteditorf47ac10b-foreground) / .2)}#ct-editor-f47ac10b .eddyter-scope .hashtag{background-color:#5890ff26;border-bottom:1px solid rgba(88,144,255,.3)}#ct-editor-f47ac10b .eddyter-scope .link{color:#216fdb;text-decoration:underline}#ct-editor-f47ac10b .eddyter-scope .link:hover{text-decoration:underline;cursor:pointer}#ct-editor-f47ac10b .eddyter-scope .code{background-color:hsla(var(--cteditorf47ac10b-foreground) / .15);color:hsla(var(--cteditorf47ac10b-foreground) / .95);font-family:Menlo,Consolas,Monaco,monospace;display:block;padding:8px 8px 8px 52px;line-height:1.53;font-size:13px;margin:8px 0;-moz-tab-size:2;-o-tab-size:2;tab-size:2;overflow-x:auto;position:relative;border-radius:6px;border:1px solid hsla(var(--cteditorf47ac10b-foreground) / .2);transition:all .2s ease;cursor:pointer;white-space:pre;word-wrap:normal;overflow-wrap:normal}#ct-editor-f47ac10b .eddyter-scope .code:hover{background-color:hsla(var(--cteditorf47ac10b-foreground) / .18);border-color:hsla(var(--cteditorf47ac10b-foreground) / .25);box-shadow:0 2px 8px hsla(var(--cteditorf47ac10b-foreground) / .15)}#ct-editor-f47ac10b .eddyter-scope .code:focus-within{outline:2px solid hsla(var(--cteditorf47ac10b-primary));outline-offset:2px}#ct-editor-f47ac10b .eddyter-scope .code.selected{background-color:hsla(var(--cteditorf47ac10b-foreground) / .1);border-color:hsla(var(--cteditorf47ac10b-primary));box-shadow:0 0 0 2px hsla(var(--cteditorf47ac10b-primary) / .2)}#ct-editor-f47ac10b .eddyter-scope .code:before{content:attr(data-gutter);position:absolute;background-color:hsla(var(--cteditorf47ac10b-foreground) / .12);left:0;top:0;border-right:1px solid hsla(var(--cteditorf47ac10b-foreground) / .2);border-top-left-radius:6px;border-bottom-left-radius:6px;padding:8px;color:hsla(var(--cteditorf47ac10b-foreground) / .75);white-space:pre;text-align:right;min-width:25px;line-height:1.53}#ct-editor-f47ac10b .eddyter-scope .characterLimit{display:inline;background-color:#fbb!important}#ct-editor-f47ac10b .eddyter-scope .ol1{padding:0;margin:0;list-style-type:decimal;list-style-position:inside}#ct-editor-f47ac10b .eddyter-scope .ol2{padding:0;margin:0;list-style-type:upper-alpha;list-style-position:inside}#ct-editor-f47ac10b .eddyter-scope .ol3{padding:0;margin:0;list-style-type:lower-alpha;list-style-position:inside}#ct-editor-f47ac10b .eddyter-scope .ol4{padding:0;margin:0;list-style-type:upper-roman;list-style-position:inside}#ct-editor-f47ac10b .eddyter-scope .ol5{padding:0;margin:0;list-style-type:lower-roman;list-style-position:inside}#ct-editor-f47ac10b .eddyter-scope .ul{padding:0;margin:0;list-style-type:disc;list-style-position:inside}#ct-editor-f47ac10b .eddyter-scope .listItem{margin:0 32px}#ct-editor-f47ac10b .eddyter-scope .listItemChecked,#ct-editor-f47ac10b .eddyter-scope .listItemUnchecked{position:relative;margin-left:8px;margin-right:8px;padding-left:24px;padding-right:24px;list-style-type:none;outline:none}#ct-editor-f47ac10b .eddyter-scope .listItemChecked{text-decoration:line-through}#ct-editor-f47ac10b .eddyter-scope .listItemUnchecked:before,#ct-editor-f47ac10b .eddyter-scope .listItemChecked:before{content:"";width:16px;height:16px;top:2px;left:0;cursor:pointer;display:block;background-size:cover;position:absolute}#ct-editor-f47ac10b .eddyter-scope .listItemUnchecked[dir=rtl]:before,#ct-editor-f47ac10b .eddyter-scope .listItemChecked[dir=rtl]:before{left:auto;right:0}#ct-editor-f47ac10b .eddyter-scope .listItemUnchecked:focus:before,#ct-editor-f47ac10b .eddyter-scope .listItemChecked:focus:before{box-shadow:0 0 0 2px #a6cdfe;border-radius:2px}#ct-editor-f47ac10b .eddyter-scope .listItemUnchecked:before{border:1px solid #999;border-radius:2px}#ct-editor-f47ac10b .eddyter-scope .listItemChecked:before{border:1px solid rgb(61,135,245);border-radius:2px;background-color:#3d87f5;background-repeat:no-repeat}#ct-editor-f47ac10b .eddyter-scope .listItemChecked:after{content:"";cursor:pointer;border-color:#fff;border-style:solid;position:absolute;display:block;top:6px;width:3px;left:7px;right:7px;height:6px;transform:rotate(45deg);border-width:0 2px 2px 0}#ct-editor-f47ac10b .eddyter-scope .nestedListItem{list-style-type:none}#ct-editor-f47ac10b .eddyter-scope .nestedListItem:before,#ct-editor-f47ac10b .eddyter-scope .nestedListItem:after{display:none}#ct-editor-f47ac10b .eddyter-scope .tokenComment{color:#7c8896}#ct-editor-f47ac10b .eddyter-scope .tokenPunctuation{color:#606060}#ct-editor-f47ac10b .eddyter-scope .comment-node{display:inline;-webkit-user-select:none;-moz-user-select:none;user-select:none}#ct-editor-f47ac10b .eddyter-scope .comment-highlight{background-color:#fef3c7!important;border-bottom:2px solid #f59e0b!important;border-radius:2px;padding:1px 2px;cursor:pointer;position:relative;transition:all .2s ease}#ct-editor-f47ac10b .eddyter-scope .comment-highlight:hover{background-color:#fde68a!important;box-shadow:0 2px 4px #f59e0b4d;transform:translateY(-1px)}#ct-editor-f47ac10b .eddyter-scope .commented-text{background-color:transparent!important;cursor:pointer;position:relative;transition:all .2s ease}#ct-editor-f47ac10b .eddyter-scope .commented-text:hover{background-color:transparent!important}#ct-editor-f47ac10b .eddyter-scope .comment-count-bubble{position:fixed;background:#f59e0b;color:#fff;border-radius:50%;width:22px;height:22px;display:none;align-items:center;justify-content:center;font-size:11px;font-weight:600;z-index:9999;pointer-events:none;box-shadow:0 2px 8px #f59e0b66;animation:bubble-appear .2s ease-out}#ct-editor-f47ac10b .eddyter-scope .tokenProperty{color:#b854a6}#ct-editor-f47ac10b .eddyter-scope .tokenSelector{color:#5f8c3d}#ct-editor-f47ac10b .eddyter-scope .tokenOperator{color:#c48944}#ct-editor-f47ac10b .eddyter-scope .tokenAttr{color:#3a8fb7}#ct-editor-f47ac10b .eddyter-scope .tokenVariable{color:#f90}#ct-editor-f47ac10b .eddyter-scope .tokenFunction{color:#e55876}#ct-editor-f47ac10b .eddyter-scope .mark{background:#ffd40024;border-bottom:2px solid rgba(255,212,0,.3);padding-bottom:2px}#ct-editor-f47ac10b .eddyter-scope .markOverlap{background:#ffd4004d;border-bottom:2px solid rgba(255,212,0,.7)}#ct-editor-f47ac10b .eddyter-scope .mark.selected{background:#ffd40080;border-bottom:2px solid rgba(255,212,0,1)}#ct-editor-f47ac10b .eddyter-scope .markOverlap.selected{background:#ffd400b3;border-bottom:2px solid rgba(255,212,0,.7)}#ct-editor-f47ac10b .eddyter-scope .embedBlock{-webkit-user-select:none;-moz-user-select:none;user-select:none}#ct-editor-f47ac10b .eddyter-scope .embedBlockFocus{outline:2px solid rgb(60,132,244)}#ct-editor-f47ac10b .eddyter-scope .tree-view-output{display:block;background:#222;color:#fff;padding:0;font-size:12px;margin:1px auto 10px;max-height:250px;position:relative;overflow:hidden;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#ct-editor-f47ac10b .eddyter-scope .debug-timetravel-panel{overflow:hidden;padding:0 0 10px;margin:auto;display:flex}#ct-editor-f47ac10b .eddyter-scope .debug-timetravel-panel-slider{padding:0;flex:8}#ct-editor-f47ac10b .eddyter-scope .debug-timetravel-panel-button{padding:0;border:0;background:none;flex:1;color:#fff;font-size:12px}#ct-editor-f47ac10b .eddyter-scope .debug-timetravel-panel-button:hover{text-decoration:underline}#ct-editor-f47ac10b .eddyter-scope .debug-timetravel-button{border:0;padding:0;font-size:12px;top:10px;right:15px;position:absolute;background:none;color:#fff}#ct-editor-f47ac10b .eddyter-scope .debug-timetravel-button:hover{text-decoration:underline}.eddyter-scope .PlaygroundEditorTheme__ltr{text-align:left}.eddyter-scope .PlaygroundEditorTheme__rtl{text-align:right}.eddyter-scope .PlaygroundEditorTheme__paragraph{margin:0;position:relative;line-height:1.5;min-height:1.5em}.eddyter-scope .PlaygroundEditorTheme__paragraph:last-child{margin-bottom:0}.eddyter-scope .PlaygroundEditorTheme__quote{font-size:15px;line-height:1.5;border-left-width:4px;border-left-style:solid;position:relative;padding-left:1em;padding-top:.375em;padding-bottom:.375em;margin:1rem 0;opacity:.7;border-color:#6b7280}.eddyter-scope .cteditor-content h1{font-size:24px}.eddyter-scope .cteditor-content h2{font-size:20px}.eddyter-scope .cteditor-content h3{font-size:18px}.eddyter-scope .cteditor-content h4{font-size:16px}.eddyter-scope .cteditor-content h5{font-size:14px}.eddyter-scope .cteditor-content h6{font-size:12px}.eddyter-scope .cteditor-content h1,.eddyter-scope .cteditor-content h2,.eddyter-scope .cteditor-content h3,.eddyter-scope .cteditor-content h4,.eddyter-scope .cteditor-content h5,.eddyter-scope .cteditor-content h6{margin-top:1.5em;margin-bottom:.5em}.eddyter-scope .cteditor-content h1:first-child,.eddyter-scope .cteditor-content h2:first-child,.eddyter-scope .cteditor-content h3:first-child,.eddyter-scope .cteditor-content h4:first-child,.eddyter-scope .cteditor-content h5:first-child,.eddyter-scope .cteditor-content h6:first-child{margin-top:0}.eddyter-scope .cteditor-content p:not(:first-child):not(td p):not(th p){margin-top:1em}.eddyter-scope .cteditor-content code+h1,.eddyter-scope .cteditor-content code+h2,.eddyter-scope .cteditor-content code+h3,.eddyter-scope .cteditor-content code+h4,.eddyter-scope .cteditor-content code+h5,.eddyter-scope .cteditor-content code+h6{margin-top:1.5em}.eddyter-scope .cteditor-content code+p{margin-top:1em}.eddyter-scope .cteditor-content p+code,.eddyter-scope .cteditor-content h1+code,.eddyter-scope .cteditor-content h2+code,.eddyter-scope .cteditor-content h3+code,.eddyter-scope .cteditor-content h4+code,.eddyter-scope .cteditor-content h5+code,.eddyter-scope .cteditor-content h6+code{margin-top:1em}.eddyter-scope .PlaygroundEditorTheme__indent{--lexical-indent-base-value: 40px}.eddyter-scope .PlaygroundEditorTheme__textBold{font-weight:700}.eddyter-scope .PlaygroundEditorTheme__textItalic{font-style:italic}.eddyter-scope .PlaygroundEditorTheme__textUnderline{text-decoration:underline}.eddyter-scope .PlaygroundEditorTheme__textStrikethrough{text-decoration:line-through}.eddyter-scope .PlaygroundEditorTheme__textUnderlineStrikethrough{text-decoration:underline line-through}.eddyter-scope .PlaygroundEditorTheme__tabNode{position:relative;text-decoration:none}.eddyter-scope .PlaygroundEditorTheme__tabNode.PlaygroundEditorTheme__textUnderline:after{content:"";position:absolute;left:0;right:0;bottom:.15em;border-bottom:.1em solid currentColor}.eddyter-scope .PlaygroundEditorTheme__tabNode.PlaygroundEditorTheme__textStrikethrough:before{content:"";position:absolute;left:0;right:0;top:.69em;border-top:.1em solid currentColor}.eddyter-scope .PlaygroundEditorTheme__tabNode.PlaygroundEditorTheme__textUnderlineStrikethrough:before,.eddyter-scope .PlaygroundEditorTheme__tabNode.PlaygroundEditorTheme__textUnderlineStrikethrough:after{content:"";position:absolute;left:0;right:0}.eddyter-scope .PlaygroundEditorTheme__tabNode.PlaygroundEditorTheme__textUnderlineStrikethrough:before{top:.69em;border-top:.1em solid currentColor}.eddyter-scope .PlaygroundEditorTheme__tabNode.PlaygroundEditorTheme__textUnderlineStrikethrough:after{bottom:.05em;border-bottom:.1em solid currentColor}.eddyter-scope .PlaygroundEditorTheme__textSubscript{font-size:.8em;vertical-align:sub!important}.eddyter-scope .PlaygroundEditorTheme__textSuperscript{font-size:.8em;vertical-align:super}.eddyter-scope .PlaygroundEditorTheme__textCode{background-color:#2d2d2d;color:#f8f8f2;padding:2px 6px;font-family:Menlo,Consolas,Monaco,monospace;font-size:90%;border-radius:4px;border:1px solid #404040;transition:all .2s ease}.eddyter-scope .PlaygroundEditorTheme__textCode:hover{background-color:#333;border-color:#505050}.eddyter-scope .PlaygroundEditorTheme__textLowercase{text-transform:lowercase}.eddyter-scope .PlaygroundEditorTheme__textUppercase{text-transform:uppercase}.eddyter-scope .PlaygroundEditorTheme__textCapitalize{text-transform:capitalize}.eddyter-scope .PlaygroundEditorTheme__hashtag{background-color:#5890ff26;border-bottom:1px solid rgba(88,144,255,.3)}.eddyter-scope .PlaygroundEditorTheme__link{color:#216fdb;text-decoration:underline}.eddyter-scope .PlaygroundEditorTheme__link:hover{text-decoration:underline;cursor:pointer}.eddyter-scope .PlaygroundEditorTheme__blockCursor{display:block;pointer-events:none;position:absolute}.eddyter-scope .PlaygroundEditorTheme__blockCursor:after{content:"";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:CursorBlink 1.1s steps(2,start) infinite}@keyframes CursorBlink{to{visibility:hidden}}.eddyter-scope .PlaygroundEditorTheme__code{background-color:#2d2d2d;color:#f8f8f2;font-family:Menlo,Consolas,Monaco,monospace;display:block;padding:8px 8px 8px 52px;line-height:1.53;font-size:13px;margin:8px 0;overflow-x:auto;position:relative;-moz-tab-size:2;-o-tab-size:2;tab-size:2;border-radius:6px;border:1px solid #404040;transition:all .2s ease;cursor:pointer;white-space:pre;word-wrap:normal;overflow-wrap:normal}.eddyter-scope .PlaygroundEditorTheme__code:hover{background-color:#333;border-color:#505050;box-shadow:0 2px 8px #0003}.eddyter-scope .PlaygroundEditorTheme__code:focus-within{outline:2px solid hsla(var(--cteditorf47ac10b-primary));outline-offset:2px}.eddyter-scope .PlaygroundEditorTheme__code.selected{background-color:#353535;border-color:hsla(var(--cteditorf47ac10b-primary));box-shadow:0 0 0 2px hsla(var(--cteditorf47ac10b-primary) / .2)}.eddyter-scope .PlaygroundEditorTheme__code:before{content:attr(data-gutter);position:absolute;background-color:#252525;left:0;top:0;border-right:1px solid #404040;border-top-left-radius:6px;border-bottom-left-radius:6px;padding:8px;color:#8c8c8c;white-space:pre;text-align:right;min-width:25px;line-height:1.53}.eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper{overflow-x:auto;margin:0 25px 12px 0;clear:both}.eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper.table-full-width-active,.eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper:has(.PlaygroundEditorTheme__table[data-table-full-width=true]){width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important;margin-right:0!important;box-sizing:border-box}.eddyter-scope .PlaygroundEditorTheme__tableScrollableWrapper>.PlaygroundEditorTheme__table{margin-top:0;margin-bottom:0}.eddyter-scope .PlaygroundEditorTheme__tableAlignmentCenter{margin-left:auto;margin-right:auto}.eddyter-scope .PlaygroundEditorTheme__tableAlignmentRight{margin-left:auto}.eddyter-scope .PlaygroundEditorTheme__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;margin:15px 0 12px;display:table;clear:both}.eddyter-scope .PlaygroundEditorTheme__table[data-table-full-width=true]{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important;box-sizing:border-box;table-layout:fixed!important}.eddyter-scope .PlaygroundEditorTheme__table[data-table-full-width=false],.eddyter-scope .PlaygroundEditorTheme__table:not([data-table-full-width]){width:auto!important;max-width:100%}.eddyter-scope .PlaygroundEditorTheme__tableRowStriping tr:nth-child(2n){background-color:hsla(var(--cteditorf47ac10b-foreground) / .3)}.eddyter-scope .PlaygroundEditorTheme__tableRowStriping tr:nth-child(2n) .table-cell-action-button{color:hsla(var(--cteditorf47ac10b-background))}.eddyter-scope .PlaygroundEditorTheme__tableSelection *::-moz-selection{background-color:transparent}.eddyter-scope .PlaygroundEditorTheme__tableSelection *::selection{background-color:transparent}.eddyter-scope .PlaygroundEditorTheme__tableSelected{outline:2px solid rgb(60,132,244)}.eddyter-scope .PlaygroundEditorTheme__tableCell{border:1px solid #6B7280;vertical-align:top;text-align:start;padding:12px 12px 12px 16px;position:relative;outline:none;overflow:auto}.eddyter-scope .PlaygroundEditorTheme__tableCell>*{overflow:inherit}.eddyter-scope .PlaygroundEditorTheme__tableCellResizer{position:absolute;right:-4px;height:100%;width:8px;cursor:ew-resize;z-index:10;top:0}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader{text-align:start;white-space:normal;word-wrap:break-word;overflow-wrap:break-word;font-weight:600;background-color:#6b7280;color:#fff;position:relative}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader:before{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:2px;height:70%;background:linear-gradient(to bottom,transparent 0%,#475569 10%,#475569 90%,transparent 100%);opacity:.7;border-radius:2px;pointer-events:none;transition:opacity .2s ease,height .2s ease}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader:after{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:70%;background:linear-gradient(to bottom,transparent 0%,#475569 10%,#475569 90%,transparent 100%);opacity:.7;border-radius:2px;pointer-events:none;transition:opacity .2s ease,height .2s ease}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader:hover:before,.eddyter-scope .PlaygroundEditorTheme__tableCellHeader:hover:after{opacity:1;height:85%;background:linear-gradient(to bottom,transparent 0%,#334155 10%,#334155 90%,transparent 100%)}.eddyter-scope .PlaygroundEditorTheme__tableCellHeader *{white-space:normal;margin:0}.eddyter-scope .PlaygroundEditorTheme__tableCellSelected{caret-color:transparent}.eddyter-scope .PlaygroundEditorTheme__tableCellSelected:after{position:absolute;inset:0;background-color:highlight;mix-blend-mode:multiply;content:"";pointer-events:none}.eddyter-scope .PlaygroundEditorTheme__tableAddColumns{position:absolute;background-color:#eee;height:100%;animation:table-controls .2s ease;border:0;cursor:pointer}.eddyter-scope .PlaygroundEditorTheme__tableAddColumns:after{display:block;content:" ";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.4}.eddyter-scope .PlaygroundEditorTheme__tableAddColumns:hover{background-color:#c9dbf0}.eddyter-scope .PlaygroundEditorTheme__tableAddRows{position:absolute;background-color:hsl(var(--cteditorf47ac10b-primary) / .25);border:2px solid hsl(var(--cteditorf47ac10b-primary) / .6);border-radius:4px;animation:table-controls .2s ease;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;box-shadow:0 2px 6px #00000026}.eddyter-scope .PlaygroundEditorTheme__tableAddRows:hover{background-color:hsl(var(--cteditorf47ac10b-primary) / .4);border-color:hsl(var(--cteditorf47ac10b-primary) / .8);transform:translateY(-1px)}.eddyter-scope .PlaygroundEditorTheme__tableAddRows svg{width:18px;height:18px;color:hsl(var(--cteditorf47ac10b-primary-foreground));stroke-width:2.5}.eddyter-scope .PlaygroundEditorTheme__tableAddColumns{position:absolute;background-color:hsl(var(--cteditorf47ac10b-primary) / .25);border:2px solid hsl(var(--cteditorf47ac10b-primary) / .6);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;box-shadow:0 2px 6px #00000026}.eddyter-scope .PlaygroundEditorTheme__tableAddColumns:hover{background-color:hsl(var(--cteditorf47ac10b-primary) / .4);border-color:hsl(var(--cteditorf47ac10b-primary) / .8);transform:translate(1px);box-shadow:0 4px 12px #0003}.eddyter-scope .PlaygroundEditorTheme__tableAddColumns svg{width:18px;height:18px;color:hsl(var(--cteditorf47ac10b-primary-foreground));stroke-width:2.5}@keyframes table-controls{0%{opacity:0}to{opacity:1}}.eddyter-scope .PlaygroundEditorTheme__tableCellResizeRuler{display:block;position:absolute;width:1px;background-color:#3c84f4;height:100%;top:0}.eddyter-scope .PlaygroundEditorTheme__tableCellActionButtonContainer{display:block;right:5px;top:6px;position:absolute;z-index:4;width:20px;height:20px}.eddyter-scope .PlaygroundEditorTheme__tableCellActionButton{background-color:#eee;display:block;border:0;border-radius:20px;width:20px;height:20px;color:#222;cursor:pointer}.eddyter-scope .PlaygroundEditorTheme__tableCellActionButton:hover{background-color:#ddd}.eddyter-scope .PlaygroundEditorTheme__characterLimit{display:inline;background-color:#fbb!important}.eddyter-scope .PlaygroundEditorTheme__ol1{padding:0;margin:0;list-style-type:decimal;list-style-position:outside}.eddyter-scope .PlaygroundEditorTheme__ol2{padding:0;margin:0;list-style-type:lower-alpha;list-style-position:outside}.eddyter-scope .PlaygroundEditorTheme__ol3{padding:0;margin:0;list-style-type:lower-roman;list-style-position:outside}.eddyter-scope .PlaygroundEditorTheme__ol4{padding:0;margin:0;list-style-type:upper-roman;list-style-position:outside}.eddyter-scope .PlaygroundEditorTheme__ol5{padding:0;margin:0;list-style-type:lower-roman;list-style-position:outside}.eddyter-scope .PlaygroundEditorTheme__ul{padding:0;margin-block-start:1em;margin-block-end:1em;list-style-type:disc;list-style-position:outside}.eddyter-scope .cteditor-content .PlaygroundEditorTheme__ul:first-child{margin-top:0}.eddyter-scope .PlaygroundEditorTheme__listItem{margin:0 32px}.eddyter-scope .PlaygroundEditorTheme__listItemChecked,.eddyter-scope .PlaygroundEditorTheme__listItemUnchecked{position:relative;margin-left:8px;margin-right:8px;padding-left:24px;padding-right:24px;list-style-type:none;outline:none}.eddyter-scope .PlaygroundEditorTheme__listItemChecked{text-decoration:line-through}.eddyter-scope .PlaygroundEditorTheme__listItemUnchecked:before,.eddyter-scope .PlaygroundEditorTheme__listItemChecked:before{content:"";width:16px;height:16px;top:4px;left:0;cursor:pointer;display:block;background-size:cover;position:absolute}.eddyter-scope .PlaygroundEditorTheme__listItemUnchecked[dir=rtl]:before,.eddyter-scope .PlaygroundEditorTheme__listItemChecked[dir=rtl]:before{left:auto;right:0}.eddyter-scope .PlaygroundEditorTheme__listItemUnchecked:focus:before,.eddyter-scope .PlaygroundEditorTheme__listItemChecked:focus:before{box-shadow:0 0 0 2px #39ab009e;border-radius:4px;border-color:#39ab00}.eddyter-scope .PlaygroundEditorTheme__listItemUnchecked:before{border:1px solid #999;border-radius:4px}.eddyter-scope .PlaygroundEditorTheme__listItemChecked:before{border:1px solid #1bab00;border-radius:4px;background-color:#1bab00;background-repeat:no-repeat}.eddyter-scope .PlaygroundEditorTheme__listItemChecked:after{content:"";cursor:pointer;border-color:#000;border-style:solid;position:absolute;display:block;top:7px;width:4px;left:6px;right:7px;height:8px;transform:rotate(45deg);border-width:0 1px 1px 0}.eddyter-scope .PlaygroundEditorTheme__nestedListItem{list-style-type:none}.eddyter-scope .PlaygroundEditorTheme__nestedListItem:before,.eddyter-scope .PlaygroundEditorTheme__nestedListItem:after{display:none}.eddyter-scope .PlaygroundEditorTheme__tokenComment{color:#6a9955}.eddyter-scope .PlaygroundEditorTheme__tokenPunctuation{color:#d4d4d4}.eddyter-scope .PlaygroundEditorTheme__tokenProperty{color:#e06c75}.eddyter-scope .PlaygroundEditorTheme__tokenSelector{color:#98c379}.eddyter-scope .PlaygroundEditorTheme__tokenOperator{color:#d19a66}.eddyter-scope .PlaygroundEditorTheme__tokenAttr{color:#61afef}.eddyter-scope .PlaygroundEditorTheme__tokenVariable{color:#e5c07b}.eddyter-scope .PlaygroundEditorTheme__tokenFunction{color:#c678dd}.eddyter-scope .PlaygroundEditorTheme__mark{background:#ffd40024;border-bottom:2px solid rgba(255,212,0,.3);padding-bottom:2px}.eddyter-scope .PlaygroundEditorTheme__markOverlap{background:#ffd4004d;border-bottom:2px solid rgba(255,212,0,.7)}.eddyter-scope .PlaygroundEditorTheme__mark.selected{background:#ffd40080;border-bottom:2px solid rgba(255,212,0,1)}.eddyter-scope .PlaygroundEditorTheme__markOverlap.selected{background:#ffd400b3;border-bottom:2px solid rgba(255,212,0,.7)}.eddyter-scope .PlaygroundEditorTheme__embedBlock{-webkit-user-select:none;-moz-user-select:none;user-select:none}.eddyter-scope .PlaygroundEditorTheme__embedBlockFocus{outline:2px solid rgb(60,132,244)}.eddyter-scope .PlaygroundEditorTheme__layoutContainer{display:grid;gap:10px;margin:10px 0}.eddyter-scope .PlaygroundEditorTheme__layoutItem{border:1px dashed #ddd;padding:8px 16px;min-width:0;max-width:100%}.eddyter-scope .PlaygroundEditorTheme__autocomplete{color:#ccc}.eddyter-scope .PlaygroundEditorTheme__hr{border-top:1px solid #6B7280!important;border-bottom:none!important;border-left:none!important;border-right:none!important;margin:1em 0;cursor:pointer;height:0;padding:0;background:none}.eddyter-scope .PlaygroundEditorTheme__hr.selected{outline:2px solid rgb(60,132,244);-webkit-user-select:none;-moz-user-select:none;user-select:none}.eddyter-scope .PlaygroundEditorTheme__specialText{background-color:#ff0;font-weight:700}.eddyter-scope .editor-image{position:relative;display:inline-block;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:1.5rem .5rem;line-height:0;font-size:0;width:-moz-fit-content;width:fit-content;max-width:100%}.eddyter-scope .editor-image img{max-width:100%;cursor:default;display:block}.eddyter-scope .editor-image[style*="float: left"],.eddyter-scope .editor-image[style*="float:left"]{display:block;margin:0 1em .5em 0}.eddyter-scope .editor-image[style*="float: right"],.eddyter-scope .editor-image[style*="float:right"]{display:block;margin:0 0 .5em 1em}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[style*=float]):not(:has([data-lexical-text])){display:block;overflow:visible;min-height:1px}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(.editor-image[style*=float]):has([data-lexical-text]){display:block}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=right]){float:right!important;clear:right;max-width:50%!important;margin-left:1em!important;margin-bottom:.5em!important;text-align:center!important}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=left]){float:left!important;clear:left;max-width:50%!important;margin-right:1em!important;margin-bottom:.5em!important;text-align:center!important}.eddyter-scope .PlaygroundEditorTheme__paragraph[style*="text-align: right"]:has(>.editor-image[data-position=right]),.eddyter-scope .PlaygroundEditorTheme__paragraph[style*="text-align:right"]:has(>.editor-image[data-position=right]){float:right!important;clear:right;max-width:50%!important;margin-left:1em!important;margin-bottom:.5em!important;text-align:center!important}.eddyter-scope .PlaygroundEditorTheme__paragraph[style*="text-align: left"]:has(>.editor-image[data-position=left]),.eddyter-scope .PlaygroundEditorTheme__paragraph[style*="text-align:left"]:has(>.editor-image[data-position=left]){float:left!important;clear:left;max-width:50%!important;margin-right:1em!important;margin-bottom:.5em!important;text-align:center!important}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=right])>.editor-image,.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=left])>.editor-image{float:none!important;margin:0 auto!important;max-width:100%!important;display:block!important}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=right])>.PlaygroundEditorTheme__textItalic,.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=left])>.PlaygroundEditorTheme__textItalic,.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=right])>em,.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=left])>em{display:block;font-size:.85em;line-height:1.4;color:hsla(var(--cteditorf47ac10b-foreground) / .75);padding:.5em .5em 0;word-wrap:break-word}@media(max-width:768px){.eddyter-scope .editor-image[style*="float: left"],.eddyter-scope .editor-image[style*="float:left"],.eddyter-scope .editor-image[style*="float: right"],.eddyter-scope .editor-image[style*="float:right"]{float:none!important;display:block!important;margin:1em auto!important;max-width:100%!important;width:100%!important}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=right]),.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=left]){float:none!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;margin-bottom:1em!important}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[style*=float]):not(:has([data-lexical-text])){display:block!important;min-height:auto!important}}@media(min-width:769px)and (max-width:1024px){.eddyter-scope .editor-image[style*="float: left"],.eddyter-scope .editor-image[style*="float:left"],.eddyter-scope .editor-image[style*="float: right"],.eddyter-scope .editor-image[style*="float:right"]{max-width:40%!important}.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=right]),.eddyter-scope .PlaygroundEditorTheme__paragraph:has(>.editor-image[data-position=left]){max-width:40%!important}}.eddyter-scope .editor-image img{max-width:100%;cursor:default}.eddyter-scope .editor-image img.focused{outline:2px solid rgb(60,132,244);-webkit-user-select:none;-moz-user-select:none;user-select:none}.eddyter-scope .editor-image img.focused.draggable{cursor:grab}.eddyter-scope .editor-image img.focused.draggable:active{cursor:grabbing}.eddyter-scope .editor-image .image-resizer{display:block!important;width:8px!important;height:8px!important;position:absolute!important;background-color:#3c84f4!important;border:1px solid #fff!important;border-radius:50%!important;z-index:10!important;transition:all .2s linear}.eddyter-scope .editor-image .image-resizer.image-resizer-n{top:-6px!important;left:48%!important;cursor:n-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-ne{top:-6px!important;right:-6px!important;cursor:ne-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-e{bottom:48%!important;right:-6px!important;cursor:e-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-se{bottom:-2px!important;right:-6px!important;cursor:nwse-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-s{bottom:-4px!important;left:50%!important;cursor:s-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-sw{bottom:-2px!important;left:-6px!important;cursor:sw-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-w{bottom:50%!important;left:-6px!important;cursor:w-resize!important}.eddyter-scope .editor-image .image-resizer.image-resizer-nw{top:-6px!important;left:-6px!important;cursor:nw-resize!important}#ct-editor-f47ac10b .ai-chat-popup{position:absolute;inset:0%;z-index:10000;width:100%;background-color:#0003;transition:opacity .3s ease,transform .3s ease;transform-origin:bottom center}#ct-editor-f47ac10b .ai-chat-content{padding:16px;background:#21202080;border-radius:12px;box-shadow:0 2px 8px #0003;z-index:10000;max-width:500px;width:100%}#ct-editor-f47ac10b .ai-chat-form{display:flex;gap:12px;align-items:center}#ct-editor-f47ac10b .ai-chat-input{flex:1;padding:10px 12px;border-width:1px;border-style:solid;border-radius:12px;font-size:14px;outline:none;transition:border-color .2s}#ct-editor-f47ac10b .ai-chat-error{color:#d32f2f;font-size:14px;margin-bottom:10px;padding:8px;background-color:#ffebee;border-radius:4px;text-align:center}#ct-editor-f47ac10b .ai-chat-trigger{position:fixed;bottom:20px;right:20px;width:50px;height:50px;border-radius:50%;background-color:#2196f3;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0003;z-index:1000;transition:background-color .2s}#ct-editor-f47ac10b .ai-chat-trigger:hover{background-color:#1976d2}#ct-editor-f47ac10b .ai-chat-trigger svg{width:24px;height:24px;fill:#fff}.eddyter-scope .ai-inline-suggestion{position:fixed;color:#9ca3af!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.5;font-style:normal;white-space:pre;z-index:10;transition:opacity .15s ease-in}@media(prefers-color-scheme:dark){.eddyter-scope .ai-inline-suggestion{color:#6b7280!important}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu{position:absolute;background:#fff;border:1px solid #e1e5e9;border-radius:8px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:1000;min-width:200px;max-width:400px;font-family:system-ui,-apple-system,sans-serif}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid #f0f2f5;display:flex;align-items:center;gap:8px;transition:background-color .2s ease;font-size:14px;line-height:1.4}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item:last-child{border-bottom:none}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item:hover,#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.selected{background-color:#f8f9fa}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.selected{background-color:#e3f2fd;border-left:3px solid #2196f3}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.loading{background-color:#f5f5f5;color:#666;font-style:italic;cursor:default}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.spelling{border-left:3px solid #ff9800}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.spelling.selected{background-color:#fff3e0;border-left-color:#ff9800}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.correction{border-left:3px solid #4caf50}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.correction.selected{background-color:#e8f5e8;border-left-color:#4caf50}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.enhancement{border-left:3px solid #9c27b0}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.enhancement.selected{background-color:#f3e5f5;border-left-color:#9c27b0}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.suggestion{border-left:3px solid #2196f3}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.suggestion.selected{background-color:#e3f2fd;border-left-color:#2196f3}#ct-editor-f47ac10b .eddyter-scope .option-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}#ct-editor-f47ac10b .eddyter-scope .option-text{flex:1;font-weight:500;color:#1a1a1a}#ct-editor-f47ac10b .eddyter-scope .option-badge{font-size:11px;padding:2px 6px;border-radius:12px;background-color:#e0e0e0;color:#666;text-transform:uppercase;font-weight:600;letter-spacing:.5px;flex-shrink:0}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.spelling .option-badge{background-color:#fff3e0;color:#ff9800}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.correction .option-badge{background-color:#e8f5e8;color:#4caf50}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.enhancement .option-badge{background-color:#f3e5f5;color:#9c27b0}@media(prefers-color-scheme:dark){#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu{background:#2d2d2d;border-color:#444;color:#fff}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item{border-bottom-color:#444}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item:hover{background-color:#3a3a3a}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.selected{background-color:#1e3a8a;color:#fff}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.spelling.selected{background-color:#7c2d12}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.correction.selected{background-color:#14532d}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.enhancement.selected{background-color:#581c87}#ct-editor-f47ac10b .eddyter-scope .option-text{color:#fff}#ct-editor-f47ac10b .eddyter-scope .option-badge{background-color:#444;color:#ccc}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item.loading{background-color:#3a3a3a;color:#ccc}}@media(max-width:480px){#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu{max-width:90vw;font-size:13px}#ct-editor-f47ac10b .eddyter-scope .autocomplete-item{padding:10px 12px}#ct-editor-f47ac10b .eddyter-scope .option-badge{font-size:10px;padding:1px 4px}}#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu{animation:slideIn .2s ease-out}#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu::-webkit-scrollbar{width:6px}#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}#ct-editor-f47ac10b .eddyter-scope .autocomplete-menu::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.eddyter-scope .code-action-menu-container{height:36px;font-size:11px;color:#e0e0e0;position:absolute;display:flex;align-items:center;flex-direction:row;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#323232f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:4px 8px;box-shadow:0 4px 12px #0000004d;z-index:10}.eddyter-scope .code-action-menu-container .code-highlight-language{margin-right:8px;font-weight:500;color:#f0f0f0;background-color:#ffffff1a;padding:2px 6px;border-radius:4px;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.eddyter-scope .code-action-menu-container button.menu-item{border:1px solid transparent;border-radius:4px;padding:4px 8px;background:none;cursor:pointer;flex-shrink:0;display:flex;align-items:center;color:#d0d0d0;text-transform:uppercase;font-size:10px;font-weight:500;transition:all .2s ease;margin-left:2px}.eddyter-scope .code-action-menu-container button.menu-item i.format{height:14px;width:14px;opacity:.9;display:inline-block;background-size:contain;background-repeat:no-repeat;background-position:center;margin-right:4px;filter:invert(1)}.eddyter-scope .code-action-menu-container button.menu-item i.format.copy{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201000%201000'%3e%3cpath%20d='M710%2010H360c-38.6%200-70%2031.4-70%2070v630c0%2038.6%2031.4%2070%2070%2070h490c38.6%200%2070-31.4%2070-70V220L710%2010zm0%2099%20111%20111H710V109zm140%20601H360V80h280v210h210v420z'/%3e%3cpath%20d='M430%20360h350v70H430v-70zm0%20140h350v70H430v-70z'/%3e%3cpath%20d='M640%20920H150V290h70v-70h-70c-38.6%200-70%2031.4-70%2070v630c0%2038.6%2031.4%2070%2070%2070h490c38.6%200%2070-31.4%2070-70v-70h-70v70z'/%3e%3c/svg%3e")}.eddyter-scope .code-action-menu-container button.menu-item i.format.success{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3ccircle%20cx='25'%20cy='25'%20r='25'%20fill='%2325ae88'/%3e%3cpath%20fill='none'%20stroke='%23fff'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='10'%20d='M38%2015%2022%2033l-10-8'/%3e%3c/svg%3e")}.eddyter-scope .code-action-menu-container button.menu-item i.format.prettier{background-image:url("data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.571%2023.429A.571.571%200%200%201%208%2024H2.286a.571.571%200%200%201%200-1.143H8c.316%200%20.571.256.571.572zM8%2020.57H6.857a.571.571%200%200%200%200%201.143H8a.571.571%200%200%200%200-1.143zm-5.714%201.143H4.57a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zM8%2018.286H2.286a.571.571%200%200%200%200%201.143H8a.571.571%200%200%200%200-1.143zM16%2016H5.714a.571.571%200%200%200%200%201.143H16A.571.571%200%200%200%2016%2016zM2.286%2017.143h1.143a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm17.143-3.429H16a.571.571%200%200%200%200%201.143h3.429a.571.571%200%200%200%200-1.143zM9.143%2014.857h4.571a.571.571%200%200%200%200-1.143H9.143a.571.571%200%200%200%200%201.143zm-6.857%200h4.571a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zM20.57%2011.43h-9.14a.571.571%200%200%200%200%201.142h9.142a.571.571%200%200%200%200-1.142zM9.714%2012a.571.571%200%200%200-.571-.571H5.714a.571.571%200%200%200%200%201.142h3.429A.571.571%200%200%200%209.714%2012zm-7.428.571h1.143a.571.571%200%200%200%200-1.142H2.286a.571.571%200%200%200%200%201.142zm19.428-3.428H16a.571.571%200%200%200%200%201.143h5.714a.571.571%200%200%200%200-1.143zM2.286%2010.286H8a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm13.143-2.857A.57.57%200%200%200%2016%208h5.714a.571.571%200%200%200%200-1.143H16a.571.571%200%200%200-.571.572zm-8.572-.572a.571.571%200%200%200%200%201.143H8a.571.571%200%200%200%200-1.143H6.857zM2.286%208H4.57a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm16.571-2.857c0%20.315.256.571.572.571h1.142a.571.571%200%200%200%200-1.143H19.43a.571.571%200%200%200-.572.572zm-1.143%200a.571.571%200%200%200-.571-.572H12.57a.571.571%200%200%200%200%201.143h4.572a.571.571%200%200%200%20.571-.571zm-15.428.571h8a.571.571%200%200%200%200-1.143h-8a.571.571%200%200%200%200%201.143zm5.143-2.857c0%20.316.255.572.571.572h11.429a.571.571%200%200%200%200-1.143H8a.571.571%200%200%200-.571.571zm-5.143.572h3.428a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm0-2.286H16A.571.571%200%200%200%2016%200H2.286a.571.571%200%200%200%200%201.143z'/%3e%3c/svg%3e")}.eddyter-scope .code-action-menu-container button.menu-item i.format.prettier-error{background-image:url("data:image/svg+xml,%3csvg%20style='color:red'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.571%2023.429A.571.571%200%200%201%208%2024H2.286a.571.571%200%200%201%200-1.143H8c.316%200%20.571.256.571.572zM8%2020.57H6.857a.571.571%200%200%200%200%201.143H8a.571.571%200%200%200%200-1.143zm-5.714%201.143H4.57a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zM8%2018.286H2.286a.571.571%200%200%200%200%201.143H8a.571.571%200%200%200%200-1.143zM16%2016H5.714a.571.571%200%200%200%200%201.143H16A.571.571%200%200%200%2016%2016zM2.286%2017.143h1.143a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm17.143-3.429H16a.571.571%200%200%200%200%201.143h3.429a.571.571%200%200%200%200-1.143zM9.143%2014.857h4.571a.571.571%200%200%200%200-1.143H9.143a.571.571%200%200%200%200%201.143zm-6.857%200h4.571a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zM20.57%2011.43h-9.14a.571.571%200%200%200%200%201.142h9.142a.571.571%200%200%200%200-1.142zM9.714%2012a.571.571%200%200%200-.571-.571H5.714a.571.571%200%200%200%200%201.142h3.429A.571.571%200%200%200%209.714%2012zm-7.428.571h1.143a.571.571%200%200%200%200-1.142H2.286a.571.571%200%200%200%200%201.142zm19.428-3.428H16a.571.571%200%200%200%200%201.143h5.714a.571.571%200%200%200%200-1.143zM2.286%2010.286H8a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm13.143-2.857A.57.57%200%200%200%2016%208h5.714a.571.571%200%200%200%200-1.143H16a.571.571%200%200%200-.571.572zm-8.572-.572a.571.571%200%200%200%200%201.143H8a.571.571%200%200%200%200-1.143H6.857zM2.286%208H4.57a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm16.571-2.857c0%20.315.256.571.572.571h1.142a.571.571%200%200%200%200-1.143H19.43a.571.571%200%200%200-.572.572zm-1.143%200a.571.571%200%200%200-.571-.572H12.57a.571.571%200%200%200%200%201.143h4.572a.571.571%200%200%200%20.571-.571zm-15.428.571h8a.571.571%200%200%200%200-1.143h-8a.571.571%200%200%200%200%201.143zm5.143-2.857c0%20.316.255.572.571.572h11.429a.571.571%200%200%200%200-1.143H8a.571.571%200%200%200-.571.571zm-5.143.572h3.428a.571.571%200%200%200%200-1.143H2.286a.571.571%200%200%200%200%201.143zm0-2.286H16A.571.571%200%200%200%2016%200H2.286a.571.571%200%200%200%200%201.143z'%20fill='red'/%3e%3c/svg%3e")}.eddyter-scope .code-action-menu-container button.menu-item:hover{background-color:#ffffff1a;border:1px solid rgba(255,255,255,.25);color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.eddyter-scope .code-action-menu-container button.menu-item:hover i.format{opacity:1}.eddyter-scope .code-action-menu-container button.menu-item:active{background-color:#61afef33;border:1px solid rgba(97,175,239,.4);color:#61afef;transform:translateY(0)}.eddyter-scope .code-action-menu-container .prettier-wrapper{position:relative}.eddyter-scope .code-action-menu-container .prettier-wrapper .code-error-tips{padding:5px;border-radius:4px;color:#fff;background:#222;margin-top:4px;position:absolute;top:26px;right:0}#ct-editor-f47ac10b .eddyter-scope .react-colorful{width:100%!important;height:150px!important;border-radius:6px}#ct-editor-f47ac10b .eddyter-scope .react-colorful__saturation{border-radius:6px 6px 0 0;height:120px!important}#ct-editor-f47ac10b .eddyter-scope .react-colorful__hue{height:24px!important;border-radius:0 0 6px 6px}#ct-editor-f47ac10b .eddyter-scope .react-colorful__pointer{width:18px!important;height:18px!important;border:2px solid #fff!important;box-shadow:0 2px 8px #0000004d!important;border-radius:50%!important}#ct-editor-f47ac10b .eddyter-scope .react-colorful__interactive:focus .react-colorful__pointer{transform:scale(1.1);border-width:4px}#ct-editor-f47ac10b .eddyter-scope .react-colorful__saturation-pointer{border:2px solid #fff!important;border-radius:50%!important;box-shadow:0 2px 8px #0000004d!important}#ct-editor-f47ac10b .eddyter-scope .react-colorful__hue-pointer{border:2px solid #fff!important;border-radius:2px!important;box-shadow:0 2px 8px #0000004d!important}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful{width:100%!important;height:150px!important;border-radius:6px}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful__saturation{border-radius:6px 6px 0 0;height:120px!important}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful__hue{height:24px!important;border-radius:0 0 6px 6px}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful__pointer{width:18px!important;height:18px!important;border:2px solid #fff!important;box-shadow:0 2px 8px #0000004d!important;border-radius:50%!important}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful__interactive:focus .react-colorful__pointer{transform:scale(1.1);border-width:4px}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful__saturation-pointer{border:2px solid #fff!important;border-radius:50%!important;box-shadow:0 2px 8px #0000004d!important}.eddyter-scope #unified-color-picker .eddyter-scope .react-colorful__hue-pointer{border:2px solid #fff!important;border-radius:2px!important;box-shadow:0 2px 8px #0000004d!important}:root{--grammar-primary-color: #3b82f6;--grammar-hover-opacity: .05;--grammar-underline-height: 2px;--grammar-underline-width: 8px;--grammar-punctuation-width: 4px}.eddyter-scope [data-grammar-error-type]{position:relative;cursor:pointer}.eddyter-scope [data-grammar-error-type]:hover{background-color:rgba(59,130,246,var(--grammar-hover-opacity))}.eddyter-scope .grammar-error-underline{position:absolute;height:var(--grammar-underline-height);background-repeat:repeat-x;background-size:var(--grammar-underline-width) var(--grammar-underline-height);pointer-events:none;z-index:1}.eddyter-scope [data-is-punctuation=true]:after{content:"";display:inline-block;width:var(--grammar-punctuation-width);height:var(--grammar-underline-height);margin-left:1px;vertical-align:baseline;background:var(--grammar-primary-color)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.eddyter-scope .editor-anchor{position:relative}.eddyter-scope .draggable-block-menu{position:absolute;left:0;top:0;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:0;padding:2px 1px;border-radius:4px;will-change:transform}.eddyter-scope .draggable-block-menu:active{cursor:grabbing}.eddyter-scope .drag-handle{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background-color:#f3f4f6;color:#9ca3af;transition:all .15s ease;border:1px solid #e5e7eb}.eddyter-scope .drag-handle:hover{background-color:#e5e7eb;color:#6b7280;border-color:#d1d5db}.eddyter-scope .drag-handle:active{background-color:#d1d5db;color:#374151}.eddyter-scope .drag-handle svg{width:12px;height:12px}.eddyter-scope .draggable-block-target-line{position:absolute;left:0;top:0;height:4px;background-color:#4285f4;border-radius:2px;pointer-events:none;opacity:0;will-change:transform}.eddyter-scope .draggable-block-target-line:before,.eddyter-scope .draggable-block-target-line:after{content:"";position:absolute;top:50%;width:8px;height:8px;background-color:#4285f4;border-radius:50%;transform:translateY(-50%)}.eddyter-scope .draggable-block-target-line:before{left:-4px}.eddyter-scope .draggable-block-target-line:after{right:-4px}@media(prefers-color-scheme:dark){.eddyter-scope .drag-handle{background-color:#374151;color:#9ca3af;border-color:#4b5563}.eddyter-scope .drag-handle:hover{background-color:#4b5563;color:#d1d5db;border-color:#6b7280}.eddyter-scope .drag-handle:active{background-color:#6b7280;color:#f3f4f6}}@keyframes linkPreviewFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes linkPreviewSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.eddyter-scope .table-cell-action-button-container{position:absolute!important;z-index:1000}.eddyter-scope .table-cell-action-button-container.table-cell-action-button-container--active{pointer-events:auto;opacity:1;visibility:visible}.eddyter-scope .table-cell-action-button-container.table-cell-action-button-container--inactive{pointer-events:none;opacity:0;visibility:hidden}.eddyter-scope .table-cell-action-button{display:inline-flex!important;justify-content:center;align-items:center;border:1px solid hsl(var(--cteditorf47ac10b-border));width:20px!important;height:20px!important;border-radius:4px;background:hsl(var(--cteditorf47ac10b-popover))!important;color:hsl(var(--cteditorf47ac10b-popover-foreground))!important;cursor:pointer;box-shadow:0 2px 8px hsl(var(--cteditorf47ac10b-foreground) / .1);transition:all .2s ease;padding:0!important;min-width:20px;max-width:20px}.eddyter-scope .table-cell-action-button:hover{background:hsl(var(--cteditorf47ac10b-accent))!important;color:hsl(var(--cteditorf47ac10b-accent-foreground))!important;box-shadow:0 4px 12px hsl(var(--cteditorf47ac10b-foreground) / .15);transform:translateY(-1px);border-color:hsl(var(--cteditorf47ac10b-border) / .8)}.eddyter-scope .table-cell-action-button svg{width:12px;height:12px;stroke:currentColor}.eddyter-scope .table-cell-action-button i.chevron-down{background-color:transparent;background-size:contain;display:inline-block;height:6px;width:6px;background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20fill='currentColor'%20class='bi%20bi-chevron-down'%3e%3cpath%20fill-rule='evenodd'%20d='M1.646%204.646a.5.5%200%200%201%20.708%200L8%2010.293l5.646-5.647a.5.5%200%200%201%20.708.708l-6%206a.5.5%200%200%201-.708%200l-6-6a.5.5%200%200%201%200-.708z'/%3e%3c/svg%3e");filter:invert(var(--icon-invert, 0))}.eddyter-scope .dropdown.table-drop-old{z-index:100;display:block;position:fixed;border-radius:12px;min-height:40px;min-width:200px;padding:6px;overflow-y:auto;overflow-x:hidden;background:hsl(var(--cteditorf47ac10b-popover) / .85);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid hsl(var(--cteditorf47ac10b-border) / .3);box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014,inset 0 1px #ffffff1a;animation:dropdownFadeIn .2s ease-out}.eddyter-scope .dropdown.table-drop::-webkit-scrollbar{width:8px}.eddyter-scope .dropdown.table-drop::-webkit-scrollbar-track{background:transparent;border-radius:4px}.eddyter-scope .dropdown.table-drop::-webkit-scrollbar-thumb{background:#0003;border-radius:4px;-webkit-transition:background .2s;transition:background .2s}.eddyter-scope .dropdown.table-drop::-webkit-scrollbar-thumb:hover{background:#0000004d}.eddyter-scope .dropdown.table-drop-old{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.eddyter-scope .table-custom-odd-striping:not(.has-header-row) tr:nth-child(odd) td{background-color:var(--table-odd-striping-color)!important}.eddyter-scope .table-custom-even-striping:not(.has-header-row) tr:nth-child(2n) td{background-color:var(--table-even-striping-color)!important}.eddyter-scope .table-custom-odd-striping.has-header-row tr:nth-child(2n) td{background-color:var(--table-odd-striping-color)!important}.eddyter-scope .table-custom-even-striping.has-header-row tr:nth-child(odd):not(:first-child) td{background-color:var(--table-even-striping-color)!important}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.eddyter-scope .table-custom-border{border-collapse:collapse!important}.eddyter-scope .table-custom-border td,.eddyter-scope .table-custom-border th{border-width:var(--table-border-size, 1px)!important;border-color:var(--table-border-color, #bbb)!important;border-style:solid!important}.eddyter-scope .table-custom-border.table-border-none td,.eddyter-scope .table-custom-border.table-border-none th,.eddyter-scope .table-custom-border.table-border-none{border:none!important}.eddyter-scope .color-picker-basic-color{display:flex;gap:10px;margin:0;padding:0}.eddyter-scope .color-picker-basic-color button{border:1px solid rgba(204,204,204,.203);border-radius:4px;height:auto;width:100%;cursor:pointer;list-style-type:none;aspect-ratio:1}.eddyter-scope .color-picker-basic-color button.active{box-shadow:0 0 2px 2px #0000004d}.eddyter-scope .color-picker-saturation{width:100%;position:relative;margin-top:15px;height:150px;background-image:linear-gradient(transparent,#000),linear-gradient(to right,white,transparent);-webkit-user-select:none;-moz-user-select:none;user-select:none}.eddyter-scope .color-picker-saturation_cursor{position:absolute;width:20px;height:20px;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 15px #00000026;box-sizing:border-box;transform:translate(-10px,-10px)}.eddyter-scope .color-picker-hue{width:100%;position:relative;margin-top:15px;height:12px;background-image:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:12px}.eddyter-scope .color-picker-hue_cursor{position:absolute;width:20px;height:20px;border:2px solid #ffffff;border-radius:50%;box-shadow:#0003 0 0 0 .5px;box-sizing:border-box;transform:translate(-10px,-4px)}.eddyter-scope .color-picker-color{border:1px solid rgba(204,204,204,.292);width:36px;height:36px;border-radius:10px}.eddyter-scope .Input__wrapper{display:flex;flex-direction:row;align-items:center}.eddyter-scope .Input__label{display:flex;flex:1;color:hsl(var(--cteditorf47ac10b-foreground) / .7)}.eddyter-scope .Input__input{display:flex;flex:2;border:1px solid hsl(var(--cteditorf47ac10b-border));background-color:hsl(var(--cteditorf47ac10b-background));color:hsl(var(--cteditorf47ac10b-foreground));padding:7px 10px;font-size:16px;border-radius:5px;min-width:0;max-width:120px;outline:none}.eddyter-scope .TableCellResizer__resizer{position:fixed;z-index:10;transition:background-color .15s ease}.eddyter-scope .TableCellResizer__resizer:hover,.eddyter-scope .TableCellResizer__resizer--hovered{background-color:#3b82f633!important}.eddyter-scope .TableCellResizer__resizer:active,.eddyter-scope .TableCellResizer__resizer--dragging{background-color:#3b82f666!important;transition:none}.eddyter-scope .TableCellResizer__tooltip{position:fixed;background:#000000d9;color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;font-family:ui-monospace,monospace;font-weight:500;pointer-events:none;z-index:9999;white-space:nowrap;box-shadow:0 4px 12px #0003;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.eddyter-scope .TableCellResizer__dragLine{position:fixed;background-color:#3b82f6;pointer-events:none;z-index:9998;box-shadow:0 0 8px #3b82f680;transition:opacity .15s ease}#ct-editor-f47ac10b .image-caption-container{width:100%;margin-top:8px;margin-bottom:12px}#ct-editor-f47ac10b .image-caption-button{position:absolute;bottom:4px;left:50%;transform:translate(-50%);background:hsl(var(--cteditorf47ac10b-background));color:hsl(var(--cteditorf47ac10b-foreground));border-radius:8px;padding:4px 16px;font-size:13px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;font-weight:400;white-space:nowrap;z-index:10;border:1px solid hsla(var(--cteditorf47ac10b-border) / .2)}#ct-editor-f47ac10b .image-caption-button:hover{background:hsla(var(--cteditorf47ac10b-background) / .8);box-shadow:0 2px 8px #00000026}#ct-editor-f47ac10b .ImageNode__contentEditable{position:relative;width:100%;background:hsla(var(--cteditorf47ac10b-foreground) / .1);border:1px solid hsla(var(--cteditorf47ac10b-foreground) / .1);color:1px solid hsla(var(--cteditorf47ac10b-foreground));border-radius:6px;padding:4px 8px;line-height:1.5;min-height:32px;font-size:14px;outline:none;transition:all .2s ease;color:hsla(var(--cteditorf47ac10b-text))}#ct-editor-f47ac10b .ImageNode__contentEditable:focus{background:hsla(var(--cteditorf47ac10b-secondary));border-color:hsla(var(--cteditorf47ac10b-secondary) / .4);box-shadow:0 0 0 2px hsla(var(--cteditorf47ac10b-primary) / .1)}#ct-editor-f47ac10b .ImageNode__contentEditable::-moz-placeholder{color:hsla(var(--cteditorf47ac10b-text) / .4);font-style:italic}#ct-editor-f47ac10b .ImageNode__contentEditable::placeholder,#ct-editor-f47ac10b .ImageNode__contentEditable [data-lexical-text=true]:before{color:hsla(var(--cteditorf47ac10b-text) / .4);font-style:italic}#ct-editor-f47ac10b .ImageNode__contentEditable p{margin:0}#ct-editor-f47ac10b .editor-image.eddination{max-width:370px;background:#fff;border-radius:16px;color:#000}#ct-editor-f47ac10b .editor-image.eddination>div:not(.signature-caption-container){padding:1rem}#ct-editor-f47ac10b .signature-caption-container{width:100%}#ct-editor-f47ac10b .signature-caption-info{border:none;padding:10px 12px;text-align:center;font-size:13px;font-family:Georgia,Times New Roman,serif;border-top:1px solid #d2d2d2;color:#000!important;min-height:28px;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;line-height:normal;text-align:left;font-family:Geist,sans-serif}#ct-editor-f47ac10b .signature-caption-info p{margin:0;text-align:center;color:#000!important}#ct-editor-f47ac10b .signature-user-name{font-size:15.5px;font-weight:500}#ct-editor-f47ac10b .signature-separator{display:block}.eddyter-scope .floating-embed-menu{display:flex!important;align-items:center;pointer-events:auto!important;will-change:transform}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-none{display:flex!important;width:100%!important;margin:8px 0}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-none.embed-wrapper-align-left{justify-content:flex-start!important}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-none.embed-wrapper-align-center{justify-content:center!important}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-none.embed-wrapper-align-right{justify-content:flex-end!important}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-left,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-right{width:-moz-fit-content!important;width:fit-content!important;max-width:min(320px,50%)!important}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-left:has(.embed-embed),#ct-editor-f47ac10b .embed-node-wrapper.embed-position-right:has(.embed-embed){width:320px!important;max-width:min(320px,50%)!important}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-left.embed-wrapper-align-left,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-left.embed-wrapper-align-center,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-left.embed-wrapper-align-right,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-right.embed-wrapper-align-left,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-right.embed-wrapper-align-center,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-right.embed-wrapper-align-right{overflow:hidden}#ct-editor-f47ac10b .embed-node-wrapper.embed-position-left .embed-embed,#ct-editor-f47ac10b .embed-node-wrapper.embed-position-right .embed-embed{max-width:100%!important;box-sizing:border-box}#ct-editor-f47ac10b .PlaygroundEditorTheme__paragraph:has(>.embed-node-wrapper[data-position=left]),#ct-editor-f47ac10b .PlaygroundEditorTheme__paragraph:has(>.embed-node-wrapper[data-position=right]){min-height:1px;overflow:visible}#ct-editor-f47ac10b .embed-align-left{margin-right:auto}#ct-editor-f47ac10b .embed-align-center{margin-left:auto;margin-right:auto}#ct-editor-f47ac10b .embed-align-right{margin-left:auto}#ct-editor-f47ac10b .embed-url{min-width:200px;max-width:100%}#ct-editor-f47ac10b .embed-card{width:300px;height:auto}#ct-editor-f47ac10b .embed-embed{min-width:200px;min-height:150px}
@@ -0,0 +1,45 @@
1
+ import * as i0 from '@angular/core';
2
+ import { AfterViewInit, OnDestroy, OnChanges, ElementRef, EventEmitter, SimpleChanges } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+ import { EddyterApiResponse, EddyterCurrentUser, EddyterToolbarConfig, EddyterEditorOptions } from '@eddyter/core';
5
+
6
+ declare class EddyterAngularComponent implements AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {
7
+ editorRef: ElementRef<HTMLElement>;
8
+ value: string;
9
+ apiKey: string;
10
+ customVerifyKey?: (apiKey: string) => Promise<EddyterApiResponse>;
11
+ user?: EddyterCurrentUser;
12
+ mode?: 'edit' | 'preview';
13
+ darkMode?: boolean;
14
+ className?: string;
15
+ containerClass?: string;
16
+ contentClass?: string;
17
+ floatingToolbarClass?: string;
18
+ style?: Record<string, string | number>;
19
+ toolbar?: EddyterToolbarConfig;
20
+ editor?: EddyterEditorOptions;
21
+ defaultFontFamilies?: string[];
22
+ mentionUserList?: string[];
23
+ enableReactNativeBridge?: boolean;
24
+ valueChange: EventEmitter<string>;
25
+ ready: EventEmitter<void>;
26
+ focus: EventEmitter<void>;
27
+ blur: EventEmitter<void>;
28
+ heightChange: EventEmitter<number>;
29
+ authSuccess: EventEmitter<void>;
30
+ authError: EventEmitter<string>;
31
+ previewClick: EventEmitter<void>;
32
+ private instance;
33
+ private onTouched;
34
+ private onChangeFn;
35
+ ngAfterViewInit(): void;
36
+ ngOnChanges(_changes: SimpleChanges): void;
37
+ ngOnDestroy(): void;
38
+ writeValue(value: string): void;
39
+ registerOnChange(fn: (value: string) => void): void;
40
+ registerOnTouched(fn: () => void): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<EddyterAngularComponent, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<EddyterAngularComponent, "eddyter-editor", never, { "value": { "alias": "value"; "required": false; }; "apiKey": { "alias": "apiKey"; "required": true; }; "customVerifyKey": { "alias": "customVerifyKey"; "required": false; }; "user": { "alias": "user"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "className": { "alias": "className"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "contentClass": { "alias": "contentClass"; "required": false; }; "floatingToolbarClass": { "alias": "floatingToolbarClass"; "required": false; }; "style": { "alias": "style"; "required": false; }; "toolbar": { "alias": "toolbar"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "defaultFontFamilies": { "alias": "defaultFontFamilies"; "required": false; }; "mentionUserList": { "alias": "mentionUserList"; "required": false; }; "enableReactNativeBridge": { "alias": "enableReactNativeBridge"; "required": false; }; }, { "valueChange": "valueChange"; "ready": "ready"; "focus": "focus"; "blur": "blur"; "heightChange": "heightChange"; "authSuccess": "authSuccess"; "authError": "authError"; "previewClick": "previewClick"; }, never, never, true, never>;
43
+ }
44
+
45
+ export { EddyterAngularComponent };