PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.3
MxChat – AI Chatbot & Content Generation for WordPress v3.2.3
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
mxchat-basic / css / admin-content.css

admin-content.css in MxChat – AI Chatbot & Content Generation for WordPress 3.2.3, at css/admin-content.css

3,347 lines 74.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * MxChat Content Generator Styles
3 *
4 * @package MxChat
5 * @since 3.1.0
6 */
7
8 /* ─── Toolbar ───────────────────────────────────────────────────── */
9
10 .mxch-cg-toolbar {
11 display: flex;
12 align-items: center;
13 justify-content: space-between;
14 gap: 12px;
15 padding: 10px 16px;
16 background: var(--mxch-card-bg, #fff);
17 border: 1px solid var(--mxch-card-border, #e2e4e9);
18 border-radius: 10px;
19 margin-bottom: 16px;
20 flex-wrap: wrap;
21 }
22
23 .mxch-cg-toolbar-left {
24 display: flex;
25 align-items: center;
26 gap: 12px;
27 flex: 1 1 0;
28 min-width: 0;
29 overflow: visible;
30 }
31
32 .mxch-cg-toolbar-title {
33 font-size: 15px;
34 font-weight: 600;
35 color: var(--mxch-text-primary, #1a1a2e);
36 margin: 0;
37 overflow: hidden;
38 text-overflow: ellipsis;
39 white-space: nowrap;
40 }
41
42 .mxch-cg-toolbar-right {
43 display: flex;
44 align-items: center;
45 gap: 6px;
46 flex-shrink: 0;
47 }
48
49 /* ─── Generate Button (compact) ─────────────────────────────────── */
50
51 .mxch-cg-generate-btn {
52 display: inline-flex;
53 align-items: center;
54 justify-content: center;
55 gap: 6px;
56 padding: 8px 16px;
57 border: none;
58 border-radius: 8px;
59 background: var(--mxch-primary, #7873f5);
60 color: #fff;
61 font-size: 13px;
62 font-weight: 600;
63 cursor: pointer;
64 transition: all 0.2s;
65 white-space: nowrap;
66 flex-shrink: 0;
67 }
68
69 .mxch-cg-generate-btn:hover {
70 background: var(--mxch-primary-hover, #6863e5);
71 box-shadow: 0 2px 8px rgba(120, 115, 245, 0.3);
72 }
73
74 .mxch-cg-generate-btn:disabled {
75 opacity: 0.6;
76 cursor: not-allowed;
77 box-shadow: none;
78 }
79
80 .mxch-cg-generate-btn.mxch-cg-loading {
81 position: relative;
82 color: transparent;
83 }
84
85 .mxch-cg-generate-btn.mxch-cg-loading::after {
86 content: '';
87 position: absolute;
88 width: 18px;
89 height: 18px;
90 border: 2px solid rgba(255, 255, 255, 0.3);
91 border-top-color: #fff;
92 border-radius: 50%;
93 animation: mxch-spin 0.6s linear infinite;
94 }
95
96 .mxch-cg-generate-btn-full {
97 width: 100%;
98 padding: 12px 24px;
99 font-size: 14px;
100 }
101
102 @keyframes mxch-spin {
103 to { transform: rotate(360deg); }
104 }
105
106 /* ─── Action Buttons (toolbar) ──────────────────────────────────── */
107
108 .mxch-cg-action-btn {
109 display: inline-flex;
110 align-items: center;
111 gap: 4px;
112 padding: 6px 10px;
113 border: 1px solid var(--mxch-input-border, #d1d5db);
114 border-radius: 6px;
115 background: transparent;
116 color: var(--mxch-text-secondary, #64748b);
117 font-size: 12px;
118 text-decoration: none;
119 transition: all 0.2s;
120 cursor: pointer;
121 white-space: nowrap;
122 }
123
124 .mxch-cg-action-btn:hover {
125 border-color: var(--mxch-primary, #7873f5);
126 color: var(--mxch-primary, #7873f5);
127 text-decoration: none;
128 }
129
130 /* Status Badge (clickable dropdown trigger) */
131 .mxch-cg-status-badge {
132 display: inline-flex;
133 align-items: center;
134 gap: 4px;
135 padding: 2px 8px;
136 border: none;
137 border-radius: 4px;
138 font-size: 11px;
139 font-weight: 600;
140 text-transform: uppercase;
141 letter-spacing: 0.5px;
142 line-height: 1;
143 cursor: pointer;
144 transition: opacity 0.2s, box-shadow 0.2s;
145 flex-shrink: 0;
146 }
147
148 .mxch-cg-status-badge:hover {
149 opacity: 0.85;
150 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
151 }
152
153 .mxch-cg-badge-draft {
154 background: #fef3c7;
155 color: #92400e;
156 }
157
158 .mxch-cg-badge-publish {
159 background: #d1fae5;
160 color: #065f46;
161 }
162
163 .mxch-cg-badge-future {
164 background: #dbeafe;
165 color: #1e40af;
166 }
167
168 /* ── Status Dropdown ──────────────────────────────────── */
169
170 .mxch-cg-status-dropdown {
171 position: relative;
172 flex-shrink: 0;
173 }
174
175 .mxch-cg-status-chevron {
176 opacity: 0.6;
177 transition: transform 0.2s;
178 flex-shrink: 0;
179 }
180
181 .mxch-cg-status-dropdown.mxch-cg-dropdown-open .mxch-cg-status-chevron {
182 transform: rotate(180deg);
183 }
184
185 .mxch-cg-status-menu {
186 position: absolute;
187 top: calc(100% + 6px);
188 left: 0;
189 min-width: 160px;
190 background: var(--mxch-card-bg, #fff);
191 border: 1px solid var(--mxch-card-border, #e2e4e9);
192 border-radius: 8px;
193 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
194 z-index: 100060;
195 padding: 4px;
196 animation: mxch-dropdown-in 0.15s ease-out;
197 }
198
199 @keyframes mxch-dropdown-in {
200 from { opacity: 0; transform: translateY(-4px); }
201 to { opacity: 1; transform: translateY(0); }
202 }
203
204 .mxch-cg-status-option {
205 display: flex;
206 align-items: center;
207 gap: 8px;
208 width: 100%;
209 padding: 7px 10px;
210 border: none;
211 border-radius: 5px;
212 background: transparent;
213 color: var(--mxch-text-primary, #1a1a2e);
214 font-size: 12px;
215 font-weight: 500;
216 cursor: pointer;
217 text-align: left;
218 transition: background 0.15s;
219 }
220
221 .mxch-cg-status-option:hover {
222 background: #f1f5f9;
223 }
224
225 .mxch-cg-status-option.mxch-cg-status-active {
226 font-weight: 600;
227 background: #f8fafc;
228 }
229
230 .mxch-cg-status-dot {
231 width: 8px;
232 height: 8px;
233 border-radius: 50%;
234 flex-shrink: 0;
235 }
236
237 .mxch-cg-dot-draft {
238 background: #f59e0b;
239 }
240
241 .mxch-cg-dot-publish {
242 background: #10b981;
243 }
244
245 .mxch-cg-dot-future {
246 background: #3b82f6;
247 }
248
249 .mxch-cg-status-schedule-row {
250 display: flex;
251 align-items: center;
252 gap: 4px;
253 padding: 6px 10px 4px;
254 border-top: 1px solid var(--mxch-card-border, #e2e4e9);
255 margin-top: 4px;
256 }
257
258 .mxch-cg-status-schedule-input {
259 flex: 1;
260 font-size: 11px;
261 padding: 4px 6px;
262 min-width: 0;
263 }
264
265 .mxch-cg-status-schedule-confirm {
266 display: flex;
267 align-items: center;
268 justify-content: center;
269 width: 28px;
270 height: 28px;
271 border: none;
272 border-radius: 5px;
273 background: var(--mxch-primary, #7873f5);
274 color: #fff;
275 cursor: pointer;
276 flex-shrink: 0;
277 transition: background 0.15s;
278 }
279
280 .mxch-cg-status-schedule-confirm:hover {
281 background: var(--mxch-primary-hover, #6863e5);
282 }
283
284 .mxch-cg-status-badge.mxch-cg-status-updating {
285 pointer-events: none;
286 opacity: 0.6;
287 }
288
289 .mxch-cg-status-badge.mxch-cg-status-updating .mxch-cg-status-chevron {
290 animation: mxch-spin 0.6s linear infinite;
291 }
292
293 /* Viewport Toggle */
294 .mxch-cg-viewport-toggle {
295 display: flex;
296 background: #f1f5f9;
297 border-radius: 6px;
298 padding: 2px;
299 }
300
301 .mxch-cg-viewport-btn {
302 display: flex;
303 align-items: center;
304 justify-content: center;
305 width: 28px;
306 height: 28px;
307 border: none;
308 border-radius: 4px;
309 background: transparent;
310 color: var(--mxch-text-muted, #94a3b8);
311 cursor: pointer;
312 transition: all 0.2s;
313 }
314
315 .mxch-cg-viewport-btn.active {
316 background: #fff;
317 color: var(--mxch-primary, #7873f5);
318 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
319 }
320
321 /* ─── Full-Width Preview ────────────────────────────────────────── */
322
323 .mxch-cg-preview-wrap {
324 border: 1px solid var(--mxch-card-border, #e2e4e9);
325 border-radius: 10px;
326 overflow: hidden;
327 background: #f8f9fa;
328 position: relative;
329 }
330
331 .mxch-cg-preview-container {
332 width: 100%;
333 min-height: calc(100vh - 220px);
334 position: relative;
335 overflow: hidden;
336 background: #fff;
337 transition: max-width 0.3s ease;
338 }
339
340 .mxch-cg-preview-container.mxch-cg-viewport-mobile {
341 max-width: 375px;
342 margin: 0 auto;
343 min-height: 667px;
344 border-left: 1px solid var(--mxch-card-border, #e2e4e9);
345 border-right: 1px solid var(--mxch-card-border, #e2e4e9);
346 }
347
348 .mxch-cg-preview-iframe {
349 width: 1400px;
350 height: calc(100vh - 220px);
351 border: none;
352 display: block;
353 transform-origin: 0 0;
354 }
355
356 /* ─── Inline Generation Form ────────────────────────────────────── */
357
358 .mxch-cg-inline-form {
359 display: flex;
360 align-items: center;
361 justify-content: center;
362 min-height: calc(100vh - 220px);
363 padding: 40px 20px;
364 }
365
366 .mxch-cg-inline-form-inner {
367 width: 100%;
368 max-width: 560px;
369 background: var(--mxch-card-bg, #fff);
370 border: 1px solid var(--mxch-card-border, #e2e4e9);
371 border-radius: 14px;
372 padding: 28px 28px 24px;
373 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
374 animation: mxch-inline-form-in 0.3s ease-out;
375 }
376
377 @keyframes mxch-inline-form-in {
378 from { opacity: 0; transform: translateY(12px); }
379 to { opacity: 1; transform: translateY(0); }
380 }
381
382 .mxch-cg-inline-form-header {
383 display: flex;
384 align-items: center;
385 gap: 14px;
386 margin-bottom: 20px;
387 }
388
389 .mxch-cg-inline-form-header svg {
390 color: var(--mxch-primary, #7873f5);
391 opacity: 0.7;
392 flex-shrink: 0;
393 }
394
395 .mxch-cg-inline-form-header h3 {
396 font-size: 18px;
397 font-weight: 600;
398 color: var(--mxch-text-primary, #1a1a2e);
399 margin: 0 0 2px;
400 }
401
402 .mxch-cg-inline-form-header p {
403 font-size: 13px;
404 color: var(--mxch-text-muted, #94a3b8);
405 margin: 0;
406 }
407
408 .mxch-cg-inline-form.mxch-cg-form-collapsing {
409 animation: mxch-inline-form-out 0.3s ease-in forwards;
410 }
411
412 @keyframes mxch-inline-form-out {
413 from { opacity: 1; transform: translateY(0); }
414 to { opacity: 0; transform: translateY(-12px); }
415 }
416
417 /* Toolbar hidden when inline form is visible */
418 .mxch-cg-toolbar.mxch-cg-toolbar-minimal {
419 display: none;
420 }
421
422 /* Preview container transparent when form is showing */
423 .mxch-cg-preview-wrap.mxch-cg-preview-wrap-form {
424 border: none;
425 background: transparent;
426 }
427
428 /* ─── Generation Form ──────────────────────────────────────────── */
429
430 .mxch-cg-form {
431 display: flex;
432 flex-direction: column;
433 gap: 14px;
434 }
435
436 .mxch-cg-prompt {
437 width: 100%;
438 min-height: 80px;
439 padding: 12px 14px;
440 border: 1px solid var(--mxch-input-border, #d1d5db);
441 border-radius: 8px;
442 background: var(--mxch-input-bg, #fff);
443 color: var(--mxch-text-primary, #1a1a2e);
444 font-size: 14px;
445 line-height: 1.5;
446 resize: vertical;
447 transition: border-color 0.2s;
448 font-family: inherit;
449 }
450
451 .mxch-cg-prompt:focus {
452 outline: none;
453 border-color: var(--mxch-input-focus, #7873f5);
454 box-shadow: 0 0 0 3px var(--mxch-primary-light, rgba(120, 115, 245, 0.1));
455 }
456
457 .mxch-cg-options {
458 display: flex;
459 gap: 12px;
460 flex-wrap: wrap;
461 }
462
463 .mxch-cg-option {
464 flex: 1;
465 min-width: 120px;
466 }
467
468 .mxch-cg-option-label {
469 display: block;
470 font-size: 12px;
471 font-weight: 500;
472 color: var(--mxch-text-secondary, #64748b);
473 margin-bottom: 4px;
474 }
475
476 .mxch-cg-select,
477 .mxch-cg-input {
478 width: 100%;
479 padding: 8px 12px;
480 border: 1px solid var(--mxch-input-border, #d1d5db);
481 border-radius: 6px;
482 background: var(--mxch-input-bg, #fff);
483 color: var(--mxch-text-primary, #1a1a2e);
484 font-size: 13px;
485 transition: border-color 0.2s;
486 }
487
488 .mxch-cg-select:focus,
489 .mxch-cg-input:focus {
490 outline: none;
491 border-color: var(--mxch-input-focus, #7873f5);
492 box-shadow: 0 0 0 3px var(--mxch-primary-light, rgba(120, 115, 245, 0.1));
493 }
494
495 /* ─── Progress Bar (inside modal) ───────────────────────────────── */
496
497 .mxch-cg-progress {
498 margin-top: 14px;
499 padding-top: 14px;
500 border-top: 1px solid var(--mxch-card-border, #e2e4e9);
501 }
502
503 .mxch-cg-progress-bar {
504 width: 100%;
505 height: 6px;
506 background: #e2e8f0;
507 border-radius: 3px;
508 overflow: hidden;
509 margin-bottom: 8px;
510 }
511
512 .mxch-cg-progress-fill {
513 height: 100%;
514 background: var(--mxch-primary, #7873f5);
515 border-radius: 3px;
516 transition: width 0.4s ease;
517 }
518
519 .mxch-cg-progress-text {
520 font-size: 13px;
521 color: var(--mxch-text-secondary, #64748b);
522 margin: 0;
523 }
524
525 /* ─── Mini Chat Panel (bottom overlay) ──────────────────────────── */
526
527 .mxch-cg-chat-panel {
528 position: fixed;
529 bottom: 20px;
530 right: 20px;
531 width: 380px;
532 max-height: 420px;
533 background: var(--mxch-card-bg, #fff);
534 border: 1px solid var(--mxch-card-border, #e2e4e9);
535 border-radius: 14px;
536 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
537 z-index: 100040;
538 display: flex;
539 flex-direction: column;
540 animation: mxch-chat-in 0.2s ease-out;
541 }
542
543 @keyframes mxch-chat-in {
544 from {
545 opacity: 0;
546 transform: translateY(16px);
547 }
548 to {
549 opacity: 1;
550 transform: translateY(0);
551 }
552 }
553
554 .mxch-cg-chat-panel-header {
555 display: flex;
556 align-items: center;
557 justify-content: space-between;
558 padding: 12px 16px;
559 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
560 flex-shrink: 0;
561 }
562
563 .mxch-cg-chat-panel-title {
564 font-size: 14px;
565 font-weight: 600;
566 color: var(--mxch-text-primary, #1a1a2e);
567 }
568
569 .mxch-cg-chat-panel-close {
570 display: flex;
571 align-items: center;
572 justify-content: center;
573 width: 28px;
574 height: 28px;
575 border: none;
576 border-radius: 6px;
577 background: transparent;
578 color: var(--mxch-text-muted, #94a3b8);
579 cursor: pointer;
580 transition: all 0.15s;
581 }
582
583 .mxch-cg-chat-panel-close:hover {
584 background: #f1f5f9;
585 color: var(--mxch-text-primary, #1a1a2e);
586 }
587
588 .mxch-cg-chat-messages {
589 flex: 1;
590 overflow-y: auto;
591 display: flex;
592 flex-direction: column;
593 gap: 8px;
594 padding: 12px 16px;
595 min-height: 120px;
596 max-height: 260px;
597 }
598
599 .mxch-cg-chat-messages::-webkit-scrollbar {
600 width: 4px;
601 }
602
603 .mxch-cg-chat-messages::-webkit-scrollbar-thumb {
604 background: #cbd5e1;
605 border-radius: 2px;
606 }
607
608 .mxch-cg-chat-msg {
609 display: flex;
610 }
611
612 .mxch-cg-chat-user {
613 justify-content: flex-end;
614 }
615
616 .mxch-cg-chat-assistant {
617 justify-content: flex-start;
618 }
619
620 .mxch-cg-chat-bubble {
621 max-width: 85%;
622 padding: 8px 12px;
623 border-radius: 12px;
624 font-size: 13px;
625 line-height: 1.5;
626 word-break: break-word;
627 }
628
629 .mxch-cg-chat-user .mxch-cg-chat-bubble {
630 background: var(--mxch-primary, #7873f5);
631 color: #fff;
632 border-bottom-right-radius: 4px;
633 }
634
635 .mxch-cg-chat-assistant .mxch-cg-chat-bubble {
636 background: #f1f5f9;
637 color: var(--mxch-text-primary, #1a1a2e);
638 border-bottom-left-radius: 4px;
639 }
640
641 /* Loading dots */
642 .mxch-cg-chat-loading {
643 display: flex;
644 align-items: center;
645 gap: 4px;
646 padding: 12px 16px;
647 }
648
649 .mxch-cg-chat-loading span {
650 width: 6px;
651 height: 6px;
652 background: #94a3b8;
653 border-radius: 50%;
654 animation: mxch-bounce 1.4s infinite both;
655 }
656
657 .mxch-cg-chat-loading span:nth-child(2) {
658 animation-delay: 0.16s;
659 }
660
661 .mxch-cg-chat-loading span:nth-child(3) {
662 animation-delay: 0.32s;
663 }
664
665 @keyframes mxch-bounce {
666 0%, 80%, 100% { transform: scale(0); }
667 40% { transform: scale(1); }
668 }
669
670 /* Chat Input */
671 .mxch-cg-chat-input-wrap {
672 display: flex;
673 gap: 8px;
674 align-items: flex-end;
675 padding: 12px 16px;
676 border-top: 1px solid var(--mxch-card-border, #e2e4e9);
677 flex-shrink: 0;
678 }
679
680 .mxch-cg-chat-input {
681 flex: 1;
682 padding: 8px 12px;
683 border: 1px solid var(--mxch-input-border, #d1d5db);
684 border-radius: 16px;
685 background: var(--mxch-input-bg, #fff);
686 color: var(--mxch-text-primary, #1a1a2e);
687 font-size: 13px;
688 font-family: inherit;
689 outline: none;
690 transition: border-color 0.2s;
691 resize: none;
692 overflow-y: auto;
693 max-height: 150px;
694 line-height: 1.4;
695 }
696
697 .mxch-cg-chat-input:focus {
698 border-color: var(--mxch-input-focus, #7873f5);
699 }
700
701 .mxch-cg-chat-send {
702 display: flex;
703 align-items: center;
704 justify-content: center;
705 width: 34px;
706 height: 34px;
707 border: none;
708 border-radius: 50%;
709 background: var(--mxch-primary, #7873f5);
710 color: #fff;
711 cursor: pointer;
712 transition: all 0.2s;
713 flex-shrink: 0;
714 }
715
716 .mxch-cg-chat-send:hover:not(:disabled) {
717 background: var(--mxch-primary-hover, #6863e5);
718 }
719
720 .mxch-cg-chat-send:disabled {
721 opacity: 0.4;
722 cursor: not-allowed;
723 }
724
725 /* ─── Notices ────────────────────────────────────────────────────── */
726
727 .mxch-cg-notice {
728 padding: 10px 14px;
729 border-radius: 6px;
730 font-size: 13px;
731 margin-bottom: 12px;
732 }
733
734 .mxch-cg-notice-error {
735 background: #fef2f2;
736 color: #991b1b;
737 border: 1px solid #fecaca;
738 }
739
740 .mxch-cg-notice-success {
741 background: #f0fdf4;
742 color: #166534;
743 border: 1px solid #bbf7d0;
744 }
745
746 /* ─── Save Indicators ────────────────────────────────────────────── */
747
748 .mxch-field-label.mxch-saving::after,
749 .mxch-toggle-label.mxch-saving::after {
750 content: '';
751 display: inline-block;
752 width: 12px;
753 height: 12px;
754 margin-left: 6px;
755 border: 2px solid #e5e7eb;
756 border-top-color: var(--mxch-success, #10b981);
757 border-radius: 50%;
758 animation: mxch-spin 0.6s linear infinite;
759 vertical-align: middle;
760 }
761
762 .mxch-field-label.mxch-saved::after,
763 .mxch-toggle-label.mxch-saved::after {
764 content: ' \2713';
765 color: var(--mxch-success, #10b981);
766 font-weight: bold;
767 }
768
769 /* ─── Responsive ─────────────────────────────────────────────────── */
770
771 @media (max-width: 782px) {
772 .mxch-cg-toolbar {
773 flex-direction: column;
774 align-items: flex-start;
775 }
776
777 .mxch-cg-toolbar-right {
778 width: 100%;
779 flex-wrap: wrap;
780 }
781
782 .mxch-cg-status-menu {
783 left: auto;
784 right: 0;
785 }
786
787 .mxch-cg-options {
788 flex-direction: column;
789 }
790
791 .mxch-cg-chat-panel {
792 left: 10px;
793 right: 10px;
794 width: auto;
795 bottom: 10px;
796 max-height: calc(100vh - 60px);
797 }
798
799 .mxch-cg-chat-panel.mxch-cg-chat-panel--with-images {
800 width: auto;
801 flex-direction: column;
802 max-height: calc(100vh - 60px);
803 overflow: hidden;
804 }
805
806 .mxch-cg-images-col {
807 width: 100%;
808 max-height: 50vh;
809 min-height: 260px;
810 border-right: none;
811 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
812 overflow-y: auto;
813 }
814
815 .mxch-cg-images-grid {
816 grid-template-columns: repeat(2, 1fr);
817 gap: 8px;
818 padding: 8px;
819 }
820
821 .mxch-cg-left-tabs {
822 flex-shrink: 0;
823 }
824
825 .mxch-seo-checklist {
826 max-height: none;
827 overflow-y: visible;
828 }
829
830 .mxch-seo-check-label {
831 font-size: 12px;
832 }
833
834 .mxch-seo-check-detail {
835 font-size: 11px;
836 }
837
838 .mxch-seo-check {
839 padding: 8px 12px;
840 }
841
842 .mxch-cg-chat-messages {
843 max-height: 180px;
844 }
845
846 .mxch-cg-inline-form {
847 padding: 20px 12px;
848 min-height: auto;
849 }
850
851 .mxch-cg-inline-form-inner {
852 padding: 20px 16px 18px;
853 }
854 }
855
856 /* ─── Pro Feature Lock Styles ──────────────────────────────────── */
857
858 .mxch-cg-pro-badge {
859 display: inline-flex;
860 align-items: center;
861 padding: 2px 8px;
862 margin-left: 8px;
863 border-radius: 20px;
864 font-size: 10px;
865 font-weight: 700;
866 text-transform: uppercase;
867 letter-spacing: 0.5px;
868 background: linear-gradient(135deg, rgba(120, 115, 245, 0.15), rgba(168, 139, 250, 0.15));
869 color: var(--mxch-primary, #7873f5);
870 line-height: 1;
871 vertical-align: middle;
872 }
873
874 .mxch-cg-pro-field.mxch-cg-pro-locked .mxch-toggle-switch {
875 opacity: 0.4;
876 cursor: not-allowed;
877 }
878
879 .mxch-cg-pro-field.mxch-cg-pro-locked .mxch-toggle {
880 cursor: default;
881 }
882
883 .mxch-cg-pro-field.mxch-cg-pro-locked .mxch-field-description {
884 opacity: 0.6;
885 }
886
887 .mxch-cg-pro-upgrade-link {
888 display: inline-flex;
889 align-items: center;
890 gap: 4px;
891 font-size: 12px;
892 color: var(--mxch-primary, #7873f5);
893 text-decoration: none;
894 margin-top: 4px;
895 transition: color 0.2s;
896 }
897
898 .mxch-cg-pro-upgrade-link:hover {
899 color: var(--mxch-primary-hover, #6863e5);
900 text-decoration: underline;
901 }
902
903 /* ─── Image Management Panel (Two-Column Chat) ────────────────── */
904
905 .mxch-cg-chat-panel.mxch-cg-chat-panel--with-images {
906 width: 760px;
907 max-height: 480px;
908 flex-direction: row;
909 }
910
911 .mxch-cg-images-col {
912 width: 280px;
913 flex-shrink: 0;
914 display: flex;
915 flex-direction: column;
916 border-right: 1px solid var(--mxch-card-border, #e2e4e9);
917 position: relative;
918 overflow: hidden;
919 }
920
921 /* ── Left Column Tabs ──────────────────────────────────── */
922
923 .mxch-cg-left-tabs {
924 display: flex;
925 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
926 flex-shrink: 0;
927 }
928
929 .mxch-cg-left-tab {
930 flex: 1;
931 display: flex;
932 align-items: center;
933 justify-content: center;
934 gap: 4px;
935 padding: 10px 8px;
936 border: none;
937 background: transparent;
938 color: var(--mxch-text-muted, #94a3b8);
939 font-size: 12px;
940 font-weight: 500;
941 cursor: pointer;
942 transition: all 0.15s;
943 position: relative;
944 }
945
946 .mxch-cg-left-tab:hover {
947 color: var(--mxch-text-secondary, #64748b);
948 background: rgba(0, 0, 0, 0.03);
949 }
950
951 .mxch-cg-left-tab.active {
952 color: var(--mxch-primary, #7873f5);
953 font-weight: 600;
954 }
955
956 .mxch-cg-left-tab.active::after {
957 content: '';
958 position: absolute;
959 bottom: -1px;
960 left: 12px;
961 right: 12px;
962 height: 2px;
963 background: var(--mxch-primary, #7873f5);
964 border-radius: 1px;
965 }
966
967 .mxch-cg-left-tab .mxch-cg-pro-badge {
968 margin-left: 2px;
969 font-size: 8px;
970 padding: 1px 4px;
971 }
972
973 .mxch-cg-left-tab.mxch-cg-tab-flash {
974 animation: mxch-tab-flash 0.6s ease 3;
975 }
976
977 @keyframes mxch-tab-flash {
978 0%, 100% { color: var(--mxch-primary, #7873f5); }
979 50% { color: #10b981; }
980 }
981
982 .mxch-cg-left-panel {
983 display: none;
984 flex: 1;
985 overflow-y: auto;
986 }
987
988 .mxch-cg-left-panel.active {
989 display: flex;
990 flex-direction: column;
991 }
992
993 /* ── Meta/SEO Form ─────────────────────────────────────── */
994
995 .mxch-cg-meta-form {
996 display: flex;
997 flex-direction: column;
998 gap: 10px;
999 padding: 12px;
1000 overflow-y: auto;
1001 flex: 1;
1002 }
1003
1004 .mxch-cg-meta-field {
1005 display: flex;
1006 flex-direction: column;
1007 gap: 3px;
1008 }
1009
1010 .mxch-cg-meta-field label {
1011 font-size: 11px;
1012 font-weight: 600;
1013 color: var(--mxch-text-secondary, #64748b);
1014 text-transform: uppercase;
1015 letter-spacing: 0.3px;
1016 }
1017
1018 .mxch-cg-meta-input {
1019 width: 100%;
1020 padding: 6px 8px;
1021 border: 1px solid var(--mxch-input-border, #d1d5db);
1022 border-radius: 5px;
1023 background: var(--mxch-input-bg, #fff);
1024 color: var(--mxch-text-primary, #1a1a2e);
1025 font-size: 12px;
1026 line-height: 1.4;
1027 transition: border-color 0.2s;
1028 font-family: inherit;
1029 resize: vertical;
1030 box-sizing: border-box;
1031 }
1032
1033 .mxch-cg-meta-input:focus {
1034 outline: none;
1035 border-color: var(--mxch-input-focus, #7873f5);
1036 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
1037 }
1038
1039 .mxch-cg-meta-input:disabled,
1040 .mxch-cg-meta-input[readonly] {
1041 opacity: 0.5;
1042 cursor: not-allowed;
1043 background: #f8fafc;
1044 }
1045
1046 textarea.mxch-cg-meta-input {
1047 min-height: 48px;
1048 }
1049
1050 .mxch-cg-meta-charcount {
1051 font-size: 10px;
1052 color: var(--mxch-text-muted, #94a3b8);
1053 text-align: right;
1054 }
1055
1056 .mxch-cg-meta-charcount-over {
1057 color: #ef4444;
1058 font-weight: 600;
1059 }
1060
1061 .mxch-cg-meta-lock-overlay {
1062 position: absolute;
1063 inset: 0;
1064 display: flex;
1065 flex-direction: column;
1066 align-items: center;
1067 justify-content: center;
1068 gap: 6px;
1069 background: rgba(0, 0, 0, 0.04);
1070 z-index: 2;
1071 pointer-events: none;
1072 }
1073
1074 .mxch-cg-meta-lock-overlay svg {
1075 opacity: 0.3;
1076 }
1077
1078 .mxch-cg-meta-lock-overlay span {
1079 font-size: 11px;
1080 color: var(--mxch-primary, #7873f5);
1081 font-weight: 500;
1082 }
1083
1084 .mxch-cg-meta-field label.mxch-saving::after {
1085 content: '';
1086 display: inline-block;
1087 width: 10px;
1088 height: 10px;
1089 margin-left: 4px;
1090 border: 2px solid #e5e7eb;
1091 border-top-color: var(--mxch-success, #10b981);
1092 border-radius: 50%;
1093 animation: mxch-spin 0.6s linear infinite;
1094 vertical-align: middle;
1095 }
1096
1097 .mxch-cg-meta-field label.mxch-saved::after {
1098 content: ' \2713';
1099 color: var(--mxch-success, #10b981);
1100 font-weight: bold;
1101 }
1102
1103 /* Legacy header (kept for backward compat if needed) */
1104 .mxch-cg-images-header {
1105 display: flex;
1106 align-items: center;
1107 justify-content: space-between;
1108 padding: 12px 14px;
1109 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
1110 flex-shrink: 0;
1111 }
1112
1113 .mxch-cg-images-title {
1114 font-size: 13px;
1115 font-weight: 600;
1116 color: var(--mxch-text-primary, #1a1a2e);
1117 display: flex;
1118 align-items: center;
1119 }
1120
1121 .mxch-cg-images-grid {
1122 flex: 1;
1123 display: grid;
1124 grid-template-columns: 1fr 1fr;
1125 gap: 8px;
1126 padding: 12px;
1127 overflow-y: auto;
1128 position: relative;
1129 }
1130
1131 .mxch-cg-image-thumb {
1132 aspect-ratio: 4 / 3;
1133 border-radius: 8px;
1134 position: relative;
1135 background: var(--mxch-input-bg, #fff);
1136 border: 1px solid var(--mxch-card-border, #e2e4e9);
1137 }
1138
1139 .mxch-cg-image-thumb img {
1140 width: 100%;
1141 height: 100%;
1142 object-fit: cover;
1143 }
1144
1145 .mxch-cg-image-placeholder {
1146 display: flex;
1147 align-items: center;
1148 justify-content: center;
1149 background: #f1f5f9;
1150 color: #cbd5e1;
1151 }
1152
1153 /* Empty state (before generation) */
1154 .mxch-cg-images-empty {
1155 grid-column: 1 / -1;
1156 display: flex;
1157 flex-direction: column;
1158 align-items: center;
1159 justify-content: center;
1160 gap: 8px;
1161 padding: 24px 12px;
1162 color: var(--mxch-text-muted, #94a3b8);
1163 text-align: center;
1164 }
1165
1166 .mxch-cg-images-empty svg {
1167 opacity: 0.5;
1168 }
1169
1170 .mxch-cg-images-empty span {
1171 font-size: 11px;
1172 line-height: 1.4;
1173 }
1174
1175 /* Hover actions on images */
1176 .mxch-cg-image-actions {
1177 position: absolute;
1178 bottom: 0;
1179 left: 0;
1180 right: 0;
1181 display: flex;
1182 gap: 4px;
1183 padding: 6px;
1184 background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
1185 opacity: 0;
1186 transition: opacity 0.2s;
1187 }
1188
1189 .mxch-cg-image-thumb:hover .mxch-cg-image-actions {
1190 opacity: 1;
1191 }
1192
1193 .mxch-cg-image-action-btn {
1194 flex: 1;
1195 padding: 5px 4px;
1196 border: none;
1197 border-radius: 4px;
1198 background: rgba(255, 255, 255, 0.9);
1199 color: #1a1a2e;
1200 font-size: 10px;
1201 font-weight: 500;
1202 cursor: pointer;
1203 display: flex;
1204 align-items: center;
1205 justify-content: center;
1206 gap: 3px;
1207 transition: background 0.15s;
1208 line-height: 1;
1209 }
1210
1211 .mxch-cg-image-action-btn:hover {
1212 background: #fff;
1213 }
1214
1215 /* Locked action buttons */
1216 .mxch-cg-image-actions-locked .mxch-cg-image-action-btn {
1217 cursor: not-allowed;
1218 opacity: 0.7;
1219 }
1220
1221 .mxch-cg-image-actions-locked .mxch-cg-image-action-btn:hover {
1222 background: rgba(255, 255, 255, 0.9);
1223 }
1224
1225 /* Per-image PRO lock badge (top-right corner) */
1226 .mxch-cg-image-lock-badge {
1227 position: absolute;
1228 top: 4px;
1229 right: 4px;
1230 display: flex;
1231 align-items: center;
1232 gap: 3px;
1233 padding: 2px 6px;
1234 background: rgba(120, 115, 245, 0.85);
1235 color: #fff;
1236 border-radius: 4px;
1237 font-size: 8px;
1238 font-weight: 700;
1239 letter-spacing: 0.5px;
1240 text-transform: uppercase;
1241 line-height: 1;
1242 z-index: 2;
1243 backdrop-filter: blur(4px);
1244 }
1245
1246 .mxch-cg-image-lock-badge svg {
1247 flex-shrink: 0;
1248 }
1249
1250 /* Image loading state (used by add-on during upload/regenerate) */
1251 .mxch-cg-image-thumb.mxch-cg-image-loading {
1252 position: relative;
1253 pointer-events: none;
1254 }
1255 .mxch-cg-image-thumb.mxch-cg-image-loading::after {
1256 content: '';
1257 position: absolute;
1258 inset: 0;
1259 background: rgba(0, 0, 0, 0.5);
1260 border-radius: 6px;
1261 z-index: 10;
1262 }
1263 .mxch-cg-image-thumb.mxch-cg-image-loading::before {
1264 content: '';
1265 position: absolute;
1266 top: 50%;
1267 left: 50%;
1268 width: 24px;
1269 height: 24px;
1270 margin: -12px 0 0 -12px;
1271 border: 3px solid rgba(255, 255, 255, 0.3);
1272 border-top-color: #fff;
1273 border-radius: 50%;
1274 z-index: 11;
1275 animation: mxch-spin 0.8s linear infinite;
1276 }
1277 @keyframes mxch-spin {
1278 to { transform: rotate(360deg); }
1279 }
1280
1281 /* Image selected state (regen mode) */
1282 .mxch-cg-image-thumb.mxch-cg-image-selected {
1283 outline: 2px solid #7873f5;
1284 outline-offset: -2px;
1285 border-radius: 6px;
1286 box-shadow: 0 0 0 4px rgba(120, 115, 245, 0.25);
1287 }
1288
1289 /* Regen bar — sits above chat input when an image is selected for regeneration */
1290 .mxch-cg-regen-bar {
1291 display: flex;
1292 align-items: center;
1293 gap: 10px;
1294 padding: 8px 12px;
1295 background: rgba(120, 115, 245, 0.1);
1296 border-top: 1px solid rgba(120, 115, 245, 0.3);
1297 animation: mxch-regen-bar-in 0.2s ease;
1298 }
1299 @keyframes mxch-regen-bar-in {
1300 from { opacity: 0; transform: translateY(6px); }
1301 to { opacity: 1; transform: translateY(0); }
1302 }
1303 .mxch-cg-regen-bar-thumb {
1304 width: 36px;
1305 height: 36px;
1306 border-radius: 4px;
1307 object-fit: cover;
1308 border: 1px solid rgba(120, 115, 245, 0.4);
1309 flex-shrink: 0;
1310 }
1311 .mxch-cg-regen-bar-text {
1312 flex: 1;
1313 font-size: 12px;
1314 color: #a0a0b0;
1315 line-height: 1.3;
1316 }
1317 .mxch-cg-regen-bar-cancel {
1318 background: none;
1319 border: none;
1320 color: #a0a0b0;
1321 cursor: pointer;
1322 padding: 4px;
1323 border-radius: 4px;
1324 display: flex;
1325 align-items: center;
1326 flex-shrink: 0;
1327 }
1328 .mxch-cg-regen-bar-cancel:hover {
1329 color: #fff;
1330 background: rgba(255, 255, 255, 0.1);
1331 }
1332
1333 /* Chat column in two-column layout */
1334 .mxch-cg-chat-col {
1335 flex: 1;
1336 display: flex;
1337 flex-direction: column;
1338 min-width: 0;
1339 }
1340
1341 /* ─── Mobile overrides for two-column chat (must come after desktop rules) ── */
1342 @media (max-width: 782px) {
1343 .mxch-cg-chat-panel.mxch-cg-chat-panel--with-images {
1344 width: auto;
1345 flex-direction: column;
1346 max-height: calc(100vh - 60px);
1347 overflow: hidden;
1348 }
1349
1350 .mxch-cg-images-col {
1351 width: 100%;
1352 max-height: 200px;
1353 border-right: none;
1354 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
1355 }
1356
1357 .mxch-cg-chat-col {
1358 min-height: 0;
1359 }
1360
1361 .mxch-cg-chat-messages {
1362 max-height: 180px;
1363 }
1364 }
1365
1366 /* ─── History Tab ────────────────────────────────────────────────── */
1367
1368 .mxch-cg-history-loading {
1369 display: flex;
1370 flex-direction: column;
1371 align-items: center;
1372 justify-content: center;
1373 padding: 60px 20px;
1374 color: var(--mxch-text-muted, #94a3b8);
1375 }
1376
1377 .mxch-cg-history-spinner {
1378 width: 28px;
1379 height: 28px;
1380 border: 3px solid #e2e8f0;
1381 border-top-color: var(--mxch-primary, #7873f5);
1382 border-radius: 50%;
1383 animation: mxch-spin 0.6s linear infinite;
1384 margin-bottom: 12px;
1385 }
1386
1387 .mxch-cg-history-loading p {
1388 font-size: 14px;
1389 margin: 0;
1390 }
1391
1392 .mxch-cg-history-empty {
1393 display: flex;
1394 flex-direction: column;
1395 align-items: center;
1396 justify-content: center;
1397 padding: 60px 20px;
1398 color: var(--mxch-text-muted, #94a3b8);
1399 text-align: center;
1400 }
1401
1402 .mxch-cg-history-empty svg {
1403 margin-bottom: 16px;
1404 opacity: 0.4;
1405 }
1406
1407 .mxch-cg-history-empty p {
1408 font-size: 14px;
1409 margin: 0;
1410 max-width: 360px;
1411 }
1412
1413 .mxch-cg-history-list {
1414 display: flex;
1415 flex-direction: column;
1416 }
1417
1418 .mxch-cg-history-item {
1419 display: flex;
1420 align-items: center;
1421 gap: 14px;
1422 padding: 12px 0;
1423 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
1424 }
1425
1426 .mxch-cg-history-item:last-child {
1427 border-bottom: none;
1428 }
1429
1430 .mxch-cg-history-thumb {
1431 width: 48px;
1432 height: 48px;
1433 border-radius: 8px;
1434 overflow: hidden;
1435 flex-shrink: 0;
1436 background: #f1f5f9;
1437 border: 1px solid var(--mxch-card-border, #e2e4e9);
1438 }
1439
1440 .mxch-cg-history-thumb-img {
1441 width: 100%;
1442 height: 100%;
1443 object-fit: cover;
1444 display: block;
1445 }
1446
1447 .mxch-cg-history-thumb-placeholder {
1448 width: 100%;
1449 height: 100%;
1450 display: flex;
1451 align-items: center;
1452 justify-content: center;
1453 color: #cbd5e1;
1454 }
1455
1456 .mxch-cg-history-info {
1457 flex: 1;
1458 min-width: 0;
1459 }
1460
1461 .mxch-cg-history-title {
1462 font-size: 14px;
1463 font-weight: 600;
1464 color: var(--mxch-text-primary, #1a1a2e);
1465 white-space: nowrap;
1466 overflow: hidden;
1467 text-overflow: ellipsis;
1468 margin-bottom: 4px;
1469 }
1470
1471 .mxch-cg-history-meta {
1472 display: flex;
1473 align-items: center;
1474 gap: 8px;
1475 flex-wrap: wrap;
1476 }
1477
1478 .mxch-cg-history-meta .mxch-cg-status-badge {
1479 font-size: 10px;
1480 padding: 1px 6px;
1481 cursor: default;
1482 pointer-events: none;
1483 }
1484
1485 .mxch-cg-history-type,
1486 .mxch-cg-history-date {
1487 font-size: 12px;
1488 color: var(--mxch-text-muted, #94a3b8);
1489 }
1490
1491 .mxch-cg-history-actions {
1492 display: flex;
1493 gap: 4px;
1494 flex-shrink: 0;
1495 }
1496
1497 .mxch-cg-history-action-btn {
1498 display: inline-flex;
1499 align-items: center;
1500 justify-content: center;
1501 width: 32px;
1502 height: 32px;
1503 border: 1px solid var(--mxch-input-border, #d1d5db);
1504 border-radius: 6px;
1505 background: transparent;
1506 color: var(--mxch-text-secondary, #64748b);
1507 cursor: pointer;
1508 transition: all 0.2s;
1509 text-decoration: none;
1510 }
1511
1512 .mxch-cg-history-action-btn svg {
1513 width: 15px;
1514 height: 15px;
1515 }
1516
1517 /* View — blue hover */
1518 .mxch-cg-history-view-btn:hover {
1519 border-color: #3b82f6;
1520 color: #3b82f6;
1521 background: rgba(59, 130, 246, 0.1);
1522 }
1523
1524 /* Edit — purple hover */
1525 .mxch-cg-history-edit-btn:hover {
1526 border-color: var(--mxch-primary, #7873f5);
1527 color: var(--mxch-primary, #7873f5);
1528 background: rgba(120, 115, 245, 0.1);
1529 }
1530
1531 /* Delete — red hover */
1532 .mxch-cg-history-delete-btn:hover {
1533 border-color: #ef4444;
1534 color: #ef4444;
1535 background: rgba(239, 68, 68, 0.1);
1536 }
1537
1538 .mxch-cg-history-action-btn:disabled {
1539 opacity: 0.5;
1540 cursor: wait;
1541 }
1542
1543 /* History Pagination */
1544
1545 .mxch-cg-history-pagination {
1546 display: flex;
1547 align-items: center;
1548 justify-content: center;
1549 gap: 4px;
1550 padding-top: 20px;
1551 margin-top: 8px;
1552 border-top: 1px solid var(--mxch-card-border, #e2e4e9);
1553 }
1554
1555 .mxch-cg-history-page-btn {
1556 display: inline-flex;
1557 align-items: center;
1558 justify-content: center;
1559 min-width: 32px;
1560 height: 32px;
1561 padding: 0 8px;
1562 border: 1px solid var(--mxch-input-border, #d1d5db);
1563 border-radius: 6px;
1564 background: transparent;
1565 color: var(--mxch-text-secondary, #64748b);
1566 font-size: 13px;
1567 cursor: pointer;
1568 transition: all 0.15s;
1569 }
1570
1571 .mxch-cg-history-page-btn:hover {
1572 border-color: var(--mxch-primary, #7873f5);
1573 color: var(--mxch-primary, #7873f5);
1574 }
1575
1576 .mxch-cg-history-page-current {
1577 background: var(--mxch-primary, #7873f5);
1578 color: #fff;
1579 border-color: var(--mxch-primary, #7873f5);
1580 cursor: default;
1581 font-weight: 600;
1582 }
1583
1584 .mxch-cg-history-page-current:hover {
1585 background: var(--mxch-primary, #7873f5);
1586 color: #fff;
1587 border-color: var(--mxch-primary, #7873f5);
1588 }
1589
1590 .mxch-cg-history-page-prev,
1591 .mxch-cg-history-page-next {
1592 font-size: 12px;
1593 font-weight: 500;
1594 }
1595
1596 .mxch-cg-history-page-ellipsis {
1597 display: inline-flex;
1598 align-items: center;
1599 justify-content: center;
1600 min-width: 32px;
1601 height: 32px;
1602 color: var(--mxch-text-muted, #94a3b8);
1603 font-size: 13px;
1604 }
1605
1606 @media (max-width: 782px) {
1607 .mxch-cg-history-item {
1608 flex-wrap: wrap;
1609 }
1610
1611 .mxch-cg-history-info {
1612 flex: 1 1 calc(100% - 62px);
1613 }
1614
1615 .mxch-cg-history-actions {
1616 margin-left: auto;
1617 }
1618 }
1619
1620 /* ─── Loading Indicator (preview area) ──────────────────────────── */
1621
1622 .mxch-cg-loading-indicator {
1623 display: flex;
1624 flex-direction: column;
1625 align-items: center;
1626 justify-content: center;
1627 min-height: calc(100vh - 220px);
1628 padding: 40px 20px;
1629 text-align: center;
1630 gap: 24px;
1631 }
1632
1633 /* Spinner: three concentric rings + center icon */
1634 .mxch-cg-loading-spinner {
1635 position: relative;
1636 width: 80px;
1637 height: 80px;
1638 }
1639
1640 .mxch-cg-loading-spinner-ring {
1641 position: absolute;
1642 inset: 0;
1643 border-radius: 50%;
1644 border: 3px solid transparent;
1645 }
1646
1647 .mxch-cg-loading-spinner-ring:nth-child(1) {
1648 border-top-color: var(--mxch-primary, #7873f5);
1649 animation: mxch-spin 1.2s linear infinite;
1650 }
1651
1652 .mxch-cg-loading-spinner-ring:nth-child(2) {
1653 inset: 8px;
1654 border-right-color: rgba(120, 115, 245, 0.5);
1655 animation: mxch-spin 1.8s linear infinite reverse;
1656 }
1657
1658 .mxch-cg-loading-spinner-ring:nth-child(3) {
1659 inset: 16px;
1660 border-bottom-color: rgba(120, 115, 245, 0.3);
1661 animation: mxch-spin 2.4s linear infinite;
1662 }
1663
1664 .mxch-cg-loading-spinner-icon {
1665 position: absolute;
1666 top: 50%;
1667 left: 50%;
1668 transform: translate(-50%, -50%);
1669 color: var(--mxch-primary, #7873f5);
1670 opacity: 0.8;
1671 }
1672
1673 /* Phrase text with fade transition */
1674 .mxch-cg-loading-phrase {
1675 font-size: 17px;
1676 font-weight: 500;
1677 color: var(--mxch-text-secondary, #64748b);
1678 margin: 0;
1679 min-height: 28px;
1680 max-width: 400px;
1681 transition: opacity 0.4s ease, transform 0.4s ease;
1682 opacity: 1;
1683 transform: translateY(0);
1684 }
1685
1686 .mxch-cg-loading-phrase.mxch-cg-phrase-exit {
1687 opacity: 0;
1688 transform: translateY(-8px);
1689 }
1690
1691 .mxch-cg-loading-phrase.mxch-cg-phrase-enter {
1692 opacity: 0;
1693 transform: translateY(8px);
1694 }
1695
1696 /* Mini progress bar beneath the phrase */
1697 .mxch-cg-loading-progress-mini {
1698 width: 100%;
1699 max-width: 280px;
1700 }
1701
1702 .mxch-cg-loading-progress-mini-bar {
1703 width: 100%;
1704 height: 4px;
1705 background: var(--mxch-card-border, #e2e4e9);
1706 border-radius: 2px;
1707 overflow: hidden;
1708 margin-bottom: 6px;
1709 }
1710
1711 .mxch-cg-loading-progress-mini-fill {
1712 height: 100%;
1713 background: var(--mxch-primary, #7873f5);
1714 border-radius: 2px;
1715 transition: width 0.6s ease;
1716 }
1717
1718 .mxch-cg-loading-progress-mini-text {
1719 font-size: 12px;
1720 color: var(--mxch-text-muted, #94a3b8);
1721 margin: 0;
1722 }
1723
1724 /* Error state */
1725 .mxch-cg-loading-indicator.mxch-cg-loading-error .mxch-cg-loading-spinner-ring {
1726 animation-play-state: paused;
1727 }
1728
1729 .mxch-cg-loading-indicator.mxch-cg-loading-error .mxch-cg-loading-spinner-ring:nth-child(1) {
1730 border-top-color: #ef4444;
1731 }
1732
1733 .mxch-cg-loading-indicator.mxch-cg-loading-error .mxch-cg-loading-spinner-ring:nth-child(2) {
1734 border-right-color: rgba(239, 68, 68, 0.5);
1735 }
1736
1737 .mxch-cg-loading-indicator.mxch-cg-loading-error .mxch-cg-loading-spinner-ring:nth-child(3) {
1738 border-bottom-color: rgba(239, 68, 68, 0.3);
1739 }
1740
1741 .mxch-cg-loading-indicator.mxch-cg-loading-error .mxch-cg-loading-spinner-icon {
1742 color: #ef4444;
1743 }
1744
1745 .mxch-cg-loading-error-actions {
1746 display: flex;
1747 gap: 10px;
1748 margin-top: 4px;
1749 }
1750
1751 .mxch-cg-loading-error-actions .mxch-cg-generate-btn {
1752 font-size: 13px;
1753 padding: 8px 16px;
1754 }
1755
1756 .mxch-cg-loading-error-actions .mxch-cg-action-btn {
1757 font-size: 13px;
1758 padding: 8px 16px;
1759 background: transparent;
1760 border: 1px solid var(--mxch-card-border, #e2e4e9);
1761 border-radius: 6px;
1762 color: var(--mxch-text-secondary, #64748b);
1763 cursor: pointer;
1764 }
1765
1766 .mxch-cg-loading-error-actions .mxch-cg-action-btn:hover {
1767 background: var(--mxch-card-bg, #f8f9fa);
1768 }
1769
1770 /* Success state */
1771 .mxch-cg-loading-indicator.mxch-cg-loading-success .mxch-cg-loading-spinner-ring:nth-child(1) {
1772 border-top-color: #10b981;
1773 }
1774
1775 .mxch-cg-loading-indicator.mxch-cg-loading-success .mxch-cg-loading-spinner-ring:nth-child(2) {
1776 border-right-color: rgba(16, 185, 129, 0.5);
1777 }
1778
1779 .mxch-cg-loading-indicator.mxch-cg-loading-success .mxch-cg-loading-spinner-ring:nth-child(3) {
1780 border-bottom-color: rgba(16, 185, 129, 0.3);
1781 }
1782
1783 .mxch-cg-loading-indicator.mxch-cg-loading-success .mxch-cg-loading-spinner-icon {
1784 color: #10b981;
1785 }
1786
1787 /* Responsive */
1788 @media (max-width: 782px) {
1789 .mxch-cg-loading-phrase {
1790 font-size: 15px;
1791 }
1792
1793 .mxch-cg-loading-spinner {
1794 width: 64px;
1795 height: 64px;
1796 }
1797 }
1798
1799 /* ── SEO Panel ─────────────────────────────────────────── */
1800
1801 .mxch-seo-panel {
1802 display: flex;
1803 flex-direction: column;
1804 height: 100%;
1805 overflow: hidden;
1806 }
1807
1808 .mxch-seo-score-header {
1809 display: flex;
1810 align-items: center;
1811 gap: 10px;
1812 padding: 12px;
1813 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
1814 flex-shrink: 0;
1815 }
1816
1817 .mxch-seo-score-ring {
1818 position: relative;
1819 width: 48px;
1820 height: 48px;
1821 flex-shrink: 0;
1822 }
1823
1824 .mxch-seo-score-ring svg {
1825 width: 48px;
1826 height: 48px;
1827 transform: rotate(-90deg);
1828 }
1829
1830 .mxch-seo-ring-bg {
1831 fill: none;
1832 stroke: var(--mxch-card-border, #e2e4e9);
1833 stroke-width: 4;
1834 }
1835
1836 .mxch-seo-ring-fill {
1837 fill: none;
1838 stroke: var(--mxch-text-muted, #94a3b8);
1839 stroke-width: 4;
1840 stroke-linecap: round;
1841 transition: stroke-dashoffset 0.8s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s;
1842 }
1843
1844 .mxch-seo-ring-fill.mxch-seo-good { stroke: #10b981; }
1845 .mxch-seo-ring-fill.mxch-seo-ok { stroke: #f59e0b; }
1846 .mxch-seo-ring-fill.mxch-seo-bad { stroke: #ef4444; }
1847
1848 .mxch-seo-score-num {
1849 position: absolute;
1850 inset: 0;
1851 display: flex;
1852 align-items: center;
1853 justify-content: center;
1854 font-size: 14px;
1855 font-weight: 700;
1856 color: var(--mxch-text-primary, #1a1a2e);
1857 line-height: 1;
1858 }
1859
1860 .mxch-seo-score-info {
1861 flex: 1;
1862 min-width: 0;
1863 display: flex;
1864 flex-direction: column;
1865 gap: 2px;
1866 }
1867
1868 .mxch-seo-score-label {
1869 font-size: 12px;
1870 font-weight: 600;
1871 color: var(--mxch-text-primary, #1a1a2e);
1872 }
1873
1874 .mxch-seo-score-summary {
1875 font-size: 10px;
1876 color: var(--mxch-text-muted, #94a3b8);
1877 line-height: 1.3;
1878 }
1879
1880 .mxch-seo-analyze-btn {
1881 width: 30px;
1882 height: 30px;
1883 border: 1px solid var(--mxch-card-border, #e2e4e9);
1884 border-radius: 6px;
1885 background: transparent;
1886 color: var(--mxch-text-muted, #94a3b8);
1887 cursor: pointer;
1888 display: flex;
1889 align-items: center;
1890 justify-content: center;
1891 flex-shrink: 0;
1892 transition: all 0.15s;
1893 }
1894
1895 .mxch-seo-analyze-btn:hover {
1896 color: var(--mxch-primary, #7873f5);
1897 border-color: var(--mxch-primary, #7873f5);
1898 background: rgba(120, 115, 245, 0.05);
1899 }
1900
1901 .mxch-seo-analyze-btn.mxch-spinning svg {
1902 animation: mxch-spin 0.8s linear infinite;
1903 }
1904
1905 .mxch-seo-checklist {
1906 flex: 1;
1907 overflow-y: auto;
1908 padding: 6px 0;
1909 }
1910
1911 .mxch-seo-empty {
1912 display: flex;
1913 flex-direction: column;
1914 align-items: center;
1915 justify-content: center;
1916 gap: 8px;
1917 padding: 32px 16px;
1918 text-align: center;
1919 }
1920
1921 .mxch-seo-empty svg {
1922 opacity: 0.2;
1923 color: var(--mxch-text-muted, #94a3b8);
1924 }
1925
1926 .mxch-seo-empty span {
1927 font-size: 11px;
1928 color: var(--mxch-text-muted, #94a3b8);
1929 line-height: 1.5;
1930 }
1931
1932 .mxch-seo-check {
1933 display: flex;
1934 align-items: flex-start;
1935 gap: 8px;
1936 padding: 7px 12px;
1937 transition: background 0.1s;
1938 }
1939
1940 .mxch-seo-check:hover {
1941 background: rgba(0, 0, 0, 0.02);
1942 }
1943
1944 .mxch-seo-check-icon {
1945 width: 16px;
1946 height: 16px;
1947 flex-shrink: 0;
1948 margin-top: 1px;
1949 display: flex;
1950 align-items: center;
1951 justify-content: center;
1952 }
1953
1954 .mxch-seo-check-icon svg {
1955 width: 14px;
1956 height: 14px;
1957 }
1958
1959 .mxch-seo-check-icon.mxch-seo-pass { color: #10b981; }
1960 .mxch-seo-check-icon.mxch-seo-warn { color: #f59e0b; }
1961 .mxch-seo-check-icon.mxch-seo-fail { color: #ef4444; }
1962
1963 .mxch-seo-check-content {
1964 flex: 1;
1965 min-width: 0;
1966 }
1967
1968 .mxch-seo-check-label {
1969 font-size: 11px;
1970 font-weight: 600;
1971 color: var(--mxch-text-primary, #1a1a2e);
1972 display: block;
1973 line-height: 1.2;
1974 }
1975
1976 .mxch-seo-check-detail {
1977 font-size: 10px;
1978 color: var(--mxch-text-muted, #94a3b8);
1979 display: block;
1980 line-height: 1.4;
1981 margin-top: 1px;
1982 }
1983
1984 .mxch-seo-check-fix {
1985 width: 22px;
1986 height: 22px;
1987 flex-shrink: 0;
1988 display: flex;
1989 align-items: center;
1990 justify-content: center;
1991 border: none;
1992 border-radius: 4px;
1993 background: transparent;
1994 color: var(--mxch-text-muted, #94a3b8);
1995 cursor: pointer;
1996 transition: all 0.15s;
1997 padding: 0;
1998 margin-top: -1px;
1999 }
2000
2001 .mxch-seo-check-fix:hover {
2002 background: rgba(120, 115, 245, 0.1);
2003 color: var(--mxch-primary, #7873f5);
2004 }
2005
2006 .mxch-seo-check-fix:disabled {
2007 cursor: not-allowed;
2008 opacity: 0.5;
2009 }
2010
2011 .mxch-seo-check-fix.mxch-seo-check-fixing {
2012 opacity: 1;
2013 color: var(--mxch-primary, #7873f5);
2014 }
2015
2016 .mxch-seo-check-fix.mxch-seo-check-fixing svg {
2017 animation: mxch-spin 0.8s linear infinite;
2018 }
2019
2020 .mxch-seo-actions {
2021 padding: 10px 12px;
2022 border-top: 1px solid var(--mxch-card-border, #e2e4e9);
2023 flex-shrink: 0;
2024 }
2025
2026 .mxch-seo-fix-btn {
2027 width: 100%;
2028 display: flex;
2029 align-items: center;
2030 justify-content: center;
2031 gap: 6px;
2032 padding: 8px 12px;
2033 border: none;
2034 border-radius: 6px;
2035 background: linear-gradient(135deg, var(--mxch-primary, #7873f5), #6366f1);
2036 color: #fff;
2037 font-size: 12px;
2038 font-weight: 600;
2039 cursor: pointer;
2040 transition: all 0.2s;
2041 }
2042
2043 .mxch-seo-fix-btn:hover {
2044 filter: brightness(1.08);
2045 box-shadow: 0 2px 8px rgba(120, 115, 245, 0.3);
2046 }
2047
2048 .mxch-seo-fix-btn:disabled {
2049 opacity: 0.5;
2050 cursor: not-allowed;
2051 filter: none;
2052 box-shadow: none;
2053 }
2054
2055 .mxch-seo-fix-btn.mxch-seo-fixing svg {
2056 animation: mxch-spin 0.8s linear infinite;
2057 }
2058
2059 .mxch-seo-separator {
2060 height: 1px;
2061 background: var(--mxch-card-border, #e2e4e9);
2062 margin: 4px 12px;
2063 opacity: 0.6;
2064 }
2065
2066 /* ─── SEO Dashboard (Site-wide) ─────────────────────────────────── */
2067
2068 .mxch-seod-filters {
2069 display: flex;
2070 align-items: center;
2071 justify-content: space-between;
2072 gap: 12px;
2073 padding: 14px 18px;
2074 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
2075 flex-wrap: wrap;
2076 }
2077
2078 .mxch-seod-filters-left {
2079 display: flex;
2080 align-items: center;
2081 gap: 10px;
2082 flex-wrap: wrap;
2083 }
2084
2085 .mxch-seod-filters-right {
2086 display: flex;
2087 align-items: center;
2088 gap: 8px;
2089 }
2090
2091 .mxch-seod-select {
2092 padding: 6px 10px;
2093 border: 1px solid var(--mxch-input-border, #d1d5db);
2094 border-radius: 6px;
2095 background: var(--mxch-card-bg, #fff);
2096 color: var(--mxch-text-primary, #1a1a2e);
2097 font-size: 13px;
2098 cursor: pointer;
2099 outline: none;
2100 }
2101
2102 .mxch-seod-select:focus {
2103 border-color: var(--mxch-primary, #7873f5);
2104 }
2105
2106 .mxch-seod-filter-pills {
2107 display: flex;
2108 gap: 4px;
2109 }
2110
2111 .mxch-seod-pill {
2112 padding: 5px 12px;
2113 border: 1px solid var(--mxch-input-border, #d1d5db);
2114 border-radius: 20px;
2115 background: transparent;
2116 color: var(--mxch-text-muted, #6b7280);
2117 font-size: 12px;
2118 font-weight: 500;
2119 cursor: pointer;
2120 transition: all 0.15s ease;
2121 }
2122
2123 .mxch-seod-pill:hover {
2124 border-color: var(--mxch-primary, #7873f5);
2125 color: var(--mxch-primary, #7873f5);
2126 }
2127
2128 .mxch-seod-pill.active {
2129 background: var(--mxch-primary, #7873f5);
2130 border-color: var(--mxch-primary, #7873f5);
2131 color: #fff;
2132 }
2133
2134 .mxch-seod-search-wrap {
2135 position: relative;
2136 display: flex;
2137 align-items: center;
2138 }
2139
2140 .mxch-seod-search-wrap svg {
2141 position: absolute;
2142 left: 10px;
2143 width: 14px;
2144 height: 14px;
2145 color: var(--mxch-text-muted, #6b7280);
2146 pointer-events: none;
2147 }
2148
2149 .mxch-seod-search {
2150 padding: 6px 10px 6px 30px;
2151 border: 1px solid var(--mxch-input-border, #d1d5db);
2152 border-radius: 6px;
2153 background: var(--mxch-card-bg, #fff);
2154 color: var(--mxch-text-primary, #1a1a2e);
2155 font-size: 13px;
2156 width: 180px;
2157 outline: none;
2158 }
2159
2160 .mxch-seod-search:focus {
2161 border-color: var(--mxch-primary, #7873f5);
2162 }
2163
2164 /* Table */
2165
2166 .mxch-seod-table-wrap {
2167 min-height: 200px;
2168 position: relative;
2169 }
2170
2171 /* ─── Column Header Row ─────────────────────────────────────────── */
2172
2173 .mxch-seod-header {
2174 display: flex;
2175 align-items: center;
2176 padding: 8px 18px;
2177 gap: 12px;
2178 background: var(--mxch-card-bg, #f8f9fa);
2179 border-bottom: 2px solid var(--mxch-card-border, #e2e4e9);
2180 position: sticky;
2181 top: 0;
2182 z-index: 2;
2183 }
2184
2185 .mxch-seod-header-cell {
2186 font-size: 11px;
2187 font-weight: 600;
2188 text-transform: uppercase;
2189 letter-spacing: 0.5px;
2190 color: var(--mxch-text-muted, #6b7280);
2191 cursor: pointer;
2192 user-select: none;
2193 white-space: nowrap;
2194 transition: color 0.15s ease;
2195 }
2196
2197 .mxch-seod-header-cell:hover {
2198 color: var(--mxch-text-primary, #1a1a2e);
2199 }
2200
2201 .mxch-seod-header-cell.mxch-seod-header-active {
2202 color: var(--mxch-primary, #7873f5);
2203 }
2204
2205 .mxch-seod-header-title {
2206 flex: 1;
2207 min-width: 0;
2208 }
2209
2210 .mxch-seod-header-date {
2211 width: 90px;
2212 text-align: center;
2213 flex-shrink: 0;
2214 }
2215
2216 .mxch-seod-header-score {
2217 width: 48px;
2218 text-align: center;
2219 flex-shrink: 0;
2220 }
2221
2222 .mxch-seod-header-clicks {
2223 width: 52px;
2224 text-align: center;
2225 flex-shrink: 0;
2226 }
2227
2228 .mxch-seod-header-impressions {
2229 width: 52px;
2230 text-align: center;
2231 flex-shrink: 0;
2232 }
2233
2234 .mxch-seod-sort-arrow {
2235 font-size: 9px;
2236 vertical-align: middle;
2237 margin-left: 2px;
2238 }
2239
2240 /* ─── Row Columns ─────────────────────────────────────────────── */
2241
2242 .mxch-seod-cell-date {
2243 width: 90px;
2244 flex-shrink: 0;
2245 justify-content: center;
2246 }
2247
2248 .mxch-seod-date {
2249 font-size: 12px;
2250 color: var(--mxch-text-muted, #6b7280);
2251 }
2252
2253 .mxch-seod-cell-clicks,
2254 .mxch-seod-cell-impressions {
2255 width: 52px;
2256 flex-shrink: 0;
2257 justify-content: center;
2258 font-size: 12px;
2259 color: var(--mxch-text-muted, #6b7280);
2260 }
2261
2262 .mxch-seod-row {
2263 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
2264 cursor: pointer;
2265 transition: background 0.15s ease;
2266 }
2267
2268 .mxch-seod-row:last-child {
2269 border-bottom: none;
2270 }
2271
2272 .mxch-seod-row:hover {
2273 background: rgba(120, 115, 245, 0.03);
2274 }
2275
2276 .mxch-seod-row.mxch-seod-active {
2277 background: rgba(120, 115, 245, 0.03);
2278 }
2279
2280 .mxch-seod-row-main {
2281 display: flex;
2282 align-items: center;
2283 padding: 12px 18px;
2284 gap: 12px;
2285 }
2286
2287 .mxch-seod-cell {
2288 display: flex;
2289 align-items: center;
2290 }
2291
2292 .mxch-seod-header-check,
2293 .mxch-seod-cell-check {
2294 width: 28px;
2295 flex-shrink: 0;
2296 display: flex;
2297 align-items: center;
2298 justify-content: center;
2299 }
2300
2301 .mxch-seod-header-check input,
2302 .mxch-seod-cell-check input {
2303 width: 15px;
2304 height: 15px;
2305 margin: 0;
2306 cursor: pointer;
2307 accent-color: var(--mxch-primary, #7873f5);
2308 }
2309
2310 .mxch-seod-row.mxch-seod-row-optimizing {
2311 opacity: 0.7;
2312 pointer-events: none;
2313 }
2314
2315 .mxch-seod-row.mxch-seod-row-optimizing .mxch-seod-score-badge {
2316 visibility: hidden;
2317 }
2318
2319 .mxch-seod-row-spinner-wrap {
2320 position: absolute;
2321 top: 0;
2322 left: 0;
2323 right: 0;
2324 bottom: 0;
2325 display: flex;
2326 align-items: center;
2327 justify-content: center;
2328 }
2329
2330 .mxch-seod-row-spinner {
2331 width: 24px;
2332 height: 24px;
2333 border: 2.5px solid var(--mxch-card-border, #e2e4e9);
2334 border-top-color: var(--mxch-primary, #7873f5);
2335 border-radius: 50%;
2336 animation: mxch-spin 0.6s linear infinite;
2337 box-sizing: border-box;
2338 }
2339
2340 .mxch-seod-cell-title {
2341 flex: 1;
2342 min-width: 0;
2343 flex-direction: column;
2344 align-items: flex-start;
2345 gap: 2px;
2346 }
2347
2348 .mxch-seod-title {
2349 font-size: 13.5px;
2350 font-weight: 500;
2351 color: var(--mxch-text-primary, #1a1a2e);
2352 white-space: nowrap;
2353 overflow: hidden;
2354 text-overflow: ellipsis;
2355 max-width: 100%;
2356 }
2357
2358 .mxch-seod-meta {
2359 font-size: 11.5px;
2360 color: var(--mxch-text-muted, #6b7280);
2361 }
2362
2363 .mxch-seod-cell-score {
2364 width: 48px;
2365 justify-content: center;
2366 flex-shrink: 0;
2367 position: relative;
2368 }
2369
2370 .mxch-seod-score-badge {
2371 width: 36px;
2372 height: 36px;
2373 border-radius: 50%;
2374 display: flex;
2375 align-items: center;
2376 justify-content: center;
2377 font-size: 12px;
2378 font-weight: 700;
2379 border: 2.5px solid;
2380 }
2381
2382 .mxch-seod-score-badge.mxch-seod-good {
2383 color: #10b981;
2384 border-color: #10b981;
2385 background: rgba(16, 185, 129, 0.08);
2386 }
2387
2388 .mxch-seod-score-badge.mxch-seod-ok {
2389 color: #f59e0b;
2390 border-color: #f59e0b;
2391 background: rgba(245, 158, 11, 0.08);
2392 }
2393
2394 .mxch-seod-score-badge.mxch-seod-bad {
2395 color: #ef4444;
2396 border-color: #ef4444;
2397 background: rgba(239, 68, 68, 0.08);
2398 }
2399
2400 .mxch-seod-score-badge.mxch-seod-unscored {
2401 color: var(--mxch-text-muted, #6b7280);
2402 border-color: var(--mxch-input-border, #d1d5db);
2403 background: transparent;
2404 font-size: 14px;
2405 }
2406
2407 .mxch-seod-cell-status {
2408 width: 90px;
2409 justify-content: center;
2410 flex-shrink: 0;
2411 }
2412
2413 .mxch-seod-status {
2414 font-size: 12px;
2415 font-weight: 500;
2416 padding: 3px 10px;
2417 border-radius: 12px;
2418 }
2419
2420 .mxch-seod-status-good {
2421 color: #10b981;
2422 background: rgba(16, 185, 129, 0.1);
2423 }
2424
2425 .mxch-seod-status-warn {
2426 color: #f59e0b;
2427 background: rgba(245, 158, 11, 0.1);
2428 }
2429
2430 .mxch-seod-status-bad {
2431 color: #ef4444;
2432 background: rgba(239, 68, 68, 0.1);
2433 }
2434
2435 .mxch-seod-status-unscored {
2436 color: var(--mxch-text-muted, #6b7280);
2437 background: rgba(107, 114, 128, 0.08);
2438 }
2439
2440 /* ─── SEO Detail Modal ───────────────────────────────────────── */
2441
2442 .mxch-seod-modal-overlay {
2443 position: fixed;
2444 inset: 0;
2445 z-index: 100000;
2446 background: rgba(0, 0, 0, 0);
2447 display: flex;
2448 align-items: center;
2449 justify-content: center;
2450 transition: background 0.2s ease;
2451 }
2452
2453 .mxch-seod-modal-overlay.mxch-seod-modal-visible {
2454 background: rgba(0, 0, 0, 0.45);
2455 }
2456
2457 .mxch-seod-modal {
2458 background: var(--mxch-card-bg, #fff);
2459 border-radius: 12px;
2460 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
2461 width: 90%;
2462 max-width: 580px;
2463 max-height: 80vh;
2464 display: flex;
2465 flex-direction: column;
2466 opacity: 0;
2467 transform: translateY(12px) scale(0.98);
2468 transition: opacity 0.2s ease, transform 0.2s ease;
2469 }
2470
2471 .mxch-seod-modal-visible .mxch-seod-modal {
2472 opacity: 1;
2473 transform: translateY(0) scale(1);
2474 }
2475
2476 .mxch-seod-modal-header {
2477 display: flex;
2478 align-items: center;
2479 justify-content: space-between;
2480 padding: 16px 20px;
2481 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
2482 flex-shrink: 0;
2483 }
2484
2485 .mxch-seod-modal-title {
2486 font-size: 15px;
2487 font-weight: 600;
2488 color: var(--mxch-text-primary, #1a1a2e);
2489 margin: 0;
2490 white-space: nowrap;
2491 overflow: hidden;
2492 text-overflow: ellipsis;
2493 min-width: 0;
2494 flex: 1;
2495 padding-right: 12px;
2496 }
2497
2498 .mxch-seod-modal-view-page {
2499 display: inline-flex;
2500 align-items: center;
2501 gap: 4px;
2502 font-size: 12px;
2503 font-weight: 500;
2504 color: var(--mxch-accent, #6366f1);
2505 text-decoration: none;
2506 padding: 4px 10px;
2507 border-radius: 6px;
2508 transition: color 0.15s, background 0.15s;
2509 flex-shrink: 0;
2510 margin-right: 8px;
2511 white-space: nowrap;
2512 }
2513
2514 .mxch-seod-modal-view-page:hover {
2515 color: var(--mxch-accent-hover, #4f46e5);
2516 background: rgba(99, 102, 241, 0.08);
2517 text-decoration: none;
2518 }
2519
2520 .mxch-seod-modal-view-page svg {
2521 flex-shrink: 0;
2522 }
2523
2524 .mxch-seod-modal-close {
2525 background: none;
2526 border: none;
2527 cursor: pointer;
2528 color: var(--mxch-text-muted, #6b7280);
2529 padding: 4px;
2530 border-radius: 6px;
2531 transition: color 0.15s, background 0.15s;
2532 flex-shrink: 0;
2533 }
2534
2535 .mxch-seod-modal-close:hover {
2536 color: var(--mxch-text-primary, #1a1a2e);
2537 background: rgba(0, 0, 0, 0.05);
2538 }
2539
2540 .mxch-seod-modal-body {
2541 padding: 16px 20px;
2542 overflow-y: auto;
2543 flex: 1;
2544 min-height: 0;
2545 }
2546
2547 /* Detail content (reused inside modal) */
2548
2549 .mxch-seod-detail {
2550 cursor: default;
2551 }
2552
2553 .mxch-seod-detail-loading {
2554 display: flex;
2555 align-items: center;
2556 gap: 8px;
2557 padding: 16px 0;
2558 color: var(--mxch-text-muted, #6b7280);
2559 font-size: 13px;
2560 }
2561
2562 .mxch-seod-spinner {
2563 width: 16px;
2564 height: 16px;
2565 border: 2px solid var(--mxch-input-border, #d1d5db);
2566 border-top-color: var(--mxch-primary, #7873f5);
2567 border-radius: 50%;
2568 animation: mxch-spin 0.6s linear infinite;
2569 }
2570
2571 .mxch-seod-detail-error {
2572 padding: 16px 0;
2573 color: #ef4444;
2574 font-size: 13px;
2575 }
2576
2577 .mxch-seod-checks {
2578 background: var(--mxch-card-bg, #fff);
2579 border: 1px solid var(--mxch-card-border, #e2e4e9);
2580 border-radius: 8px;
2581 overflow: hidden;
2582 }
2583
2584 .mxch-seod-check {
2585 display: flex;
2586 align-items: flex-start;
2587 gap: 10px;
2588 padding: 10px 14px;
2589 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
2590 }
2591
2592 .mxch-seod-check:last-child {
2593 border-bottom: none;
2594 }
2595
2596 .mxch-seod-check-sep {
2597 height: 1px;
2598 background: var(--mxch-card-border, #e2e4e9);
2599 opacity: 0.6;
2600 }
2601
2602 .mxch-seod-check-icon {
2603 width: 18px;
2604 height: 18px;
2605 flex-shrink: 0;
2606 margin-top: 1px;
2607 }
2608
2609 .mxch-seod-check-icon svg {
2610 width: 18px;
2611 height: 18px;
2612 }
2613
2614 .mxch-seod-check-pass .mxch-seod-check-icon { color: #10b981; }
2615 .mxch-seod-check-warn .mxch-seod-check-icon { color: #f59e0b; }
2616 .mxch-seod-check-fail .mxch-seod-check-icon { color: #ef4444; }
2617
2618 .mxch-seod-check-text {
2619 display: flex;
2620 flex-direction: column;
2621 gap: 1px;
2622 min-width: 0;
2623 }
2624
2625 .mxch-seod-check-label {
2626 font-size: 13px;
2627 font-weight: 500;
2628 color: var(--mxch-text-primary, #1a1a2e);
2629 }
2630
2631 .mxch-seod-check-detail {
2632 font-size: 12px;
2633 color: var(--mxch-text-muted, #6b7280);
2634 }
2635
2636 .mxch-seod-addon-badge {
2637 display: inline-flex;
2638 align-items: center;
2639 padding: 1px 6px;
2640 margin-left: 6px;
2641 border-radius: 20px;
2642 font-size: 9px;
2643 font-weight: 700;
2644 text-transform: uppercase;
2645 letter-spacing: 0.5px;
2646 background: linear-gradient(135deg, rgba(120, 115, 245, 0.15), rgba(168, 139, 250, 0.15));
2647 color: var(--mxch-primary, #7873f5);
2648 line-height: 1;
2649 vertical-align: middle;
2650 text-decoration: none;
2651 cursor: pointer;
2652 }
2653
2654 .mxch-seod-addon-badge:hover {
2655 background: linear-gradient(135deg, rgba(120, 115, 245, 0.25), rgba(168, 139, 250, 0.25));
2656 text-decoration: none;
2657 color: var(--mxch-primary, #7873f5);
2658 }
2659
2660 .mxch-seod-pro-badge {
2661 background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(251, 191, 36, 0.15));
2662 color: #d97706;
2663 }
2664
2665 .mxch-seod-pro-badge:hover {
2666 background: linear-gradient(135deg, rgba(245, 158, 11, 0.25), rgba(251, 191, 36, 0.25));
2667 color: #d97706;
2668 }
2669
2670 .mxch-seod-detail-actions {
2671 display: flex;
2672 justify-content: flex-end;
2673 margin-top: 12px;
2674 }
2675
2676 .mxch-seod-optimize-btn {
2677 display: inline-flex;
2678 align-items: center;
2679 gap: 6px;
2680 padding: 7px 16px;
2681 background: linear-gradient(135deg, #7873f5, #6366f1);
2682 color: #fff;
2683 border: none;
2684 border-radius: 6px;
2685 font-size: 12.5px;
2686 font-weight: 600;
2687 cursor: pointer;
2688 transition: filter 0.15s ease, box-shadow 0.15s ease;
2689 }
2690
2691 .mxch-seod-optimize-btn:hover {
2692 filter: brightness(1.08);
2693 box-shadow: 0 2px 8px rgba(120, 115, 245, 0.3);
2694 }
2695
2696 .mxch-seod-optimize-btn:disabled {
2697 opacity: 0.6;
2698 cursor: not-allowed;
2699 }
2700
2701 .mxch-seod-optimize-btn svg {
2702 animation: none;
2703 }
2704
2705 .mxch-seod-optimize-btn:disabled svg {
2706 animation: mxch-spin 0.8s linear infinite;
2707 }
2708
2709 /* Footer */
2710
2711 .mxch-seod-footer {
2712 display: flex;
2713 align-items: center;
2714 gap: 12px;
2715 padding: 12px 18px;
2716 border-top: 1px solid var(--mxch-card-border, #e2e4e9);
2717 flex-wrap: wrap;
2718 }
2719
2720 .mxch-seod-scan-btn {
2721 display: inline-flex;
2722 align-items: center;
2723 gap: 6px;
2724 padding: 7px 14px;
2725 background: var(--mxch-card-bg, #fff);
2726 color: var(--mxch-primary, #7873f5);
2727 border: 1px solid var(--mxch-primary, #7873f5);
2728 border-radius: 6px;
2729 font-size: 12.5px;
2730 font-weight: 600;
2731 cursor: pointer;
2732 transition: all 0.15s ease;
2733 }
2734
2735 .mxch-seod-scan-btn:hover {
2736 background: var(--mxch-primary, #7873f5);
2737 color: #fff;
2738 }
2739
2740 .mxch-seod-scan-btn:disabled {
2741 opacity: 0.6;
2742 cursor: not-allowed;
2743 background: var(--mxch-primary, #7873f5);
2744 color: #fff;
2745 }
2746
2747 .mxch-seod-bulk-note {
2748 font-size: 11px;
2749 color: var(--mxch-text-muted, #94a3b8);
2750 font-style: italic;
2751 }
2752
2753 .mxch-seod-bulk-locked {
2754 opacity: 0.65;
2755 cursor: not-allowed;
2756 background: var(--mxch-card-bg, #1e1e2e);
2757 color: var(--mxch-text-muted, #94a3b8);
2758 border: 1px dashed var(--mxch-card-border, #e2e4e9);
2759 }
2760
2761 .mxch-seod-bulk-locked:hover {
2762 background: var(--mxch-card-bg, #1e1e2e);
2763 color: var(--mxch-text-muted, #94a3b8);
2764 }
2765
2766 .mxch-seod-bulk-locked .mxch-cg-pro-badge {
2767 margin-left: 4px;
2768 opacity: 1;
2769 }
2770
2771 .mxch-seod-optimize-selected-btn {
2772 background: var(--mxch-primary, #7873f5);
2773 color: #fff;
2774 white-space: nowrap;
2775 }
2776
2777 .mxch-seod-optimize-selected-btn:hover {
2778 background: var(--mxch-primary-hover, #6963e6);
2779 color: #fff;
2780 }
2781
2782 .mxch-seod-scan-stop-btn {
2783 color: #ef4444;
2784 border-color: #ef4444;
2785 }
2786
2787 .mxch-seod-scan-stop-btn:hover {
2788 background: #ef4444;
2789 color: #fff;
2790 }
2791
2792 .mxch-seod-scan-stop-btn:disabled {
2793 background: #ef4444;
2794 color: #fff;
2795 border-color: #ef4444;
2796 }
2797
2798 .mxch-seod-scan-status {
2799 font-size: 12.5px;
2800 color: var(--mxch-text-muted, #6b7280);
2801 }
2802
2803 .mxch-seod-scan-progress {
2804 font-weight: 600;
2805 color: var(--mxch-primary, #7873f5);
2806 }
2807
2808 .mxch-seod-pagination {
2809 display: flex;
2810 align-items: center;
2811 gap: 8px;
2812 margin-left: auto;
2813 }
2814
2815 .mxch-seod-page-btn {
2816 padding: 5px 12px;
2817 border: 1px solid var(--mxch-input-border, #d1d5db);
2818 border-radius: 6px;
2819 background: var(--mxch-card-bg, #fff);
2820 color: var(--mxch-text-primary, #1a1a2e);
2821 font-size: 12.5px;
2822 cursor: pointer;
2823 transition: all 0.15s ease;
2824 }
2825
2826 .mxch-seod-page-btn:hover {
2827 border-color: var(--mxch-primary, #7873f5);
2828 color: var(--mxch-primary, #7873f5);
2829 }
2830
2831 .mxch-seod-page-info {
2832 font-size: 12.5px;
2833 color: var(--mxch-text-muted, #6b7280);
2834 }
2835
2836 /* Loading & Empty */
2837
2838 .mxch-seod-loading {
2839 display: flex;
2840 flex-direction: column;
2841 align-items: center;
2842 gap: 10px;
2843 padding: 48px 20px;
2844 color: var(--mxch-text-muted, #6b7280);
2845 font-size: 13px;
2846 }
2847
2848 .mxch-seod-empty {
2849 display: flex;
2850 flex-direction: column;
2851 align-items: center;
2852 gap: 8px;
2853 padding: 48px 20px;
2854 color: var(--mxch-text-muted, #6b7280);
2855 font-size: 13px;
2856 text-align: center;
2857 }
2858
2859 .mxch-seod-empty svg {
2860 opacity: 0.4;
2861 }
2862
2863 .mxch-seod-error {
2864 padding: 24px;
2865 text-align: center;
2866 color: #ef4444;
2867 font-size: 13px;
2868 }
2869
2870 /* ─── Settings Card Header ─────────────────────────────────────── */
2871
2872 .mxch-card-header {
2873 padding: 14px 20px 0;
2874 }
2875
2876 .mxch-card-title {
2877 font-size: 14px;
2878 font-weight: 600;
2879 color: var(--mxch-text-primary, #1a1a2e);
2880 margin: 0;
2881 text-transform: uppercase;
2882 letter-spacing: 0.5px;
2883 opacity: 0.6;
2884 }
2885
2886 /* ─── SEO Optimize Checkbox Grid ───────────────────────────────── */
2887
2888 .mxch-seo-opt-grid {
2889 display: flex;
2890 flex-wrap: wrap;
2891 gap: 6px;
2892 }
2893
2894 .mxch-seo-opt-item {
2895 display: inline-flex;
2896 align-items: center;
2897 gap: 6px;
2898 padding: 6px 12px;
2899 border: 1px solid var(--mxch-card-border, #e2e4e9);
2900 border-radius: 6px;
2901 font-size: 13px;
2902 color: var(--mxch-text-primary, #1a1a2e);
2903 cursor: pointer;
2904 transition: border-color 0.15s, background 0.15s;
2905 user-select: none;
2906 }
2907
2908 .mxch-seo-opt-item:hover {
2909 border-color: var(--mxch-primary, #7873f5);
2910 background: rgba(120, 115, 245, 0.04);
2911 }
2912
2913 .mxch-seo-opt-item:has(input:checked) {
2914 border-color: var(--mxch-primary, #7873f5);
2915 background: rgba(120, 115, 245, 0.06);
2916 }
2917
2918 .mxch-seo-opt-check {
2919 width: 14px;
2920 height: 14px;
2921 accent-color: var(--mxch-primary, #7873f5);
2922 margin: 0;
2923 cursor: pointer;
2924 }
2925
2926 .mxch-seo-opt-locked {
2927 opacity: 0.5;
2928 cursor: not-allowed;
2929 }
2930
2931 .mxch-seo-opt-locked:hover {
2932 border-color: var(--mxch-card-border, #e2e4e9);
2933 background: transparent;
2934 }
2935
2936 .mxch-seo-opt-item .mxch-cg-pro-badge {
2937 margin-left: 2px;
2938 font-size: 9px;
2939 padding: 1px 5px;
2940 }
2941
2942 /* ─── GSC Locked / Placeholder Styles ──────────────────────────── */
2943
2944 .mxch-seod-header-locked {
2945 opacity: 0.5;
2946 cursor: default;
2947 pointer-events: none;
2948 }
2949
2950 .mxch-seod-header-locked svg {
2951 margin-left: 3px;
2952 vertical-align: middle;
2953 opacity: 0.6;
2954 }
2955
2956 .mxch-seod-cell-locked {
2957 opacity: 0.4;
2958 color: var(--mxch-text-muted, #94a3b8);
2959 cursor: default;
2960 }
2961
2962 /* Settings locked GSC card */
2963 .mxch-gsc-settings-locked {
2964 border: 1px dashed var(--mxch-card-border, #e2e4e9);
2965 border-radius: 8px;
2966 padding: 16px;
2967 margin-top: 12px;
2968 background: var(--mxch-card-bg, #fff);
2969 opacity: 0.85;
2970 }
2971
2972 .mxch-gsc-settings-locked-header {
2973 display: flex;
2974 align-items: center;
2975 gap: 8px;
2976 font-size: 14px;
2977 font-weight: 600;
2978 color: var(--mxch-text-primary, #1a1a2e);
2979 margin-bottom: 6px;
2980 }
2981
2982 .mxch-gsc-settings-locked-header svg {
2983 color: var(--mxch-text-muted, #94a3b8);
2984 flex-shrink: 0;
2985 }
2986
2987 .mxch-gsc-settings-locked .mxch-field-description {
2988 margin-bottom: 10px;
2989 }
2990
2991 .mxch-gsc-connect-btn {
2992 display: inline-flex;
2993 align-items: center;
2994 gap: 6px;
2995 padding: 8px 16px;
2996 border: 1px solid var(--mxch-card-border, #e2e4e9);
2997 border-radius: 6px;
2998 background: var(--mxch-card-bg, #fff);
2999 color: var(--mxch-text-muted, #94a3b8);
3000 font-size: 13px;
3001 cursor: not-allowed;
3002 opacity: 0.6;
3003 margin-bottom: 8px;
3004 }
3005
3006 /* Detail modal GSC placeholder */
3007 .mxch-gsc-placeholder {
3008 position: relative;
3009 margin-top: 16px;
3010 padding: 16px;
3011 border: 1px dashed var(--mxch-card-border, #e2e4e9);
3012 border-radius: 8px;
3013 overflow: hidden;
3014 }
3015
3016 .mxch-gsc-placeholder-title {
3017 display: flex;
3018 align-items: center;
3019 gap: 6px;
3020 font-size: 14px;
3021 font-weight: 600;
3022 color: var(--mxch-text-primary, #1a1a2e);
3023 margin: 0 0 12px 0;
3024 opacity: 0.5;
3025 }
3026
3027 .mxch-gsc-placeholder-content {
3028 filter: blur(1.5px);
3029 opacity: 0.5;
3030 pointer-events: none;
3031 user-select: none;
3032 }
3033
3034 .mxch-gsc-stats {
3035 display: grid;
3036 grid-template-columns: repeat(4, 1fr);
3037 gap: 10px;
3038 margin-bottom: 14px;
3039 }
3040
3041 .mxch-gsc-stat {
3042 display: flex;
3043 flex-direction: column;
3044 align-items: center;
3045 padding: 10px 8px;
3046 background: var(--mxch-bg, #f8fafc);
3047 border-radius: 6px;
3048 border: 1px solid var(--mxch-card-border, #e2e4e9);
3049 }
3050
3051 .mxch-gsc-stat-value {
3052 font-size: 18px;
3053 font-weight: 700;
3054 color: var(--mxch-text-primary, #1a1a2e);
3055 }
3056
3057 .mxch-gsc-stat-label {
3058 font-size: 11px;
3059 color: var(--mxch-text-muted, #94a3b8);
3060 margin-top: 2px;
3061 }
3062
3063 .mxch-gsc-table {
3064 width: 100%;
3065 border-collapse: collapse;
3066 font-size: 12px;
3067 }
3068
3069 .mxch-gsc-table th {
3070 text-align: left;
3071 padding: 6px 8px;
3072 font-weight: 600;
3073 color: var(--mxch-text-muted, #94a3b8);
3074 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
3075 font-size: 11px;
3076 }
3077
3078 .mxch-gsc-table td {
3079 padding: 6px 8px;
3080 color: var(--mxch-text-primary, #1a1a2e);
3081 border-bottom: 1px solid var(--mxch-card-border, #e2e4e9);
3082 }
3083
3084 .mxch-gsc-placeholder-overlay {
3085 position: absolute;
3086 inset: 0;
3087 display: flex;
3088 flex-direction: column;
3089 align-items: center;
3090 justify-content: center;
3091 gap: 6px;
3092 background: rgba(255, 255, 255, 0.4);
3093 z-index: 2;
3094 }
3095
3096 .mxch-gsc-placeholder-overlay svg {
3097 opacity: 0.3;
3098 }
3099
3100 .mxch-gsc-placeholder-overlay .mxch-cg-pro-upgrade-link {
3101 font-size: 12px;
3102 }
3103
3104 /* Responsive */
3105
3106 @media (max-width: 768px) {
3107 .mxch-seod-filters {
3108 flex-direction: column;
3109 align-items: stretch;
3110 gap: 8px;
3111 }
3112 .mxch-seod-search {
3113 width: 100%;
3114 }
3115 .mxch-seod-cell-status {
3116 display: none;
3117 }
3118 .mxch-seod-cell-date,
3119 .mxch-seod-cell-clicks,
3120 .mxch-seod-cell-impressions {
3121 display: none;
3122 }
3123 .mxch-seod-header-date,
3124 .mxch-seod-header-clicks,
3125 .mxch-seod-header-impressions {
3126 display: none;
3127 }
3128 .mxch-seod-modal {
3129 width: 95%;
3130 max-height: 85vh;
3131 }
3132 .mxch-seod-row-main {
3133 padding: 10px 14px;
3134 }
3135 .mxch-seod-header-check,
3136 .mxch-seod-cell-check {
3137 width: 24px;
3138 }
3139 .mxch-seod-filters-right {
3140 flex-wrap: wrap;
3141 gap: 8px;
3142 }
3143 .mxch-seod-optimize-selected-btn {
3144 font-size: 12px;
3145 padding: 6px 10px;
3146 }
3147 .mxch-seod-footer {
3148 flex-direction: column;
3149 align-items: stretch;
3150 gap: 8px;
3151 }
3152 .mxch-seod-pagination {
3153 margin-left: 0;
3154 justify-content: center;
3155 }
3156 }
3157
3158 /* ── Edit Default Prompt Button & Modal ────────────────────── */
3159 .mxch-cg-edit-prompt-btn {
3160 display: inline-flex;
3161 align-items: center;
3162 gap: 5px;
3163 background: none;
3164 border: none;
3165 color: #8a8f98;
3166 font-size: 12px;
3167 cursor: pointer;
3168 padding: 4px 0;
3169 margin-top: 2px;
3170 transition: color 0.2s;
3171 }
3172 .mxch-cg-edit-prompt-btn:hover {
3173 color: #c5c9d1;
3174 }
3175 .mxch-cg-edit-prompt-btn.mxch-cg-prompt-modified {
3176 color: #7c6ee8;
3177 }
3178 .mxch-cg-edit-prompt-btn.mxch-cg-prompt-modified:hover {
3179 color: #9d92f0;
3180 }
3181
3182 /* Modal overlay + container */
3183 .mxch-cg-prompt-modal {
3184 position: fixed;
3185 top: 0;
3186 left: 0;
3187 right: 0;
3188 bottom: 0;
3189 z-index: 100100;
3190 display: flex;
3191 align-items: center;
3192 justify-content: center;
3193 overflow: hidden;
3194 }
3195 .mxch-cg-prompt-modal-overlay {
3196 position: absolute;
3197 top: 0;
3198 left: 0;
3199 right: 0;
3200 bottom: 0;
3201 background: rgba(0, 0, 0, 0.6);
3202 }
3203 .mxch-cg-prompt-modal-content {
3204 position: relative;
3205 background: #1e1e2e;
3206 border: 1px solid rgba(255, 255, 255, 0.08);
3207 border-radius: 12px;
3208 width: 90%;
3209 max-width: 760px;
3210 height: 75vh;
3211 max-height: 600px;
3212 display: flex;
3213 flex-direction: column;
3214 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
3215 overflow: hidden;
3216 }
3217
3218 /* Header */
3219 .mxch-cg-prompt-modal-header {
3220 display: flex;
3221 align-items: center;
3222 justify-content: space-between;
3223 padding: 18px 24px;
3224 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
3225 }
3226 .mxch-cg-prompt-modal-header h3 {
3227 margin: 0;
3228 font-size: 15px;
3229 font-weight: 600;
3230 color: #e2e4e9;
3231 }
3232 .mxch-cg-prompt-modal-close {
3233 background: none;
3234 border: none;
3235 color: #8a8f98;
3236 font-size: 22px;
3237 cursor: pointer;
3238 padding: 0 4px;
3239 line-height: 1;
3240 transition: color 0.2s;
3241 }
3242 .mxch-cg-prompt-modal-close:hover {
3243 color: #fff;
3244 }
3245
3246 /* Body */
3247 .mxch-cg-prompt-modal-body {
3248 padding: 16px 24px;
3249 overflow: hidden;
3250 flex: 1;
3251 display: flex;
3252 flex-direction: column;
3253 min-height: 0;
3254 }
3255 .mxch-cg-prompt-modal-desc {
3256 margin: 0 0 12px;
3257 font-size: 13px;
3258 color: #8a8f98;
3259 line-height: 1.5;
3260 flex-shrink: 0;
3261 }
3262 .mxch-cg-system-prompt-editor {
3263 width: 100%;
3264 flex: 1;
3265 min-height: 200px;
3266 background: #13131f;
3267 border: 1px solid rgba(255, 255, 255, 0.06);
3268 border-radius: 8px;
3269 color: #c5c9d1;
3270 font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
3271 font-size: 12.5px;
3272 line-height: 1.7;
3273 padding: 14px 16px;
3274 resize: none;
3275 box-sizing: border-box;
3276 overflow-y: auto;
3277 }
3278 .mxch-cg-system-prompt-editor:focus {
3279 outline: none;
3280 border-color: rgba(124, 110, 232, 0.4);
3281 box-shadow: 0 0 0 2px rgba(124, 110, 232, 0.1);
3282 }
3283 /* Custom scrollbar for prompt editor */
3284 .mxch-cg-system-prompt-editor::-webkit-scrollbar {
3285 width: 6px;
3286 }
3287 .mxch-cg-system-prompt-editor::-webkit-scrollbar-track {
3288 background: transparent;
3289 border-radius: 3px;
3290 }
3291 .mxch-cg-system-prompt-editor::-webkit-scrollbar-thumb {
3292 background: rgba(124, 110, 232, 0.3);
3293 border-radius: 3px;
3294 }
3295 .mxch-cg-system-prompt-editor::-webkit-scrollbar-thumb:hover {
3296 background: rgba(124, 110, 232, 0.5);
3297 }
3298
3299 /* Footer */
3300 .mxch-cg-prompt-modal-footer {
3301 display: flex;
3302 align-items: center;
3303 justify-content: space-between;
3304 padding: 14px 24px;
3305 border-top: 1px solid rgba(255, 255, 255, 0.06);
3306 }
3307 .mxch-cg-prompt-modal-footer-right {
3308 display: flex;
3309 gap: 8px;
3310 }
3311 .mxch-cg-prompt-modal-footer .button {
3312 background: #2a2a3d;
3313 border: 1px solid rgba(255, 255, 255, 0.08);
3314 color: #c5c9d1;
3315 border-radius: 6px;
3316 padding: 6px 14px;
3317 font-size: 13px;
3318 cursor: pointer;
3319 transition: background 0.2s, border-color 0.2s;
3320 }
3321 .mxch-cg-prompt-modal-footer .button:hover {
3322 background: #333350;
3323 border-color: rgba(255, 255, 255, 0.14);
3324 }
3325 .mxch-cg-prompt-modal-footer .button-primary {
3326 background: #7c6ee8;
3327 border-color: #7c6ee8;
3328 color: #fff;
3329 }
3330 .mxch-cg-prompt-modal-footer .button-primary:hover {
3331 background: #6b5dd3;
3332 border-color: #6b5dd3;
3333 }
3334
3335 @media (max-width: 600px) {
3336 .mxch-cg-prompt-modal-content {
3337 width: 96%;
3338 max-height: 90vh;
3339 }
3340 .mxch-cg-prompt-modal-header,
3341 .mxch-cg-prompt-modal-body,
3342 .mxch-cg-prompt-modal-footer {
3343 padding-left: 16px;
3344 padding-right: 16px;
3345 }
3346 }
3347