PluginProbe ʕ •ᴥ•ʔ
GPTranslate – Multilingual AI Translation for WordPress: Translate Websites with AI Agents / 2.33.9
GPTranslate – Multilingual AI Translation for WordPress: Translate Websites with AI Agents v2.33.9
2.33.10 2.33.9 2.33.8 2.33.7 2.33.6 2.33.5 2.33.2 2.32.10 2.33 2.33.1 2.32.6 2.32.7 2.32.8 trunk 2.10.3 2.10.4 2.10.5 2.10.6 2.11 2.12 2.13 2.14 2.14.1 2.15 2.15.1 2.16.1 2.16.2 2.17 2.18 2.18.1 2.18.2 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.25.1 2.25.2 2.26 2.27 2.27.10 2.27.5 2.28 2.28.1 2.29 2.30 2.31 2.32 2.32.5
gptranslate / assets / css / admin.css
gptranslate / assets / css Last commit date
admin.css 5 days ago bootstrap.min.css 5 days ago crawler.css 5 days ago select2.min.css 5 days ago wizard.css 5 days ago
admin.css
1125 lines
1 #wpbody-content > h1 {
2 position: relative;
3 color: #1d2327;
4 font-size: 2em;
5 margin: 0;
6 margin-left: -20px;
7 background: #FFF;
8 padding: 20px;
9 border: 1px solid #c3c4c7;
10 }
11
12 div.notice {
13 margin: 5px 20px 5px 0;
14 }
15
16 h2.nav-tab-wrapper {
17 margin-top: 20px;
18 }
19
20 img.gptranslate-plugin-icon {
21 width: 64px;
22 height: 64px;
23 }
24
25 /* Labels */
26 .gpt-label {
27 display: inline-block;
28 padding: 2px 8px;
29 font-size: 1em;
30 font-weight: 600;
31 color: #fff;
32 background-color: #0073aa; /* WordPress blue */
33 border-radius: 12px;
34 vertical-align: middle;
35 white-space: nowrap;
36 }
37
38 /* Success label */
39 .gpt-label-success {
40 background-color: #46b450;
41 }
42
43 /* Danger label */
44 .gpt-label-danger {
45 background-color: #dc3232;
46 }
47
48 /* Warning label */
49 .gpt-label-warning {
50 background-color: #ffb900;
51 color: #000;
52 }
53
54 /* Buttons */
55 .gpt-button {
56 display: inline-block;
57 padding: 6px 12px;
58 font-size: 14px;
59 font-weight: 600;
60 color: #fff;
61 background-color: #0073aa;
62 border: none;
63 border-radius: 2px;
64 cursor: pointer;
65 text-decoration: none;
66 transition: background-color 0.2s;
67 }
68
69 .gpt-button:hover {
70 background-color: #006799;
71 text-decoration: none;
72 }
73
74 /* Button variants */
75 .gpt-button-danger {
76 background-color: #dc3232;
77 }
78
79 .gpt-button-danger:hover {
80 background-color: #b81b1b;
81 }
82
83 .gpt-button-success {
84 background-color: #46b450;
85 }
86
87 .gpt-button-success:hover {
88 background-color: #3ea145;
89 }
90
91 /* Table styling */
92 .gpt-table {
93 width: 100%;
94 border-collapse: collapse;
95 margin-bottom: 20px;
96 }
97
98 .gpt-table th, .gpt-table td {
99 padding: 8px 10px;
100 border: 1px solid #ccc;
101 text-align: left;
102 }
103
104 .gpt-table th {
105 background-color: #f9f9f9;
106 font-weight: 600;
107 }
108
109 .form-table th {
110 vertical-align: top;
111 text-align: left;
112 padding: 20px 10px 10px 10px;
113 width: 200px;
114 line-height: 1.3;
115 font-weight: 600;
116 border-left: 1px solid #2271b1;
117 border-left-width: 4px;
118 box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
119 }
120
121 #tab-translator .form-table th {
122 width: 280px;
123 }
124
125 .form-table td {
126 box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
127 }
128
129 /* Edit record translation */
130 #wpfooter {
131 display: none !important;
132 }
133
134 input[name=pagelink], input[name=translated_alias] {
135 width: 60%;
136 }
137
138 div.gptcard {
139 width: 100%;
140 }
141
142 @media ( max-width : 1024px) {
143 input[name=pagelink] {
144 width: 100%;
145 }
146 }
147
148 div.accordion-body {
149 max-height: 800px;
150 overflow: auto;
151 }
152
153 /* Search */
154 div.gptcard-header button, div.gptcard-header input {
155 font-weight: normal;
156 white-space: nowrap;
157 }
158
159 /* Sort dropdown */
160 .gpt-sort-select {
161 padding: 4px 8px;
162 font-size: 13px;
163 border: 1px solid #8c8f94;
164 border-radius: 4px;
165 background: #fff;
166 color: #2c3338;
167 cursor: pointer;
168 height: 30px;
169 margin-left: 4px;
170 }
171
172 .gpt-sort-select:focus {
173 border-color: #2271b1;
174 box-shadow: 0 0 0 1px #2271b1;
175 outline: none;
176 }
177
178 input[name=search] {
179 width: 50%;
180 }
181
182 /* Container */
183 form.form-filter-container {
184 display: flex;
185 justify-content: space-between;
186 margin-bottom: 10px;
187 position: relative;
188 }
189
190 div.right-filter-container input[type="submit"] {
191 margin: 0 1px;
192 }
193
194 .translations-container {
195 max-width: 100%;
196 padding: 1rem;
197 font-family: sans-serif;
198 }
199
200 *.doublesize-icon {
201 font-size: 18px;
202 font-weight: 700;
203 margin-left: 5px;
204 }
205
206 #search-input {
207 min-width: 300px;
208 margin-right: 2px;
209 }
210
211 #search-input+button,
212 #search-input+button+button {
213 margin-right: 2px;
214 }
215
216 /* Card */
217 .gptcard {
218 border: 1px solid #ddd;
219 border-radius: 6px;
220 margin-bottom: 1rem;
221 background-color: #fff;
222 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
223 }
224
225 /* Card header */
226 .gptcard-header {
227 background-color: #f5f5f5;
228 padding: 0.75rem 1rem;
229 border-bottom: 1px solid #ddd;
230 font-weight: bold;
231 }
232
233 .gptcard-header [data-role="search-translations"],
234 .gptcard-header [data-role="reset-search"] {
235 white-space: nowrap;
236 font-weight: normal;
237 }
238
239 /* Accordion toggle area */
240 .accordion-toggle {
241 display: flex;
242 align-items: center;
243 gap: 1rem;
244 }
245
246 /* Input group */
247 .input-group {
248 display: flex;
249 align-items: center;
250 gap: 0.5rem;
251 flex-wrap: nowrap;
252 width: 100%;
253 }
254
255 .input-group-text {
256 background-color: #e9ecef;
257 padding: 0.5rem 0.75rem;
258 border-radius: 4px;
259 font-size: 0.875rem;
260 }
261
262 #migraterow span.input-group label {
263 white-space: nowrap;
264 }
265
266 table.widefat input.form-check-input {
267 margin: 0;
268 width: inherit !important;
269 }
270
271 /* Card body */
272 .gptcard-body {
273 padding: 1rem;
274 }
275
276 div.translation-row.translation-row-hidden {
277 display: none;
278 }
279
280 /* Buttons */
281 .btn {
282 display: inline-block;
283 padding: 0.375rem 0.75rem;
284 border-radius: 2px;
285 border: none;
286 font-size: 0.875rem;
287 cursor: pointer;
288 }
289
290 .btn-sm {
291 font-size: 0.75rem;
292 padding: 0.25rem 0.5rem;
293 }
294
295 .btn-primary {
296 background-color: #2271b1;
297 color: white;
298 }
299
300 .btn-success {
301 background-color: #198754;
302 color: white;
303 }
304
305 .btn-danger {
306 background-color: #dc3545;
307 color: white;
308 }
309
310 .btn-warning {
311 background-color: #ffc107;
312 color: black;
313 }
314
315 span.icon-refresh {
316 display: inline-block;
317 }
318
319 button.group-sync.btn-invisible {
320 display: none;
321 }
322
323 button.group-sync span.icon-refresh.icon-working {
324 animation: spin 2s infinite linear;
325 }
326
327 @keyframes spin {
328 0% {
329 transform: rotate(0deg);
330 }
331 100% {
332 transform: rotate(360deg);
333 }
334 }
335
336 /* Badges */
337 .badge {
338 display: inline-block;
339 padding: 0.35em 0.65em;
340 font-size: 1em;
341 font-weight: 600;
342 border-radius: 3px;
343 margin-bottom: 0.25rem;
344 }
345
346 /* Colori di stato */
347 .bg-primary {
348 background-color: #2271b1;
349 color: #FFFFFF;
350 }
351
352 .bg-success {
353 background-color: #28a745;
354 color: #FFFFFF;
355 }
356
357 .bg-danger {
358 background-color: #dc3545;
359 color: #FFFFFF;
360 }
361
362 .bg-warning {
363 background-color: #ffc107;
364 color: #212529;
365 }
366
367 .bg-info {
368 background-color: #17a2b8;
369 color: #FFFFFF;
370 }
371
372 /* Zero state */
373 .gptranslate-zero-state {
374 max-width: 768px;
375 margin: 80px auto;
376 padding: 40px;
377 background: #ffffff;
378 border-radius: 8px;
379 border: 1px solid #e5e5e5;
380 text-align: center;
381 }
382
383 .gptranslate-zero-title {
384 font-size: 24px;
385 font-weight: 600;
386 margin-bottom: 10px;
387 }
388
389 .gptranslate-zero-icon {
390 margin-bottom: 20px;
391 opacity: 0.9;
392 }
393
394 .gptranslate-zero-desc {
395 font-size: 15px;
396 color: #555;
397 margin-bottom: 30px;
398 }
399
400 .gptranslate-zero-hint {
401 margin-top: 20px;
402 font-size: 13px;
403 color: #777;
404 }
405
406 #gptranslate-start-crawler span.dashicons-before::before {
407 vertical-align: middle;
408 margin-right: 10px;
409 }
410
411 /* Textarea */
412 .translation-row textarea {
413 width: 100%;
414 min-height: 60px;
415 resize: vertical;
416 box-sizing: border-box;
417 transition: min-height 0.2s ease;
418 }
419
420 div.gptcard.gpt-expanded .translation-row textarea {
421 min-height: 140px;
422 }
423
424 .translation-row button,
425 .translation-row label.badge {
426 white-space: nowrap;
427 }
428
429 /* Translation row */
430 .translation-row {
431 display: grid;
432 grid-template-columns: 1fr 1fr 230px;
433 gap: 8px;
434 align-items: start;
435 padding: 4px 0;
436 margin-top: 6px;
437 border-bottom: 1px solid rgba(0, 0, 0, 0.08);
438 position: relative;
439 }
440
441 .translation-row div.gpt-col {
442 min-width: 0;
443 }
444
445 .translation-row div.gpt-col-actions {
446 display: flex;
447 flex-direction: row;
448 flex-wrap: nowrap;
449 gap: 6px;
450 align-items: center;
451 justify-content: flex-end;
452 position: relative;
453 }
454
455 .translation-row label.gpt-row-label {
456 display: none;
457 }
458
459 /* Sticky column header above translation rows */
460 .gpt-translations-body {
461 position: relative;
462 padding-top: 0;
463 }
464
465 .gpt-translation-header {
466 display: grid;
467 grid-template-columns: 1fr 1fr 230px;
468 gap: 8px;
469 padding: 6px 0 8px;
470 position: sticky;
471 top: 0;
472 z-index: 5;
473 background: #fff;
474 border-bottom: 2px solid #2271b1;
475 margin-bottom: 6px;
476 font-weight: 600;
477 font-size: 0.8rem;
478 color: #2271b1;
479 text-transform: uppercase;
480 letter-spacing: 0.03em;
481 }
482
483 .gpt-th {
484 display: flex;
485 align-items: center;
486 }
487
488 .gpt-th-actions {
489 display: flex;
490 align-items: center;
491 justify-content: flex-end;
492 }
493
494 .gpt-expand-btn {
495 white-space: nowrap;
496 }
497
498 .gpt-expand-btn:hover {
499 background-color: #135e96;
500 }
501
502 .gpt-expand-btn.gpt-expanded-active {
503 background-color: #135e96;
504 }
505
506 .translation-row label.gpt-label.badge {
507 position: absolute;
508 right: 1px;
509 top: calc(100% + 4px);
510 font-size: 12px;
511 z-index: 2;
512 white-space: nowrap;
513 }
514
515 /* Tooltips */
516 .custom-tooltip {
517 position: absolute;
518 top: 0;
519 left: 0;
520 z-index: 9999;
521 background: #333;
522 color: #fff;
523 padding: 6px 10px;
524 font-size: 0.85em;
525 border-radius: 4px;
526 max-width: 250px;
527 box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
528 pointer-events: none;
529 opacity: 0;
530 transition: opacity 0.2s ease;
531 white-space: normal;
532 }
533
534 /* Settings with switchers */
535 a.nav-tab:focus {
536 box-shadow: none;
537 }
538
539 .nav-tab-active, .nav-tab-active:focus, .nav-tab-active:focus:active, .nav-tab-active:hover {
540 transition: border 0s;
541 }
542
543 div.tab-content > p:first-child,
544 div.tab-content > p:last-child {
545 text-align: right;
546 margin-right: 20px;
547 }
548
549 #config-gptranslate table.form-table {
550 margin-top: -40px;
551 }
552
553 table.form-table th.settings-label-separator {
554 border: none;
555 background: #2271b1;
556 color: #FFF;
557 text-align: center;
558 padding: 0;
559 vertical-align: middle;
560 border-left: 4px solid #2271b1;
561 }
562
563 table.widefat.fixed.striped a:focus {
564 box-shadow: none;
565 }
566
567 table tr.alt_translations_0 {
568 display: none;
569 }
570
571 /* API Key field with eye-toggle */
572 .gpt-apikey-wrap {
573 display: flex;
574 align-items: center;
575 gap: 0;
576 }
577 .gpt-apikey-wrap .button {
578 padding: 0 12px;
579 height: 30px;
580 line-height: 30px;
581 flex-shrink: 0;
582 background: #f6f7f7;
583 }
584 .gpt-apikey-wrap .dashicons {
585 font-size: 18px;
586 width: 18px;
587 height: 18px;
588 margin-top: 4px;
589 }
590
591 .gpt-apikey-wrap .dashicons.dashicons-visibility,
592 .gpt-apikey-wrap .dashicons.dashicons-hidden {
593 line-height: normal;
594 }
595
596 .gpt-apikey-wrap .large-apikey {
597 width: 50%;
598 }
599
600 .toggle-import {
601 background: #FFF;
602 padding: 4px 5px;
603 }
604
605 .wp-admin input[type=file] {
606 border: 1px solid #CCC;
607 border-radius: 4px;
608 padding-left: 5px;
609 }
610
611 div.exportimportbtns {
612 position: relative;
613 display: flex;
614 justify-content: flex-end;
615 margin-top: -40px;
616 column-gap: 5px;
617 margin-right: 20px;
618 }
619
620 #add-repeatable-row {
621 float: right;
622 }
623
624 #bulk-delete-btn, #toggle-migration {
625 margin-right: 10px;
626 }
627
628 #migraterow {
629 width: fit-content;
630 margin-bottom: 10px;
631 background: #FFF;
632 padding: 5px 10px;
633 border-radius: 4px;
634 }
635
636 #migraterow .input-group {
637 width: auto;
638 margin-right: 10px;
639 }
640
641 #migraterow .button {
642 margin-right: 5px;
643 }
644
645 /* Pagination */
646 .tablenav-pages {
647 margin-top: 20px;
648 }
649
650 .tablenav-pages .button {
651 margin-bottom: 4px !important;
652 margin-right: 5px;
653 padding: 5px 10px;
654 text-decoration: none;
655 }
656
657 .tablenav-pages .current-page {
658 font-weight: bold;
659 background-color: #0073aa;
660 color: #fff;
661 }
662
663 div.action-buttons-toolbar {
664 margin: 5px 0 10px;
665 }
666
667 input[name='import_file'] {
668 margin-left: 5px;
669 }
670
671 #translations_json {
672 display: none !important;
673 }
674
675 .wp-core-ui .button-warning,
676 .wp-core-ui .button-warning:focus,
677 .wp-core-ui .button-warning:active {
678 background: #f15116;
679 border-color: #d43900;
680 color: #fff;
681 }
682
683 .wp-core-ui .button-warning:hover {
684 background: #d43900;
685 border-color: #d43900;
686 color: #fff;
687 }
688
689 .wp-core-ui .button-warning.button-crawler {
690 position: absolute;
691 top: 40px;
692 right: 0;
693 box-shadow: none;
694 }
695
696 div.wrap:has(input.button-crawler) {
697 position: relative;
698 }
699
700 div.wrap:has(#notranslations-notice) .button-warning.button-crawler {
701 top: -60px;
702 }
703
704 @media (max-width: 782px) {
705 .wp-core-ui .button-warning.button-crawler {
706 top: 50px;
707 }
708 }
709
710 @media (max-width: 1280px) { body.toplevel_page_gptranslate, body.gptranslate_page_gptranslate-settings { min-width: 1280px; overflow-x: auto }}
711
712 /* GPTranslate iOS switch */
713 .wrapper {
714 position: relative;
715 display: inline-block;
716 width: 52px;
717 height: 28px;
718 vertical-align: middle;
719 cursor: pointer;
720 }
721
722 .wrapper input[type="radio"] {
723 position: absolute;
724 opacity: 0;
725 pointer-events: none;
726 }
727
728 .wrapper > label {
729 position: absolute;
730 top: 0;
731 left: 0;
732 height: 100%;
733 width: 50%;
734 cursor: pointer;
735 }
736 .wrapper > label:last-child {
737 left: 50%;
738 }
739
740 .wrapper > label > span {
741 position: absolute !important;
742 width: 1px;
743 height: 1px;
744 overflow: hidden;
745 clip: rect(1px,1px,1px,1px);
746 }
747
748 .wrapper::before {
749 content: "";
750 position: absolute;
751 inset: 0;
752 background: #bdbdbd;
753 border-radius: 999px;
754 transition: background-color 0.25s ease, box-shadow 0.25s ease;
755 box-shadow: inset 0 0 3px rgba(0,0,0,0.25);
756 pointer-events: none;
757 }
758
759 .wrapper::after {
760 position: absolute;
761 top: 3px;
762 left: 3px;
763 width: 22px;
764 height: 22px;
765 border-radius: 50%;
766 background: #fff;
767 box-shadow: 0 1px 4px rgba(0,0,0,0.3);
768 transition: transform 0.28s cubic-bezier(0.45,1.6,0.45,1), color 0.2s ease;
769 pointer-events: none;
770 display: flex;
771 align-items: center;
772 justify-content: center;
773 font-size: 14px;
774 font-weight: bold;
775 content: "";
776 }
777
778 .wrapper:has(> label:first-child > input:checked)::after {
779 content: "";
780 color: #2196f3;
781 }
782
783 .wrapper:has(> label:first-child > input:checked)::before {
784 background: #2196f3;
785 box-shadow: 0 0 0 3px rgba(33,150,243,0.18);
786 }
787 .wrapper:has(> label:first-child > input:checked)::after {
788 transform: translateX(24px);
789 }
790
791 .wrapper:has(> label:last-child > input:checked)::before {
792 background: #bdbdbd;
793 }
794 .wrapper:has(> label:last-child > input:checked)::after {
795 transform: translateX(0);
796 }
797
798 .wrapper:hover::before {
799 box-shadow: 0 0 0 3px rgba(33,150,243,0.12);
800 }
801 .wrapper input[type="radio"]:focus-visible + span {
802 outline: 2px solid rgba(33,150,243,0.45);
803 outline-offset: 2px;
804 }
805
806 /* Test API Key button */
807 #btn_test_apikey {
808 margin: 4px 0 0 1px;
809 vertical-align: middle;
810 background: #f6f7f7;
811 }
812 #btn_test_apikey:disabled {
813 opacity: 0.7;
814 cursor: wait;
815 }
816 .icon-spin {
817 animation: gpt-spin 1s linear infinite;
818 }
819 @keyframes gpt-spin {
820 0% { transform: rotate(0deg); }
821 100% { transform: rotate(360deg); }
822 }
823 #apikey_test_result {
824 display: inline-block;
825 padding: 3px 10px;
826 border-radius: 3px;
827 font-size: 13px;
828 vertical-align: middle;
829 font-weight: 500;
830 }
831 .gpt-test-success {
832 background-color: #d4edda;
833 color: #155724;
834 border: 1px solid #c3e6cb;
835 }
836 .gpt-test-error {
837 background-color: #f8d7da;
838 color: #721c24;
839 border: 1px solid #f5c6cb;
840 max-width: 500px;
841 word-break: break-word;
842 }
843
844 .gpt-field-error {
845 border-color: #dc3232 !important;
846 box-shadow: 0 0 0 1px #dc3232 !important;
847 }
848 .gpt-validation-error {
849 display: block;
850 color: #dc3232;
851 font-size: 12px;
852 margin-top: 4px;
853 margin-left: 4px;
854 margin-right: 4px;
855 }
856
857 .gpt-drag-over-before {
858 border-top: 3px solid #2271b1;
859 box-shadow: 0 -2px 6px rgba(34, 113, 177, 0.35);
860 }
861 .gpt-drag-over-after {
862 border-bottom: 3px solid #2271b1;
863 box-shadow: 0 2px 6px rgba(34, 113, 177, 0.35);
864 }
865
866 li.select2-search input.select2-search__field {
867 min-height: 30px
868 }
869
870 /* Targetta ogni body che ha una classe 'branch-' seguita da un numero >= 7 */
871 body[class*="branch-7"] .wrapper:has(> label:first-child > input:checked)::after,
872 body[class*="branch-8"] .wrapper:has(> label:first-child > input:checked)::after,
873 body[class*="branch-9"] .wrapper:has(> label:first-child > input:checked)::after {
874 color: #3858e9;
875 }
876
877 body[class*="branch-7"] .wrapper:has(> label:first-child > input:checked)::before,
878 body[class*="branch-8"] .wrapper:has(> label:first-child > input:checked)::before,
879 body[class*="branch-9"] .wrapper:has(> label:first-child > input:checked)::before {
880 background: #3858e9;
881 }
882
883 body[class*="branch-7"] table.form-table th.settings-label-separator,
884 body[class*="branch-8"] table.form-table th.settings-label-separator,
885 body[class*="branch-9"] table.form-table th.settings-label-separator {
886 background: #3858e9;
887 border-left: 4px solid #3858e9;
888 }
889
890 body[class*="branch-7"] div.exportimportbtns,
891 body[class*="branch-8"] div.exportimportbtns,
892 body[class*="branch-9"] div.exportimportbtns {
893 margin-top: -50px;
894 }
895
896
897 body[class*="branch-7"] input[name="gptranslate_settings_file"],
898 body[class*="branch-8"] input[name="gptranslate_settings_file"],
899 body[class*="branch-9"] input[name="gptranslate_settings_file"],
900 body[class*="branch-7"] input[name="import_file"],
901 body[class*="branch-8"] input[name="import_file"],
902 body[class*="branch-9"] input[name="import_file"] {
903 border: 1px solid #CCC;
904 border-radius: 4px;
905 padding-left: 5px;
906 padding: 8px;
907 }
908
909 body[class*="branch-7"] .gpt-label:not([class*="bg-"]),
910 body[class*="branch-8"] .gpt-label:not([class*="bg-"]),
911 body[class*="branch-9"] .gpt-label:not([class*="bg-"]) {
912 background-color: #3858e9;
913 }
914
915 body[class*="branch-7"].wp-core-ui .button-warning.button-crawler,
916 body[class*="branch-8"].wp-core-ui .button-warning.button-crawler,
917 body[class*="branch-9"].wp-core-ui .button-warning.button-crawler {
918 top: 50px;
919 }
920
921 body[class*="branch-7"] .bg-primary,
922 body[class*="branch-8"] .bg-primary,
923 body[class*="branch-9"] .bg-primary,
924 body[class*="branch-7"] .btn-primary,
925 body[class*="branch-8"] .btn-primary,
926 body[class*="branch-9"] .btn-primary {
927 background-color: #3858e9;
928 }
929
930 body[class*="branch-7"] #btn_test_apikey span.dashicons,
931 body[class*="branch-8"] #btn_test_apikey span.dashicons,
932 body[class*="branch-9"] #btn_test_apikey span.dashicons {
933 line-height: normal;
934 margin-top: -1px;
935 }
936
937 body[class*="branch-7"] div.notice.notice-success,
938 body[class*="branch-8"] div.notice.notice-success,
939 body[class*="branch-9"] div.notice.notice-success {
940 border-top: 1px solid #4ab866;
941 border-right: 1px solid #4ab866;
942 border-bottom: 1px solid #4ab866;
943 }
944
945 body[class*="branch-7"] div.notice.notice-warning,
946 body[class*="branch-8"] div.notice.notice-warning,
947 body[class*="branch-9"] div.notice.notice-warning {
948 border-top: 1px solid #f0b849;
949 border-right: 1px solid #f0b849;
950 border-bottom: 1px solid #f0b849;
951 }
952
953 body[class*="branch-7"].wp-core-ui div.left-filter-container .button,
954 body[class*="branch-8"].wp-core-ui div.left-filter-container .button,
955 body[class*="branch-9"].wp-core-ui div.left-filter-container .button,
956 body[class*="branch-7"].wp-core-ui div.right-filter-container .button,
957 body[class*="branch-8"].wp-core-ui div.right-filter-container .button,
958 body[class*="branch-9"].wp-core-ui div.right-filter-container .button {
959 background: #f6f7f7;
960 }
961
962 body[class*="branch-7"] .form-table th,
963 body[class*="branch-8"] .form-table th,
964 body[class*="branch-9"] .form-table th {
965 border-left-color: #3858e9;
966 }
967
968 body[class*="branch-7"] input[name="exactmatch"],
969 body[class*="branch-8"] input[name="exactmatch"],
970 body[class*="branch-9"] input[name="exactmatch"]{
971 border: 1px solid #3858e9;
972 }
973
974 body[class*="branch-7"] .gpt-apikey-wrap .dashicons,
975 body[class*="branch-8"] .gpt-apikey-wrap .dashicons,
976 body[class*="branch-9"] .gpt-apikey-wrap .dashicons {
977 margin-top: 5px;
978 }
979
980 /* Rate us button & review modal */
981 #gpt-rate-btn {
982 position: absolute;
983 top: 5px;
984 right: 0;
985 z-index: 9990;
986 display: flex;
987 align-items: center;
988 gap: 5px;
989 background: #fff;
990 border: 1px solid #ddd;
991 border-right: none;
992 border-radius: 4px 0 0 4px;
993 padding: 5px 10px 5px 10px;
994 font-size: 12px;
995 font-weight: 600;
996 color: #444;
997 cursor: pointer;
998 box-shadow: -2px 2px 6px rgba(0, 0, 0, .08);
999 transition: background .15s;
1000 display: none;
1001 }
1002
1003 #gpt-rate-btn:hover {
1004 background: #fafafa;
1005 }
1006
1007 #gpt-rate-btn .gpt-heart {
1008 color: #e03e3e;
1009 font-size: 13px;
1010 }
1011
1012 #gpt-rate-btn .gpt-stars {
1013 color: #f0b429;
1014 letter-spacing: 1px;
1015 }
1016
1017 #gpt-review-overlay {
1018 display: none;
1019 position: fixed;
1020 inset: 0;
1021 background: rgba(0, 0, 0, .45);
1022 z-index: 99998;
1023 align-items: center;
1024 justify-content: center;
1025 }
1026
1027 #gpt-review-overlay.open {
1028 display: flex;
1029 }
1030
1031 #gpt-review-box {
1032 background: #fff;
1033 border-radius: 8px;
1034 padding: 30px 32px 24px;
1035 max-width: 400px;
1036 width: 90%;
1037 box-shadow: 0 8px 32px rgba(0, 0, 0, .22);
1038 position: relative;
1039 text-align: center;
1040 }
1041
1042 #gpt-review-close {
1043 position: absolute;
1044 top: 10px;
1045 right: 14px;
1046 background: none;
1047 border: none;
1048 font-size: 20px;
1049 cursor: pointer;
1050 color: #aaa;
1051 line-height: 1;
1052 }
1053
1054 #gpt-review-close:hover {
1055 color: #555;
1056 }
1057
1058 .gpt-review-stars {
1059 color: #f0b429;
1060 font-size: 26px;
1061 letter-spacing: 3px;
1062 margin: 4px 0 10px;
1063 }
1064
1065 .gpt-review-title {
1066 margin: 0 0 10px;
1067 font-size: 16px;
1068 font-weight: 700;
1069 color: #1d2327;
1070 }
1071
1072 .gpt-review-desc {
1073 margin: 0 0 20px;
1074 color: #555;
1075 font-size: 13px;
1076 line-height: 1.65;
1077 }
1078
1079 .gpt-review-cta {
1080 display: inline-block;
1081 background: #2271b1;
1082 color: #fff !important;
1083 padding: 9px 22px;
1084 border-radius: 4px;
1085 text-decoration: none !important;
1086 font-size: 13px;
1087 font-weight: 600;
1088 margin-bottom: 16px;
1089 }
1090
1091 .gpt-review-cta:hover {
1092 background: #135e96;
1093 }
1094
1095 .gpt-review-links {
1096 font-size: 12px;
1097 }
1098
1099 .gpt-review-links a {
1100 color: #aaa;
1101 text-decoration: none;
1102 margin: 0 8px;
1103 }
1104
1105 .gpt-review-links a:hover {
1106 color: #777;
1107 }
1108
1109 .gpt-review-footer {
1110 margin-top: 18px;
1111 padding-top: 14px;
1112 border-top: 1px solid #f0f0f0;
1113 font-size: 11px;
1114 color: #bbb;
1115 }
1116
1117 .gpt-review-footer a {
1118 color: #bbb;
1119 text-decoration: none;
1120 }
1121
1122 .gpt-review-footer a:hover {
1123 color: #888;
1124 }
1125