tetrons 2.3.98 → 2.3.100

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.
Files changed (114) hide show
  1. package/dist/app/HomeClient.d.ts +1 -0
  2. package/dist/app/layout.d.ts +7 -0
  3. package/dist/app/page.d.ts +1 -0
  4. package/dist/app/view/page.d.ts +1 -0
  5. package/dist/chunk-EO6RXFIC.mjs +79 -0
  6. package/dist/components/Editor/AIModal.d.ts +8 -0
  7. package/dist/components/Editor/Editor.d.ts +3 -0
  8. package/dist/components/Editor/LinkPreviewPopup.d.ts +14 -0
  9. package/dist/components/Editor/TetronsEditor.d.ts +8 -0
  10. package/dist/components/Editor/config/versionConfig.d.ts +3 -0
  11. package/dist/components/Editor/toolbar/BasicToolbar.d.ts +12 -0
  12. package/dist/components/Editor/toolbar/CodeEditor.d.ts +13 -0
  13. package/dist/components/Editor/toolbar/Converter.d.ts +3 -0
  14. package/dist/components/Editor/toolbar/FaqSection.d.ts +2 -0
  15. package/dist/components/Editor/toolbar/FindReplaceModal.d.ts +9 -0
  16. package/dist/components/Editor/toolbar/HelpModal.d.ts +8 -0
  17. package/dist/components/Editor/toolbar/ImageToTextModal.d.ts +7 -0
  18. package/dist/components/Editor/toolbar/MathEquation.d.ts +10 -0
  19. package/dist/components/Editor/toolbar/SecondRow.d.ts +18 -0
  20. package/dist/components/Editor/toolbar/ShareEmailModal.d.ts +5 -0
  21. package/dist/components/Editor/toolbar/ShareLinkModal.d.ts +7 -0
  22. package/dist/components/Editor/toolbar/Tabs.d.ts +6 -0
  23. package/dist/components/Editor/toolbar/ThirdRow.d.ts +9 -0
  24. package/dist/components/Editor/toolbar/TopMenu.d.ts +24 -0
  25. package/dist/components/Editor/toolbar/Translator.d.ts +3 -0
  26. package/dist/components/Editor/toolbar/UserGuideSection.d.ts +2 -0
  27. package/dist/components/Editor/toolbar/VersionDiffModal.d.ts +6 -0
  28. package/dist/components/Editor/toolbar/VersionHistoryModal.d.ts +12 -0
  29. package/dist/components/Editor/toolbar/VersionInfoSection.d.ts +2 -0
  30. package/dist/components/Editor/toolbar/VersionRollbackModal.d.ts +6 -0
  31. package/dist/components/Editor/toolbar/VirtualKeyboard.d.ts +11 -0
  32. package/dist/components/Editor/toolbar/VoiceModal.d.ts +7 -0
  33. package/dist/components/Editor/toolbar/extensions/Audio.d.ts +2 -0
  34. package/dist/components/Editor/toolbar/extensions/BetterListItem.d.ts +1 -0
  35. package/dist/components/Editor/toolbar/extensions/Comment.d.ts +17 -0
  36. package/dist/components/Editor/toolbar/extensions/Embed.d.ts +7 -0
  37. package/dist/components/Editor/toolbar/extensions/FontFamily.d.ts +10 -0
  38. package/dist/components/Editor/toolbar/extensions/FontSize.d.ts +10 -0
  39. package/dist/components/Editor/toolbar/extensions/FontStyleCommands.d.ts +2 -0
  40. package/dist/components/Editor/toolbar/extensions/LineHeightExtension.d.ts +2 -0
  41. package/dist/components/Editor/toolbar/extensions/MathBlock.d.ts +12 -0
  42. package/dist/components/Editor/toolbar/extensions/MathBlockView.d.ts +3 -0
  43. package/dist/components/Editor/toolbar/extensions/MathNode.d.ts +10 -0
  44. package/dist/components/Editor/toolbar/extensions/ResizableEmbed.d.ts +9 -0
  45. package/dist/components/Editor/toolbar/extensions/ResizableImage.d.ts +2 -0
  46. package/dist/components/Editor/toolbar/extensions/ResizableVideo.d.ts +2 -0
  47. package/dist/components/Editor/toolbar/extensions/WordCount.d.ts +2 -0
  48. package/dist/components/Editor/toolbar/groups/AlignGroup.d.ts +8 -0
  49. package/dist/components/Editor/toolbar/groups/ClipboardGroup.d.ts +8 -0
  50. package/dist/components/Editor/toolbar/groups/ColorGroup.d.ts +8 -0
  51. package/dist/components/Editor/toolbar/groups/FileGroup.d.ts +12 -0
  52. package/dist/components/Editor/toolbar/groups/InsertGroup.d.ts +6 -0
  53. package/dist/components/Editor/toolbar/groups/ListGroup.d.ts +8 -0
  54. package/dist/components/Editor/toolbar/groups/PlatinumGroup.d.ts +19 -0
  55. package/dist/components/Editor/toolbar/groups/PreviewModal.d.ts +8 -0
  56. package/dist/components/Editor/toolbar/groups/TextFormattingGroup.d.ts +8 -0
  57. package/dist/components/Editor/toolbar/groups/UtilityGroup.d.ts +10 -0
  58. package/dist/components/Editor/toolbar/useFileActions.d.ts +6 -0
  59. package/dist/components/Editor/toolbar/useUtilityActions.d.ts +8 -0
  60. package/dist/components/Editor/types/TetronsEditorProps.d.ts +100 -0
  61. package/dist/components/Editor/types/ValidationResponse.d.ts +10 -0
  62. package/dist/components/ui/Button.d.ts +12 -0
  63. package/dist/components/ui/ConfirmModal.d.ts +10 -0
  64. package/dist/components/ui/Dropdown.d.ts +14 -0
  65. package/dist/index.css +4888 -0
  66. package/dist/index.d.ts +6 -16
  67. package/dist/index.mjs +14802 -14936
  68. package/dist/lib/indianKeyboardLayouts.d.ts +1 -0
  69. package/dist/lib/languages.d.ts +1 -0
  70. package/dist/server/dictionary.d.ts +1 -0
  71. package/dist/tiptap/extensions/SpellCheck.d.ts +2 -0
  72. package/dist/types/VersionEntry.d.ts +6 -0
  73. package/dist/typescript-A2I22B6E.mjs +210768 -0
  74. package/package.json +88 -109
  75. package/dist/app/api/ai-action/route.cjs +0 -61
  76. package/dist/app/api/ai-action/route.d.mts +0 -9
  77. package/dist/app/api/ai-action/route.d.ts +0 -9
  78. package/dist/app/api/ai-action/route.mjs +0 -36
  79. package/dist/app/api/execute/route.cjs +0 -55
  80. package/dist/app/api/execute/route.d.mts +0 -8
  81. package/dist/app/api/execute/route.d.ts +0 -8
  82. package/dist/app/api/execute/route.mjs +0 -30
  83. package/dist/app/api/export/route.cjs +0 -33
  84. package/dist/app/api/export/route.d.mts +0 -3
  85. package/dist/app/api/export/route.d.ts +0 -3
  86. package/dist/app/api/export/route.mjs +0 -8
  87. package/dist/app/api/register/route.cjs +0 -120
  88. package/dist/app/api/register/route.d.mts +0 -10
  89. package/dist/app/api/register/route.d.ts +0 -10
  90. package/dist/app/api/register/route.mjs +0 -85
  91. package/dist/app/api/save/route.cjs +0 -53
  92. package/dist/app/api/save/route.d.mts +0 -9
  93. package/dist/app/api/save/route.d.ts +0 -9
  94. package/dist/app/api/save/route.mjs +0 -18
  95. package/dist/app/api/transcribe/route.cjs +0 -72
  96. package/dist/app/api/transcribe/route.d.mts +0 -10
  97. package/dist/app/api/transcribe/route.d.ts +0 -10
  98. package/dist/app/api/transcribe/route.mjs +0 -46
  99. package/dist/app/api/validate/route.cjs +0 -143
  100. package/dist/app/api/validate/route.d.mts +0 -13
  101. package/dist/app/api/validate/route.d.ts +0 -13
  102. package/dist/app/api/validate/route.mjs +0 -107
  103. package/dist/components/UI/Dropdown.tsx +0 -0
  104. package/dist/components/tetrons/EditorContent.tsx +0 -272
  105. package/dist/components/tetrons/ResizableImageComponent.tsx +0 -112
  106. package/dist/components/tetrons/ResizableVideoComponent.tsx +0 -56
  107. package/dist/dictionaries/index.aff +0 -205
  108. package/dist/dictionaries/index.dic +0 -49569
  109. package/dist/index.cjs +0 -17652
  110. package/dist/index.d.mts +0 -16
  111. package/dist/styles/tetrons.css +0 -981
  112. package/public/dictionaries/index.aff +0 -205
  113. package/public/dictionaries/index.dic +0 -49569
  114. /package/dist/components/{UI/Button.tsx → Editor/config/featureConfig.d.ts} +0 -0
package/dist/index.css ADDED
@@ -0,0 +1,4888 @@
1
+ /* src/styles/tetrons.css */
2
+ .tetrons-key-container {
3
+ max-width: 420px;
4
+ width: 100%;
5
+ margin: 80px auto;
6
+ padding: 28px 24px;
7
+ background: #ffffff;
8
+ border: 1px solid #e5e7eb;
9
+ border-radius: 12px;
10
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
11
+ }
12
+ .tetrons-key-title {
13
+ font-size: 20px;
14
+ font-weight: 600;
15
+ margin-bottom: 6px;
16
+ color: #111827;
17
+ }
18
+ .tetrons-key-subtitle {
19
+ font-size: 14px;
20
+ color: #6b7280;
21
+ margin-bottom: 18px;
22
+ line-height: 1.4;
23
+ }
24
+ .tetrons-key-input {
25
+ width: 100%;
26
+ padding: 12px 14px;
27
+ font-size: 14px;
28
+ border: 1px solid #d1d5db;
29
+ border-radius: 8px;
30
+ outline: none;
31
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
32
+ }
33
+ .tetrons-key-input:focus {
34
+ border-color: #2563eb;
35
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
36
+ }
37
+ .tetrons-key-error {
38
+ margin-top: 10px;
39
+ font-size: 13px;
40
+ color: #dc2626;
41
+ }
42
+ .tetrons-key-button {
43
+ margin-top: 18px;
44
+ width: 100%;
45
+ padding: 12px 16px;
46
+ background: #2563eb;
47
+ color: #ffffff;
48
+ font-size: 14px;
49
+ font-weight: 500;
50
+ border: none;
51
+ border-radius: 8px;
52
+ cursor: pointer;
53
+ transition: background 0.15s ease, transform 0.05s ease;
54
+ }
55
+ .tetrons-key-button:hover {
56
+ background: #1e40af;
57
+ }
58
+ .tetrons-key-button:active {
59
+ transform: translateY(1px);
60
+ }
61
+ .tetrons-key-footer {
62
+ margin-top: 14px;
63
+ font-size: 12px;
64
+ color: #6b7280;
65
+ text-align: center;
66
+ }
67
+ @media (max-width: 1024px) {
68
+ .tetrons-key-container {
69
+ margin: 64px auto;
70
+ padding: 26px 22px;
71
+ }
72
+ .tetrons-key-title {
73
+ font-size: 19px;
74
+ }
75
+ }
76
+ @media (max-width: 768px) {
77
+ .tetrons-key-container {
78
+ margin: 48px 16px;
79
+ padding: 24px 20px;
80
+ border-radius: 10px;
81
+ }
82
+ .tetrons-key-title {
83
+ font-size: 18px;
84
+ }
85
+ .tetrons-key-subtitle {
86
+ font-size: 13px;
87
+ }
88
+ .tetrons-key-input {
89
+ font-size: 13px;
90
+ padding: 11px 13px;
91
+ }
92
+ .tetrons-key-button {
93
+ padding: 11px 14px;
94
+ font-size: 13px;
95
+ }
96
+ }
97
+ @media (max-width: 480px) {
98
+ .tetrons-key-container {
99
+ margin: 32px 12px;
100
+ padding: 20px 16px;
101
+ border-radius: 8px;
102
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
103
+ }
104
+ .tetrons-key-title {
105
+ font-size: 17px;
106
+ }
107
+ .tetrons-key-subtitle {
108
+ font-size: 12px;
109
+ margin-bottom: 14px;
110
+ }
111
+ .tetrons-key-footer {
112
+ font-size: 11px;
113
+ }
114
+ }
115
+ @media (max-width: 360px) {
116
+ .tetrons-key-container {
117
+ margin: 24px 10px;
118
+ padding: 18px 14px;
119
+ }
120
+ .tetrons-key-title {
121
+ font-size: 16px;
122
+ }
123
+ .tetrons-key-input {
124
+ padding: 10px 12px;
125
+ }
126
+ .tetrons-key-button {
127
+ padding: 10px 12px;
128
+ }
129
+ }
130
+ .editorWrapper {
131
+ width: 100%;
132
+ background: var(--editor-bg, #ffffff);
133
+ border: 1px solid #dcdcdc;
134
+ border-radius: 8px;
135
+ box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
136
+ padding: 0;
137
+ overflow: visible;
138
+ }
139
+ @media (max-width: 992px) {
140
+ .main {
141
+ padding: 20px;
142
+ }
143
+ .editorWrapper {
144
+ max-width: 100%;
145
+ border-radius: 6px;
146
+ }
147
+ }
148
+ @media (max-width: 600px) {
149
+ .main {
150
+ padding: 14px;
151
+ }
152
+ .editorWrapper {
153
+ border-radius: 4px;
154
+ box-shadow: none;
155
+ }
156
+ }
157
+ @media (max-width: 400px) {
158
+ .main {
159
+ padding: 10px;
160
+ }
161
+ }
162
+ .tetrons-editor__container {
163
+ position: relative;
164
+ display: flex;
165
+ flex-direction: column;
166
+ width: 100%;
167
+ height: 100vh;
168
+ padding: 16px;
169
+ background: var(--background);
170
+ color: var(--foreground);
171
+ border: 1px solid rgba(0, 0, 0, 0.1);
172
+ border-radius: 8px;
173
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
174
+ overflow: visible;
175
+ }
176
+ .tetrons-editor__area {
177
+ flex: 1;
178
+ height: 100%;
179
+ min-height: 300px;
180
+ padding: 16px;
181
+ font-family: var(--font-body);
182
+ font-size: 16px;
183
+ line-height: 1.6;
184
+ background: var(--background);
185
+ color: var(--foreground);
186
+ border: 1px solid rgba(0, 0, 0, 0.15);
187
+ border-radius: 6px;
188
+ outline: none;
189
+ transition: border-color 0.2s ease;
190
+ }
191
+ .tetrons-editor__area:focus {
192
+ border-color: #4a90e2;
193
+ }
194
+ .tetrons-editor__area p {
195
+ margin-bottom: 12px;
196
+ }
197
+ .tetrons-editor__area ul,
198
+ .tetrons-editor__area ol {
199
+ padding-left: 20px;
200
+ margin-bottom: 12px;
201
+ }
202
+ .tetrons-editor__area h1,
203
+ .tetrons-editor__area h2,
204
+ .tetrons-editor__area h3,
205
+ .tetrons-editor__area h4 {
206
+ margin: 16px 0 8px;
207
+ font-weight: bold;
208
+ }
209
+ .tetrons-editor__area .ProseMirror {
210
+ height: 100%;
211
+ min-height: 100%;
212
+ outline: none !important;
213
+ }
214
+ .tetrons-editor__area .ProseMirror:focus {
215
+ outline: none !important;
216
+ }
217
+ .tetrons-editor__third-row {
218
+ display: flex;
219
+ align-items: center;
220
+ gap: 12px;
221
+ flex-wrap: wrap;
222
+ z-index: 1;
223
+ }
224
+ .tetrons-editor__toolbar-separator {
225
+ width: 1px;
226
+ height: 24px;
227
+ background-color: rgba(0, 0, 0, 0.15);
228
+ }
229
+ .tetrons-editor__premium-groups {
230
+ display: flex;
231
+ align-items: center;
232
+ background: transparent;
233
+ flex-wrap: wrap;
234
+ gap: 0.5rem;
235
+ }
236
+ .tetrons-editor__premium-separator {
237
+ width: 1px;
238
+ height: 24px;
239
+ background-color: rgba(0, 0, 0, 0.15);
240
+ margin: 0 8px;
241
+ }
242
+ .tetrons-editor__wrapper {
243
+ width: 100%;
244
+ height: 100%;
245
+ transition: transform 0.2s ease;
246
+ overflow: visible !important;
247
+ }
248
+ @media (max-width: 768px) {
249
+ .tetrons-editor__premium-groups {
250
+ flex-wrap: nowrap;
251
+ overflow-x: auto;
252
+ -ms-overflow-style: auto;
253
+ padding: 4px 0;
254
+ min-height: 40px;
255
+ gap: 0.5rem;
256
+ }
257
+ .tetrons-editor__premium-groups > * {
258
+ flex: 0 0 auto;
259
+ }
260
+ }
261
+ @media (prefers-color-scheme: dark) {
262
+ .tetrons-editor__premium-groups {
263
+ border-top: 1px solid rgba(255, 255, 255, 0.12);
264
+ }
265
+ }
266
+ @media (prefers-color-scheme: dark) {
267
+ .tetrons-editor__container {
268
+ border-color: rgba(255, 255, 255, 0.1);
269
+ box-shadow: 0 2px 6px rgba(255, 255, 255, 0.05);
270
+ }
271
+ .tetrons-editor__area {
272
+ border-color: rgba(255, 255, 255, 0.2);
273
+ }
274
+ .tetrons-editor__area:focus {
275
+ border-color: #82b1ff;
276
+ }
277
+ .tetrons-editor__toolbar-separator {
278
+ background-color: rgba(255, 255, 255, 0.2);
279
+ }
280
+ }
281
+ .tetrons-editor__area .spell-wrong {
282
+ text-decoration-line: underline !important;
283
+ text-decoration-style: wavy !important;
284
+ text-decoration-color: red !important;
285
+ color: inherit;
286
+ }
287
+ @media (prefers-color-scheme: dark) {
288
+ .tetrons-editor__area .spell-wrong {
289
+ text-decoration-color: red !important;
290
+ }
291
+ }
292
+ .tetrons-editor__statusbar {
293
+ width: 100%;
294
+ height: 28px;
295
+ background: #fafafa;
296
+ border-top: 1px solid #ddd;
297
+ display: flex;
298
+ align-items: center;
299
+ justify-content: flex-end;
300
+ gap: 24px;
301
+ padding: 0 12px;
302
+ font-size: 12px;
303
+ color: #555;
304
+ -webkit-user-select: none;
305
+ -moz-user-select: none;
306
+ -ms-user-select: none;
307
+ user-select: none;
308
+ box-sizing: border-box;
309
+ }
310
+ .tetrons-editor__status-item {
311
+ padding: 2px 4px;
312
+ white-space: nowrap;
313
+ }
314
+ .tetrons-editor__status-logo {
315
+ display: flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ margin-left: auto;
319
+ padding-left: 12px;
320
+ }
321
+ .tetrons-editor__status-logo img {
322
+ height: 16px;
323
+ width: auto !important;
324
+ object-fit: contain;
325
+ opacity: 0.9;
326
+ -webkit-user-select: none;
327
+ user-select: none;
328
+ }
329
+ .tetrons-editor__status-logo img:hover {
330
+ opacity: 1;
331
+ }
332
+ @media only screen and (max-width: 1024px) {
333
+ .tetrons-editor__statusbar {
334
+ gap: 16px;
335
+ font-size: 11px;
336
+ padding: 0 10px;
337
+ }
338
+ .tetrons-editor__status-logo img {
339
+ height: 15px;
340
+ }
341
+ }
342
+ @media only screen and (max-width: 768px) {
343
+ .tetrons-editor__statusbar {
344
+ gap: 12px;
345
+ font-size: 10.5px;
346
+ }
347
+ .tetrons-editor__status-logo img {
348
+ height: 14px;
349
+ }
350
+ }
351
+ @media only screen and (max-width: 480px) {
352
+ .tetrons-editor__statusbar {
353
+ height: auto;
354
+ padding: 6px 10px;
355
+ flex-wrap: wrap;
356
+ justify-content: flex-start;
357
+ gap: 10px;
358
+ border-top: 1px solid #ccc;
359
+ }
360
+ .tetrons-editor__status-item {
361
+ padding: 1px 3px;
362
+ font-size: 10px;
363
+ }
364
+ .tetrons-editor__status-logo {
365
+ margin-left: 0;
366
+ padding-left: 0;
367
+ }
368
+ .tetrons-editor__status-logo img {
369
+ height: 13px;
370
+ }
371
+ }
372
+ @media only screen and (max-width: 360px) {
373
+ .tetrons-editor__statusbar {
374
+ font-size: 9.5px;
375
+ }
376
+ .tetrons-editor__status-logo img {
377
+ height: 12px;
378
+ }
379
+ }
380
+ .tetrons-task-list {
381
+ list-style: none;
382
+ padding-left: 0;
383
+ margin-left: 0;
384
+ }
385
+ .tetrons-task-item {
386
+ display: flex;
387
+ align-items: flex-start;
388
+ gap: 6px;
389
+ }
390
+ .tetrons-task-item input[type=checkbox] {
391
+ margin-top: 3px;
392
+ }
393
+ .tetrons-editor__area .spell-suggestions-popup {
394
+ position: absolute;
395
+ background: white;
396
+ border: 1px solid #ccc;
397
+ padding: 6px 0;
398
+ border-radius: 4px;
399
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
400
+ z-index: 9999;
401
+ min-width: 140px;
402
+ }
403
+ .tetrons-editor__area .suggestion-item {
404
+ padding: 6px 12px;
405
+ cursor: pointer;
406
+ }
407
+ .tetrons-editor__area .suggestion-item:hover {
408
+ background: #f0f0f0;
409
+ }
410
+ .tetrons-editor__spell-enabled {
411
+ background-color: rgba(255, 0, 0, 0.12);
412
+ border: 1px solid rgba(255, 0, 0, 0.3);
413
+ color: red;
414
+ font-weight: 500;
415
+ }
416
+ .tetrons-editor__spell-enabled:hover {
417
+ background-color: rgba(255, 0, 0, 0.18);
418
+ }
419
+ .tetrons-editor__spell-disabled {
420
+ background-color: transparent;
421
+ border: 1px solid rgba(0, 0, 0, 0.15);
422
+ color: rgba(0, 0, 0, 0.55);
423
+ }
424
+ .tetrons-editor__spell-disabled:hover {
425
+ background-color: rgba(0, 0, 0, 0.08);
426
+ }
427
+ @media (prefers-color-scheme: dark) {
428
+ .tetrons-editor__spell-enabled {
429
+ background-color: rgba(255, 80, 80, 0.18);
430
+ border-color: rgba(255, 80, 80, 0.4);
431
+ color: #ff6b6b;
432
+ }
433
+ .tetrons-editor__spell-enabled:hover {
434
+ background-color: rgba(255, 80, 80, 0.25);
435
+ }
436
+ .tetrons-editor__spell-disabled {
437
+ background-color: transparent;
438
+ border-color: rgba(255, 255, 255, 0.25);
439
+ color: rgba(255, 255, 255, 0.55);
440
+ }
441
+ .tetrons-editor__spell-disabled:hover {
442
+ background-color: rgba(255, 255, 255, 0.15);
443
+ }
444
+ }
445
+ .tetrons-editor__modal-overlay {
446
+ position: fixed;
447
+ top: 0;
448
+ left: 0;
449
+ width: 100vw;
450
+ height: 100vh;
451
+ background: rgba(0, 0, 0, 0.55);
452
+ display: flex;
453
+ justify-content: center;
454
+ align-items: center;
455
+ z-index: 9999;
456
+ }
457
+ .tetrons-editor__modal-content {
458
+ background: #fff;
459
+ padding: 20px;
460
+ border-radius: 8px;
461
+ width: 600px;
462
+ max-height: 80vh;
463
+ overflow-y: auto;
464
+ }
465
+ .tetrons-editor__close-btn {
466
+ margin-top: 14px;
467
+ background: #e5e5e5;
468
+ padding: 6px 14px;
469
+ border-radius: 6px;
470
+ }
471
+ .tetrons-editor__area .ProseMirror pre {
472
+ background: #f7f7f7 !important;
473
+ border: 1px solid #e0e0e0 !important;
474
+ border-radius: 6px !important;
475
+ padding: 12px !important;
476
+ margin: 12px 0 !important;
477
+ font-family:
478
+ "Menlo",
479
+ "Monaco",
480
+ "Courier New",
481
+ monospace !important;
482
+ font-size: 14px !important;
483
+ line-height: 1.5 !important;
484
+ white-space: pre-wrap !important;
485
+ overflow-x: auto !important;
486
+ }
487
+ .tetrons-editor__area .ProseMirror pre code {
488
+ background: transparent !important;
489
+ border: none !important;
490
+ padding: 0 !important;
491
+ color: inherit !important;
492
+ font-family: inherit !important;
493
+ }
494
+ @media (prefers-color-scheme: dark) {
495
+ .tetrons-editor__area .ProseMirror pre {
496
+ background: #1e1e1e !important;
497
+ border-color: #333 !important;
498
+ }
499
+ }
500
+ .tetrons-toolbar__basic {
501
+ display: flex;
502
+ flex-wrap: nowrap;
503
+ align-items: center;
504
+ padding: 6px;
505
+ background: var(--background);
506
+ border-radius: 4px 4px 0 0;
507
+ overflow: visible !important;
508
+ }
509
+ @media (max-width: 768px) {
510
+ .tetrons-toolbar__wrapper {
511
+ overflow-x: auto;
512
+ white-space: nowrap;
513
+ }
514
+ .tetrons-toolbar__basic > * {
515
+ flex: 0 0 auto;
516
+ display: inline-flex;
517
+ }
518
+ }
519
+ @media (prefers-color-scheme: dark) {
520
+ .tetrons-toolbar__basic {
521
+ background: #1a1a1a;
522
+ }
523
+ }
524
+ .tetrons-code-editor__container {
525
+ width: 100%;
526
+ max-width: 900px;
527
+ height: auto;
528
+ max-height: 90vh;
529
+ background: var(--background);
530
+ color: var(--foreground);
531
+ border: 1px solid rgba(0, 0, 0, 0.15);
532
+ border-radius: 8px;
533
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
534
+ padding: 16px;
535
+ position: relative;
536
+ display: flex;
537
+ flex-direction: column;
538
+ gap: 12px;
539
+ overflow: hidden;
540
+ box-sizing: border-box;
541
+ }
542
+ .tetrons-code-editor__header {
543
+ display: flex;
544
+ align-items: center;
545
+ justify-content: space-between;
546
+ gap: 12px;
547
+ flex-wrap: wrap;
548
+ }
549
+ .tetrons-code-editor__selector {
550
+ padding: 6px 10px;
551
+ border-radius: 6px;
552
+ border: 1px solid rgba(0, 0, 0, 0.25);
553
+ background: var(--background);
554
+ }
555
+ .tetrons-code-editor-header_button-wrapper {
556
+ display: flex;
557
+ gap: 10px;
558
+ flex-wrap: wrap;
559
+ }
560
+ .tetrons-code-editor__run-btn {
561
+ padding: 6px 16px;
562
+ background: #4a90e2;
563
+ color: #fff;
564
+ border-radius: 6px;
565
+ border: none;
566
+ cursor: pointer;
567
+ }
568
+ .tetrons-code-editor__run-btn:hover {
569
+ background: #0b5ed7;
570
+ }
571
+ .tetrons-code-editor__close-btn {
572
+ background: #e5e5e5;
573
+ border: none;
574
+ border-radius: 4px;
575
+ padding: 4px 10px;
576
+ font-size: 20px;
577
+ cursor: pointer;
578
+ }
579
+ .tetrons-code-editor__close-btn:hover {
580
+ color: #9b0d0d;
581
+ }
582
+ .tetrons-code-editor__output {
583
+ padding: 12px;
584
+ border-radius: 6px;
585
+ max-height: 200px;
586
+ overflow-y: auto;
587
+ }
588
+ .tetrons-code-editor__output h3 {
589
+ margin: 0 0 8px 0;
590
+ font-size: 15px;
591
+ font-weight: 600;
592
+ }
593
+ .tetrons-code-editor__output pre {
594
+ margin: 0;
595
+ white-space: pre-wrap;
596
+ word-break: break-word;
597
+ }
598
+ .tetrons-code-editor__footer {
599
+ display: flex;
600
+ justify-content: flex-end;
601
+ gap: 12px;
602
+ flex-wrap: wrap;
603
+ }
604
+ .tetrons-code-editor__secondary-btn {
605
+ padding: 8px 14px;
606
+ background: #e5e5e5;
607
+ border-radius: 6px;
608
+ border: none;
609
+ }
610
+ .tetrons-code-editor__secondary-btn:hover {
611
+ background: #3a3a3a;
612
+ }
613
+ .tetrons-code-editor__primary-btn {
614
+ padding: 8px 14px;
615
+ background: #4a90e2;
616
+ color: white;
617
+ border: none;
618
+ border-radius: 6px;
619
+ }
620
+ .tetrons-code-editor__primary-btn:hover {
621
+ background: #0b5ed7;
622
+ }
623
+ @media (max-width: 1024px) {
624
+ .tetrons-code-editor__container {
625
+ max-width: 95%;
626
+ padding: 14px;
627
+ }
628
+ }
629
+ @media (max-width: 768px) {
630
+ .tetrons-code-editor__header {
631
+ flex-direction: column;
632
+ align-items: stretch;
633
+ }
634
+ .tetrons-code-editor-header_button-wrapper {
635
+ justify-content: flex-start;
636
+ }
637
+ .tetrons-code-editor__selector,
638
+ .tetrons-code-editor__run-btn,
639
+ .tetrons-code-editor__close-btn {
640
+ width: 100%;
641
+ }
642
+ .tetrons-code-editor__output {
643
+ max-height: 180px;
644
+ }
645
+ .tetrons-code-editor__footer {
646
+ justify-content: center;
647
+ }
648
+ .tetrons-code-editor__secondary-btn,
649
+ .tetrons-code-editor__primary-btn {
650
+ width: 100%;
651
+ }
652
+ }
653
+ @media (max-width: 480px) {
654
+ .tetrons-code-editor__container {
655
+ padding: 12px;
656
+ border-radius: 6px;
657
+ }
658
+ .tetrons-code-editor__header {
659
+ gap: 8px;
660
+ }
661
+ .tetrons-code-editor__run-btn {
662
+ padding: 8px 10px;
663
+ font-size: 14px;
664
+ }
665
+ .tetrons-code-editor__close-btn {
666
+ padding: 6px 10px;
667
+ font-size: 18px;
668
+ }
669
+ .tetrons-code-editor__output {
670
+ max-height: 160px;
671
+ padding: 10px;
672
+ }
673
+ .tetrons-code-editor__footer {
674
+ flex-direction: column;
675
+ gap: 8px;
676
+ }
677
+ .tetrons-code-editor__primary-btn,
678
+ .tetrons-code-editor__secondary-btn {
679
+ width: 100%;
680
+ }
681
+ }
682
+ .converter-container {
683
+ display: flex;
684
+ flex-direction: column;
685
+ gap: 1.25rem;
686
+ max-width: 700px;
687
+ margin: 0 auto;
688
+ padding: 1rem;
689
+ }
690
+ .converter-field {
691
+ display: flex;
692
+ flex-direction: column;
693
+ gap: 0.5rem;
694
+ }
695
+ .converter-label {
696
+ font-weight: 600;
697
+ color: #222;
698
+ font-size: 0.95rem;
699
+ }
700
+ .converter-select,
701
+ .converter-textarea {
702
+ width: 100%;
703
+ padding: 0.75rem;
704
+ font-size: 1rem;
705
+ border: 1px solid #ccc;
706
+ border-radius: 8px;
707
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
708
+ }
709
+ .converter-textarea {
710
+ min-height: 120px;
711
+ resize: vertical;
712
+ }
713
+ .converter-select:focus,
714
+ .converter-textarea:focus {
715
+ outline: none;
716
+ border-color: #0070f3;
717
+ box-shadow: 0 0 0 2px rgba(0, 112, 243, 0.2);
718
+ }
719
+ .converter-button {
720
+ padding: 0.7rem 1.4rem;
721
+ font-size: 1rem;
722
+ border: none;
723
+ border-radius: 8px;
724
+ background: #0070f3;
725
+ color: #fff;
726
+ cursor: pointer;
727
+ font-weight: 500;
728
+ align-self: flex-start;
729
+ transition: background 0.2s ease;
730
+ }
731
+ .converter-button:hover {
732
+ background: #0059c1;
733
+ }
734
+ .converter-textareaWrapper {
735
+ display: flex;
736
+ align-items: center;
737
+ gap: 0.5rem;
738
+ }
739
+ .converter-iconButton {
740
+ background: transparent;
741
+ border: none;
742
+ cursor: pointer;
743
+ font-size: 1.3rem;
744
+ color: #444;
745
+ transition: color 0.2s ease, transform 0.2s ease;
746
+ }
747
+ .converter-iconButton:hover {
748
+ color: #0070f3;
749
+ transform: scale(1.1);
750
+ }
751
+ .converter-outputWrapper {
752
+ display: flex;
753
+ align-items: center;
754
+ gap: 0.75rem;
755
+ margin-top: 0.5rem;
756
+ }
757
+ .converter-output {
758
+ flex: 1;
759
+ padding: 1rem;
760
+ border: 1px solid #ddd;
761
+ border-radius: 8px;
762
+ background: #f9f9f9;
763
+ min-height: 60px;
764
+ font-size: 1rem;
765
+ line-height: 1.4;
766
+ color: #222;
767
+ }
768
+ @media (max-width: 480px) {
769
+ .converter-container {
770
+ padding: 0.75rem;
771
+ max-width: 100%;
772
+ }
773
+ .converter-label {
774
+ font-size: 0.9rem;
775
+ }
776
+ .converter-select,
777
+ .converter-textarea {
778
+ font-size: 0.9rem;
779
+ padding: 0.6rem;
780
+ }
781
+ .converter-button {
782
+ width: 100%;
783
+ font-size: 0.95rem;
784
+ padding: 0.65rem 1rem;
785
+ align-self: stretch;
786
+ }
787
+ .converter-textareaWrapper,
788
+ .converter-outputWrapper {
789
+ flex-direction: column;
790
+ align-items: stretch;
791
+ }
792
+ .converter-iconButton {
793
+ font-size: 1.2rem;
794
+ align-self: flex-end;
795
+ }
796
+ .converter-output {
797
+ font-size: 0.95rem;
798
+ padding: 0.85rem;
799
+ }
800
+ }
801
+ @media (max-width: 768px) {
802
+ .converter-container {
803
+ max-width: 90%;
804
+ }
805
+ .converter-textareaWrapper,
806
+ .converter-outputWrapper {
807
+ gap: 0.5rem;
808
+ }
809
+ .converter-button {
810
+ padding: 0.65rem 1.2rem;
811
+ font-size: 0.95rem;
812
+ }
813
+ }
814
+ @media (min-width: 1200px) {
815
+ .converter-container {
816
+ max-width: 850px;
817
+ }
818
+ .converter-textarea {
819
+ min-height: 140px;
820
+ }
821
+ .converter-output {
822
+ min-height: 80px;
823
+ }
824
+ }
825
+ .translator-container {
826
+ display: flex;
827
+ flex-direction: column;
828
+ gap: 1.25rem;
829
+ max-width: 700px;
830
+ margin: 0 auto;
831
+ padding: 1rem;
832
+ }
833
+ .translator-field {
834
+ display: flex;
835
+ flex-direction: column;
836
+ gap: 0.5rem;
837
+ }
838
+ .translator-label {
839
+ font-weight: 600;
840
+ color: #222;
841
+ font-size: 0.95rem;
842
+ }
843
+ .translator-select,
844
+ .translator-textarea {
845
+ width: 100%;
846
+ padding: 0.75rem;
847
+ font-size: 1rem;
848
+ border: 1px solid #ccc;
849
+ border-radius: 8px;
850
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
851
+ }
852
+ .translator-textarea {
853
+ min-height: 120px;
854
+ resize: vertical;
855
+ }
856
+ .translator-select:focus,
857
+ .translator-textarea:focus {
858
+ outline: none;
859
+ border-color: #0070f3;
860
+ box-shadow: 0 0 0 2px rgba(0, 112, 243, 0.2);
861
+ }
862
+ .translator-button {
863
+ padding: 0.7rem 1.4rem;
864
+ font-size: 1rem;
865
+ border: none;
866
+ border-radius: 8px;
867
+ background: #0070f3;
868
+ color: #fff;
869
+ cursor: pointer;
870
+ font-weight: 500;
871
+ align-self: flex-start;
872
+ transition: background 0.2s ease;
873
+ }
874
+ .translator-button:hover {
875
+ background: #0059c1;
876
+ }
877
+ .translator-textareaWrapper {
878
+ display: flex;
879
+ align-items: center;
880
+ gap: 0.5rem;
881
+ }
882
+ .translator-iconButton {
883
+ background: transparent;
884
+ border: none;
885
+ cursor: pointer;
886
+ font-size: 1.3rem;
887
+ color: #444;
888
+ transition: color 0.2s ease, transform 0.2s ease;
889
+ }
890
+ .translator-iconButton:hover {
891
+ color: #0070f3;
892
+ transform: scale(1.1);
893
+ }
894
+ .translator-outputWrapper {
895
+ display: flex;
896
+ align-items: center;
897
+ gap: 0.75rem;
898
+ margin-top: 0.5rem;
899
+ }
900
+ .translator-output {
901
+ flex: 1;
902
+ padding: 1rem;
903
+ border: 1px solid #ddd;
904
+ border-radius: 8px;
905
+ background: #f9f9f9;
906
+ min-height: 60px;
907
+ font-size: 1rem;
908
+ line-height: 1.4;
909
+ color: #222;
910
+ }
911
+ @media (max-width: 900px) {
912
+ .translator-container {
913
+ max-width: 90%;
914
+ padding: 0.75rem;
915
+ }
916
+ .translator-label {
917
+ font-size: 0.9rem;
918
+ }
919
+ .translator-select,
920
+ .translator-textarea {
921
+ font-size: 0.95rem;
922
+ padding: 0.65rem;
923
+ }
924
+ .translator-button {
925
+ padding: 0.65rem 1.2rem;
926
+ font-size: 0.95rem;
927
+ }
928
+ .translator-output {
929
+ padding: 0.9rem;
930
+ font-size: 0.95rem;
931
+ }
932
+ }
933
+ @media (max-width: 600px) {
934
+ .translator-container {
935
+ max-width: 100%;
936
+ padding: 0.75rem;
937
+ gap: 1rem;
938
+ }
939
+ .translator-field {
940
+ gap: 0.4rem;
941
+ }
942
+ .translator-label {
943
+ font-size: 0.85rem;
944
+ }
945
+ .translator-select,
946
+ .translator-textarea {
947
+ font-size: 0.9rem;
948
+ padding: 0.6rem;
949
+ }
950
+ .translator-textarea {
951
+ min-height: 100px;
952
+ }
953
+ .translator-textareaWrapper {
954
+ flex-direction: row;
955
+ gap: 0.4rem;
956
+ }
957
+ .translator-iconButton {
958
+ font-size: 1.2rem;
959
+ }
960
+ .translator-button {
961
+ width: 100%;
962
+ text-align: center;
963
+ padding: 0.65rem 1rem;
964
+ font-size: 0.9rem;
965
+ }
966
+ .translator-outputWrapper {
967
+ flex-direction: column;
968
+ align-items: stretch;
969
+ gap: 0.5rem;
970
+ }
971
+ .translator-output {
972
+ font-size: 0.9rem;
973
+ padding: 0.85rem;
974
+ min-height: 50px;
975
+ }
976
+ }
977
+ @media (max-width: 400px) {
978
+ .translator-container {
979
+ padding: 0.6rem;
980
+ }
981
+ .translator-select,
982
+ .translator-textarea {
983
+ font-size: 0.85rem;
984
+ padding: 0.55rem;
985
+ }
986
+ .translator-button {
987
+ font-size: 0.85rem;
988
+ padding: 0.6rem 0.9rem;
989
+ }
990
+ .translator-output {
991
+ font-size: 0.85rem;
992
+ }
993
+ }
994
+ .math-equation-modalOverlay {
995
+ position: fixed;
996
+ top: 0;
997
+ left: 0;
998
+ width: 100%;
999
+ height: 100%;
1000
+ background: rgba(0, 0, 0, 0.5);
1001
+ display: flex;
1002
+ justify-content: center;
1003
+ align-items: center;
1004
+ z-index: 9999;
1005
+ }
1006
+ .math-equation-modalContent {
1007
+ background: white;
1008
+ padding: 20px;
1009
+ border-radius: 10px;
1010
+ width: 400px;
1011
+ max-width: 90%;
1012
+ display: flex;
1013
+ flex-direction: column;
1014
+ gap: 10px;
1015
+ }
1016
+ .math-equation-textarea {
1017
+ width: 100%;
1018
+ min-height: 100px;
1019
+ padding: 8px;
1020
+ font-family: monospace;
1021
+ border-radius: 5px;
1022
+ border: 1px solid #ccc;
1023
+ }
1024
+ .math-equation-buttonRow {
1025
+ display: flex;
1026
+ justify-content: flex-end;
1027
+ gap: 10px;
1028
+ }
1029
+ .math-equation-cancelButton {
1030
+ background: #eee;
1031
+ padding: 8px 12px;
1032
+ border: none;
1033
+ border-radius: 5px;
1034
+ cursor: pointer;
1035
+ }
1036
+ .math-equation-insertButton {
1037
+ background: #0070f3;
1038
+ color: white;
1039
+ padding: 8px 12px;
1040
+ border: none;
1041
+ border-radius: 5px;
1042
+ cursor: pointer;
1043
+ }
1044
+ .math-equation-preview {
1045
+ margin-top: 10px;
1046
+ padding: 8px;
1047
+ border: 1px solid #ddd;
1048
+ border-radius: 5px;
1049
+ background: #f9f9f9;
1050
+ min-height: 50px;
1051
+ }
1052
+ .math-equation-previewContent {
1053
+ font-size: 1.2em;
1054
+ }
1055
+ .math-equation-voiceButton {
1056
+ margin-top: 10px;
1057
+ padding: 8px 14px;
1058
+ background: #2563eb;
1059
+ color: white;
1060
+ border: none;
1061
+ border-radius: 6px;
1062
+ cursor: pointer;
1063
+ }
1064
+ .math-equation-voiceButton:disabled {
1065
+ background: #94a3b8;
1066
+ cursor: not-allowed;
1067
+ }
1068
+ .math-equation-imageLabel {
1069
+ font-size: 14px;
1070
+ margin-bottom: 6px;
1071
+ display: block;
1072
+ }
1073
+ .math-equation-imageInput {
1074
+ margin-top: 4px;
1075
+ }
1076
+ .math-equation-imagePreviewBox {
1077
+ margin-top: 10px;
1078
+ display: flex;
1079
+ flex-direction: column;
1080
+ gap: 6px;
1081
+ }
1082
+ .math-equation-imagePreview {
1083
+ max-width: 100%;
1084
+ max-height: 150px;
1085
+ border: 1px solid #ddd;
1086
+ border-radius: 6px;
1087
+ object-fit: contain;
1088
+ }
1089
+ .math-equation-removeImageButton {
1090
+ width: fit-content;
1091
+ padding: 4px 10px;
1092
+ font-size: 13px;
1093
+ background: #dc2626;
1094
+ color: white;
1095
+ border: none;
1096
+ border-radius: 4px;
1097
+ cursor: pointer;
1098
+ }
1099
+ .math-equation-removeImageButton:hover {
1100
+ background: #b91c1c;
1101
+ }
1102
+ .math-equation-uploadedImageContainer {
1103
+ margin-top: 8px;
1104
+ }
1105
+ .math-equation-uploadedImage {
1106
+ margin-top: 5px;
1107
+ max-width: 100%;
1108
+ max-height: 150px;
1109
+ border-radius: 6px;
1110
+ border: 1px solid #ccc;
1111
+ object-fit: contain;
1112
+ }
1113
+ @media (max-width: 900px) {
1114
+ .math-equation-modalContent {
1115
+ width: 360px;
1116
+ padding: 18px;
1117
+ }
1118
+ .math-equation-textarea {
1119
+ font-size: 0.95rem;
1120
+ padding: 7px;
1121
+ }
1122
+ .math-equation-preview {
1123
+ padding: 7px;
1124
+ }
1125
+ .math-equation-previewContent {
1126
+ font-size: 1.1em;
1127
+ }
1128
+ .math-equation-voiceButton {
1129
+ padding: 8px 12px;
1130
+ }
1131
+ }
1132
+ @media (max-width: 600px) {
1133
+ .math-equation-modalContent {
1134
+ width: 92%;
1135
+ padding: 15px;
1136
+ gap: 8px;
1137
+ }
1138
+ .math-equation-textarea {
1139
+ min-height: 90px;
1140
+ padding: 6px;
1141
+ font-size: 0.9rem;
1142
+ }
1143
+ .math-equation-buttonRow {
1144
+ justify-content: space-between;
1145
+ gap: 8px;
1146
+ }
1147
+ .math-equation-cancelButton,
1148
+ .math-equation-insertButton {
1149
+ width: 50%;
1150
+ padding: 8px;
1151
+ font-size: 0.9rem;
1152
+ text-align: center;
1153
+ }
1154
+ .math-equation-preview {
1155
+ padding: 7px;
1156
+ font-size: 0.9rem;
1157
+ }
1158
+ .math-equation-previewContent {
1159
+ font-size: 1em;
1160
+ }
1161
+ .math-equation-voiceButton {
1162
+ width: 100%;
1163
+ padding: 8px;
1164
+ font-size: 0.9rem;
1165
+ text-align: center;
1166
+ }
1167
+ .math-equation-imagePreview {
1168
+ max-height: 120px;
1169
+ }
1170
+ }
1171
+ @media (max-width: 400px) {
1172
+ .math-equation-modalContent {
1173
+ padding: 12px;
1174
+ }
1175
+ .math-equation-textarea {
1176
+ padding: 5px;
1177
+ font-size: 0.85rem;
1178
+ }
1179
+ .math-equation-cancelButton,
1180
+ .math-equation-insertButton {
1181
+ padding: 7px;
1182
+ font-size: 0.85rem;
1183
+ }
1184
+ .math-equation-preview {
1185
+ padding: 6px;
1186
+ }
1187
+ .math-equation-previewContent {
1188
+ font-size: 0.95em;
1189
+ }
1190
+ .math-equation-voiceButton {
1191
+ font-size: 0.85rem;
1192
+ }
1193
+ }
1194
+ .second-row-container {
1195
+ display: flex;
1196
+ align-items: center;
1197
+ width: 100%;
1198
+ gap: 16px;
1199
+ padding: 6px 12px;
1200
+ border-bottom: 1px solid #ddd;
1201
+ -webkit-user-select: none;
1202
+ -moz-user-select: none;
1203
+ -ms-user-select: none;
1204
+ user-select: none;
1205
+ }
1206
+ .second-row-autosave {
1207
+ display: flex;
1208
+ align-items: center;
1209
+ gap: 6px;
1210
+ cursor: pointer;
1211
+ white-space: nowrap;
1212
+ -webkit-user-select: none;
1213
+ -moz-user-select: none;
1214
+ -ms-user-select: none;
1215
+ user-select: none;
1216
+ }
1217
+ .second-row-autosave input[type=checkbox] {
1218
+ width: 14px;
1219
+ height: 14px;
1220
+ cursor: pointer;
1221
+ -webkit-user-select: none;
1222
+ -moz-user-select: none;
1223
+ -ms-user-select: none;
1224
+ user-select: none;
1225
+ }
1226
+ .versions-container {
1227
+ display: flex;
1228
+ align-items: center;
1229
+ gap: 12px;
1230
+ flex-shrink: 0;
1231
+ -webkit-user-select: none;
1232
+ -moz-user-select: none;
1233
+ -ms-user-select: none;
1234
+ user-select: none;
1235
+ }
1236
+ .versions-list {
1237
+ display: flex;
1238
+ gap: 8px;
1239
+ align-items: center;
1240
+ -webkit-user-select: none;
1241
+ -moz-user-select: none;
1242
+ -ms-user-select: none;
1243
+ user-select: none;
1244
+ }
1245
+ .version-btn {
1246
+ padding: 6px 10px;
1247
+ border: 1px solid #ccc;
1248
+ background: #fafafa;
1249
+ border-radius: 4px;
1250
+ cursor: pointer;
1251
+ transition: background 0.15s ease;
1252
+ font-size: 13px;
1253
+ -webkit-user-select: none;
1254
+ -moz-user-select: none;
1255
+ -ms-user-select: none;
1256
+ user-select: none;
1257
+ }
1258
+ .version-btn:hover {
1259
+ background: #e8e8e8;
1260
+ }
1261
+ .version-btn.active {
1262
+ background: #1e73ff;
1263
+ color: white;
1264
+ border-color: #1e73ff;
1265
+ }
1266
+ .second-row-versionsButton {
1267
+ padding: 10px 12px;
1268
+ border: none;
1269
+ background: #1e73ff;
1270
+ color: #fff;
1271
+ border-radius: 4px;
1272
+ cursor: pointer;
1273
+ font-size: 14px;
1274
+ font-weight: 500;
1275
+ transition: background 0.15s ease, transform 0.1s ease;
1276
+ -webkit-user-select: none;
1277
+ -moz-user-select: none;
1278
+ -ms-user-select: none;
1279
+ user-select: none;
1280
+ }
1281
+ .second-row-versionsButton:hover {
1282
+ background: #1662d6;
1283
+ }
1284
+ .second-row-versionsButton:active {
1285
+ background: #0f4cab;
1286
+ transform: scale(0.98);
1287
+ }
1288
+ @media (max-width: 768px) {
1289
+ .second-row-container {
1290
+ flex-wrap: wrap;
1291
+ justify-content: flex-start;
1292
+ gap: 12px;
1293
+ -webkit-user-select: none;
1294
+ -moz-user-select: none;
1295
+ -ms-user-select: none;
1296
+ user-select: none;
1297
+ }
1298
+ .versions-container {
1299
+ flex-wrap: wrap;
1300
+ }
1301
+ }
1302
+ @media (max-width: 480px) {
1303
+ .second-row-versionsButton {
1304
+ width: max-content;
1305
+ }
1306
+ .versions-list {
1307
+ flex-wrap: wrap;
1308
+ }
1309
+ }
1310
+ .tabs-header {
1311
+ display: flex;
1312
+ justify-content: center;
1313
+ align-items: stretch;
1314
+ margin-bottom: 1rem;
1315
+ border-bottom: 2px solid #ddd;
1316
+ }
1317
+ .tabs-button {
1318
+ flex: 1;
1319
+ text-align: center;
1320
+ padding: 0.75rem 1rem;
1321
+ font-size: 1rem;
1322
+ font-weight: 500;
1323
+ background: var(--background);
1324
+ color: var(--foreground);
1325
+ border: none;
1326
+ border-bottom: 3px solid transparent;
1327
+ cursor: pointer;
1328
+ transition: all 0.2s ease-in-out;
1329
+ }
1330
+ .tabs-button:hover {
1331
+ background: rgba(0, 0, 0, 0.05);
1332
+ }
1333
+ .tabs-active {
1334
+ border-bottom: 3px solid var(--primary);
1335
+ color: var(--primary);
1336
+ font-weight: 600;
1337
+ }
1338
+ .tabs-content {
1339
+ padding: 1.5rem;
1340
+ border: 1px solid #ddd;
1341
+ border-radius: 0 0 10px 10px;
1342
+ background: var(--background);
1343
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
1344
+ }
1345
+ .tabs-container {
1346
+ position: relative;
1347
+ padding-top: 2rem;
1348
+ }
1349
+ .tabs-closeButton {
1350
+ position: absolute;
1351
+ top: -15px;
1352
+ right: -15px;
1353
+ padding: 0.25rem 0.5rem;
1354
+ background: transparent;
1355
+ font-size: 1.5rem;
1356
+ color: #ff5555;
1357
+ border: none;
1358
+ cursor: pointer;
1359
+ transition: opacity 0.2s ease-in-out;
1360
+ }
1361
+ .tabs-closeButton:hover {
1362
+ opacity: 0.7;
1363
+ color: #9b0d0d;
1364
+ }
1365
+ @media (max-width: 768px) {
1366
+ .tabs-header {
1367
+ flex-wrap: wrap;
1368
+ gap: 4px;
1369
+ }
1370
+ .tabs-button {
1371
+ padding: 0.6rem 0.75rem;
1372
+ font-size: 0.95rem;
1373
+ }
1374
+ .tabs-content {
1375
+ padding: 1.2rem;
1376
+ }
1377
+ .tabs-container {
1378
+ padding-top: 1.5rem;
1379
+ }
1380
+ .tabs-closeButton {
1381
+ top: -12px;
1382
+ right: -12px;
1383
+ font-size: 1.3rem;
1384
+ }
1385
+ }
1386
+ @media (max-width: 480px) {
1387
+ .tabs-header {
1388
+ flex-direction: column;
1389
+ align-items: stretch;
1390
+ }
1391
+ .tabs-button {
1392
+ width: 100%;
1393
+ padding: 0.75rem;
1394
+ font-size: 0.95rem;
1395
+ }
1396
+ .tabs-content {
1397
+ padding: 1rem;
1398
+ }
1399
+ .tabs-closeButton {
1400
+ top: -10px;
1401
+ right: -10px;
1402
+ font-size: 1.2rem;
1403
+ }
1404
+ }
1405
+ .third-row-row {
1406
+ display: flex;
1407
+ align-items: center;
1408
+ gap: 12px;
1409
+ padding: 6px 12px;
1410
+ background: var(--background);
1411
+ }
1412
+ .third-row-dropdownWrapper {
1413
+ display: flex;
1414
+ align-items: center;
1415
+ height: 32px;
1416
+ gap: 10px;
1417
+ }
1418
+ .third-row-row select {
1419
+ padding: 6px 10px;
1420
+ font-size: 14px;
1421
+ border: 1px solid #ccc;
1422
+ background: #fafafa;
1423
+ border-radius: 4px;
1424
+ cursor: pointer;
1425
+ transition: background 0.15s ease, border-color 0.2s ease;
1426
+ }
1427
+ .third-row-row select:hover {
1428
+ background: #f0f0f0;
1429
+ }
1430
+ .third-row-row select:focus {
1431
+ outline: none;
1432
+ border-color: #4a90e2;
1433
+ }
1434
+ .third-row-row select:active {
1435
+ background: #e9e9e9;
1436
+ }
1437
+ @media (max-width: 768px) {
1438
+ .third-row-row {
1439
+ flex-wrap: wrap;
1440
+ gap: 10px;
1441
+ padding: 8px 10px;
1442
+ }
1443
+ .third-row-dropdownWrapper {
1444
+ height: auto;
1445
+ }
1446
+ .third-row-row select {
1447
+ font-size: 13px;
1448
+ padding: 5px 8px;
1449
+ }
1450
+ }
1451
+ @media (max-width: 480px) {
1452
+ .third-row-row {
1453
+ flex-direction: column;
1454
+ align-items: stretch;
1455
+ gap: 8px;
1456
+ padding: 10px;
1457
+ }
1458
+ .third-row-row select {
1459
+ width: 100%;
1460
+ padding: 6px 10px;
1461
+ font-size: 14px;
1462
+ }
1463
+ .third-row-dropdownWrapper {
1464
+ width: 100%;
1465
+ justify-content: flex-start;
1466
+ }
1467
+ }
1468
+ .top-menu-root {
1469
+ position: sticky;
1470
+ top: 0;
1471
+ z-index: 400000000 !important;
1472
+ }
1473
+ .tetrons-toolbar__wrapper,
1474
+ .tetrons-toolbar__basic {
1475
+ position: relative;
1476
+ z-index: 50;
1477
+ background: var(--background, #fff);
1478
+ -webkit-user-select: none;
1479
+ user-select: none;
1480
+ }
1481
+ .top-menu-dropdown-root,
1482
+ .top-menu-submenu,
1483
+ .dropdown-menu,
1484
+ .menu-popup {
1485
+ position: absolute;
1486
+ z-index: 1000 !important;
1487
+ pointer-events: auto;
1488
+ }
1489
+ .top-menu-root {
1490
+ position: sticky;
1491
+ top: 0;
1492
+ z-index: 1000;
1493
+ background: #f7f7f7;
1494
+ border-bottom: 1px solid #ddd;
1495
+ padding: 0;
1496
+ }
1497
+ .top-menu-bar {
1498
+ display: flex;
1499
+ gap: 24px;
1500
+ padding: 8px 16px;
1501
+ align-items: center;
1502
+ font-size: 14px;
1503
+ font-weight: 500;
1504
+ -webkit-user-select: none;
1505
+ user-select: none;
1506
+ }
1507
+ .top-menu-barItem {
1508
+ position: relative;
1509
+ padding: 6px 10px;
1510
+ cursor: pointer;
1511
+ -webkit-user-select: none;
1512
+ user-select: none;
1513
+ }
1514
+ .top-menu-barLabel {
1515
+ font-size: 14px;
1516
+ font-weight: 500;
1517
+ }
1518
+ .top-menu-dropdown-root {
1519
+ position: absolute;
1520
+ top: 100%;
1521
+ left: 0;
1522
+ margin-top: 6px;
1523
+ background: #ffffff;
1524
+ border: 1px solid #ddd;
1525
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
1526
+ min-width: 220px;
1527
+ }
1528
+ .top-menu-list {
1529
+ list-style: none;
1530
+ margin: 0;
1531
+ padding: 6px 0;
1532
+ }
1533
+ .top-menu-li {
1534
+ position: relative;
1535
+ }
1536
+ .top-menu-item {
1537
+ padding: 8px 14px;
1538
+ display: flex;
1539
+ justify-content: space-between;
1540
+ align-items: center;
1541
+ cursor: pointer;
1542
+ white-space: nowrap;
1543
+ transition: background 0.15s ease;
1544
+ }
1545
+ .top-menu-item:hover {
1546
+ background: rgba(0, 0, 0, 0.05);
1547
+ }
1548
+ .top-menu-submenu {
1549
+ position: absolute;
1550
+ top: 0;
1551
+ left: 100%;
1552
+ margin-left: 6px;
1553
+ background: #ffffff;
1554
+ border: 1px solid #ddd;
1555
+ min-width: 220px;
1556
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
1557
+ z-index: 10000;
1558
+ }
1559
+ .top-menu-li-separator,
1560
+ .top-menu-separator {
1561
+ height: 1px;
1562
+ background: #eee;
1563
+ margin: 6px 0;
1564
+ }
1565
+ @media (max-width: 768px) {
1566
+ .top-menu-bar {
1567
+ gap: 12px;
1568
+ padding: 8px 10px;
1569
+ font-size: 13px;
1570
+ }
1571
+ .top-menu-dropdown-root,
1572
+ .top-menu-submenu {
1573
+ min-width: 180px;
1574
+ }
1575
+ .top-menu-item {
1576
+ padding: 6px 12px;
1577
+ font-size: 13px;
1578
+ }
1579
+ }
1580
+ @media (max-width: 480px) {
1581
+ .top-menu-root {
1582
+ padding: 0;
1583
+ background: #f7f7f7;
1584
+ border-bottom: 1px solid #ddd;
1585
+ }
1586
+ .top-menu-bar {
1587
+ display: none;
1588
+ flex-direction: column;
1589
+ width: 100%;
1590
+ background: #fff;
1591
+ border-top: 1px solid #ddd;
1592
+ padding: 0;
1593
+ margin-top: 6px;
1594
+ }
1595
+ .top-menu-root.menu-open .top-menu-bar {
1596
+ display: flex;
1597
+ }
1598
+ .top-menu-mobile-toggle {
1599
+ display: flex;
1600
+ padding: 12px 16px;
1601
+ cursor: pointer;
1602
+ font-size: 16px;
1603
+ justify-content: space-between;
1604
+ align-items: center;
1605
+ background: #f7f7f7;
1606
+ border-bottom: 1px solid #ddd;
1607
+ }
1608
+ .top-menu-mobile-toggle span {
1609
+ font-weight: 600;
1610
+ }
1611
+ .top-menu-barItem {
1612
+ width: 100%;
1613
+ padding: 12px 16px;
1614
+ border-bottom: 1px solid #eee;
1615
+ }
1616
+ .top-menu-barItem:last-child {
1617
+ border-bottom: none;
1618
+ }
1619
+ .top-menu-dropdown-root {
1620
+ position: relative;
1621
+ top: 0;
1622
+ left: 0;
1623
+ margin: 0;
1624
+ box-shadow: none;
1625
+ border: none;
1626
+ background: #fafafa;
1627
+ padding-left: 12px;
1628
+ }
1629
+ .top-menu-submenu {
1630
+ position: relative;
1631
+ left: 0;
1632
+ top: 0;
1633
+ margin-left: 0;
1634
+ border: none;
1635
+ box-shadow: none;
1636
+ background: #f5f5f5;
1637
+ padding-left: 16px;
1638
+ }
1639
+ .top-menu-item {
1640
+ padding: 10px 14px;
1641
+ font-size: 14px;
1642
+ }
1643
+ .submenu-arrow {
1644
+ display: none;
1645
+ }
1646
+ }
1647
+ .virtual-keyboard-keyboardContainer {
1648
+ position: absolute;
1649
+ bottom: 60px;
1650
+ left: 20px;
1651
+ width: 100%;
1652
+ max-width: 600px;
1653
+ background: #fff;
1654
+ border: 1px solid #ccc;
1655
+ border-radius: 8px;
1656
+ padding: 8px;
1657
+ z-index: 9999;
1658
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
1659
+ }
1660
+ .virtual-keyboard-keyboardHeader {
1661
+ display: flex;
1662
+ justify-content: space-between;
1663
+ align-items: center;
1664
+ margin-bottom: 8px;
1665
+ }
1666
+ .virtual-keyboard-closeBtn {
1667
+ background: transparent;
1668
+ border: none;
1669
+ font-size: 1.2rem;
1670
+ cursor: pointer;
1671
+ transition: opacity 0.15s ease;
1672
+ }
1673
+ .virtual-keyboard-closeBtn:hover {
1674
+ opacity: 0.7;
1675
+ }
1676
+ .virtual-keyboard-keysGrid {
1677
+ display: grid;
1678
+ grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
1679
+ gap: 4px;
1680
+ }
1681
+ .virtual-keyboard-keyButton {
1682
+ background: #f3f3f3;
1683
+ border: 1px solid #ddd;
1684
+ border-radius: 4px;
1685
+ padding: 6px 0;
1686
+ cursor: pointer;
1687
+ font-size: 1rem;
1688
+ transition: background 0.1s ease, transform 0.1s ease;
1689
+ }
1690
+ .virtual-keyboard-keyButton:hover {
1691
+ background: #e2e2e2;
1692
+ }
1693
+ .virtual-keyboard-keyButton:active {
1694
+ background: #d1d1d1;
1695
+ transform: scale(0.96);
1696
+ }
1697
+ @media (max-width: 768px) {
1698
+ .virtual-keyboard-keyboardContainer {
1699
+ left: 10px;
1700
+ right: 10px;
1701
+ width: calc(100% - 20px);
1702
+ max-width: none;
1703
+ padding: 10px;
1704
+ bottom: 50px;
1705
+ }
1706
+ .virtual-keyboard-keysGrid {
1707
+ grid-template-columns: repeat(auto-fill, minmax(36px, 1fr));
1708
+ gap: 5px;
1709
+ }
1710
+ .virtual-keyboard-keyButton {
1711
+ padding: 6px 0;
1712
+ font-size: 0.95rem;
1713
+ }
1714
+ }
1715
+ @media (max-width: 480px) {
1716
+ .virtual-keyboard-keyboardContainer {
1717
+ left: 0;
1718
+ right: 0;
1719
+ width: 100%;
1720
+ border-radius: 6px;
1721
+ bottom: 45px;
1722
+ padding: 12px;
1723
+ border-width: 1px;
1724
+ }
1725
+ .virtual-keyboard-keyboardHeader {
1726
+ margin-bottom: 10px;
1727
+ }
1728
+ .virtual-keyboard-closeBtn {
1729
+ font-size: 1.4rem;
1730
+ }
1731
+ .virtual-keyboard-keysGrid {
1732
+ grid-template-columns: repeat(auto-fill, minmax(32px, 1fr));
1733
+ gap: 4px;
1734
+ }
1735
+ .virtual-keyboard-keyButton {
1736
+ padding: 8px 0;
1737
+ font-size: 0.9rem;
1738
+ }
1739
+ }
1740
+ .voice-modal-modalOverlay {
1741
+ position: fixed;
1742
+ inset: 0;
1743
+ background: rgba(0, 0, 0, 0.55);
1744
+ display: flex;
1745
+ align-items: center;
1746
+ justify-content: center;
1747
+ z-index: 2000;
1748
+ animation: voice-modal-fadeIn 0.25s ease;
1749
+ }
1750
+ .voice-modal-modalContent {
1751
+ background: #ffffff;
1752
+ width: 450px;
1753
+ max-width: 90%;
1754
+ padding: 24px;
1755
+ border-radius: 10px;
1756
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
1757
+ animation: voice-modal-fadeIn 0.25s ease;
1758
+ }
1759
+ .voice-modal-title {
1760
+ margin: 0 0 16px 0;
1761
+ font-size: 21px;
1762
+ font-weight: 600;
1763
+ text-align: center;
1764
+ }
1765
+ .voice-modal-label {
1766
+ display: block;
1767
+ font-size: 14px;
1768
+ font-weight: 500;
1769
+ margin-bottom: 6px;
1770
+ }
1771
+ .voice-modal-field {
1772
+ margin-bottom: 16px;
1773
+ }
1774
+ .voice-modal-select {
1775
+ width: 100%;
1776
+ padding: 10px 12px;
1777
+ border: 1px solid #c8c8c8;
1778
+ border-radius: 6px;
1779
+ font-size: 15px;
1780
+ background: #fff;
1781
+ transition: border-color 0.15s ease;
1782
+ }
1783
+ .voice-modal-select:focus {
1784
+ outline: none;
1785
+ border-color: #1976d2;
1786
+ }
1787
+ .voice-modal-statusText {
1788
+ text-align: center;
1789
+ font-size: 16px;
1790
+ margin: 18px 0;
1791
+ color: #555;
1792
+ }
1793
+ .voice-modal-errorBox {
1794
+ background: #ffe4e4;
1795
+ border: 1px solid #d32f2f;
1796
+ color: #b71c1c;
1797
+ padding: 12px;
1798
+ border-radius: 6px;
1799
+ text-align: center;
1800
+ font-size: 15px;
1801
+ margin: 12px 0;
1802
+ }
1803
+ .voice-modal-transcriptBox,
1804
+ .voice-modal-translationBox {
1805
+ background: #f7f7f7;
1806
+ padding: 14px;
1807
+ border-radius: 6px;
1808
+ margin: 16px 0;
1809
+ font-size: 15px;
1810
+ color: #222;
1811
+ white-space: pre-wrap;
1812
+ border: 1px solid #ddd;
1813
+ }
1814
+ .voice-modal-translationSection {
1815
+ margin-top: 18px;
1816
+ }
1817
+ .voice-modal-row {
1818
+ display: flex;
1819
+ gap: 10px;
1820
+ flex-wrap: wrap;
1821
+ }
1822
+ .voice-modal-actions {
1823
+ display: flex;
1824
+ justify-content: center;
1825
+ gap: 12px;
1826
+ margin-top: 22px;
1827
+ }
1828
+ .voice-modal-actions button {
1829
+ cursor: pointer;
1830
+ border: none;
1831
+ font-size: 15px;
1832
+ border-radius: 6px;
1833
+ padding: 12px 18px;
1834
+ transition: background 0.15s ease, opacity 0.15s ease;
1835
+ }
1836
+ .voice-modal-translateBtn {
1837
+ cursor: pointer;
1838
+ border: none;
1839
+ font-size: 15px;
1840
+ border-radius: 6px;
1841
+ padding: 12px 18px;
1842
+ transition: background 0.15s ease, opacity 0.15s ease;
1843
+ background: #6a1b9a;
1844
+ color: #fff;
1845
+ }
1846
+ .voice-modal-translateBtn:hover {
1847
+ background: #5a1685;
1848
+ }
1849
+ .voice-modal-primaryBtn {
1850
+ background: #1976d2;
1851
+ color: #fff;
1852
+ }
1853
+ .voice-modal-primaryBtn:hover {
1854
+ background: #1565c0;
1855
+ }
1856
+ .voice-modal-stopBtn {
1857
+ background: #d32f2f;
1858
+ color: #fff;
1859
+ }
1860
+ .voice-modal-stopBtn:hover {
1861
+ background: #b71c1c;
1862
+ }
1863
+ .voice-modal-cancelBtn {
1864
+ background: #e0e0e0;
1865
+ color: #000;
1866
+ }
1867
+ .voice-modal-cancelBtn:hover {
1868
+ background: #cfcfcf;
1869
+ }
1870
+ @keyframes voice-modal-fadeIn {
1871
+ from {
1872
+ opacity: 0;
1873
+ transform: scale(0.92);
1874
+ }
1875
+ to {
1876
+ opacity: 1;
1877
+ transform: scale(1);
1878
+ }
1879
+ }
1880
+ @media (max-width: 768px) {
1881
+ .voice-modal-modalContent {
1882
+ width: 90%;
1883
+ padding: 20px;
1884
+ }
1885
+ .voice-modal-title {
1886
+ font-size: 19px;
1887
+ }
1888
+ .voice-modal-actions button {
1889
+ padding: 10px 16px;
1890
+ font-size: 14px;
1891
+ }
1892
+ }
1893
+ @media (max-width: 480px) {
1894
+ .voice-modal-modalContent {
1895
+ padding: 16px;
1896
+ width: 95%;
1897
+ }
1898
+ .voice-modal-title {
1899
+ font-size: 18px;
1900
+ }
1901
+ .voice-modal-row {
1902
+ flex-direction: column;
1903
+ gap: 8px;
1904
+ }
1905
+ .voice-modal-actions {
1906
+ flex-direction: column;
1907
+ gap: 10px;
1908
+ }
1909
+ .voice-modal-actions button {
1910
+ width: 100%;
1911
+ font-size: 14px;
1912
+ padding: 10px;
1913
+ }
1914
+ .voice-modal-transcriptBox,
1915
+ .voice-modal-translationBox {
1916
+ font-size: 14px;
1917
+ }
1918
+ }
1919
+ .ai-modal-overlay {
1920
+ position: fixed;
1921
+ top: 0;
1922
+ left: 0;
1923
+ right: 0;
1924
+ bottom: 0;
1925
+ background: rgba(0, 0, 0, 0.45);
1926
+ display: flex;
1927
+ align-items: center;
1928
+ justify-content: center;
1929
+ z-index: 999999;
1930
+ }
1931
+ .ai-modal-modal {
1932
+ background: #fff;
1933
+ padding: 32px;
1934
+ border-radius: 10px;
1935
+ width: 600px;
1936
+ max-width: 90%;
1937
+ box-shadow: 0 8px 26px rgba(0, 0, 0, 0.18);
1938
+ animation: ai-modal-fadeIn 0.25s ease-out;
1939
+ }
1940
+ .ai-modal-textarea {
1941
+ width: 100%;
1942
+ min-height: 160px;
1943
+ margin-top: 16px;
1944
+ padding: 12px;
1945
+ border-radius: 6px;
1946
+ border: 1px solid #ccc;
1947
+ font-size: 15px;
1948
+ resize: vertical;
1949
+ }
1950
+ .ai-modal-buttonRow {
1951
+ display: flex;
1952
+ justify-content: flex-end;
1953
+ gap: 14px;
1954
+ margin-top: 24px;
1955
+ }
1956
+ .ai-modal-submitBtn {
1957
+ background: #111;
1958
+ color: white;
1959
+ padding: 10px 18px;
1960
+ border-radius: 6px;
1961
+ cursor: pointer;
1962
+ border: none;
1963
+ transition: background 0.15s ease;
1964
+ }
1965
+ .ai-modal-submitBtn:hover {
1966
+ background: #000;
1967
+ }
1968
+ .ai-modal-cancelBtn {
1969
+ padding: 10px 18px;
1970
+ border-radius: 6px;
1971
+ cursor: pointer;
1972
+ border: 1px solid #ccc;
1973
+ background: #f3f3f3;
1974
+ transition: background 0.15s ease;
1975
+ }
1976
+ .ai-modal-cancelBtn:hover {
1977
+ background: #e5e5e5;
1978
+ }
1979
+ @keyframes ai-modal-fadeIn {
1980
+ from {
1981
+ opacity: 0;
1982
+ transform: scale(0.92);
1983
+ }
1984
+ to {
1985
+ opacity: 1;
1986
+ transform: scale(1);
1987
+ }
1988
+ }
1989
+ @media (max-width: 768px) {
1990
+ .ai-modal-modal {
1991
+ width: 90%;
1992
+ padding: 26px;
1993
+ }
1994
+ .ai-modal-textarea {
1995
+ min-height: 140px;
1996
+ font-size: 14px;
1997
+ }
1998
+ .ai-modal-buttonRow {
1999
+ gap: 10px;
2000
+ }
2001
+ .ai-modal-submitBtn,
2002
+ .ai-modal-cancelBtn {
2003
+ padding: 9px 16px;
2004
+ font-size: 14px;
2005
+ }
2006
+ }
2007
+ @media (max-width: 480px) {
2008
+ .ai-modal-modal {
2009
+ width: 94%;
2010
+ padding: 20px;
2011
+ border-radius: 8px;
2012
+ }
2013
+ .ai-modal-textarea {
2014
+ min-height: 120px;
2015
+ padding: 10px;
2016
+ font-size: 14px;
2017
+ }
2018
+ .ai-modal-buttonRow {
2019
+ flex-direction: column;
2020
+ align-items: stretch;
2021
+ gap: 12px;
2022
+ }
2023
+ .ai-modal-submitBtn,
2024
+ .ai-modal-cancelBtn {
2025
+ width: 100%;
2026
+ padding: 10px;
2027
+ text-align: center;
2028
+ font-size: 15px;
2029
+ }
2030
+ }
2031
+ .error-message {
2032
+ color: #ff0000;
2033
+ }
2034
+ .platinum-group-platinumGroupContainer {
2035
+ display: flex;
2036
+ align-items: center;
2037
+ gap: 0.5rem;
2038
+ padding: 0.25rem 0;
2039
+ }
2040
+ .platinum-group-groupSeparator {
2041
+ width: 1px;
2042
+ height: 24px;
2043
+ background-color: rgba(0, 0, 0, 0.15);
2044
+ margin: 0 8px;
2045
+ }
2046
+ .platinum-group-button {
2047
+ display: flex;
2048
+ justify-content: center;
2049
+ align-items: center;
2050
+ height: 40px;
2051
+ min-width: 44px;
2052
+ padding: 0 12px;
2053
+ border-radius: 6px;
2054
+ border: 1px solid transparent;
2055
+ cursor: pointer;
2056
+ font-size: 0.875rem;
2057
+ background: none;
2058
+ color: inherit;
2059
+ }
2060
+ .platinum-group-button.platinum-group-aiButton {
2061
+ background:
2062
+ linear-gradient(
2063
+ to right,
2064
+ #7f00ff,
2065
+ #4f46e5) !important;
2066
+ color: white !important;
2067
+ }
2068
+ .platinum-group-aiButton:hover {
2069
+ background:
2070
+ linear-gradient(
2071
+ to right,
2072
+ #6b00d6,
2073
+ #4338ca);
2074
+ transform: translateY(-1px);
2075
+ }
2076
+ .platinum-group-aiButton:active {
2077
+ transform: scale(0.97);
2078
+ }
2079
+ .platinum-group-langButton {
2080
+ background:
2081
+ linear-gradient(
2082
+ to right,
2083
+ #10b981,
2084
+ #059669);
2085
+ color: white !important;
2086
+ font-weight: bold;
2087
+ }
2088
+ .platinum-group-langButton:hover {
2089
+ background:
2090
+ linear-gradient(
2091
+ to right,
2092
+ #059669,
2093
+ #047857);
2094
+ transform: translateY(-1px);
2095
+ }
2096
+ .platinum-group-langButton:active {
2097
+ transform: scale(0.97);
2098
+ }
2099
+ .platinum-group-addonBtn {
2100
+ background:
2101
+ linear-gradient(
2102
+ to right,
2103
+ #7f00ff,
2104
+ #4f46e5);
2105
+ color: white !important;
2106
+ font-weight: bold;
2107
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
2108
+ }
2109
+ .platinum-group-addonBtn:hover {
2110
+ background:
2111
+ linear-gradient(
2112
+ to right,
2113
+ #6b00d6,
2114
+ #4338ca);
2115
+ transform: translateY(-1px);
2116
+ }
2117
+ .platinum-group-addonBtn:active {
2118
+ transform: scale(0.97);
2119
+ }
2120
+ .platinum-group-virtualKeyboardBtn {
2121
+ background:
2122
+ linear-gradient(
2123
+ to right,
2124
+ #f59e0b,
2125
+ #d97706);
2126
+ color: white !important;
2127
+ font-weight: bold;
2128
+ border-radius: 6px;
2129
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
2130
+ transition: transform 0.1s ease, background 0.2s ease;
2131
+ }
2132
+ .platinum-group-virtualKeyboardBtn:hover {
2133
+ background:
2134
+ linear-gradient(
2135
+ to right,
2136
+ #d97706,
2137
+ #b45309);
2138
+ transform: translateY(-1px);
2139
+ }
2140
+ .platinum-group-virtualKeyboardBtn:active {
2141
+ transform: scale(0.97);
2142
+ }
2143
+ .platinum-group-buttonActive {
2144
+ background: #e2f0ff !important;
2145
+ border-color: #4a90e2 !important;
2146
+ color: #004a8d !important;
2147
+ }
2148
+ .platinum-group-buttonInactive {
2149
+ opacity: 0.5;
2150
+ background: #f5f5f5;
2151
+ border-color: #ccc;
2152
+ }
2153
+ .platinum-group-buttonActive:hover {
2154
+ background: #d5e9ff !important;
2155
+ }
2156
+ @media (max-width: 992px) {
2157
+ .platinum-group-platinumGroupContainer {
2158
+ gap: 0.4rem;
2159
+ }
2160
+ .platinum-group-button {
2161
+ min-width: 40px;
2162
+ height: 38px;
2163
+ padding: 0 10px;
2164
+ font-size: 0.82rem;
2165
+ }
2166
+ .platinum-group-groupSeparator {
2167
+ height: 20px;
2168
+ }
2169
+ }
2170
+ @media (max-width: 768px) {
2171
+ .platinum-group-platinumGroupContainer {
2172
+ gap: 0.35rem;
2173
+ }
2174
+ .platinum-group-button {
2175
+ min-width: 36px;
2176
+ height: 36px;
2177
+ padding: 0 8px;
2178
+ font-size: 0.78rem;
2179
+ }
2180
+ .platinum-group-groupSeparator {
2181
+ margin: 0 6px;
2182
+ }
2183
+ }
2184
+ @media (max-width: 576px) {
2185
+ .platinum-group-platinumGroupContainer {
2186
+ display: flex;
2187
+ flex-wrap: nowrap;
2188
+ overflow-x: auto;
2189
+ overflow-y: hidden;
2190
+ white-space: nowrap;
2191
+ gap: 0.35rem;
2192
+ padding-bottom: 4px;
2193
+ }
2194
+ .platinum-group-platinumGroupContainer::-webkit-scrollbar {
2195
+ height: 6px;
2196
+ }
2197
+ .platinum-group-platinumGroupContainer::-webkit-scrollbar-thumb {
2198
+ background: rgba(0, 0, 0, 0.25);
2199
+ border-radius: 3px;
2200
+ }
2201
+ .platinum-group-button {
2202
+ flex: 0 0 auto;
2203
+ width: auto;
2204
+ min-width: 36px;
2205
+ height: 36px;
2206
+ padding: 0 10px;
2207
+ font-size: 0.78rem;
2208
+ }
2209
+ .platinum-group-groupSeparator {
2210
+ display: inline-block;
2211
+ height: 18px;
2212
+ }
2213
+ }
2214
+ .align-group-group {
2215
+ display: flex;
2216
+ gap: 6px;
2217
+ padding: 0 6px;
2218
+ align-items: center;
2219
+ position: relative;
2220
+ }
2221
+ .align-group-active {
2222
+ background-color: rgba(0, 0, 0, 0.12);
2223
+ border-radius: 4px;
2224
+ }
2225
+ .align-group-group::after {
2226
+ content: "";
2227
+ display: block;
2228
+ width: 1px;
2229
+ height: 60%;
2230
+ background-color: rgba(0, 0, 0, 0.2);
2231
+ position: absolute;
2232
+ top: 20%;
2233
+ right: 0;
2234
+ }
2235
+ @media (max-width: 992px) {
2236
+ .align-group-group {
2237
+ gap: 8px;
2238
+ padding: 0 8px;
2239
+ }
2240
+ .align-group-group::after {
2241
+ height: 50%;
2242
+ top: 25%;
2243
+ }
2244
+ }
2245
+ @media (max-width: 768px) {
2246
+ .align-group-group {
2247
+ gap: 10px;
2248
+ padding: 0 10px;
2249
+ }
2250
+ .align-group-group::after {
2251
+ height: 45%;
2252
+ top: 27%;
2253
+ }
2254
+ }
2255
+ @media (max-width: 576px) {
2256
+ .align-group-group {
2257
+ gap: 12px;
2258
+ padding: 0 12px;
2259
+ }
2260
+ .align-group-group::after {
2261
+ display: none;
2262
+ }
2263
+ }
2264
+ .clipboard-group-group {
2265
+ display: flex;
2266
+ gap: 6px;
2267
+ padding: 0 6px;
2268
+ align-items: center;
2269
+ position: relative;
2270
+ }
2271
+ .clipboard-group-group::after {
2272
+ content: "";
2273
+ display: block;
2274
+ width: 1px;
2275
+ height: 60%;
2276
+ background-color: rgba(0, 0, 0, 0.2);
2277
+ position: absolute;
2278
+ top: 20%;
2279
+ right: 0;
2280
+ }
2281
+ @media (max-width: 992px) {
2282
+ .clipboard-group-group {
2283
+ gap: 8px;
2284
+ padding: 0 8px;
2285
+ }
2286
+ .clipboard-group-group::after {
2287
+ height: 50%;
2288
+ top: 25%;
2289
+ }
2290
+ }
2291
+ @media (max-width: 768px) {
2292
+ .clipboard-group-group {
2293
+ gap: 10px;
2294
+ padding: 0 10px;
2295
+ }
2296
+ .clipboard-group-group::after {
2297
+ height: 45%;
2298
+ top: 27%;
2299
+ }
2300
+ }
2301
+ @media (max-width: 576px) {
2302
+ .clipboard-group-group {
2303
+ gap: 12px;
2304
+ padding: 0 12px;
2305
+ }
2306
+ .clipboard-group-group::after {
2307
+ display: none;
2308
+ }
2309
+ }
2310
+ .color-group-group {
2311
+ display: flex;
2312
+ gap: 6px;
2313
+ padding: 0 6px;
2314
+ align-items: center;
2315
+ position: relative;
2316
+ }
2317
+ .color-group-group::after {
2318
+ content: "";
2319
+ display: block;
2320
+ width: 1px;
2321
+ height: 60%;
2322
+ background-color: rgba(0, 0, 0, 0.2);
2323
+ position: absolute;
2324
+ top: 20%;
2325
+ right: 0;
2326
+ }
2327
+ .color-group-colorIndicatorSmall {
2328
+ width: 16px;
2329
+ height: 4px;
2330
+ border-radius: 2px;
2331
+ margin-top: 2px;
2332
+ border: 1px solid #ccc;
2333
+ }
2334
+ .color-group-colorPicker {
2335
+ display: flex;
2336
+ flex-direction: column;
2337
+ align-items: center;
2338
+ cursor: pointer;
2339
+ position: relative;
2340
+ }
2341
+ .color-group-colorPicker input[type=color] {
2342
+ width: 0;
2343
+ height: 0;
2344
+ opacity: 0;
2345
+ position: absolute;
2346
+ left: 0;
2347
+ top: 0;
2348
+ }
2349
+ @media (max-width: 992px) {
2350
+ .color-group-group {
2351
+ gap: 8px;
2352
+ padding: 0 8px;
2353
+ }
2354
+ .color-group-group::after {
2355
+ height: 50%;
2356
+ top: 25%;
2357
+ }
2358
+ .color-group-colorIndicatorSmall {
2359
+ width: 18px;
2360
+ }
2361
+ }
2362
+ @media (max-width: 768px) {
2363
+ .color-group-group {
2364
+ gap: 10px;
2365
+ padding: 0 10px;
2366
+ }
2367
+ .color-group-group::after {
2368
+ height: 45%;
2369
+ top: 27%;
2370
+ }
2371
+ .color-group-colorIndicatorSmall {
2372
+ width: 20px;
2373
+ }
2374
+ }
2375
+ @media (max-width: 576px) {
2376
+ .color-group-group {
2377
+ gap: 12px;
2378
+ padding: 0 12px;
2379
+ }
2380
+ .color-group-group::after {
2381
+ display: none;
2382
+ }
2383
+ .color-group-colorIndicatorSmall {
2384
+ width: 22px;
2385
+ }
2386
+ }
2387
+ .file-group-group {
2388
+ display: flex;
2389
+ gap: 6px;
2390
+ padding: 0 6px;
2391
+ align-items: center;
2392
+ position: relative;
2393
+ }
2394
+ .file-group-group::after {
2395
+ content: "";
2396
+ display: block;
2397
+ width: 1px;
2398
+ height: 60%;
2399
+ background-color: rgba(0, 0, 0, 0.2);
2400
+ position: absolute;
2401
+ top: 20%;
2402
+ right: 0;
2403
+ }
2404
+ @media (max-width: 992px) {
2405
+ .file-group-group {
2406
+ gap: 8px;
2407
+ padding: 0 8px;
2408
+ }
2409
+ .file-group-group::after {
2410
+ height: 50%;
2411
+ top: 25%;
2412
+ }
2413
+ }
2414
+ @media (max-width: 768px) {
2415
+ .file-group-group {
2416
+ gap: 10px;
2417
+ padding: 0 10px;
2418
+ }
2419
+ .file-group-group::after {
2420
+ height: 45%;
2421
+ top: 27%;
2422
+ }
2423
+ }
2424
+ @media (max-width: 576px) {
2425
+ .file-group-group {
2426
+ gap: 12px;
2427
+ padding: 0 12px;
2428
+ }
2429
+ .file-group-group::after {
2430
+ display: none;
2431
+ }
2432
+ }
2433
+ .insert-group-group {
2434
+ display: flex;
2435
+ align-items: center;
2436
+ flex-wrap: wrap;
2437
+ gap: 6px;
2438
+ padding: 4px 6px;
2439
+ }
2440
+ .insert-group-hidden-input,
2441
+ .insert-group-hiddenInput {
2442
+ display: none;
2443
+ }
2444
+ .insert-group-table-grid-popup {
2445
+ position: absolute;
2446
+ background: #ffffff;
2447
+ border: 1px solid #ddd;
2448
+ padding: 8px;
2449
+ border-radius: 6px;
2450
+ z-index: 9999;
2451
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
2452
+ }
2453
+ .insert-group-table-grid {
2454
+ display: grid;
2455
+ grid-template-columns: repeat(10, 16px);
2456
+ gap: 2px;
2457
+ }
2458
+ .insert-group-tableButtonWrapper {
2459
+ position: relative;
2460
+ display: inline-block;
2461
+ }
2462
+ .insert-group-tableGridPopup {
2463
+ position: absolute;
2464
+ top: 100%;
2465
+ left: 0;
2466
+ margin-top: 4px;
2467
+ background: #fff;
2468
+ border: 1px solid #ddd;
2469
+ padding: 8px;
2470
+ border-radius: 6px;
2471
+ z-index: 9999;
2472
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
2473
+ }
2474
+ .insert-group-tableGrid {
2475
+ display: grid;
2476
+ grid-template-columns: repeat(10, 24px);
2477
+ gap: 2px;
2478
+ }
2479
+ .insert-group-tableCell {
2480
+ width: 24px;
2481
+ height: 24px;
2482
+ background-color: #f0f0f0;
2483
+ border: 1px solid #ccc;
2484
+ cursor: pointer;
2485
+ transition: all 0.1s ease;
2486
+ }
2487
+ .insert-group-tableCell:hover {
2488
+ background-color: #3b82f6;
2489
+ }
2490
+ .insert-group-selectedCell {
2491
+ background-color: #3b82f6;
2492
+ }
2493
+ .insert-group-tableSizeLabel {
2494
+ text-align: center;
2495
+ margin-top: 6px;
2496
+ font-size: 12px;
2497
+ color: #555;
2498
+ }
2499
+ .insert-group-resizable-table {
2500
+ position: relative;
2501
+ display: table;
2502
+ border-collapse: collapse;
2503
+ }
2504
+ .insert-group-resizable-handle {
2505
+ position: absolute;
2506
+ right: 0;
2507
+ top: 0;
2508
+ width: 6px;
2509
+ height: 100%;
2510
+ cursor: ew-resize;
2511
+ background: transparent;
2512
+ }
2513
+ .insert-group-resizable-table-wrapper {
2514
+ position: absolute;
2515
+ border: 1px dashed #999;
2516
+ display: inline-block;
2517
+ margin: 8px 0;
2518
+ }
2519
+ .insert-group-resize-handle {
2520
+ width: 12px;
2521
+ height: 12px;
2522
+ background-color: transparent;
2523
+ position: absolute;
2524
+ right: 0;
2525
+ bottom: 0;
2526
+ cursor: se-resize;
2527
+ border-radius: 2px;
2528
+ z-index: 10;
2529
+ }
2530
+ .insert-group-drag-handle {
2531
+ width: 16px;
2532
+ height: 16px;
2533
+ background-color: transparent;
2534
+ position: absolute;
2535
+ left: 0;
2536
+ top: 0;
2537
+ cursor: move;
2538
+ border-radius: 2px;
2539
+ z-index: 10;
2540
+ display: flex;
2541
+ justify-content: center;
2542
+ align-items: center;
2543
+ color: #fff;
2544
+ font-size: 12px;
2545
+ }
2546
+ .insert-group-emoji-picker,
2547
+ .insert-group-emojiPicker {
2548
+ position: absolute;
2549
+ top: 40px;
2550
+ left: 0;
2551
+ z-index: 9999;
2552
+ background: white;
2553
+ padding: 6px;
2554
+ border: 1px solid #ddd;
2555
+ border-radius: 6px;
2556
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
2557
+ }
2558
+ .insert-group-emojiWrapper {
2559
+ position: relative;
2560
+ }
2561
+ .insert-group-modalBackdrop {
2562
+ position: fixed;
2563
+ inset: 0;
2564
+ background: rgba(0, 0, 0, 0.45);
2565
+ display: flex;
2566
+ justify-content: center;
2567
+ align-items: center;
2568
+ z-index: 5000;
2569
+ }
2570
+ .insert-group-modal {
2571
+ background: #ffffff;
2572
+ border-radius: 10px;
2573
+ padding: 20px;
2574
+ width: 360px;
2575
+ max-width: 90vw;
2576
+ box-shadow: 0 6px 26px rgba(0, 0, 0, 0.2);
2577
+ animation: insert-group-modalFadeIn 0.18s ease-out;
2578
+ }
2579
+ @keyframes insert-group-modalFadeIn {
2580
+ from {
2581
+ opacity: 0;
2582
+ transform: translateY(10px) scale(0.98);
2583
+ }
2584
+ to {
2585
+ opacity: 1;
2586
+ transform: translateY(0) scale(1);
2587
+ }
2588
+ }
2589
+ .insert-group-modal h3 {
2590
+ margin: 0 0 12px 0;
2591
+ font-size: 18px;
2592
+ font-weight: 600;
2593
+ }
2594
+ .insert-group-modalInput {
2595
+ width: 100%;
2596
+ padding: 8px;
2597
+ border: 1px solid #cfcfcf;
2598
+ border-radius: 6px;
2599
+ margin-top: 10px;
2600
+ font-size: 14px;
2601
+ }
2602
+ .insert-group-modalActions {
2603
+ display: flex;
2604
+ justify-content: flex-end;
2605
+ margin-top: 16px;
2606
+ gap: 8px;
2607
+ }
2608
+ .insert-group-ml8 {
2609
+ margin-left: 8px;
2610
+ }
2611
+ .insert-group-emojiGrid {
2612
+ display: grid;
2613
+ grid-template-columns: repeat(5, 1fr);
2614
+ gap: 10px;
2615
+ padding-top: 10px;
2616
+ }
2617
+ .insert-group-emojiBtn {
2618
+ font-size: 22px;
2619
+ padding: 8px;
2620
+ cursor: pointer;
2621
+ background: #fafafa;
2622
+ border: 1px solid #e1e1e1;
2623
+ border-radius: 6px;
2624
+ transition: background 0.15s ease, border-color 0.15s ease;
2625
+ }
2626
+ .insert-group-emojiBtn:hover {
2627
+ background: #f0f0f0;
2628
+ border-color: #cfcfcf;
2629
+ }
2630
+ .insert-group-commentsSidebar {
2631
+ position: fixed;
2632
+ top: 0;
2633
+ right: 0;
2634
+ width: 320px;
2635
+ height: 100%;
2636
+ background: #ffffff;
2637
+ box-shadow: -3px 0 12px rgba(0, 0, 0, 0.15);
2638
+ z-index: 5001;
2639
+ display: flex;
2640
+ flex-direction: column;
2641
+ animation: insert-group-slideInRight 0.22s ease-out;
2642
+ }
2643
+ @keyframes insert-group-slideInRight {
2644
+ from {
2645
+ transform: translateX(20px);
2646
+ opacity: 0.6;
2647
+ }
2648
+ to {
2649
+ transform: translateX(0);
2650
+ opacity: 1;
2651
+ }
2652
+ }
2653
+ .insert-group-commentsHeader {
2654
+ padding: 16px;
2655
+ border-bottom: 1px solid #eee;
2656
+ display: flex;
2657
+ justify-content: space-between;
2658
+ align-items: center;
2659
+ }
2660
+ .insert-group-commentsHeader h4 {
2661
+ margin: 0;
2662
+ font-size: 16px;
2663
+ font-weight: 600;
2664
+ }
2665
+ .insert-group-commentsHeader button {
2666
+ cursor: pointer;
2667
+ border: none;
2668
+ background: transparent;
2669
+ font-size: 14px;
2670
+ padding: 4px 6px;
2671
+ }
2672
+ .insert-group-commentsList {
2673
+ flex: 1;
2674
+ overflow-y: auto;
2675
+ padding: 12px;
2676
+ }
2677
+ .insert-group-commentItem {
2678
+ padding: 10px;
2679
+ background: #fafafa;
2680
+ border: 1px solid #ececec;
2681
+ border-radius: 6px;
2682
+ margin-bottom: 10px;
2683
+ }
2684
+ .insert-group-commentText {
2685
+ font-size: 14px;
2686
+ color: #333;
2687
+ white-space: pre-wrap;
2688
+ }
2689
+ .insert-group-commentsComposer {
2690
+ border-top: 1px solid #eee;
2691
+ padding: 12px;
2692
+ display: flex;
2693
+ flex-direction: column;
2694
+ gap: 8px;
2695
+ }
2696
+ .insert-group-commentsComposer textarea {
2697
+ width: 100%;
2698
+ min-height: 70px;
2699
+ padding: 8px;
2700
+ border-radius: 6px;
2701
+ border: 1px solid #dadada;
2702
+ resize: vertical;
2703
+ font-size: 14px;
2704
+ }
2705
+ @media (max-width: 992px) {
2706
+ .insert-group-group {
2707
+ gap: 8px;
2708
+ padding: 6px;
2709
+ }
2710
+ }
2711
+ @media (max-width: 768px) {
2712
+ .insert-group-group {
2713
+ flex-wrap: nowrap;
2714
+ overflow-x: auto;
2715
+ gap: 6px;
2716
+ padding: 8px;
2717
+ }
2718
+ .insert-group-group::-webkit-scrollbar {
2719
+ height: 6px;
2720
+ }
2721
+ .insert-group-group::-webkit-scrollbar-thumb {
2722
+ background: rgba(0, 0, 0, 0.2);
2723
+ border-radius: 3px;
2724
+ }
2725
+ }
2726
+ @media (max-width: 576px) {
2727
+ .insert-group-group {
2728
+ gap: 10px;
2729
+ padding: 10px;
2730
+ }
2731
+ }
2732
+ .list-group-group {
2733
+ position: static !important;
2734
+ overflow: visible !important;
2735
+ display: flex;
2736
+ align-items: center;
2737
+ gap: 12px;
2738
+ padding: 6px 8px;
2739
+ min-height: 40px;
2740
+ height: auto;
2741
+ background: transparent;
2742
+ z-index: 5000000 !important;
2743
+ -webkit-user-select: none;
2744
+ -moz-user-select: none;
2745
+ -ms-user-select: none;
2746
+ user-select: none;
2747
+ }
2748
+ .list-group-activeButton {
2749
+ color: #3b82f6;
2750
+ font-weight: 700;
2751
+ }
2752
+ .list-group-dropdown {
2753
+ position: relative !important;
2754
+ overflow: visible !important;
2755
+ z-index: 99999999 !important;
2756
+ }
2757
+ .list-group-dropdown > button {
2758
+ display: inline-flex;
2759
+ align-items: center;
2760
+ justify-content: center;
2761
+ min-width: 40px;
2762
+ height: 40px;
2763
+ padding: 6px;
2764
+ background: transparent;
2765
+ border: 1px solid transparent;
2766
+ border-radius: 6px;
2767
+ cursor: pointer;
2768
+ }
2769
+ .list-group-dropdown > button:focus,
2770
+ .list-group-dropdown > button:focus-visible {
2771
+ outline: 3px solid rgba(59, 130, 246, 0.35);
2772
+ outline-offset: 2px;
2773
+ }
2774
+ .list-group-menu {
2775
+ position: absolute;
2776
+ top: calc(100% + 8px);
2777
+ left: 0;
2778
+ min-width: 160px;
2779
+ max-width: 320px;
2780
+ background: #ffffff;
2781
+ border: 1px solid #e2e2e2;
2782
+ border-radius: 6px;
2783
+ padding: 6px 4px;
2784
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
2785
+ z-index: 2147483647 !important;
2786
+ max-height: 300px;
2787
+ overflow: auto;
2788
+ inset: auto !important;
2789
+ }
2790
+ .list-group-menu.align-right {
2791
+ left: auto;
2792
+ right: 0;
2793
+ }
2794
+ .list-group-menu-item {
2795
+ padding: 8px 12px;
2796
+ font-size: 14px;
2797
+ cursor: pointer;
2798
+ white-space: nowrap;
2799
+ border-radius: 6px;
2800
+ }
2801
+ .list-group-menu-item:hover,
2802
+ .list-group-menu-item:focus {
2803
+ background: rgba(59, 130, 246, 0.12);
2804
+ color: #3b82f6;
2805
+ outline: none;
2806
+ }
2807
+ .list-group-menu-item:focus-visible {
2808
+ outline: 3px solid rgba(59, 130, 246, 0.25);
2809
+ outline-offset: 2px;
2810
+ }
2811
+ .list-group-group.compact {
2812
+ gap: 8px;
2813
+ padding: 4px 6px;
2814
+ height: 36px;
2815
+ }
2816
+ @media (min-width: 1200px) {
2817
+ .list-group-menu {
2818
+ min-width: 200px;
2819
+ max-width: 360px;
2820
+ }
2821
+ }
2822
+ @media (max-width: 992px) {
2823
+ .list-group-group {
2824
+ gap: 10px;
2825
+ height: 38px;
2826
+ }
2827
+ .list-group-dropdown > button {
2828
+ min-width: 38px;
2829
+ height: 38px;
2830
+ }
2831
+ .list-group-menu {
2832
+ min-width: 160px;
2833
+ max-width: 280px;
2834
+ }
2835
+ }
2836
+ @media (max-width: 576px) {
2837
+ .list-group-group {
2838
+ gap: 8px;
2839
+ padding: 6px 6px;
2840
+ height: 38px;
2841
+ }
2842
+ .list-group-menu {
2843
+ position: fixed !important;
2844
+ left: 12px !important;
2845
+ right: 12px !important;
2846
+ bottom: 72px !important;
2847
+ top: auto !important;
2848
+ min-width: auto;
2849
+ width: auto;
2850
+ max-width: calc(100% - 24px);
2851
+ max-height: 45vh;
2852
+ border-radius: 10px;
2853
+ padding: 8px;
2854
+ z-index: 1200000;
2855
+ }
2856
+ .list-group-menu-item {
2857
+ padding: 10px 12px;
2858
+ font-size: 15px;
2859
+ }
2860
+ }
2861
+ @media (max-width: 360px) {
2862
+ .list-group-dropdown > button {
2863
+ min-width: 36px;
2864
+ height: 36px;
2865
+ }
2866
+ .list-group-menu-item {
2867
+ padding: 9px 10px;
2868
+ font-size: 14px;
2869
+ }
2870
+ .list-group-menu {
2871
+ bottom: 64px !important;
2872
+ padding: 6px;
2873
+ }
2874
+ }
2875
+ .list-group-menu::-webkit-scrollbar {
2876
+ width: 8px;
2877
+ }
2878
+ .list-group-menu::-webkit-scrollbar-thumb {
2879
+ background: rgba(0, 0, 0, 0.12);
2880
+ border-radius: 6px;
2881
+ }
2882
+ .tetrons-editor__third-row,
2883
+ .tetrons-editor__premium-groups,
2884
+ .tetrons-editor__toolbar,
2885
+ .list-group-group {
2886
+ overflow: visible !important;
2887
+ }
2888
+ .tetrons-editor__wrapper,
2889
+ .tetrons-editor__wrapper-page {
2890
+ overflow: visible !important;
2891
+ position: relative;
2892
+ z-index: 1;
2893
+ }
2894
+ .tetrons-editor__area,
2895
+ .tetrons-editor__area-page {
2896
+ z-index: 1 !important;
2897
+ }
2898
+ .modal-backdrop {
2899
+ position: fixed;
2900
+ inset: 0;
2901
+ background: rgba(0, 0, 0, 0.45);
2902
+ display: flex;
2903
+ justify-content: center;
2904
+ align-items: center;
2905
+ z-index: 5000;
2906
+ }
2907
+ .modal-modal {
2908
+ background: #ffffff;
2909
+ border-radius: 10px;
2910
+ padding: 20px;
2911
+ width: 360px;
2912
+ max-width: 90vw;
2913
+ box-shadow: 0 6px 26px rgba(0, 0, 0, 0.2);
2914
+ animation: modal-modalFadeIn 0.18s ease-out;
2915
+ }
2916
+ @keyframes modal-modalFadeIn {
2917
+ from {
2918
+ opacity: 0;
2919
+ transform: translateY(10px) scale(0.98);
2920
+ }
2921
+ to {
2922
+ opacity: 1;
2923
+ transform: translateY(0) scale(1);
2924
+ }
2925
+ }
2926
+ .modal-modalHeader {
2927
+ font-size: 18px;
2928
+ font-weight: 600;
2929
+ margin: 0 0 12px 0;
2930
+ }
2931
+ .modal-modalInputContainer {
2932
+ display: flex;
2933
+ flex-direction: column;
2934
+ margin-top: 8px;
2935
+ }
2936
+ .modal-modalInputLabel {
2937
+ font-size: 14px;
2938
+ margin-bottom: 4px;
2939
+ }
2940
+ .modal-modalInput {
2941
+ padding: 8px;
2942
+ border: 1px solid #cfcfcf;
2943
+ border-radius: 6px;
2944
+ font-size: 14px;
2945
+ }
2946
+ .modal-modalActions {
2947
+ display: flex;
2948
+ justify-content: flex-end;
2949
+ margin-top: 16px;
2950
+ gap: 8px;
2951
+ }
2952
+ @media (max-width: 992px) {
2953
+ .modal-modal {
2954
+ width: 340px;
2955
+ padding: 18px;
2956
+ }
2957
+ }
2958
+ @media (max-width: 768px) {
2959
+ .modal-modal {
2960
+ width: 320px;
2961
+ padding: 16px;
2962
+ }
2963
+ }
2964
+ @media (max-width: 576px) {
2965
+ .modal-modal {
2966
+ width: 90%;
2967
+ padding: 14px;
2968
+ }
2969
+ .modal-modalHeader {
2970
+ font-size: 16px;
2971
+ }
2972
+ .modal-modalInput {
2973
+ font-size: 13px;
2974
+ padding: 7px;
2975
+ }
2976
+ .modal-modalActions {
2977
+ gap: 6px;
2978
+ }
2979
+ }
2980
+ .preview-modal-overlay {
2981
+ position: fixed;
2982
+ inset: 0;
2983
+ background: rgba(0, 0, 0, 0.55);
2984
+ display: flex;
2985
+ align-items: center;
2986
+ justify-content: center;
2987
+ z-index: 99999;
2988
+ }
2989
+ .preview-modal-modal {
2990
+ background: white;
2991
+ width: 70%;
2992
+ max-height: 80%;
2993
+ overflow-y: auto;
2994
+ border-radius: 8px;
2995
+ padding: 16px;
2996
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
2997
+ }
2998
+ .preview-modal-header {
2999
+ display: flex;
3000
+ justify-content: space-between;
3001
+ align-items: center;
3002
+ border-bottom: 1px solid #eee;
3003
+ padding-bottom: 8px;
3004
+ margin-bottom: 12px;
3005
+ }
3006
+ .preview-modal-closeBtn {
3007
+ border: none;
3008
+ background: transparent;
3009
+ font-size: 20px;
3010
+ cursor: pointer;
3011
+ }
3012
+ .preview-modal-content {
3013
+ padding: 8px;
3014
+ font-size: 15px;
3015
+ line-height: 1.6;
3016
+ }
3017
+ @media (max-width: 992px) {
3018
+ .preview-modal-modal {
3019
+ width: 80%;
3020
+ padding: 14px;
3021
+ }
3022
+ }
3023
+ @media (max-width: 768px) {
3024
+ .preview-modal-modal {
3025
+ width: 90%;
3026
+ padding: 12px;
3027
+ max-height: 85%;
3028
+ }
3029
+ .preview-modal-content {
3030
+ font-size: 14px;
3031
+ }
3032
+ .preview-modal-closeBtn {
3033
+ font-size: 18px;
3034
+ }
3035
+ }
3036
+ @media (max-width: 576px) {
3037
+ .preview-modal-modal {
3038
+ width: 95%;
3039
+ padding: 10px;
3040
+ max-height: 88%;
3041
+ }
3042
+ .preview-modal-header {
3043
+ padding-bottom: 6px;
3044
+ margin-bottom: 10px;
3045
+ }
3046
+ .preview-modal-content {
3047
+ padding: 6px;
3048
+ font-size: 13.5px;
3049
+ }
3050
+ .preview-modal-closeBtn {
3051
+ font-size: 18px;
3052
+ }
3053
+ }
3054
+ .confirm-modal-overlay {
3055
+ position: fixed;
3056
+ top: 0;
3057
+ left: 0;
3058
+ width: 100%;
3059
+ height: 100%;
3060
+ background: rgba(0, 0, 0, 0.4);
3061
+ display: flex;
3062
+ justify-content: center;
3063
+ align-items: center;
3064
+ z-index: 999;
3065
+ }
3066
+ .confirm-modal-modal {
3067
+ background: white;
3068
+ padding: 24px;
3069
+ border-radius: 8px;
3070
+ max-width: 400px;
3071
+ width: 90%;
3072
+ text-align: center;
3073
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
3074
+ }
3075
+ .confirm-modal-title {
3076
+ margin-bottom: 8px;
3077
+ font-size: 1.2rem;
3078
+ font-weight: bold;
3079
+ }
3080
+ .confirm-modal-message {
3081
+ margin-bottom: 16px;
3082
+ font-size: 1rem;
3083
+ line-height: 1.4;
3084
+ }
3085
+ .confirm-modal-actions {
3086
+ display: flex;
3087
+ justify-content: flex-end;
3088
+ gap: 8px;
3089
+ }
3090
+ @media (max-width: 768px) {
3091
+ .confirm-modal-modal {
3092
+ padding: 20px;
3093
+ max-width: 90%;
3094
+ }
3095
+ .confirm-modal-title {
3096
+ font-size: 1.1rem;
3097
+ }
3098
+ .confirm-modal-message {
3099
+ font-size: 0.95rem;
3100
+ }
3101
+ }
3102
+ @media (max-width: 480px) {
3103
+ .confirm-modal-modal {
3104
+ padding: 16px;
3105
+ width: 92%;
3106
+ }
3107
+ .confirm-modal-actions {
3108
+ justify-content: center;
3109
+ flex-direction: column;
3110
+ gap: 12px;
3111
+ }
3112
+ .confirm-modal-title {
3113
+ font-size: 1.05rem;
3114
+ }
3115
+ }
3116
+ .button-buttonBase {
3117
+ padding: 8px;
3118
+ border-radius: 6px;
3119
+ font-size: 0.875rem;
3120
+ font-weight: 500;
3121
+ transition: all 0.2s ease-in-out;
3122
+ cursor: pointer;
3123
+ border: 1px solid var(--button-border);
3124
+ background-color: var(--button-bg);
3125
+ color: var(--button-color);
3126
+ }
3127
+ .button-buttonBase:hover {
3128
+ background-color: var(--button-hover-bg);
3129
+ }
3130
+ .button-buttonBase:disabled {
3131
+ background-color: var(--button-disabled-bg);
3132
+ cursor: not-allowed;
3133
+ color: var(--button-disabled-color);
3134
+ }
3135
+ .button-primary {
3136
+ background-color: var(--button-bg);
3137
+ color: var(--button-color);
3138
+ border: 1px solid var(--button-border);
3139
+ }
3140
+ .button-primary:hover {
3141
+ background-color: var(--button-hover-bg);
3142
+ }
3143
+ .button-primary:disabled {
3144
+ background-color: var(--button-disabled-bg);
3145
+ color: var(--button-disabled-color);
3146
+ }
3147
+ @media (max-width: 768px) {
3148
+ .button-buttonBase {
3149
+ padding: 7px;
3150
+ font-size: 0.85rem;
3151
+ }
3152
+ }
3153
+ @media (max-width: 480px) {
3154
+ .button-buttonBase {
3155
+ padding: 6px;
3156
+ font-size: 0.8rem;
3157
+ border-radius: 5px;
3158
+ }
3159
+ }
3160
+ .dropdown-select {
3161
+ border: 1px solid #d1d5db;
3162
+ border-radius: 6px;
3163
+ padding: 8px 12px;
3164
+ font-size: 0.875rem;
3165
+ background-color: white;
3166
+ color: #111827;
3167
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3168
+ cursor: pointer;
3169
+ }
3170
+ .dropdown-select:focus {
3171
+ outline: none;
3172
+ border-color: #2563eb;
3173
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.3);
3174
+ }
3175
+ .dropdown-select:disabled {
3176
+ background-color: #f3f4f6;
3177
+ cursor: not-allowed;
3178
+ color: #9ca3af;
3179
+ }
3180
+ @media (max-width: 768px) {
3181
+ .dropdown-select {
3182
+ padding: 7px 10px;
3183
+ font-size: 0.85rem;
3184
+ }
3185
+ }
3186
+ @media (max-width: 480px) {
3187
+ .dropdown-select {
3188
+ padding: 6px 10px;
3189
+ font-size: 0.8rem;
3190
+ border-radius: 5px;
3191
+ }
3192
+ }
3193
+ .text-formatting-group-group {
3194
+ display: flex;
3195
+ gap: 6px;
3196
+ padding: 0 6px;
3197
+ align-items: center;
3198
+ position: relative;
3199
+ }
3200
+ .text-formatting-group-group::after {
3201
+ content: "";
3202
+ display: block;
3203
+ width: 1px;
3204
+ height: 60%;
3205
+ background-color: rgba(0, 0, 0, 0.2);
3206
+ position: absolute;
3207
+ top: 20%;
3208
+ right: 0;
3209
+ }
3210
+ .text-formatting-group-buttonActive {
3211
+ color: #3b82f6;
3212
+ font-weight: 900;
3213
+ }
3214
+ @media (max-width: 768px) {
3215
+ .text-formatting-group-group {
3216
+ gap: 5px;
3217
+ padding: 0 4px;
3218
+ }
3219
+ .text-formatting-group-group::after {
3220
+ height: 50%;
3221
+ top: 25%;
3222
+ }
3223
+ }
3224
+ @media (max-width: 480px) {
3225
+ .text-formatting-group-group {
3226
+ gap: 4px;
3227
+ padding: 0 3px;
3228
+ }
3229
+ .text-formatting-group-group::after {
3230
+ height: 45%;
3231
+ top: 27%;
3232
+ }
3233
+ }
3234
+ .utility-group-group {
3235
+ display: flex;
3236
+ align-items: center;
3237
+ gap: 6px;
3238
+ padding: 4px 6px;
3239
+ height: 36px;
3240
+ position: relative;
3241
+ }
3242
+ .utility-group-group::after {
3243
+ content: "";
3244
+ display: block;
3245
+ width: 1px;
3246
+ height: 60%;
3247
+ background-color: rgba(0, 0, 0, 0.2);
3248
+ position: absolute;
3249
+ top: 20%;
3250
+ right: 0;
3251
+ }
3252
+ .utility-group-buttonActive {
3253
+ color: #3b82f6;
3254
+ font-weight: 900;
3255
+ }
3256
+ .utility-group-exportContainer {
3257
+ position: relative;
3258
+ }
3259
+ .utility-group-exportDropdown {
3260
+ position: absolute;
3261
+ top: 100%;
3262
+ left: 0;
3263
+ background: var(--background, #fff);
3264
+ border: 1px solid #ccc;
3265
+ border-radius: 4px;
3266
+ padding: 4px 0;
3267
+ z-index: 10;
3268
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
3269
+ width: max-content;
3270
+ min-width: 120px;
3271
+ white-space: nowrap;
3272
+ }
3273
+ .utility-group-exportItem {
3274
+ padding: 6px 12px;
3275
+ cursor: pointer;
3276
+ display: flex;
3277
+ align-items: center;
3278
+ }
3279
+ .utility-group-exportItem:hover {
3280
+ background: rgba(0, 0, 0, 0.05);
3281
+ }
3282
+ @media (max-width: 768px) {
3283
+ .utility-group-group {
3284
+ gap: 5px;
3285
+ padding: 3px 5px;
3286
+ height: 34px;
3287
+ }
3288
+ .utility-group-group::after {
3289
+ height: 55%;
3290
+ top: 22%;
3291
+ }
3292
+ .utility-group-exportItem {
3293
+ padding: 5px 10px;
3294
+ font-size: 0.875rem;
3295
+ }
3296
+ }
3297
+ @media (max-width: 480px) {
3298
+ .utility-group-group {
3299
+ gap: 4px;
3300
+ padding: 2px 4px;
3301
+ height: 32px;
3302
+ }
3303
+ .utility-group-group::after {
3304
+ height: 50%;
3305
+ top: 25%;
3306
+ }
3307
+ .utility-group-exportDropdown {
3308
+ min-width: 100px;
3309
+ }
3310
+ .utility-group-exportItem {
3311
+ padding: 5px 8px;
3312
+ font-size: 0.82rem;
3313
+ }
3314
+ }
3315
+ .find-replace-modal {
3316
+ width: 380px;
3317
+ max-width: 90%;
3318
+ }
3319
+ .tetrons-editor__modal-overlay {
3320
+ position: fixed;
3321
+ inset: 0;
3322
+ background: rgba(0, 0, 0, 0.55);
3323
+ display: flex;
3324
+ align-items: center;
3325
+ justify-content: center;
3326
+ z-index: 99999;
3327
+ }
3328
+ .tetrons-editor__modal-content {
3329
+ background: #fff;
3330
+ border-radius: 8px;
3331
+ padding: 20px 24px;
3332
+ max-height: 90vh;
3333
+ overflow-y: auto;
3334
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
3335
+ }
3336
+ .modal-title {
3337
+ font-size: 18px;
3338
+ font-weight: 600;
3339
+ margin-bottom: 16px;
3340
+ text-align: center;
3341
+ }
3342
+ .modal-field {
3343
+ display: flex;
3344
+ flex-direction: column;
3345
+ margin-bottom: 16px;
3346
+ }
3347
+ .modal-field label {
3348
+ font-size: 14px;
3349
+ font-weight: 500;
3350
+ margin-bottom: 6px;
3351
+ }
3352
+ .modal-input {
3353
+ padding: 8px 10px;
3354
+ height: 36px;
3355
+ border: 1px solid #d0d0d0;
3356
+ border-radius: 6px;
3357
+ font-size: 14px;
3358
+ }
3359
+ .modal-input:focus {
3360
+ outline: none;
3361
+ border-color: #4a85f6;
3362
+ box-shadow: 0 0 0 2px rgba(74, 133, 246, 0.25);
3363
+ }
3364
+ .modal-buttons {
3365
+ display: flex;
3366
+ justify-content: space-between;
3367
+ gap: 8px;
3368
+ margin-top: 12px;
3369
+ }
3370
+ .modal-btn {
3371
+ flex: 1;
3372
+ padding: 8px 12px;
3373
+ height: 36px;
3374
+ border-radius: 6px;
3375
+ border: none;
3376
+ background: #f3f3f3;
3377
+ cursor: pointer;
3378
+ font-size: 14px;
3379
+ font-weight: 500;
3380
+ transition: 0.2s ease all;
3381
+ }
3382
+ .modal-btn:hover {
3383
+ background: #e2e2e2;
3384
+ }
3385
+ .modal-btn.primary {
3386
+ background: #4a85f6;
3387
+ color: #fff;
3388
+ }
3389
+ .modal-btn.primary:hover {
3390
+ background: #3a70d8;
3391
+ }
3392
+ .modal-btn.secondary {
3393
+ background: #ddd;
3394
+ }
3395
+ .modal-btn.secondary:hover {
3396
+ background: #ccc;
3397
+ }
3398
+ @media (max-width: 1024px) {
3399
+ .find-replace-modal {
3400
+ width: 350px;
3401
+ }
3402
+ .modal-title {
3403
+ font-size: 17px;
3404
+ }
3405
+ .modal-input {
3406
+ font-size: 14px;
3407
+ }
3408
+ }
3409
+ @media (max-width: 768px) {
3410
+ .find-replace-modal {
3411
+ width: 320px;
3412
+ padding: 16px !important;
3413
+ }
3414
+ .modal-title {
3415
+ font-size: 16px;
3416
+ margin-bottom: 12px;
3417
+ }
3418
+ .modal-input {
3419
+ height: 34px;
3420
+ font-size: 13px;
3421
+ }
3422
+ .modal-btn {
3423
+ height: 34px;
3424
+ font-size: 13px;
3425
+ }
3426
+ }
3427
+ @media (max-width: 480px) {
3428
+ .find-replace-modal {
3429
+ width: 95%;
3430
+ padding: 14px !important;
3431
+ }
3432
+ .modal-title {
3433
+ font-size: 15px;
3434
+ }
3435
+ .modal-field label {
3436
+ font-size: 13px;
3437
+ }
3438
+ .modal-input {
3439
+ height: 32px;
3440
+ padding: 6px 8px;
3441
+ font-size: 13px;
3442
+ }
3443
+ .modal-buttons {
3444
+ flex-direction: column;
3445
+ gap: 10px;
3446
+ }
3447
+ .modal-btn {
3448
+ width: 100%;
3449
+ height: 36px;
3450
+ }
3451
+ }
3452
+ @media (max-width: 360px) {
3453
+ .find-replace-modal {
3454
+ width: 96%;
3455
+ padding: 12px !important;
3456
+ }
3457
+ .modal-title {
3458
+ font-size: 14px;
3459
+ }
3460
+ .modal-input {
3461
+ font-size: 12px;
3462
+ height: 30px;
3463
+ }
3464
+ .modal-btn {
3465
+ font-size: 12px;
3466
+ height: 34px;
3467
+ }
3468
+ }
3469
+ .tetrons-editor__container:fullscreen {
3470
+ background: #fff;
3471
+ width: 100vw;
3472
+ height: 100vh;
3473
+ overflow: hidden;
3474
+ display: flex;
3475
+ flex-direction: column;
3476
+ }
3477
+ .tetrons-editor__container:fullscreen .tetrons-editor__wrapper {
3478
+ height: calc(100vh - 80px);
3479
+ overflow: visible !important;
3480
+ }
3481
+ .tetrons-editor__main-area {
3482
+ height: calc(100vh - 220px);
3483
+ display: flex;
3484
+ flex-direction: column;
3485
+ }
3486
+ .tetrons-editor__splitview {
3487
+ display: flex;
3488
+ width: 100%;
3489
+ height: calc(100vh - 220px);
3490
+ }
3491
+ .tetrons-editor__split-left {
3492
+ width: 50%;
3493
+ height: 100%;
3494
+ border-right: 1px solid #ddd;
3495
+ display: flex;
3496
+ flex-direction: column;
3497
+ overflow: hidden;
3498
+ }
3499
+ .tetrons-editor__split-right {
3500
+ width: 50%;
3501
+ height: 100%;
3502
+ overflow: hidden;
3503
+ }
3504
+ .tetrons-editor__split-preview {
3505
+ width: 100%;
3506
+ height: 100%;
3507
+ border: none;
3508
+ background: #fff;
3509
+ }
3510
+ .tetrons-editor__area {
3511
+ flex: 1;
3512
+ height: 100%;
3513
+ overflow: auto;
3514
+ display: flex;
3515
+ flex-direction: column;
3516
+ }
3517
+ .tetrons-editor__area .ProseMirror {
3518
+ flex: 1;
3519
+ height: 100%;
3520
+ overflow: auto;
3521
+ box-sizing: border-box;
3522
+ }
3523
+ .tetrons-editor__wrapper-page {
3524
+ width: 100%;
3525
+ display: flex;
3526
+ justify-content: center;
3527
+ padding: 40px 0;
3528
+ background: #e8e8e8;
3529
+ }
3530
+ .tetrons-editor__area-page {
3531
+ background: white;
3532
+ width: 794px;
3533
+ min-height: 1123px;
3534
+ padding: 50px;
3535
+ margin: 0 auto;
3536
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.18);
3537
+ border-radius: 4px;
3538
+ }
3539
+ .sr-only {
3540
+ position: absolute !important;
3541
+ width: 1px !important;
3542
+ height: 1px !important;
3543
+ padding: 0 !important;
3544
+ margin: -1px !important;
3545
+ overflow: hidden !important;
3546
+ clip: rect(0, 0, 0, 0) !important;
3547
+ white-space: nowrap !important;
3548
+ border: 0 !important;
3549
+ }
3550
+ .tetrons-editor__modal-overlay {
3551
+ position: fixed;
3552
+ inset: 0;
3553
+ background: rgba(0, 0, 0, 0.45);
3554
+ -webkit-backdrop-filter: blur(3px);
3555
+ backdrop-filter: blur(3px);
3556
+ display: flex;
3557
+ justify-content: center;
3558
+ align-items: flex-start;
3559
+ padding-top: 50px;
3560
+ z-index: 9999;
3561
+ }
3562
+ @supports not ((backdrop-filter: blur(3px)) or (-webkit-backdrop-filter: blur(3px))) {
3563
+ .tetrons-editor__modal-overlay {
3564
+ background: rgba(0, 0, 0, 0.65);
3565
+ }
3566
+ }
3567
+ .tetrons-editor__modal-content.version-history-modal {
3568
+ background: #ffffff;
3569
+ width: 90%;
3570
+ max-width: 700px;
3571
+ max-height: 80vh;
3572
+ border-radius: 12px;
3573
+ padding: 20px 24px;
3574
+ overflow: hidden;
3575
+ display: flex;
3576
+ flex-direction: column;
3577
+ box-shadow: 0 6px 22px rgba(0, 0, 0, 0.25);
3578
+ animation: fadeInScale 0.2s ease-out;
3579
+ }
3580
+ @keyframes fadeInScale {
3581
+ from {
3582
+ opacity: 0;
3583
+ transform: scale(0.94);
3584
+ }
3585
+ to {
3586
+ opacity: 1;
3587
+ transform: scale(1);
3588
+ }
3589
+ }
3590
+ .version-history-modal h2 {
3591
+ font-size: 20px;
3592
+ font-weight: 600;
3593
+ margin-bottom: 15px;
3594
+ }
3595
+ .version-list {
3596
+ list-style: none;
3597
+ margin: 0;
3598
+ padding: 0;
3599
+ overflow-y: auto;
3600
+ border-top: 1px solid #e5e5e5;
3601
+ flex: 1;
3602
+ }
3603
+ .version-entry {
3604
+ display: flex;
3605
+ justify-content: space-between;
3606
+ gap: 24px;
3607
+ padding: 14px 0;
3608
+ border-bottom: 1px solid #e5e5e5;
3609
+ }
3610
+ .version-entry:last-child {
3611
+ border-bottom: none;
3612
+ }
3613
+ @media (max-width: 768px) {
3614
+ .version-entry {
3615
+ flex-direction: column;
3616
+ gap: 12px;
3617
+ }
3618
+ }
3619
+ .version-meta {
3620
+ flex: 1;
3621
+ }
3622
+ .version-meta strong {
3623
+ font-size: 15px;
3624
+ font-weight: 600;
3625
+ }
3626
+ .version-meta > div:nth-child(2) {
3627
+ font-size: 12.5px;
3628
+ color: #666;
3629
+ margin-top: 3px;
3630
+ }
3631
+ .version-note textarea {
3632
+ width: 100%;
3633
+ min-height: 60px;
3634
+ font-size: 13px;
3635
+ padding: 10px;
3636
+ border-radius: 6px;
3637
+ border: 1px solid #ccc;
3638
+ background: #fafafa;
3639
+ resize: vertical;
3640
+ transition: background 0.2s, border-color 0.2s ease;
3641
+ }
3642
+ .version-note textarea:focus {
3643
+ outline: none;
3644
+ border-color: #3578e5;
3645
+ background: white;
3646
+ }
3647
+ @media (max-width: 480px) {
3648
+ .version-note textarea {
3649
+ min-height: 50px;
3650
+ font-size: 12.5px;
3651
+ padding: 8px;
3652
+ }
3653
+ }
3654
+ .version-actions {
3655
+ display: flex;
3656
+ flex-direction: column;
3657
+ justify-content: flex-start;
3658
+ gap: 8px;
3659
+ }
3660
+ .version-actions button {
3661
+ padding: 7px 14px;
3662
+ border-radius: 6px;
3663
+ font-size: 13px;
3664
+ border: none;
3665
+ cursor: pointer;
3666
+ transition: opacity 0.1s ease, background 0.1s ease;
3667
+ }
3668
+ .version-actions button:nth-child(1) {
3669
+ background: #3578e5;
3670
+ color: white;
3671
+ }
3672
+ .version-actions button:nth-child(2) {
3673
+ background: #ffb100;
3674
+ color: #000;
3675
+ }
3676
+ .version-actions button:nth-child(3) {
3677
+ background: #e14e4e;
3678
+ color: white;
3679
+ }
3680
+ .version-actions button:hover {
3681
+ opacity: 0.85;
3682
+ }
3683
+ @media (max-width: 768px) {
3684
+ .version-actions {
3685
+ flex-direction: row;
3686
+ flex-wrap: wrap;
3687
+ gap: 10px;
3688
+ }
3689
+ .version-actions button {
3690
+ flex: 1;
3691
+ text-align: center;
3692
+ }
3693
+ }
3694
+ @media (max-width: 480px) {
3695
+ .version-actions button {
3696
+ font-size: 12px;
3697
+ padding: 6px 12px;
3698
+ }
3699
+ }
3700
+ .close-btn {
3701
+ margin-top: 16px;
3702
+ padding: 10px 16px;
3703
+ border-radius: 6px;
3704
+ background: #444;
3705
+ color: white;
3706
+ border: none;
3707
+ cursor: pointer;
3708
+ font-size: 14px;
3709
+ width: 120px;
3710
+ align-self: flex-end;
3711
+ text-align: center;
3712
+ }
3713
+ .close-btn:hover {
3714
+ background: #222;
3715
+ }
3716
+ @media (max-width: 480px) {
3717
+ .close-btn {
3718
+ width: 100%;
3719
+ font-size: 13px;
3720
+ padding: 10px 14px;
3721
+ margin-top: 18px;
3722
+ }
3723
+ }
3724
+ .version-list::-webkit-scrollbar {
3725
+ width: 8px;
3726
+ }
3727
+ .version-list::-webkit-scrollbar-thumb {
3728
+ background: #ccc;
3729
+ border-radius: 8px;
3730
+ }
3731
+ .version-list::-webkit-scrollbar-thumb:hover {
3732
+ background: #aaa;
3733
+ }
3734
+ .git-diff-modal {
3735
+ max-width: 900px;
3736
+ width: 100%;
3737
+ background: #fff;
3738
+ border-radius: 10px;
3739
+ padding: 20px;
3740
+ overflow: hidden;
3741
+ }
3742
+ .git-diff-container {
3743
+ margin-top: 15px;
3744
+ max-height: 65vh;
3745
+ overflow-y: auto;
3746
+ background: #f7f7f7;
3747
+ border: 1px solid #ddd;
3748
+ border-radius: 6px;
3749
+ font-family: monospace;
3750
+ font-size: 14px;
3751
+ }
3752
+ .git-diff-line {
3753
+ white-space: pre-wrap;
3754
+ font-family: monospace;
3755
+ padding: 2px 6px;
3756
+ border-radius: 4px;
3757
+ }
3758
+ .git-diff-line:last-child {
3759
+ border-bottom: none;
3760
+ }
3761
+ .git-unchanged {
3762
+ background-color: transparent;
3763
+ color: #444;
3764
+ }
3765
+ .git-added {
3766
+ background-color: #e6ffe6;
3767
+ color: #008000;
3768
+ }
3769
+ .git-removed {
3770
+ background-color: #ffe6e6;
3771
+ color: #cc0000;
3772
+ }
3773
+ .git-diff-line pre {
3774
+ margin: 0;
3775
+ font-size: 14px;
3776
+ line-height: 1.4;
3777
+ }
3778
+ @media (max-width: 768px) {
3779
+ .git-diff-modal {
3780
+ max-width: 95vw;
3781
+ padding: 15px;
3782
+ }
3783
+ .git-diff-container {
3784
+ max-height: 55vh;
3785
+ }
3786
+ .git-diff-line {
3787
+ font-size: 12px;
3788
+ padding: 3px 6px;
3789
+ }
3790
+ }
3791
+ .tetrons-editor__modal-overlay {
3792
+ position: fixed;
3793
+ inset: 0;
3794
+ background: rgba(0, 0, 0, 0.45);
3795
+ -webkit-backdrop-filter: blur(3px);
3796
+ backdrop-filter: blur(3px);
3797
+ display: flex;
3798
+ justify-content: center;
3799
+ align-items: flex-start;
3800
+ padding-top: 50px;
3801
+ z-index: 9999;
3802
+ }
3803
+ @supports not ((backdrop-filter: blur(3px)) or (-webkit-backdrop-filter: blur(3px))) {
3804
+ .tetrons-editor__modal-overlay {
3805
+ background: rgba(0, 0, 0, 0.65);
3806
+ }
3807
+ }
3808
+ .tetrons-editor__modal-content.rollback-modal {
3809
+ background: #ffffff;
3810
+ width: 90%;
3811
+ max-width: 420px;
3812
+ border-radius: 12px;
3813
+ padding: 22px 26px;
3814
+ box-shadow: 0 6px 22px rgba(0, 0, 0, 0.25);
3815
+ display: flex;
3816
+ flex-direction: column;
3817
+ gap: 18px;
3818
+ animation: rollbackFadeIn 0.22s ease-out;
3819
+ }
3820
+ @keyframes rollbackFadeIn {
3821
+ from {
3822
+ opacity: 0;
3823
+ transform: scale(0.94);
3824
+ }
3825
+ to {
3826
+ opacity: 1;
3827
+ transform: scale(1);
3828
+ }
3829
+ }
3830
+ .rollback-modal h2 {
3831
+ font-size: 20px;
3832
+ font-weight: 600;
3833
+ margin: 0 0 6px 0;
3834
+ }
3835
+ .rollback-modal p {
3836
+ font-size: 15px;
3837
+ color: #444;
3838
+ line-height: 1.5;
3839
+ margin: 0;
3840
+ }
3841
+ .rollback-buttons {
3842
+ display: flex;
3843
+ justify-content: flex-end;
3844
+ gap: 12px;
3845
+ flex-wrap: wrap;
3846
+ }
3847
+ .rollback-buttons button {
3848
+ padding: 10px 16px;
3849
+ border-radius: 6px;
3850
+ font-size: 14px;
3851
+ border: none;
3852
+ cursor: pointer;
3853
+ transition: background 0.15s ease, opacity 0.15s ease;
3854
+ }
3855
+ .rollback-buttons button:nth-child(1) {
3856
+ background: #d9534f;
3857
+ color: white;
3858
+ }
3859
+ .rollback-buttons button:nth-child(1):hover {
3860
+ background: #c94440;
3861
+ }
3862
+ .rollback-buttons button:nth-child(2) {
3863
+ background: #e2e2e2;
3864
+ color: #222;
3865
+ }
3866
+ .rollback-buttons button:nth-child(2):hover {
3867
+ background: #cbcbcb;
3868
+ }
3869
+ @media (max-width: 768px) {
3870
+ .tetrons-editor__modal-content.rollback-modal {
3871
+ width: 92%;
3872
+ padding: 20px;
3873
+ }
3874
+ .rollback-buttons {
3875
+ justify-content: center;
3876
+ }
3877
+ .rollback-buttons button {
3878
+ flex: 1;
3879
+ min-width: 120px;
3880
+ }
3881
+ }
3882
+ @media (max-width: 480px) {
3883
+ .tetrons-editor__modal-content.rollback-modal {
3884
+ width: 94%;
3885
+ padding: 18px;
3886
+ }
3887
+ .rollback-modal h2 {
3888
+ font-size: 18px;
3889
+ }
3890
+ .rollback-modal p {
3891
+ font-size: 14px;
3892
+ }
3893
+ .rollback-buttons button {
3894
+ font-size: 13px;
3895
+ padding: 9px 12px;
3896
+ min-width: 100%;
3897
+ }
3898
+ }
3899
+ @media (prefers-color-scheme: dark) {
3900
+ .tetrons-editor__modal-content.rollback-modal {
3901
+ background: #1f1f1f;
3902
+ color: #eee;
3903
+ }
3904
+ .rollback-modal p {
3905
+ color: #ccc;
3906
+ }
3907
+ .rollback-buttons button:nth-child(2) {
3908
+ background: #444;
3909
+ color: #ddd;
3910
+ }
3911
+ }
3912
+ .tetrons-editor__wrapper,
3913
+ .tetrons-editor__wrapper-page {
3914
+ overflow: visible !important;
3915
+ position: relative !important;
3916
+ z-index: 2 !important;
3917
+ }
3918
+ .tetrons-editor__area .ProseMirror {
3919
+ z-index: 1 !important;
3920
+ position: relative;
3921
+ }
3922
+ .tetrons-toolbar__wrapper,
3923
+ .tetrons-toolbar__basic,
3924
+ .tetrons-editor__third-row {
3925
+ overflow: visible !important;
3926
+ }
3927
+ @media (min-width: 769px) {
3928
+ .tetrons-toolbar__wrapper,
3929
+ .tetrons-toolbar__basic,
3930
+ .tetrons-editor__third-row {
3931
+ overflow: visible;
3932
+ }
3933
+ }
3934
+ @media (max-width: 768px) {
3935
+ .tetrons-toolbar__wrapper {
3936
+ overflow-x: auto !important;
3937
+ overflow-y: hidden !important;
3938
+ white-space: nowrap !important;
3939
+ }
3940
+ .tetrons-toolbar__basic {
3941
+ overflow-x: auto !important;
3942
+ overflow-y: hidden !important;
3943
+ white-space: nowrap !important;
3944
+ flex-wrap: nowrap !important;
3945
+ }
3946
+ .tetrons-toolbar__basic > * {
3947
+ flex: 0 0 auto !important;
3948
+ display: inline-flex !important;
3949
+ }
3950
+ .tetrons-editor__premium-groups {
3951
+ overflow-x: auto !important;
3952
+ overflow-y: hidden !important;
3953
+ white-space: nowrap !important;
3954
+ flex-wrap: nowrap !important;
3955
+ }
3956
+ .tetrons-editor__premium-groups > * {
3957
+ flex: 0 0 auto !important;
3958
+ display: inline-flex !important;
3959
+ }
3960
+ .tetrons-toolbar__basic::-webkit-scrollbar,
3961
+ .tetrons-editor__premium-groups::-webkit-scrollbar {
3962
+ height: 6px;
3963
+ }
3964
+ .tetrons-toolbar__basic::-webkit-scrollbar-thumb,
3965
+ .tetrons-editor__premium-groups::-webkit-scrollbar-thumb {
3966
+ background: rgba(0, 0, 0, 0.25);
3967
+ border-radius: 3px;
3968
+ }
3969
+ }
3970
+ .sharelink-overlay {
3971
+ position: fixed;
3972
+ inset: 0;
3973
+ background: rgba(0, 0, 0, 0.45);
3974
+ display: flex;
3975
+ align-items: center;
3976
+ justify-content: center;
3977
+ padding: 16px;
3978
+ z-index: 9999;
3979
+ }
3980
+ .sharelink-modal {
3981
+ width: 100%;
3982
+ max-width: 420px;
3983
+ background: #fff;
3984
+ padding: 20px;
3985
+ border-radius: 12px;
3986
+ box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15);
3987
+ animation: fadeInScale 0.25s ease-out;
3988
+ }
3989
+ .sharelink-title {
3990
+ margin-bottom: 12px;
3991
+ font-size: 1.125rem;
3992
+ font-weight: 600;
3993
+ text-align: center;
3994
+ }
3995
+ .sharelink-label {
3996
+ display: block;
3997
+ margin-bottom: 6px;
3998
+ font-size: 0.9rem;
3999
+ font-weight: 500;
4000
+ }
4001
+ .sharelink-input {
4002
+ width: 100%;
4003
+ padding: 10px;
4004
+ font-size: 0.9rem;
4005
+ border: 1px solid #ccc;
4006
+ border-radius: 6px;
4007
+ margin-bottom: 16px;
4008
+ word-break: break-all;
4009
+ }
4010
+ .sharelink-button-row {
4011
+ display: flex;
4012
+ flex-direction: row;
4013
+ gap: 10px;
4014
+ margin-bottom: 16px;
4015
+ }
4016
+ .sharelink-btn {
4017
+ flex: 1;
4018
+ padding: 10px;
4019
+ border: none;
4020
+ border-radius: 6px;
4021
+ cursor: pointer;
4022
+ font-size: 0.9rem;
4023
+ font-weight: 500;
4024
+ transition: background 0.2s ease, transform 0.15s ease;
4025
+ }
4026
+ .sharelink-btn:hover {
4027
+ transform: translateY(-1px);
4028
+ }
4029
+ .sharelink-copy {
4030
+ background: #007bff;
4031
+ color: white;
4032
+ }
4033
+ .sharelink-open {
4034
+ background: #28a745;
4035
+ color: white;
4036
+ }
4037
+ .sharelink-close {
4038
+ width: 100%;
4039
+ background: #ccc;
4040
+ color: #333;
4041
+ }
4042
+ @media (max-width: 480px) {
4043
+ .sharelink-modal {
4044
+ padding: 16px;
4045
+ border-radius: 10px;
4046
+ }
4047
+ .sharelink-title {
4048
+ font-size: 1.05rem;
4049
+ }
4050
+ .sharelink-btn {
4051
+ padding: 9px;
4052
+ font-size: 0.85rem;
4053
+ }
4054
+ .sharelink-button-row {
4055
+ flex-direction: column;
4056
+ }
4057
+ }
4058
+ @media (max-width: 768px) {
4059
+ .sharelink-modal {
4060
+ max-width: 90%;
4061
+ }
4062
+ .sharelink-input {
4063
+ font-size: 0.95rem;
4064
+ }
4065
+ }
4066
+ @media (min-width: 1200px) {
4067
+ .sharelink-modal {
4068
+ max-width: 460px;
4069
+ }
4070
+ }
4071
+ @media (prefers-reduced-motion: reduce) {
4072
+ .sharelink-modal {
4073
+ animation: none;
4074
+ }
4075
+ .sharelink-btn:hover {
4076
+ transform: none;
4077
+ }
4078
+ }
4079
+ @keyframes fadeInScale {
4080
+ from {
4081
+ opacity: 0;
4082
+ transform: scale(0.96);
4083
+ }
4084
+ to {
4085
+ opacity: 1;
4086
+ transform: scale(1);
4087
+ }
4088
+ }
4089
+ .docContainer {
4090
+ max-width: 800px;
4091
+ margin: 40px auto;
4092
+ padding: 20px;
4093
+ background: #ffffff;
4094
+ border-radius: 8px;
4095
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
4096
+ }
4097
+ .tetrons-link-preview-popup {
4098
+ position: fixed;
4099
+ z-index: 999999;
4100
+ max-width: 280px;
4101
+ width: calc(100vw - 40px);
4102
+ background: #ffffff;
4103
+ border: 1px solid #ddd;
4104
+ border-radius: 8px;
4105
+ padding: 12px;
4106
+ box-shadow: 0 6px 22px rgba(0, 0, 0, 0.15);
4107
+ font-family: sans-serif;
4108
+ transition: opacity 0.15s ease-out, transform 0.15s ease-out;
4109
+ will-change: opacity, transform;
4110
+ max-height: calc(100vh - 40px);
4111
+ overflow-y: auto;
4112
+ }
4113
+ .tetrons-link-preview-title {
4114
+ font-size: 15px;
4115
+ font-weight: 600;
4116
+ margin-bottom: 6px;
4117
+ line-height: 1.3;
4118
+ }
4119
+ .tetrons-link-preview-desc {
4120
+ font-size: 13px;
4121
+ color: #555;
4122
+ margin: 6px 0;
4123
+ line-height: 1.4;
4124
+ }
4125
+ .tetrons-link-preview-url {
4126
+ font-size: 12px;
4127
+ color: #888;
4128
+ word-break: break-all;
4129
+ }
4130
+ .tetrons-link-preview-img-wrapper {
4131
+ width: 100%;
4132
+ overflow: hidden;
4133
+ border-radius: 6px;
4134
+ margin-bottom: 6px;
4135
+ }
4136
+ .tetrons-link-preview-img {
4137
+ width: 100% !important;
4138
+ height: auto !important;
4139
+ object-fit: cover !important;
4140
+ border-radius: 6px;
4141
+ }
4142
+ @media (max-width: 1024px) {
4143
+ .tetrons-link-preview-popup {
4144
+ max-width: 300px;
4145
+ padding: 10px;
4146
+ }
4147
+ .tetrons-link-preview-title {
4148
+ font-size: 14px;
4149
+ }
4150
+ .tetrons-link-preview-desc {
4151
+ font-size: 12px;
4152
+ }
4153
+ }
4154
+ @media (max-width: 600px) {
4155
+ .tetrons-link-preview-popup {
4156
+ left: 8px !important;
4157
+ right: 8px !important;
4158
+ max-width: none;
4159
+ width: auto;
4160
+ padding: 10px;
4161
+ border-radius: 6px;
4162
+ }
4163
+ .tetrons-link-preview-title {
4164
+ font-size: 14px;
4165
+ margin-bottom: 4px;
4166
+ }
4167
+ .tetrons-link-preview-desc {
4168
+ font-size: 12px;
4169
+ }
4170
+ .tetrons-link-preview-img-wrapper {
4171
+ max-height: 140px;
4172
+ }
4173
+ }
4174
+ @media (max-width: 380px) {
4175
+ .tetrons-link-preview-popup {
4176
+ padding: 8px;
4177
+ border-radius: 5px;
4178
+ }
4179
+ .tetrons-link-preview-title {
4180
+ font-size: 13px;
4181
+ }
4182
+ .tetrons-link-preview-desc {
4183
+ font-size: 11px;
4184
+ }
4185
+ .tetrons-link-preview-url {
4186
+ font-size: 11px;
4187
+ }
4188
+ }
4189
+ .tetrons-editor__modal-overlay {
4190
+ position: fixed;
4191
+ inset: 0;
4192
+ background: rgba(0, 0, 0, 0.45);
4193
+ display: flex;
4194
+ justify-content: center;
4195
+ align-items: center;
4196
+ z-index: 99999;
4197
+ padding: 16px;
4198
+ box-sizing: border-box;
4199
+ }
4200
+ .email-modal {
4201
+ width: 520px;
4202
+ max-width: 100%;
4203
+ padding: 24px;
4204
+ background: #fff;
4205
+ border-radius: 10px;
4206
+ box-sizing: border-box;
4207
+ overflow-y: auto;
4208
+ max-height: 90vh;
4209
+ }
4210
+ .email-modal h2 {
4211
+ margin-top: 0;
4212
+ margin-bottom: 16px;
4213
+ font-size: 20px;
4214
+ font-weight: 600;
4215
+ }
4216
+ .email-field {
4217
+ margin-bottom: 14px;
4218
+ display: flex;
4219
+ flex-direction: column;
4220
+ }
4221
+ .email-field label {
4222
+ font-size: 14px;
4223
+ margin-bottom: 5px;
4224
+ }
4225
+ .email-field input,
4226
+ .email-field textarea {
4227
+ padding: 8px 10px;
4228
+ border: 1px solid #ccc;
4229
+ border-radius: 6px;
4230
+ font-size: 14px;
4231
+ box-sizing: border-box;
4232
+ width: 100%;
4233
+ }
4234
+ textarea#email-body {
4235
+ resize: vertical;
4236
+ }
4237
+ .email-actions {
4238
+ display: flex;
4239
+ justify-content: flex-end;
4240
+ margin-top: 16px;
4241
+ gap: 12px;
4242
+ }
4243
+ .email-actions button {
4244
+ min-width: 100px;
4245
+ padding: 10px 16px;
4246
+ font-size: 14px;
4247
+ font-weight: 500;
4248
+ border-radius: 6px;
4249
+ border: none;
4250
+ cursor: pointer;
4251
+ transition: all 0.18s ease;
4252
+ }
4253
+ .email-actions button:first-child {
4254
+ background: #f3f4f6;
4255
+ color: #374151;
4256
+ border: 1px solid #e5e7eb;
4257
+ }
4258
+ .email-actions button:first-child:hover {
4259
+ background: #e5e7eb;
4260
+ }
4261
+ .email-actions button:first-child:active {
4262
+ background: #d1d5db;
4263
+ }
4264
+ .email-actions button:last-child {
4265
+ background: #2563eb;
4266
+ color: #ffffff;
4267
+ border: 1px solid #1e4fd4;
4268
+ }
4269
+ .email-actions button:last-child:hover {
4270
+ background: #1e4fd4;
4271
+ }
4272
+ .email-actions button:last-child:active {
4273
+ background: #1b44b8;
4274
+ }
4275
+ @media (max-width: 1200px) {
4276
+ .email-modal {
4277
+ width: 480px;
4278
+ padding: 22px;
4279
+ }
4280
+ }
4281
+ @media (max-width: 992px) {
4282
+ .email-modal {
4283
+ width: 440px;
4284
+ padding: 20px;
4285
+ }
4286
+ .email-field label {
4287
+ font-size: 13px;
4288
+ }
4289
+ .email-field input,
4290
+ .email-field textarea {
4291
+ font-size: 13px;
4292
+ padding: 7px 9px;
4293
+ }
4294
+ }
4295
+ @media (max-width: 768px) {
4296
+ .email-modal {
4297
+ width: 380px;
4298
+ padding: 18px;
4299
+ }
4300
+ .email-actions {
4301
+ flex-direction: column;
4302
+ gap: 10px;
4303
+ align-items: stretch;
4304
+ }
4305
+ .email-actions button {
4306
+ width: 100%;
4307
+ }
4308
+ }
4309
+ @media (max-width: 576px) {
4310
+ .email-modal {
4311
+ width: 100%;
4312
+ padding: 16px;
4313
+ border-radius: 8px;
4314
+ }
4315
+ .email-field {
4316
+ margin-bottom: 10px;
4317
+ }
4318
+ .email-field label {
4319
+ font-size: 12.5px;
4320
+ }
4321
+ .email-field input,
4322
+ .email-field textarea {
4323
+ font-size: 12.5px;
4324
+ padding: 6px 8px;
4325
+ }
4326
+ .email-actions {
4327
+ margin-top: 12px;
4328
+ }
4329
+ }
4330
+ @media (max-width: 400px) {
4331
+ .email-modal {
4332
+ width: 100%;
4333
+ padding: 14px;
4334
+ }
4335
+ .email-field input,
4336
+ .email-field textarea {
4337
+ font-size: 12px;
4338
+ padding: 6px;
4339
+ }
4340
+ .email-actions {
4341
+ flex-direction: column;
4342
+ gap: 8px;
4343
+ }
4344
+ }
4345
+ @media (max-width: 360px) {
4346
+ .email-modal {
4347
+ width: 100%;
4348
+ padding: 12px;
4349
+ }
4350
+ .email-field label {
4351
+ font-size: 12px;
4352
+ }
4353
+ .email-field input,
4354
+ .email-field textarea {
4355
+ font-size: 11.5px;
4356
+ padding: 5px 7px;
4357
+ }
4358
+ }
4359
+ .cc-bcc {
4360
+ display: flex;
4361
+ flex-direction: column;
4362
+ gap: 10px;
4363
+ }
4364
+ .email-show-toggle,
4365
+ .email-hide-toggle {
4366
+ background: none;
4367
+ border: none;
4368
+ padding: 0;
4369
+ margin: 4px 0 10px 0;
4370
+ color: #0073e6;
4371
+ font-size: 14px;
4372
+ text-align: left;
4373
+ cursor: pointer;
4374
+ }
4375
+ .email-show-toggle:hover,
4376
+ .email-hide-toggle:hover {
4377
+ text-decoration: underline;
4378
+ }
4379
+ .email-collapsible {
4380
+ animation: slideDown 0.25s ease-out;
4381
+ }
4382
+ @keyframes slideDown {
4383
+ from {
4384
+ opacity: 0;
4385
+ transform: translateY(-4px);
4386
+ }
4387
+ to {
4388
+ opacity: 1;
4389
+ transform: translateY(0);
4390
+ }
4391
+ }
4392
+ .tetrons-modal-overlay {
4393
+ position: fixed;
4394
+ inset: 0;
4395
+ background: rgba(0, 0, 0, 0.45);
4396
+ display: flex;
4397
+ align-items: center;
4398
+ justify-content: center;
4399
+ padding: 16px;
4400
+ z-index: 9999;
4401
+ }
4402
+ .tetrons-modal.image-to-text-modal {
4403
+ width: 420px;
4404
+ max-width: 100%;
4405
+ background: #ffffff;
4406
+ border-radius: 10px;
4407
+ padding: 20px;
4408
+ box-shadow: 0 4px 18px rgba(0, 0, 0, 0.1);
4409
+ box-sizing: border-box;
4410
+ }
4411
+ .image-to-text-title {
4412
+ font-size: 18px;
4413
+ font-weight: 600;
4414
+ margin-bottom: 16px;
4415
+ }
4416
+ .image-to-text-label {
4417
+ display: block;
4418
+ font-size: 14px;
4419
+ font-weight: 500;
4420
+ margin-bottom: 6px;
4421
+ }
4422
+ .image-to-text-file-input {
4423
+ width: 100%;
4424
+ padding: 6px 4px;
4425
+ font-size: 14px;
4426
+ border: 1px solid #dddddd;
4427
+ border-radius: 6px;
4428
+ background: #fafafa;
4429
+ box-sizing: border-box;
4430
+ }
4431
+ .image-to-text-selected {
4432
+ margin-top: 10px;
4433
+ font-size: 14px;
4434
+ color: #444;
4435
+ }
4436
+ .image-to-text-actions {
4437
+ margin-top: 20px;
4438
+ display: flex;
4439
+ justify-content: flex-end;
4440
+ gap: 12px;
4441
+ }
4442
+ @media (max-width: 480px) {
4443
+ .tetrons-modal.image-to-text-modal {
4444
+ width: 100%;
4445
+ padding: 16px;
4446
+ border-radius: 8px;
4447
+ }
4448
+ .image-to-text-title {
4449
+ font-size: 16px;
4450
+ margin-bottom: 12px;
4451
+ }
4452
+ .image-to-text-actions {
4453
+ flex-direction: column;
4454
+ gap: 8px;
4455
+ }
4456
+ .image-to-text-actions button {
4457
+ width: 100%;
4458
+ }
4459
+ }
4460
+ @media (max-width: 768px) {
4461
+ .tetrons-modal.image-to-text-modal {
4462
+ width: 90%;
4463
+ }
4464
+ }
4465
+ @media (max-width: 1024px) {
4466
+ .tetrons-modal.image-to-text-modal {
4467
+ width: 70%;
4468
+ }
4469
+ }
4470
+ .tetrons-btn-primary {
4471
+ background: #0066ff;
4472
+ color: #ffffff;
4473
+ font-size: 14px;
4474
+ font-weight: 500;
4475
+ border: none;
4476
+ padding: 10px 18px;
4477
+ border-radius: 6px;
4478
+ cursor: pointer;
4479
+ transition: background 0.2s ease, opacity 0.2s ease;
4480
+ }
4481
+ .tetrons-btn-primary:hover:not(:disabled) {
4482
+ background: #0057d6;
4483
+ }
4484
+ .tetrons-btn-primary:active:not(:disabled) {
4485
+ background: #004bb8;
4486
+ }
4487
+ .tetrons-btn-primary:disabled {
4488
+ background: #a7c4ff;
4489
+ cursor: not-allowed;
4490
+ opacity: 0.6;
4491
+ }
4492
+ .tetrons-btn-secondary {
4493
+ background: #f3f3f3;
4494
+ color: #333333;
4495
+ font-size: 14px;
4496
+ font-weight: 500;
4497
+ border: 1px solid #d0d0d0;
4498
+ padding: 10px 18px;
4499
+ border-radius: 6px;
4500
+ cursor: pointer;
4501
+ transition: background 0.2s ease, border-color 0.2s ease;
4502
+ }
4503
+ .tetrons-btn-secondary:hover:not(:disabled) {
4504
+ background: #e8e8e8;
4505
+ border-color: #bababa;
4506
+ }
4507
+ .tetrons-btn-secondary:active:not(:disabled) {
4508
+ background: #dddddd;
4509
+ border-color: #b0b0b0;
4510
+ }
4511
+ .tetrons-btn-secondary:disabled {
4512
+ background: #f3f3f3;
4513
+ border-color: #e0e0e0;
4514
+ color: #999999;
4515
+ cursor: not-allowed;
4516
+ opacity: 0.6;
4517
+ }
4518
+ @media (max-width: 480px) {
4519
+ .tetrons-btn-primary,
4520
+ .tetrons-btn-secondary {
4521
+ width: 100%;
4522
+ text-align: center;
4523
+ }
4524
+ }
4525
+ .help-modal {
4526
+ width: 820px;
4527
+ height: max-content;
4528
+ display: flex;
4529
+ flex-direction: column;
4530
+ border-radius: 10px;
4531
+ background: #fff;
4532
+ max-width: 95%;
4533
+ max-height: 95%;
4534
+ overflow: hidden;
4535
+ padding-bottom: 10px;
4536
+ }
4537
+ .help-modal-header {
4538
+ display: flex;
4539
+ justify-content: space-between;
4540
+ align-items: center;
4541
+ padding: 20px;
4542
+ border-bottom: 1px solid #ddd;
4543
+ }
4544
+ .help-modal-close {
4545
+ background: transparent;
4546
+ border: none;
4547
+ font-size: 22px;
4548
+ cursor: pointer;
4549
+ }
4550
+ .help-modal-body {
4551
+ display: flex;
4552
+ flex: 1;
4553
+ overflow: hidden;
4554
+ }
4555
+ .help-tabs {
4556
+ width: 220px;
4557
+ border-right: 1px solid #ddd;
4558
+ display: flex;
4559
+ flex-direction: column;
4560
+ background: #fafafa;
4561
+ padding: 12px 0;
4562
+ overflow-y: auto;
4563
+ }
4564
+ .help-tab-item {
4565
+ padding: 14px 20px;
4566
+ cursor: pointer;
4567
+ font-size: 15px;
4568
+ border-radius: 6px;
4569
+ margin: 3px 10px;
4570
+ transition: background 0.15s ease;
4571
+ white-space: nowrap;
4572
+ }
4573
+ .help-tab-item:hover {
4574
+ background: #e6e6e6;
4575
+ }
4576
+ .help-tab-item.active {
4577
+ background: #007bff;
4578
+ color: #fff;
4579
+ }
4580
+ .help-content-area {
4581
+ flex: 1;
4582
+ padding: 24px 28px;
4583
+ overflow-y: auto;
4584
+ line-height: 1.6;
4585
+ font-size: 15px;
4586
+ }
4587
+ .help-content-area h3 {
4588
+ margin-top: 0;
4589
+ margin-bottom: 18px;
4590
+ font-size: 22px;
4591
+ }
4592
+ .help-content-area h4 {
4593
+ margin-top: 20px;
4594
+ margin-bottom: 10px;
4595
+ font-size: 18px;
4596
+ }
4597
+ .help-content-area ul,
4598
+ .help-content-area ol {
4599
+ margin-left: 20px;
4600
+ margin-bottom: 14px;
4601
+ }
4602
+ .help-content-area li {
4603
+ margin-bottom: 6px;
4604
+ }
4605
+ @media (max-width: 992px) {
4606
+ .help-modal {
4607
+ width: 90%;
4608
+ height: 75%;
4609
+ }
4610
+ .help-tabs {
4611
+ width: 180px;
4612
+ }
4613
+ .help-tab-item {
4614
+ font-size: 14px;
4615
+ padding: 12px 16px;
4616
+ }
4617
+ .help-content-area {
4618
+ padding: 20px;
4619
+ }
4620
+ }
4621
+ @media (max-width: 768px) {
4622
+ .help-modal {
4623
+ width: 96%;
4624
+ height: 90%;
4625
+ }
4626
+ .help-modal-body {
4627
+ flex-direction: column;
4628
+ }
4629
+ .help-tabs {
4630
+ width: 100%;
4631
+ height: auto;
4632
+ border-right: none;
4633
+ border-bottom: 1px solid #ddd;
4634
+ flex-direction: row;
4635
+ overflow-x: auto;
4636
+ white-space: nowrap;
4637
+ padding: 10px 10px;
4638
+ gap: 8px;
4639
+ }
4640
+ .help-tab-item {
4641
+ margin: 0 4px;
4642
+ padding: 10px 14px;
4643
+ border-radius: 4px;
4644
+ display: inline-block;
4645
+ font-size: 14px;
4646
+ }
4647
+ .help-content-area {
4648
+ padding: 18px;
4649
+ }
4650
+ }
4651
+ @media (max-width: 480px) {
4652
+ .help-modal {
4653
+ width: 100%;
4654
+ height: 100%;
4655
+ border-radius: 0;
4656
+ }
4657
+ .help-modal-header {
4658
+ padding: 14px;
4659
+ }
4660
+ .help-tab-item {
4661
+ font-size: 13px;
4662
+ padding: 8px 12px;
4663
+ }
4664
+ .help-content-area {
4665
+ padding: 14px;
4666
+ }
4667
+ .ug-header,
4668
+ .faq-header {
4669
+ padding: 10px 0;
4670
+ }
4671
+ .ug-content,
4672
+ .faq-content {
4673
+ padding: 8px 0 14px 6px;
4674
+ }
4675
+ .ug-header h4,
4676
+ .faq-header h4 {
4677
+ font-size: 16px;
4678
+ }
4679
+ }
4680
+ @media (max-width: 360px) {
4681
+ .help-tab-item {
4682
+ font-size: 12px;
4683
+ padding: 6px 10px;
4684
+ }
4685
+ .help-content-area {
4686
+ padding: 10px;
4687
+ font-size: 14px;
4688
+ }
4689
+ .ug-content,
4690
+ .faq-content {
4691
+ padding-left: 4px !important;
4692
+ }
4693
+ }
4694
+ .user-guide-container {
4695
+ padding: 4px;
4696
+ }
4697
+ .ug-section {
4698
+ border-bottom: 1px solid #e4e4e4;
4699
+ padding: 8px 0;
4700
+ }
4701
+ .ug-header {
4702
+ display: flex;
4703
+ justify-content: space-between;
4704
+ align-items: center;
4705
+ padding: 12px 0;
4706
+ cursor: pointer;
4707
+ }
4708
+ .ug-header h4 {
4709
+ margin: 0;
4710
+ font-size: 17px;
4711
+ }
4712
+ .ug-arrow {
4713
+ font-size: 16px;
4714
+ opacity: 0.6;
4715
+ }
4716
+ .ug-content {
4717
+ padding: 10px 0 16px 10px;
4718
+ animation: fadeIn 0.2s ease-in-out;
4719
+ }
4720
+ .ug-content h5 {
4721
+ margin-top: 12px;
4722
+ margin-bottom: 6px;
4723
+ font-size: 15px;
4724
+ font-weight: 600;
4725
+ }
4726
+ .ug-content ul,
4727
+ .ug-content ol {
4728
+ margin-left: 18px;
4729
+ margin-bottom: 12px;
4730
+ }
4731
+ .faq-container {
4732
+ padding: 4px;
4733
+ }
4734
+ .faq-section {
4735
+ border-bottom: 1px solid #e4e4e4;
4736
+ padding: 8px 0;
4737
+ }
4738
+ .faq-header {
4739
+ display: flex;
4740
+ justify-content: space-between;
4741
+ align-items: center;
4742
+ padding: 12px 0;
4743
+ cursor: pointer;
4744
+ }
4745
+ .faq-header h4 {
4746
+ margin: 0;
4747
+ font-size: 17px;
4748
+ }
4749
+ .faq-arrow {
4750
+ font-size: 16px;
4751
+ opacity: 0.6;
4752
+ }
4753
+ .faq-content {
4754
+ padding: 10px 0 16px 10px;
4755
+ animation: fadeIn 0.2s ease-in-out;
4756
+ }
4757
+ .faq-content ul,
4758
+ .faq-content ol {
4759
+ margin-left: 18px;
4760
+ margin-bottom: 12px;
4761
+ }
4762
+ .faq-content li {
4763
+ margin-bottom: 6px;
4764
+ }
4765
+ @keyframes fadeIn {
4766
+ from {
4767
+ opacity: 0;
4768
+ transform: translateY(-2px);
4769
+ }
4770
+ to {
4771
+ opacity: 1;
4772
+ transform: translateY(0);
4773
+ }
4774
+ }
4775
+ .version-info-container {
4776
+ padding: 8px;
4777
+ line-height: 1.6;
4778
+ font-size: 15px;
4779
+ }
4780
+ .version-info-container h3 {
4781
+ margin-top: 0;
4782
+ margin-bottom: 16px;
4783
+ font-size: 22px;
4784
+ }
4785
+ .version-info-container p {
4786
+ margin-bottom: 14px;
4787
+ }
4788
+ .version-info-container ul {
4789
+ margin-left: 20px;
4790
+ margin-bottom: 16px;
4791
+ }
4792
+ .version-info-container li {
4793
+ margin-bottom: 8px;
4794
+ }
4795
+ .version-info-container strong {
4796
+ font-weight: 600;
4797
+ }
4798
+ @media (max-width: 992px) {
4799
+ .version-info-container {
4800
+ padding: 8px 6px;
4801
+ }
4802
+ .version-info-container h3 {
4803
+ font-size: 20px;
4804
+ margin-bottom: 14px;
4805
+ }
4806
+ .version-info-container li {
4807
+ margin-bottom: 7px;
4808
+ }
4809
+ }
4810
+ @media (max-width: 768px) {
4811
+ .version-info-container {
4812
+ padding: 12px;
4813
+ font-size: 14px;
4814
+ }
4815
+ .version-info-container h3 {
4816
+ font-size: 19px;
4817
+ }
4818
+ .version-info-container ul {
4819
+ margin-left: 16px;
4820
+ }
4821
+ }
4822
+ @media (max-width: 480px) {
4823
+ .version-info-container {
4824
+ padding: 10px;
4825
+ font-size: 14px;
4826
+ }
4827
+ .version-info-container h3 {
4828
+ font-size: 18px;
4829
+ margin-bottom: 12px;
4830
+ }
4831
+ .version-info-container ul {
4832
+ margin-left: 14px;
4833
+ }
4834
+ .version-info-container li {
4835
+ margin-bottom: 6px;
4836
+ }
4837
+ }
4838
+ @media (max-width: 360px) {
4839
+ .version-info-container {
4840
+ padding: 8px;
4841
+ font-size: 13px;
4842
+ }
4843
+ .version-info-container h3 {
4844
+ font-size: 17px;
4845
+ }
4846
+ .version-info-container ul {
4847
+ margin-left: 12px;
4848
+ }
4849
+ }
4850
+ .tetrons-editor__main-area,
4851
+ .tetrons-editor__splitview {
4852
+ overflow: visible !important;
4853
+ }
4854
+ .tetrons-toolbar__wrapper,
4855
+ .tetrons-editor__third-row,
4856
+ .tetrons-toolbar__basic {
4857
+ position: relative !important;
4858
+ z-index: 500 !important;
4859
+ }
4860
+ .tetrons-editor__area,
4861
+ .tetrons-editor__area .ProseMirror {
4862
+ z-index: 1 !important;
4863
+ position: relative !important;
4864
+ }
4865
+ .tetrons-editor__modal-overlay,
4866
+ .ai-modal-overlay,
4867
+ .voice-modal-modalOverlay,
4868
+ .math-equation-modalOverlay,
4869
+ .modal-backdrop,
4870
+ .insert-group-modalBackdrop,
4871
+ .preview-modal-overlay,
4872
+ .confirm-modal-overlay,
4873
+ .tetrons-modal-overlay {
4874
+ z-index: 9999999999 !important;
4875
+ }
4876
+ .tetrons-editor__modal-content,
4877
+ .ai-modal-modal,
4878
+ .voice-modal-modalContent,
4879
+ .math-equation-modalContent,
4880
+ .modal-modal,
4881
+ .insert-group-modal,
4882
+ .preview-modal-modal,
4883
+ .confirm-modal-modal,
4884
+ .tetrons-modal.image-to-text-modal,
4885
+ .help-modal {
4886
+ z-index: 9999999999 !important;
4887
+ position: relative;
4888
+ }