PluginProbe
phpinfo() WP – Site Health, PHP Compatibility & Server Audit / 7.2.5
phpinfo() WP – Site Health, PHP Compatibility & Server Audit v7.2.5
7.2.7 7.2.6 7.2.5 7.2.4 7.2.3 7.2.0 7.2.1 7.2.2 7.1.0 7.0.3 7.0.4 7.0.5 trunk 6.0 7.0.0 7.0.1 7.0.2
phpinfo-wp / css / style.css

style.css in phpinfo() WP – Site Health, PHP Compatibility & Server Audit 7.2.5, at css/style.css

4,588 lines 82.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* =========================================================
2 phpinfo() page — override phpinfo's own dated CSS
3 ========================================================= */
4
5 /* Strip phpinfo's default table width, re-lay it out cleanly */
6 #phpinfo-WP .center {
7 text-align: left;
8 }
9
10 #phpinfo-WP .center table {
11 width: 100% !important;
12 max-width: 100% !important;
13 border-collapse: collapse !important;
14 border: none !important;
15 box-shadow: 0 1px 4px rgba(0, 0, 0, .08) !important;
16 margin: 0 0 20px !important;
17 border-radius: 6px;
18 overflow: hidden;
19 }
20
21 /* Section header rows */
22 #phpinfo-WP .center tr.h th,
23 #phpinfo-WP .center tr.h td {
24 background: #777BB3 !important;
25 color: #fff !important;
26 font-size: 12px !important;
27 font-weight: 700 !important;
28 text-transform: uppercase !important;
29 letter-spacing: .6px !important;
30 padding: 10px 14px !important;
31 text-align: left !important;
32 border: none !important;
33 }
34
35 /* Directive name cell */
36 #phpinfo-WP .center td.e {
37 background: #f5f5f8 !important;
38 color: #1d2327 !important;
39 font-family: monospace !important;
40 font-size: 12px !important;
41 font-weight: 500 !important;
42 padding: 7px 14px !important;
43 width: 280px !important;
44 border: none !important;
45 border-bottom: 1px solid #eee !important;
46 vertical-align: top !important;
47 }
48
49 /* Value cell */
50 #phpinfo-WP .center td.v {
51 background: #fff !important;
52 color: #2c2c2c !important;
53 font-size: 12px !important;
54 padding: 7px 14px !important;
55 border: none !important;
56 border-bottom: 1px solid #eee !important;
57 max-width: none !important;
58 overflow-x: auto !important;
59 word-break: break-word !important;
60 }
61
62 /* Alternating rows */
63 #phpinfo-WP .center tr:nth-child(even) td.e {
64 background: #ededf2 !important;
65 }
66
67 #phpinfo-WP .center tr:nth-child(even) td.v {
68 background: #f9f9fc !important;
69 }
70
71 /* Section h1 / h2 */
72 #phpinfo-WP .center h1 {
73 font-size: 18px !important;
74 color: #1d2327 !important;
75 margin: 8px 0 20px !important;
76 font-weight: 700 !important;
77 }
78
79 #phpinfo-WP .center h2 {
80 font-size: 14px !important;
81 color: #777BB3 !important;
82 margin: 28px 0 6px !important;
83 padding-bottom: 6px !important;
84 border-bottom: 2px solid #e0e0e8 !important;
85 font-weight: 700 !important;
86 text-transform: uppercase !important;
87 letter-spacing: .5px !important;
88 scroll-margin-top: 60px;
89 }
90
91 /* phpinfo image (PHP logo) */
92 #phpinfo-WP .center img {
93 display: none;
94 }
95
96 /* Links inside phpinfo */
97 #phpinfo-WP .center a {
98 color: #777BB3;
99 }
100
101 /* Search highlight */
102 #phpinfo-WP tr.phpinfowp-row-hl td.e,
103 #phpinfo-WP tr.phpinfowp-row-hl td.v {
104 background: #fffde7 !important;
105 }
106
107 #phpinfo-wp-notice {
108 display: flex;
109 justify-content: space-between;
110 align-items: baseline;
111 }
112
113 #htaccess-warning {
114 color: red;
115 font-weight: 600;
116 font-size: 20px;
117 margin: 10px;
118 }
119
120 #phpinfo-htaccess-save,
121 #phpinfo-htaccess-backup,
122 #phpinfo-htaccess-restore {
123 background-color: #777BB3;
124 margin: 15px 10px 10px 10px;
125 border: none;
126 border-radius: 5px;
127 height: 40px;
128 width: 100px;
129 color: white;
130 font-weight: 400;
131 cursor: pointer;
132 text-transform: uppercase;
133 }
134
135 #htaccess-phpinfo-des {
136 font-size: 16px;
137 max-width: 1100px;
138 margin: 0 auto;
139 padding: 20px;
140 line-height: 1.5;
141 }
142
143 #htaccess-editor {
144 min-width: 700px;
145 margin-top: 10px;
146 height: 370px;
147 }
148
149 .phpinfo-extensions {
150 margin-top: 20px;
151 -webkit-column-count: 5;
152 -moz-column-count: 5;
153 column-count: 5;
154 -webkit-column-gap: 50px;
155 -moz-column-gap: 50px;
156 column-gap: 0px;
157 -webkit-column-rule: 1px single grey;
158 -moz-column-rule: 1px single grey;
159 column-rule: 1px single grey;
160 text-align: center;
161 font-size: 15px;
162 line-height: 25px;
163 font-weight: bolder;
164 }
165
166 #title-phpinfo-WP {
167 margin-top: 30px;
168 margin-bottom: 30px;
169 letter-spacing: 10px;
170 margin-left: 20px;
171 }
172
173 #heading-phpinfo-WP {
174 color: #777BB3;
175 }
176
177 html {
178 scroll-behavior: smooth;
179 }
180
181 #topButtonImage-phpinfo-WP {
182 height: 30px;
183 width: 30px;
184 }
185
186 #topButton-phpinfo-WP {
187 position: fixed;
188 bottom: 20px;
189 right: 30px;
190 z-index: 99;
191 border: none;
192 outline: none;
193 background-color: #777BB3;
194 color: white;
195 cursor: pointer;
196 padding: 15px;
197 border-radius: 10px;
198 font-size: 18px;
199 }
200
201 #topButton-phpinfo-WP:hover {
202 background-color: #555;
203 }
204
205 .center pre {
206 margin: 0;
207 font-family: Poppins, sans-serif;
208 }
209
210 .center a:link {
211 color: #009;
212 text-decoration: none;
213 background-color: #fff;
214 }
215
216 .center a:hover {
217 text-decoration: underline;
218 }
219
220 .center table {
221 border-collapse: collapse;
222 border: 0;
223 width: 934px;
224 box-shadow: 1px 2px 3px #ccc;
225 text-align: left;
226 margin: 10px auto;
227 }
228
229 .center table th {
230 text-align: center !important;
231 }
232
233 .center table td,
234 .center table th {
235 border: 1px solid #666;
236 font-size: 75%;
237 vertical-align: baseline;
238 padding: 5px 5px;
239 text-align: center;
240 }
241
242 .center h1,
243 .center h2 {
244 text-transform: uppercase;
245 }
246
247 .center .p {
248 text-align: left;
249 }
250
251 .center .e {
252 background-color: #ccf;
253 width: 300px;
254 font-weight: bold;
255 }
256
257 .center .h {
258 background-color: #99c;
259 font-weight: bold;
260 }
261
262 .center .v {
263 background-color: #ddd;
264 max-width: 300px;
265 overflow-x: auto;
266 word-wrap: break-word;
267 }
268
269 .center .v i {
270 color: #999;
271 }
272
273 .center img {
274 float: right;
275 border: 0;
276 }
277
278 .center hr {
279 width: 934px;
280 background-color: #ccc;
281 border: 0;
282 height: 1px;
283 }
284
285 .tab {
286 overflow: hidden;
287 border: 1px solid #ccc;
288 background-color: #f1f1f1;
289 }
290
291 .tab button {
292 background-color: inherit;
293 float: left;
294 border: none;
295 outline: none;
296 cursor: pointer;
297 padding: 14px 16px;
298 transition: 0.3s;
299 font-size: 17px;
300 }
301
302 .tab button:hover {
303 background-color: #777BB3;
304 color: white;
305 }
306
307 .tab button.active {
308 background-color: #777BB3;
309 color: white;
310 }
311
312 .tabcontent {
313 padding: 6px 12px;
314 border: 1px solid #ccc;
315 border-top: none;
316 width: 97%;
317 }
318
319 #phpinfo-WP {
320 text-align: center;
321 }
322
323 #phpinfo-wp {
324 margin-right: 20px;
325 }
326
327 #phpinfo-output {
328 text-align: center;
329 font-size: 30px;
330 margin-top: 20px;
331 font-weight: 600;
332 color: #777BB3;
333 }
334
335 #phpinfo-log {
336 line-height: 1.5;
337 height: 400px;
338 width: 98.24%;
339 overflow: auto;
340 background-color: floralwhite;
341 color: #777BB3;
342 font-family: sans-serif;
343 padding: 10px;
344 margin-top: 30px;
345 border-radius: 10px;
346 font-weight: 400;
347 font-size: 18px;
348 }
349
350 #phpinfo-disk-info {
351 font-size: 14px;
352 }
353
354 #info-phpinfo-WP {
355 display: flex;
356 justify-content: space-between;
357 }
358
359 #phpinfo_mc {
360 margin-top: 21px;
361 letter-spacing: 10px;
362 margin-left: 20px;
363 }
364
365 .editor {
366 display: flex;
367 justify-content: center;
368 align-items: center;
369 flex-direction: column;
370 }
371
372 /* =========================================================
373 Design system — shared across all pages
374 ========================================================= */
375
376 /* Fix WP 7.x overriding dashicons color and alignment inside buttons */
377 .phpinfowp-page .button .dashicons {
378 color: inherit !important;
379 line-height: 1 !important;
380 margin-top: -2px !important;
381 }
382
383 .phpinfowp-page .button-primary .dashicons {
384 color: #fff !important;
385 }
386
387 .phpinfowp-page-header {
388 display: flex;
389 justify-content: space-between;
390 align-items: flex-start;
391 gap: 16px;
392 flex-wrap: wrap;
393 margin-bottom: 24px;
394 }
395
396 .phpinfowp-page-header h1 {
397 margin: 0 0 24px;
398 font-size: 22px;
399 display: flex;
400 align-items: center;
401 gap: 10px;
402 }
403
404 .phpinfowp-page-subtitle {
405 margin: 0;
406 color: #666;
407 font-size: 13px;
408 }
409
410 .phpinfowp-section-heading {
411 margin: 32px 0 14px;
412 padding-bottom: 8px;
413 border-bottom: 1px solid #e0e0e0;
414 font-size: 16px;
415 }
416
417 /* Score card (security headers + config grader) */
418 .phpinfowp-score-card {
419 display: flex;
420 align-items: center;
421 gap: 24px;
422 background: #fff;
423 border: 1px solid #e0e0e0;
424 border-radius: 8px;
425 padding: 20px 24px;
426 box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
427 }
428
429 .phpinfowp-score-card-body {
430 flex: 1;
431 }
432
433 .phpinfowp-score-card-value {
434 font-size: 36px;
435 font-weight: 800;
436 color: #1d2327;
437 line-height: 1;
438 margin-bottom: 6px;
439 }
440
441 .phpinfowp-score-card-value span {
442 font-size: 16px;
443 font-weight: 400;
444 color: #888;
445 }
446
447 .phpinfowp-score-card-meta {
448 font-size: 13px;
449 color: #666;
450 display: flex;
451 gap: 8px;
452 flex-wrap: wrap;
453 }
454
455 /* =========================================================
456 Pro shared
457 ========================================================= */
458 .phpinfowp-pro-page {
459 max-width: 1100px;
460 padding: 20px 0 40px;
461 }
462
463 .phpinfowp-pro-page h1 {
464 display: flex;
465 align-items: center;
466 gap: 10px;
467 margin-bottom: 24px;
468 }
469
470 .phpinfowp-pro-badge {
471 display: inline-block;
472 background: #777BB3;
473 color: #fff;
474 font-size: 11px;
475 font-weight: 700;
476 letter-spacing: 1px;
477 padding: 2px 7px;
478 border-radius: 3px;
479 vertical-align: middle;
480 }
481
482 /* =========================================================
483 Upgrade gate
484 ========================================================= */
485 .phpinfowp-upgrade-gate {
486 display: flex;
487 justify-content: center;
488 padding: 48px 20px;
489 }
490
491 .phpinfowp-upgrade-inner {
492 max-width: 700px;
493 width: 100%;
494 background: #fff;
495 border: 1px solid #dcdcde;
496 border-radius: 10px;
497 padding: 40px 48px;
498 box-shadow: 0 2px 12px rgba(0, 0, 0, .08);
499 text-align: center;
500 }
501
502 .phpinfowp-upgrade-badge {
503 display: inline-block;
504 background: #777BB3;
505 color: #fff;
506 font-size: 13px;
507 font-weight: 800;
508 letter-spacing: 2px;
509 padding: 4px 14px;
510 border-radius: 4px;
511 margin-bottom: 16px;
512 }
513
514 .phpinfowp-upgrade-title {
515 font-size: 22px;
516 font-weight: 700;
517 margin: 0 0 6px;
518 color: #1d2327;
519 }
520
521 .phpinfowp-upgrade-price {
522 font-size: 14px;
523 color: #666;
524 margin: 0 0 28px;
525 }
526
527 .phpinfowp-upgrade-features {
528 display: grid;
529 grid-template-columns: 1fr 1fr;
530 gap: 14px 24px;
531 text-align: left;
532 margin-bottom: 32px;
533 }
534
535 @media (max-width: 600px) {
536 .phpinfowp-upgrade-features {
537 grid-template-columns: 1fr;
538 }
539 }
540
541 .phpinfowp-upgrade-feature {
542 display: flex;
543 align-items: flex-start;
544 gap: 10px;
545 font-size: 13px;
546 }
547
548 .phpinfowp-upgrade-feature .dashicons {
549 color: #777BB3;
550 flex-shrink: 0;
551 margin-top: 1px;
552 font-size: 18px;
553 width: 18px;
554 height: 18px;
555 }
556
557 .phpinfowp-upgrade-feature strong {
558 display: block;
559 margin-bottom: 1px;
560 color: #1d2327;
561 font-size: 13px;
562 }
563
564 .phpinfowp-upgrade-feature span {
565 color: #666;
566 font-size: 12px;
567 line-height: 1.4;
568 }
569
570 .phpinfowp-upgrade-actions {
571 display: flex;
572 flex-direction: column;
573 align-items: center;
574 gap: 10px;
575 margin-bottom: 16px;
576 }
577
578 .phpinfowp-upgrade-cta {
579 display: inline-block;
580 background: #777BB3;
581 color: #fff;
582 font-size: 15px;
583 font-weight: 700;
584 padding: 12px 32px;
585 border-radius: 6px;
586 text-decoration: none;
587 transition: background .15s;
588 }
589
590 .phpinfowp-upgrade-cta:hover {
591 background: #6366a0;
592 color: #fff;
593 }
594
595 .phpinfowp-upgrade-secondary {
596 font-size: 13px;
597 color: #777BB3;
598 text-decoration: underline;
599 }
600
601 .phpinfowp-upgrade-footer {
602 font-size: 12px;
603 color: #888;
604 margin: 0;
605 }
606
607 /* =========================================================
608 License page
609 ========================================================= */
610 .phpinfowp-license-card {
611 background: #fff;
612 border: 1px solid #e0e0e0;
613 border-left: 4px solid #ccc;
614 border-radius: 8px;
615 padding: 22px 26px;
616 max-width: 760px;
617 box-shadow: 0 1px 4px rgba(0, 0, 0, .05);
618 margin-bottom: 8px;
619 }
620
621 .phpinfowp-license-card.is-active {
622 border-left-color: #00a32a;
623 }
624
625 .phpinfowp-license-card.is-inactive {
626 border-left-color: #d63638;
627 }
628
629 .phpinfowp-license-status {
630 display: flex;
631 align-items: flex-start;
632 gap: 14px;
633 padding-bottom: 18px;
634 border-bottom: 1px solid #f0f0f0;
635 margin-bottom: 18px;
636 }
637
638 .phpinfowp-license-status .dashicons {
639 font-size: 28px;
640 width: 28px;
641 height: 28px;
642 margin-top: 2px;
643 flex-shrink: 0;
644 }
645
646 .phpinfowp-license-status-title {
647 font-size: 16px;
648 font-weight: 700;
649 color: #1d2327;
650 margin-bottom: 2px;
651 }
652
653 .phpinfowp-license-status-sub {
654 font-size: 13px;
655 color: #666;
656 }
657
658 .phpinfowp-license-key-display {
659 display: flex;
660 align-items: center;
661 gap: 10px;
662 font-size: 13px;
663 }
664
665 .phpinfowp-license-key-label {
666 font-weight: 600;
667 color: #555;
668 }
669
670 .phpinfowp-license-key-display code {
671 background: #f0f0f1;
672 padding: 4px 10px;
673 border-radius: 4px;
674 font-size: 12px;
675 letter-spacing: .5px;
676 }
677
678 .phpinfowp-license-form {
679 margin: 0;
680 }
681
682 .phpinfowp-license-input-label {
683 display: block;
684 font-size: 13px;
685 font-weight: 600;
686 color: #1d2327;
687 margin-bottom: 8px;
688 }
689
690 .phpinfowp-license-input-row {
691 display: flex;
692 gap: 8px;
693 align-items: center;
694 }
695
696 .phpinfowp-license-input-row input {
697 flex: 1;
698 font-family: monospace;
699 font-size: 13px;
700 padding: 8px 12px;
701 border: 1px solid #c3c4c7;
702 border-radius: 4px;
703 background: #fff;
704 min-width: 0;
705 }
706
707 .phpinfowp-license-input-row input:focus {
708 border-color: #777BB3;
709 box-shadow: 0 0 0 1px #777BB3;
710 outline: none;
711 }
712
713 .phpinfowp-license-input-row .button {
714 flex-shrink: 0;
715 }
716
717 /* Features grid */
718 .phpinfowp-license-features-grid {
719 display: grid;
720 grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
721 gap: 14px;
722 max-width: 1100px;
723 margin-bottom: 24px;
724 }
725
726 .phpinfowp-license-feature {
727 display: flex;
728 align-items: flex-start;
729 gap: 12px;
730 padding: 14px 16px;
731 background: #fff;
732 border: 1px solid #e0e0e0;
733 border-radius: 6px;
734 box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
735 }
736
737 .phpinfowp-license-feature .dashicons {
738 flex-shrink: 0;
739 color: #777BB3;
740 font-size: 22px;
741 width: 22px;
742 height: 22px;
743 margin-top: 1px;
744 }
745
746 .phpinfowp-license-feature-title {
747 font-size: 13px;
748 font-weight: 700;
749 color: #1d2327;
750 margin-bottom: 3px;
751 }
752
753 .phpinfowp-license-feature-desc {
754 font-size: 12px;
755 color: #666;
756 line-height: 1.45;
757 }
758
759 .phpinfowp-license-cta-row {
760 margin-top: 8px;
761 padding: 20px 24px;
762 background: linear-gradient(135deg, #f6f4ff 0%, #fff 100%);
763 border: 1px solid #e8e3ff;
764 border-radius: 8px;
765 text-align: center;
766 max-width: 1100px;
767 }
768
769 .phpinfowp-license-cta-meta {
770 margin: 10px 0 0;
771 font-size: 12px;
772 color: #777;
773 }
774
775 /* =========================================================
776 EOL Alerts
777 ========================================================= */
778 .phpinfowp-eol-current-card {
779 display: flex;
780 align-items: center;
781 gap: 32px;
782 background: #fff;
783 border: 1px solid #dcdcde;
784 border-left: 5px solid #8c8fae;
785 border-radius: 6px;
786 padding: 20px 28px;
787 max-width: 800px;
788 }
789
790 .eol-status-eol {
791 border-left-color: #d63638;
792 }
793
794 .eol-status-warning {
795 border-left-color: #dba617;
796 }
797
798 .eol-status-ok {
799 border-left-color: #00a32a;
800 }
801
802 .phpinfowp-eol-current-version {
803 display: flex;
804 flex-direction: column;
805 align-items: center;
806 min-width: 120px;
807 }
808
809 .version-label {
810 font-size: 11px;
811 color: #666;
812 text-transform: uppercase;
813 letter-spacing: .5px;
814 }
815
816 .version-number {
817 font-size: 26px;
818 font-weight: 700;
819 color: #1d2327;
820 margin-top: 4px;
821 }
822
823 .phpinfowp-eol-current-info p {
824 margin: 6px 0 0;
825 font-size: 14px;
826 }
827
828 .eol-badge {
829 display: inline-block;
830 font-size: 11px;
831 font-weight: 700;
832 letter-spacing: 1px;
833 padding: 2px 8px;
834 border-radius: 3px;
835 }
836
837 .eol-badge-eol {
838 background: #fce8e8;
839 color: #d63638;
840 }
841
842 .eol-badge-warning {
843 background: #fff8e5;
844 color: #996800;
845 }
846
847 .eol-badge-ok {
848 background: #edfaef;
849 color: #1a7f37;
850 }
851
852 .eol-badge-unknown {
853 background: #f0f0f1;
854 color: #50575e;
855 }
856
857 .phpinfowp-eol-table th,
858 .phpinfowp-eol-table td {
859 vertical-align: middle;
860 }
861
862 .phpinfowp-current-row {
863 background: #f0f4ff !important;
864 }
865
866 /* =========================================================
867 Security Headers
868 ========================================================= */
869 .phpinfowp-sec-header-summary {
870 display: flex;
871 align-items: center;
872 gap: 28px;
873 background: #fff;
874 border: 1px solid #dcdcde;
875 border-radius: 6px;
876 padding: 20px 28px;
877 max-width: 800px;
878 }
879
880 .phpinfowp-grade-circle {
881 display: flex;
882 align-items: center;
883 justify-content: center;
884 width: 72px;
885 height: 72px;
886 border-radius: 50%;
887 font-size: 26px;
888 font-weight: 800;
889 flex-shrink: 0;
890 color: #fff;
891 background: #8c8fae;
892 }
893
894 .phpinfowp-grade-circle.grade-aplus,
895 .phpinfowp-grade-circle.grade-a {
896 background: #00a32a;
897 }
898
899 .phpinfowp-grade-circle.grade-b {
900 background: #1a7f37;
901 }
902
903 .phpinfowp-grade-circle.grade-c {
904 background: #dba617;
905 }
906
907 .phpinfowp-grade-circle.grade-d {
908 background: #d63638;
909 }
910
911 .phpinfowp-grade-circle.grade-f {
912 background: #8d2626;
913 }
914
915 .phpinfowp-sec-table td {
916 vertical-align: top;
917 padding: 10px 12px;
918 }
919
920 .phpinfowp-header-missing td:first-child {
921 opacity: .8;
922 }
923
924 /* =========================================================
925 Config Snapshots
926 ========================================================= */
927 .phpinfowp-snap-card {
928 background: #fff;
929 border: 1px solid #dcdcde;
930 border-radius: 6px;
931 padding: 20px 24px;
932 min-width: 280px;
933 }
934
935 .phpinfowp-snap-select {
936 max-width: 340px;
937 width: 100%;
938 }
939
940 .phpinfowp-diff-table td {
941 vertical-align: middle;
942 }
943
944 .diff-changed {
945 background: #fff8e5 !important;
946 }
947
948 .diff-added {
949 background: #edfaef !important;
950 }
951
952 .diff-removed {
953 background: #fce8e8 !important;
954 }
955
956 .diff-badge {
957 display: inline-block;
958 font-size: 10px;
959 font-weight: 700;
960 letter-spacing: .5px;
961 padding: 2px 6px;
962 border-radius: 3px;
963 }
964
965 .diff-badge-changed {
966 background: #fff8e5;
967 color: #996800;
968 }
969
970 .diff-badge-added {
971 background: #edfaef;
972 color: #1a7f37;
973 }
974
975 .diff-badge-removed {
976 background: #fce8e8;
977 color: #d63638;
978 }
979
980 /* =========================================================
981 Error Log Viewer
982 ========================================================= */
983 .phpinfowp-log-toolbar {
984 display: flex;
985 justify-content: space-between;
986 align-items: flex-start;
987 gap: 16px;
988 margin-bottom: 12px;
989 flex-wrap: wrap;
990 }
991
992 .phpinfowp-log-meta {
993 font-size: 13px;
994 color: #444;
995 }
996
997 #phpinfowp-log-viewer {
998 font-family: monospace;
999 font-size: 12px;
1000 line-height: 1.6;
1001 background: #1e1e2e;
1002 color: #cdd6f4;
1003 border-radius: 6px;
1004 padding: 12px 16px;
1005 max-height: 550px;
1006 overflow-y: auto;
1007 white-space: pre-wrap;
1008 word-break: break-all;
1009 }
1010
1011 .log-line {
1012 padding: 1px 0;
1013 }
1014
1015 .log-fatal {
1016 color: #f38ba8;
1017 font-weight: 600;
1018 }
1019
1020 .log-warning {
1021 color: #fab387;
1022 }
1023
1024 .log-notice {
1025 color: #f9e2af;
1026 }
1027
1028 .log-debug {
1029 color: #89dceb;
1030 }
1031
1032 .log-default {
1033 color: #cdd6f4;
1034 }
1035
1036 /* =========================================================
1037 OPcache Dashboard
1038 ========================================================= */
1039 .phpinfowp-opcache-grid {
1040 display: grid;
1041 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
1042 gap: 16px;
1043 max-width: 960px;
1044 }
1045
1046 .phpinfowp-opcache-card {
1047 background: #fff;
1048 border: 1px solid #dcdcde;
1049 border-radius: 6px;
1050 padding: 20px 24px;
1051 }
1052
1053 .phpinfowp-opcache-hitrate {
1054 display: flex;
1055 align-items: center;
1056 gap: 20px;
1057 grid-column: 1 / -1;
1058 }
1059
1060 .phpinfowp-opcache-hitrate .phpinfowp-grade-circle {
1061 font-size: 19px;
1062 letter-spacing: -0.5px;
1063 }
1064
1065 .phpinfowp-progress-bar-wrap {
1066 background: #f0f0f1;
1067 border-radius: 4px;
1068 height: 12px;
1069 overflow: hidden;
1070 margin-bottom: 4px;
1071 }
1072
1073 .phpinfowp-progress-bar {
1074 height: 100%;
1075 border-radius: 4px;
1076 transition: width .3s;
1077 }
1078
1079 /* =========================================================
1080 Config Grader
1081 ========================================================= */
1082 .phpinfowp-grade-table td {
1083 vertical-align: top;
1084 padding: 8px 10px;
1085 font-size: 13px;
1086 }
1087
1088 .phpinfowp-grade-table code {
1089 font-size: 12px;
1090 }
1091
1092 /* =========================================================
1093 phpinfo page — search toolbar
1094 ========================================================= */
1095 .phpinfowp-toolbar {
1096 display: flex;
1097 align-items: center;
1098 gap: 8px;
1099 padding: 12px 0 16px;
1100 flex-wrap: wrap;
1101 }
1102
1103 /* =========================================================
1104 Extensions page
1105 ========================================================= */
1106 .phpinfowp-ext-page {
1107 padding-top: 20px;
1108 }
1109
1110 .phpinfowp-ext-section {
1111 margin-bottom: 28px;
1112 }
1113
1114 .phpinfowp-ext-heading {
1115 font-size: 13px;
1116 font-weight: 600;
1117 text-transform: uppercase;
1118 letter-spacing: .5px;
1119 margin: 0 0 10px;
1120 padding-bottom: 6px;
1121 border-bottom: 2px solid #dcdcde;
1122 }
1123
1124 .phpinfowp-ext-heading-loaded {
1125 color: #1d2327;
1126 border-color: #00a32a;
1127 }
1128
1129 .phpinfowp-ext-heading-missing {
1130 color: #d63638;
1131 border-color: #d63638;
1132 }
1133
1134 .phpinfowp-ext-grid {
1135 display: grid;
1136 grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
1137 gap: 6px;
1138 }
1139
1140 .phpinfowp-ext-item {
1141 display: flex;
1142 align-items: center;
1143 gap: 7px;
1144 padding: 5px 8px;
1145 border-radius: 4px;
1146 font-size: 13px;
1147 background: #f9f9f9;
1148 border: 1px solid #e8e8e8;
1149 }
1150
1151 .phpinfowp-ext-loaded {
1152 background: #f0faf2;
1153 border-color: #c3e6cb;
1154 }
1155
1156 .phpinfowp-ext-missing {
1157 background: #fff4f4;
1158 border-color: #f5c6c6;
1159 }
1160
1161 .phpinfowp-ext-dot {
1162 width: 8px;
1163 height: 8px;
1164 border-radius: 50%;
1165 flex-shrink: 0;
1166 }
1167
1168 .phpinfowp-ext-dot-loaded {
1169 background: #00a32a;
1170 }
1171
1172 .phpinfowp-ext-dot-missing {
1173 background: #d63638;
1174 }
1175
1176 .phpinfowp-ext-name {
1177 font-family: monospace;
1178 font-size: 12px;
1179 flex: 1;
1180 }
1181
1182 .phpinfowp-ext-ver {
1183 font-size: 10px;
1184 color: #666;
1185 white-space: nowrap;
1186 }
1187
1188 /* =========================================================
1189 Basic Info / Server Overview
1190 ========================================================= */
1191 .phpinfowp-info-page {
1192 max-width: 1000px;
1193 padding-top: 20px;
1194 }
1195
1196 .phpinfowp-info-grid {
1197 display: grid;
1198 grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
1199 gap: 14px;
1200 margin-bottom: 8px;
1201 }
1202
1203 .phpinfowp-info-card {
1204 background: #fff;
1205 border: 1px solid #dcdcde;
1206 border-radius: 6px;
1207 padding: 16px 18px;
1208 }
1209
1210 .phpinfowp-info-card-label {
1211 font-size: 11px;
1212 text-transform: uppercase;
1213 letter-spacing: .5px;
1214 color: #666;
1215 margin-bottom: 6px;
1216 }
1217
1218 .phpinfowp-info-card-value {
1219 font-size: 22px;
1220 font-weight: 700;
1221 color: #1d2327;
1222 margin-bottom: 4px;
1223 }
1224
1225 .phpinfowp-info-card-sub {
1226 font-size: 12px;
1227 color: #555;
1228 }
1229
1230 .phpinfowp-mini-bar-wrap {
1231 background: #f0f0f1;
1232 border-radius: 3px;
1233 height: 5px;
1234 margin-top: 6px;
1235 overflow: hidden;
1236 }
1237
1238 .phpinfowp-mini-bar {
1239 height: 100%;
1240 border-radius: 3px;
1241 }
1242
1243 .phpinfowp-info-table td:first-child {
1244 width: 210px;
1245 color: #555;
1246 font-size: 13px;
1247 }
1248
1249 .phpinfowp-info-table td:last-child {
1250 font-size: 13px;
1251 }
1252
1253 .phpinfowp-info-section-head {
1254 background: #f8f8fa !important;
1255 font-size: 11px !important;
1256 text-transform: uppercase;
1257 letter-spacing: .5px;
1258 color: #777BB3 !important;
1259 padding: 8px 12px !important;
1260 }
1261
1262 /* =========================================================
1263 .htaccess Change Log
1264 ========================================================= */
1265 /* =========================================================
1266 Activity Log
1267 ========================================================= */
1268 /* .phpinfowp-log-page composes with .phpinfowp-pro-page for consistent
1269 width and top-padding — no overrides needed here. */
1270
1271 .phpinfowp-log-controls {
1272 display: flex;
1273 justify-content: space-between;
1274 align-items: center;
1275 gap: 12px;
1276 flex-wrap: wrap;
1277 margin-bottom: 20px;
1278 }
1279
1280 .phpinfowp-log-filters {
1281 display: flex;
1282 gap: 6px;
1283 flex-wrap: wrap;
1284 }
1285
1286 .phpinfowp-log-filter-pill {
1287 display: inline-flex;
1288 align-items: center;
1289 gap: 6px;
1290 padding: 5px 12px;
1291 border-radius: 20px;
1292 font-size: 12px;
1293 font-weight: 600;
1294 text-decoration: none;
1295 color: #555;
1296 background: #f0f0f1;
1297 border: 1px solid #dcdcde;
1298 transition: background .15s, color .15s;
1299 }
1300
1301 .phpinfowp-log-filter-pill:hover {
1302 background: #e0e0e0;
1303 color: #333;
1304 }
1305
1306 .phpinfowp-log-filter-pill.active {
1307 background: #777BB3;
1308 color: #fff;
1309 border-color: #777BB3;
1310 }
1311
1312 .phpinfowp-log-filter-count {
1313 display: inline-flex;
1314 align-items: center;
1315 justify-content: center;
1316 min-width: 18px;
1317 height: 18px;
1318 padding: 0 5px;
1319 border-radius: 9px;
1320 font-size: 10px;
1321 font-weight: 700;
1322 background: rgba(0, 0, 0, .12);
1323 }
1324
1325 .phpinfowp-log-filter-pill.active .phpinfowp-log-filter-count {
1326 background: rgba(255, 255, 255, .25);
1327 }
1328
1329 .phpinfowp-log-empty {
1330 text-align: center;
1331 padding: 56px 20px;
1332 background: #f9f9f9;
1333 border: 1px solid #e0e0e0;
1334 border-radius: 8px;
1335 }
1336
1337 /* Timeline */
1338 .phpinfowp-timeline {
1339 display: flex;
1340 flex-direction: column;
1341 gap: 0;
1342 border: 1px solid #e0e0e0;
1343 border-radius: 8px;
1344 overflow: hidden;
1345 }
1346
1347 .phpinfowp-timeline-entry {
1348 display: flex;
1349 align-items: flex-start;
1350 gap: 14px;
1351 padding: 14px 18px;
1352 background: #fff;
1353 border-bottom: 1px solid #f0f0f1;
1354 border-left: 4px solid #ccc;
1355 transition: background .12s;
1356 }
1357
1358 .phpinfowp-timeline-entry:last-child {
1359 border-bottom: none;
1360 }
1361
1362 .phpinfowp-timeline-entry:hover {
1363 background: #fafafa;
1364 }
1365
1366 .phpinfowp-timeline-icon {
1367 flex-shrink: 0;
1368 width: 32px;
1369 height: 32px;
1370 border-radius: 50%;
1371 display: flex;
1372 align-items: center;
1373 justify-content: center;
1374 margin-top: 1px;
1375 }
1376
1377 .phpinfowp-timeline-body {
1378 flex: 1;
1379 min-width: 0;
1380 }
1381
1382 .phpinfowp-timeline-top {
1383 display: flex;
1384 align-items: center;
1385 gap: 8px;
1386 flex-wrap: wrap;
1387 margin-bottom: 4px;
1388 }
1389
1390 .phpinfowp-timeline-badge {
1391 font-size: 10px;
1392 font-weight: 700;
1393 letter-spacing: .5px;
1394 padding: 2px 7px;
1395 border-radius: 3px;
1396 color: #fff;
1397 flex-shrink: 0;
1398 }
1399
1400 .phpinfowp-timeline-file {
1401 font-size: 12px;
1402 background: #f0f0f0;
1403 padding: 1px 6px;
1404 border-radius: 3px;
1405 color: #444;
1406 }
1407
1408 .phpinfowp-timeline-user {
1409 font-size: 12px;
1410 color: #888;
1411 }
1412
1413 .phpinfowp-timeline-meta {
1414 font-size: 12px;
1415 color: #999;
1416 display: flex;
1417 gap: 6px;
1418 align-items: center;
1419 flex-wrap: wrap;
1420 }
1421
1422 /* =========================================================
1423 .htaccess Editor
1424 ========================================================= */
1425 .phpinfowp-htaccess-page {
1426 max-width: 1200px;
1427 }
1428
1429 .phpinfowp-htaccess-layout {
1430 display: grid;
1431 grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
1432 gap: 28px;
1433 align-items: flex-start;
1434 }
1435
1436 .phpinfowp-htaccess-editor-col,
1437 .phpinfowp-htaccess-preview-col {
1438 min-width: 0;
1439 }
1440
1441 @media (max-width: 960px) {
1442 .phpinfowp-htaccess-layout {
1443 grid-template-columns: 1fr;
1444 }
1445 }
1446
1447 #htaccess-editor {
1448 width: 100%;
1449 min-height: 260px;
1450 font-family: monospace;
1451 font-size: 13px;
1452 line-height: 1.6;
1453 box-sizing: border-box;
1454 resize: vertical;
1455 }
1456
1457 .phpinfowp-htaccess-buttons {
1458 display: flex;
1459 justify-content: space-between;
1460 align-items: center;
1461 margin-top: 12px;
1462 flex-wrap: wrap;
1463 gap: 8px;
1464 }
1465
1466 .phpinfowp-htaccess-preview {
1467 background: #1e1e2e;
1468 color: #cdd6f4;
1469 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
1470 font-size: 11.5px;
1471 line-height: 1.5;
1472 padding: 12px 14px;
1473 border-radius: 6px;
1474 max-height: 360px;
1475 overflow-x: hidden;
1476 overflow-y: auto;
1477 white-space: pre-wrap;
1478 word-break: break-all;
1479 margin: 0;
1480 }
1481
1482 /* Long file paths in the banner + footer (.user.ini location etc.) must
1483 wrap, not push the layout sideways. */
1484 .phpinfowp-htaccess-page code {
1485 word-break: break-all;
1486 overflow-wrap: anywhere;
1487 white-space: normal;
1488 }
1489
1490 .phpinfowp-htaccess-banner {
1491 font-size: 13px;
1492 line-height: 1.55;
1493 }
1494
1495 .phpinfowp-htaccess-banner code {
1496 display: inline-block;
1497 max-width: 100%;
1498 vertical-align: bottom;
1499 }
1500
1501 /* =========================================================
1502 SSL Monitor
1503 ========================================================= */
1504 .phpinfowp-ssl-grid {
1505 display: grid;
1506 grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
1507 gap: 18px;
1508 margin-top: 20px;
1509 }
1510
1511 .phpinfowp-ssl-card {
1512 background: #fff;
1513 border: 1px solid #e0e0e0;
1514 border-top: 4px solid #ccc;
1515 border-radius: 8px;
1516 padding: 18px 20px 16px;
1517 box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
1518 }
1519
1520 .phpinfowp-ssl-error {
1521 border-top-color: #d63638 !important;
1522 }
1523
1524 .phpinfowp-ssl-card-host {
1525 font-size: 14px;
1526 font-weight: 700;
1527 color: #1d2327;
1528 margin-bottom: 6px;
1529 word-break: break-all;
1530 }
1531
1532 .phpinfowp-ssl-card-days {
1533 font-size: 28px;
1534 font-weight: 800;
1535 line-height: 1.1;
1536 margin: 8px 0;
1537 }
1538
1539 .phpinfowp-ssl-card-status {
1540 margin-bottom: 12px;
1541 }
1542
1543 .phpinfowp-ssl-card-meta {
1544 width: 100%;
1545 border-collapse: collapse;
1546 font-size: 12px;
1547 color: #555;
1548 }
1549
1550 .phpinfowp-ssl-card-meta td {
1551 padding: 3px 0;
1552 }
1553
1554 .phpinfowp-ssl-card-meta td:first-child {
1555 color: #888;
1556 width: 52px;
1557 }
1558
1559 @media (max-width: 600px) {
1560 .phpinfowp-ssl-grid {
1561 grid-template-columns: 1fr;
1562 }
1563 }
1564
1565 /* =========================================================
1566 Admin Bar Indicator
1567 ========================================================= */
1568 #wpadminbar #wp-admin-bar-phpinfowp-indicator>.ab-item {
1569 font-size: 12px !important;
1570 padding: 0 10px !important;
1571 }
1572
1573 #wpadminbar #wp-admin-bar-phpinfowp-indicator .ab-sub-wrapper {
1574 min-width: 200px;
1575 }
1576
1577 #wpadminbar #wp-admin-bar-phpinfowp-indicator .ab-submenu .ab-item {
1578 font-size: 12px !important;
1579 }
1580
1581 /* =========================================================
1582 Topbar (Elementor-style header) — every plugin page
1583 ========================================================= */
1584 .phpinfowp-topbar {
1585 display: none;
1586 align-items: center;
1587 justify-content: space-between;
1588 gap: 16px;
1589 height: 56px;
1590 padding: 0 24px;
1591 /* Match WP 7.0's main admin menu colour (~#1e1e1e), not the older #1d2327 */
1592 background: #1e1e1e;
1593 color: #fff;
1594 box-sizing: border-box;
1595 }
1596
1597 body.phpinfowp-page .phpinfowp-topbar {
1598 display: flex;
1599 }
1600
1601 .phpinfowp-topbar-brand {
1602 display: flex;
1603 align-items: center;
1604 gap: 10px;
1605 min-width: 0;
1606 }
1607
1608 .phpinfowp-topbar-logo {
1609 display: inline-flex;
1610 align-items: center;
1611 line-height: 0;
1612 flex-shrink: 0;
1613 }
1614
1615 .phpinfowp-topbar-name {
1616 font-size: 15px;
1617 font-weight: 700;
1618 letter-spacing: .2px;
1619 color: #fff;
1620 white-space: nowrap;
1621 }
1622
1623 .phpinfowp-topbar-sep {
1624 color: #50575e;
1625 margin: 0 2px;
1626 }
1627
1628 .phpinfowp-topbar-title {
1629 font-size: 14px;
1630 font-weight: 500;
1631 color: #c3c4c7;
1632 white-space: nowrap;
1633 overflow: hidden;
1634 text-overflow: ellipsis;
1635 }
1636
1637 .phpinfowp-topbar-actions {
1638 display: flex;
1639 align-items: center;
1640 gap: 12px;
1641 }
1642
1643 .phpinfowp-topbar-cta {
1644 display: inline-block;
1645 padding: 7px 16px;
1646 background: #777BB3;
1647 color: #fff !important;
1648 text-decoration: none;
1649 border-radius: 5px;
1650 font-size: 13px;
1651 font-weight: 600;
1652 line-height: 1;
1653 transition: background .15s;
1654 }
1655
1656 .phpinfowp-topbar-cta:hover,
1657 .phpinfowp-topbar-cta:focus {
1658 background: #6366a0;
1659 color: #fff !important;
1660 }
1661
1662 .phpinfowp-topbar-pro-active {
1663 font-size: 13px;
1664 font-weight: 600;
1665 color: #46d160;
1666 }
1667
1668 /* Page-wide breathing room on every plugin page.
1669 #wpbody-content already has WP's bottom padding; we add top/right and
1670 .phpinfowp-has-sidenav adds left padding below.
1671 box-sizing:border-box prevents the added padding from creating horizontal
1672 overflow (WP's default #wpbody-content is width:100% content-box). */
1673 body.phpinfowp-page #wpbody-content {
1674 padding-top: 18px;
1675 padding-right: 24px;
1676 box-sizing: border-box;
1677 }
1678
1679 /* The topbar lives inside #wpcontent, which has 20px of left padding by
1680 default. Pull the bar flush to the left edge of #wpcontent so it spans
1681 the full content area (matches Elementor's full-bleed header). */
1682 body.phpinfowp-page .phpinfowp-topbar {
1683 margin-left: -20px;
1684 }
1685
1686 /* =========================================================
1687 Secondary sidebar — Audit / Tools / Reports
1688 Layout: an absolutely-positioned column on the left of #wpbody-content,
1689 sitting below the topbar. body.phpinfowp-has-sidenav pushes content right.
1690 ========================================================= */
1691 .phpinfowp-side-nav {
1692 position: absolute;
1693 top: 18px;
1694 left: 0;
1695 width: 240px;
1696 margin: 0 0 20px;
1697 padding: 12px;
1698 background: #fff;
1699 border: 1px solid #e4e6eb;
1700 border-radius: 8px;
1701 box-sizing: border-box;
1702 z-index: 1;
1703 }
1704
1705 .phpinfowp-side-nav-list {
1706 list-style: none;
1707 margin: 0;
1708 padding: 0;
1709 }
1710
1711 .phpinfowp-side-nav-list li {
1712 margin: 0;
1713 }
1714
1715 .phpinfowp-side-nav-list li+li {
1716 margin-top: 2px;
1717 }
1718
1719 .phpinfowp-side-nav-item {
1720 display: flex;
1721 align-items: center;
1722 gap: 12px;
1723 padding: 11px 14px;
1724 font-size: 14px;
1725 font-weight: 500;
1726 color: #1d2327;
1727 text-decoration: none;
1728 border-radius: 6px;
1729 transition: background .12s, color .12s;
1730 }
1731
1732 .phpinfowp-side-nav-icon {
1733 width: 20px;
1734 height: 20px;
1735 font-size: 20px;
1736 line-height: 1;
1737 flex-shrink: 0;
1738 color: #50575e;
1739 }
1740
1741 .phpinfowp-side-nav-label-text {
1742 flex: 1;
1743 min-width: 0;
1744 overflow: hidden;
1745 text-overflow: ellipsis;
1746 white-space: nowrap;
1747 }
1748
1749 .phpinfowp-side-nav-item:hover,
1750 .phpinfowp-side-nav-item:focus {
1751 background: #f2f3f5;
1752 color: #1d2327;
1753 box-shadow: none;
1754 outline: none;
1755 }
1756
1757 .phpinfowp-side-nav-item:hover .phpinfowp-side-nav-icon,
1758 .phpinfowp-side-nav-item:focus .phpinfowp-side-nav-icon {
1759 color: #1d2327;
1760 }
1761
1762 .phpinfowp-side-nav-item.is-active {
1763 background: #e8eaed;
1764 color: #1d2327;
1765 font-weight: 600;
1766 }
1767
1768 .phpinfowp-side-nav-item.is-active .phpinfowp-side-nav-icon {
1769 color: #1d2327;
1770 }
1771
1772 .phpinfowp-side-nav-pro {
1773 display: inline-block;
1774 background: #777BB3;
1775 color: #fff;
1776 font-size: 9px;
1777 font-weight: 700;
1778 letter-spacing: .4px;
1779 padding: 1px 5px;
1780 border-radius: 3px;
1781 flex-shrink: 0;
1782 }
1783
1784 /* Push the page content right so it sits beside the sidebar.
1785 We pad #wpbody-content itself (not just .wrap) because most phpinfo views
1786 render content directly into #wpbody-content without a .wrap wrapper.
1787 The sidebar is position:absolute so padding doesn't shift it.
1788 left padding stacks with the page-wide right padding from .phpinfowp-page. */
1789 body.phpinfowp-has-sidenav #wpbody-content {
1790 position: relative;
1791 padding-left: 260px;
1792 box-sizing: border-box;
1793 }
1794
1795 @media (max-width: 782px) {
1796 .phpinfowp-side-nav {
1797 position: static;
1798 width: auto;
1799 margin: 10px 0 16px;
1800 }
1801
1802 body.phpinfowp-has-sidenav #wpbody-content {
1803 padding-left: 0;
1804 }
1805
1806 body.phpinfowp-page #wpbody-content {
1807 padding-right: 12px;
1808 }
1809 }
1810
1811 /* =========================================================
1812 Dashboard
1813 ========================================================= */
1814 .phpinfowp-dashboard .phpinfowp-page-header {
1815 align-items: center;
1816 }
1817
1818 .phpinfowp-dash-stats {
1819 display: grid;
1820 grid-template-columns: repeat(4, 1fr);
1821 gap: 16px;
1822 margin-bottom: 28px;
1823 }
1824
1825 @media (max-width: 900px) {
1826 .phpinfowp-dash-stats {
1827 grid-template-columns: repeat(2, 1fr);
1828 }
1829 }
1830
1831 .phpinfowp-dash-stat {
1832 display: block;
1833 padding: 18px 20px;
1834 background: #fff;
1835 border: 1px solid #e0e0e0;
1836 border-radius: 8px;
1837 text-decoration: none;
1838 color: inherit;
1839 transition: box-shadow .15s, transform .15s, border-color .15s;
1840 box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
1841 }
1842
1843 .phpinfowp-dash-stat:hover {
1844 border-color: #c8d0e0;
1845 box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
1846 transform: translateY(-1px);
1847 color: inherit;
1848 }
1849
1850 .phpinfowp-dash-stat-label {
1851 font-size: 11px;
1852 font-weight: 700;
1853 text-transform: uppercase;
1854 letter-spacing: .5px;
1855 color: #888;
1856 margin-bottom: 6px;
1857 }
1858
1859 .phpinfowp-dash-stat-value {
1860 font-size: 38px;
1861 font-weight: 800;
1862 line-height: 1;
1863 color: #1d2327;
1864 margin-bottom: 6px;
1865 }
1866
1867 .phpinfowp-dash-stat-meta {
1868 font-size: 12px;
1869 color: #666;
1870 }
1871
1872 /* Grade-coloured stat values */
1873 .phpinfowp-dash-stat-value.grade-aplus,
1874 .phpinfowp-dash-stat-value.grade-a {
1875 color: #00a32a;
1876 }
1877
1878 .phpinfowp-dash-stat-value.grade-b {
1879 color: #5b9b3a;
1880 }
1881
1882 .phpinfowp-dash-stat-value.grade-c {
1883 color: #dba617;
1884 }
1885
1886 .phpinfowp-dash-stat-value.grade-d {
1887 color: #d68f17;
1888 }
1889
1890 .phpinfowp-dash-stat-value.grade-f {
1891 color: #d63638;
1892 }
1893
1894 .phpinfowp-dash-section {
1895 margin-top: 32px;
1896 }
1897
1898 .phpinfowp-dash-section-title {
1899 font-size: 13px;
1900 font-weight: 700;
1901 text-transform: uppercase;
1902 letter-spacing: .6px;
1903 color: #1d2327;
1904 margin: 0 0 14px;
1905 padding-bottom: 10px;
1906 border-bottom: 1px solid #e0e0e0;
1907 }
1908
1909 /* Active issues panel */
1910 .phpinfowp-dash-issues {
1911 display: flex;
1912 flex-direction: column;
1913 gap: 8px;
1914 }
1915
1916 .phpinfowp-dash-issue {
1917 display: flex;
1918 align-items: center;
1919 gap: 10px;
1920 padding: 10px 14px;
1921 background: #fff;
1922 border: 1px solid #e0e0e0;
1923 border-left: 3px solid #dba617;
1924 border-radius: 4px;
1925 text-decoration: none;
1926 color: #1d2327;
1927 font-size: 13px;
1928 transition: background .15s;
1929 }
1930
1931 .phpinfowp-dash-issue:hover {
1932 background: #fafafb;
1933 color: #1d2327;
1934 }
1935
1936 .phpinfowp-dash-issue-dot {
1937 display: inline-block;
1938 width: 8px;
1939 height: 8px;
1940 border-radius: 50%;
1941 flex-shrink: 0;
1942 }
1943
1944 .phpinfowp-dash-issue-detail {
1945 color: #666;
1946 font-size: 12px;
1947 margin-left: auto;
1948 }
1949
1950 /* Feature card grid */
1951 .phpinfowp-dash-grid {
1952 display: grid;
1953 grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
1954 gap: 12px;
1955 }
1956
1957 .phpinfowp-dash-card {
1958 display: block;
1959 padding: 16px 18px;
1960 background: #fff;
1961 border: 1px solid #e0e0e0;
1962 border-radius: 8px;
1963 text-decoration: none;
1964 color: #1d2327;
1965 transition: box-shadow .15s, transform .15s, border-color .15s;
1966 position: relative;
1967 }
1968
1969 .phpinfowp-dash-card:hover {
1970 border-color: #777BB3;
1971 box-shadow: 0 2px 8px rgba(119, 123, 179, .15);
1972 transform: translateY(-1px);
1973 color: #1d2327;
1974 }
1975
1976 .phpinfowp-dash-card .dashicons {
1977 font-size: 22px;
1978 width: 22px;
1979 height: 22px;
1980 color: #777BB3;
1981 margin-bottom: 8px;
1982 }
1983
1984 .phpinfowp-dash-card-title {
1985 font-size: 14px;
1986 font-weight: 600;
1987 margin-bottom: 4px;
1988 display: flex;
1989 align-items: center;
1990 gap: 6px;
1991 }
1992
1993 .phpinfowp-dash-card-desc {
1994 font-size: 12px;
1995 color: #666;
1996 line-height: 1.45;
1997 }
1998
1999 .phpinfowp-dash-card-pro {
2000 display: inline-block;
2001 background: #777BB3;
2002 color: #fff;
2003 font-size: 9px;
2004 font-weight: 700;
2005 padding: 1px 5px;
2006 border-radius: 3px;
2007 letter-spacing: .4px;
2008 }
2009
2010 .phpinfowp-dash-card.is-locked {
2011 opacity: .82;
2012 }
2013
2014 .phpinfowp-dash-card.is-locked:hover {
2015 opacity: 1;
2016 }
2017
2018 /* =========================================================
2019 Security Headers — row cards
2020 ========================================================= */
2021 .phpinfowp-sec-rows {
2022 display: flex;
2023 flex-direction: column;
2024 gap: 10px;
2025 }
2026
2027 .phpinfowp-sec-row {
2028 display: flex;
2029 align-items: flex-start;
2030 gap: 14px;
2031 padding: 14px 18px;
2032 background: #fff;
2033 border: 1px solid #e0e0e0;
2034 border-left: 4px solid #ccc;
2035 border-radius: 6px;
2036 box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
2037 }
2038
2039 .phpinfowp-sec-row-icon {
2040 flex-shrink: 0;
2041 margin-top: 1px;
2042 }
2043
2044 .phpinfowp-sec-row-icon .dashicons {
2045 font-size: 22px;
2046 width: 22px;
2047 height: 22px;
2048 }
2049
2050 .phpinfowp-sec-row-body {
2051 flex: 1;
2052 min-width: 0;
2053 }
2054
2055 .phpinfowp-sec-row-title {
2056 display: flex;
2057 align-items: center;
2058 justify-content: space-between;
2059 gap: 8px;
2060 margin-bottom: 4px;
2061 flex-wrap: wrap;
2062 }
2063
2064 .phpinfowp-sec-row-points {
2065 font-size: 12px;
2066 font-weight: 700;
2067 flex-shrink: 0;
2068 }
2069
2070 .phpinfowp-sec-row-desc {
2071 font-size: 13px;
2072 color: #555;
2073 margin-bottom: 6px;
2074 }
2075
2076 .phpinfowp-sec-row-value {
2077 display: inline-block;
2078 background: #f0f0f1;
2079 padding: 2px 8px;
2080 border-radius: 4px;
2081 font-size: 12px;
2082 word-break: break-all;
2083 margin-bottom: 4px;
2084 }
2085
2086 .phpinfowp-sec-row-missing {
2087 font-size: 12px;
2088 color: #d63638;
2089 font-style: italic;
2090 }
2091
2092 .phpinfowp-sec-row-note {
2093 margin-top: 6px;
2094 font-size: 12px;
2095 line-height: 1.4;
2096 }
2097
2098 /* Mail DNS rows (compact) */
2099 .phpinfowp-mail-row {
2100 padding: 8px 12px;
2101 border-left-width: 3px;
2102 box-shadow: none;
2103 background: #fff !important;
2104 gap: 10px;
2105 }
2106
2107 .phpinfowp-mail-row .phpinfowp-sec-row-title {
2108 margin-bottom: 2px;
2109 font-size: 13px;
2110 }
2111
2112 .phpinfowp-mail-row .phpinfowp-sec-row-value {
2113 margin-bottom: 2px;
2114 background: transparent;
2115 padding: 0;
2116 font-size: 12px;
2117 color: #444;
2118 }
2119
2120 .phpinfowp-mail-row .phpinfowp-sec-row-icon {
2121 margin-top: 0;
2122 }
2123
2124 .phpinfowp-mail-row .phpinfowp-sec-row-icon .dashicons {
2125 font-size: 18px;
2126 width: 18px;
2127 height: 18px;
2128 }
2129
2130 .phpinfowp-mail-row .phpinfowp-sec-row-note {
2131 margin-top: 4px;
2132 }
2133
2134 /* =========================================================
2135 Config Grader — section + check cards
2136 ========================================================= */
2137
2138 /* ----- Context banner: what we tuned the recommendations for ----- */
2139 .phpinfowp-cg-context {
2140 margin: 0 0 14px;
2141 padding: 12px 14px;
2142 background: #f6f7fb;
2143 border: 1px solid #e0e2ea;
2144 border-radius: 8px;
2145 }
2146
2147 .phpinfowp-cg-context-label {
2148 font-size: 11px;
2149 font-weight: 700;
2150 letter-spacing: .5px;
2151 text-transform: uppercase;
2152 color: #50575e;
2153 margin-bottom: 8px;
2154 }
2155
2156 .phpinfowp-cg-context-row {
2157 display: flex;
2158 flex-wrap: wrap;
2159 gap: 6px;
2160 }
2161
2162 .phpinfowp-cg-chip {
2163 display: inline-flex;
2164 align-items: center;
2165 font-size: 11px;
2166 font-weight: 500;
2167 padding: 3px 9px;
2168 border-radius: 999px;
2169 background: #fff;
2170 border: 1px solid #d0d4dd;
2171 color: #1d2327;
2172 }
2173
2174 .phpinfowp-cg-chip-php {
2175 background: #efeefd;
2176 border-color: #c8c4f3;
2177 color: #4a3da0;
2178 }
2179
2180 .phpinfowp-cg-chip-host {
2181 background: #ecf6ff;
2182 border-color: #b3d4f7;
2183 color: #1a4a8a;
2184 }
2185
2186 .phpinfowp-cg-chip-plugin {
2187 background: #fff;
2188 border-color: #d0d4dd;
2189 color: #1d2327;
2190 }
2191
2192 .phpinfowp-cg-chip-dev {
2193 background: #fff5d6;
2194 border-color: #e9c977;
2195 color: #8a6500;
2196 }
2197
2198 /* ----- Severity pills (Critical / High / Medium / Low) ----- */
2199 .phpinfowp-sev {
2200 display: inline-block;
2201 margin-left: 8px;
2202 vertical-align: middle;
2203 font-size: 10px;
2204 font-weight: 700;
2205 letter-spacing: .4px;
2206 text-transform: uppercase;
2207 padding: 2px 7px;
2208 border-radius: 999px;
2209 border: 1px solid;
2210 background: #fff;
2211 line-height: 1.5;
2212 }
2213
2214 .phpinfowp-sev-critical {
2215 background: #fbe7e8;
2216 }
2217
2218 .phpinfowp-sev-high {
2219 background: #fff5d6;
2220 }
2221
2222 .phpinfowp-sev-medium {
2223 background: #efeefd;
2224 }
2225
2226 .phpinfowp-sev-low {
2227 background: #f0f0f3;
2228 }
2229
2230 /* ----- Trend indicator next to the score ----- */
2231 .phpinfowp-trend {
2232 display: inline-flex;
2233 align-items: baseline;
2234 gap: 4px;
2235 margin-left: 10px;
2236 font-size: 14px;
2237 font-weight: 600;
2238 padding: 2px 8px;
2239 border-radius: 999px;
2240 vertical-align: middle;
2241 }
2242
2243 .phpinfowp-trend small {
2244 font-size: 10px;
2245 font-weight: 500;
2246 color: inherit;
2247 opacity: .7;
2248 }
2249
2250 .phpinfowp-trend-up {
2251 color: #00a32a;
2252 background: #e8f6ec;
2253 }
2254
2255 .phpinfowp-trend-down {
2256 color: #d63638;
2257 background: #fbe7e8;
2258 }
2259
2260 .phpinfowp-trend-flat {
2261 color: #646970;
2262 background: #f0f0f3;
2263 }
2264
2265 /* ----- Cross-directive consistency issues ----- */
2266 .phpinfowp-cg-cross {
2267 margin: 0 0 24px;
2268 padding: 16px 18px;
2269 background: #fffbea;
2270 border: 1px solid #f4d35e;
2271 border-left: 4px solid #dba617;
2272 border-radius: 8px;
2273 }
2274
2275 .phpinfowp-cg-cross-heading {
2276 margin: 0 0 12px;
2277 font-size: 14px;
2278 font-weight: 700;
2279 color: #6b4d00;
2280 display: flex;
2281 align-items: center;
2282 gap: 6px;
2283 }
2284
2285 .phpinfowp-cg-cross-sub {
2286 font-weight: 400;
2287 color: #8a6500;
2288 font-size: 13px;
2289 }
2290
2291 .phpinfowp-cg-cross-row {
2292 background: #fff;
2293 border: 1px solid #f0d995;
2294 border-radius: 6px;
2295 padding: 10px 12px;
2296 margin-top: 10px;
2297 }
2298
2299 .phpinfowp-cg-cross-row:first-of-type {
2300 margin-top: 0;
2301 }
2302
2303 .phpinfowp-cg-cross-top {
2304 display: flex;
2305 justify-content: space-between;
2306 align-items: center;
2307 gap: 8px;
2308 margin-bottom: 4px;
2309 }
2310
2311 .phpinfowp-cg-cross-reason {
2312 font-size: 12.5px;
2313 color: #3c434a;
2314 line-height: 1.5;
2315 }
2316
2317 .phpinfowp-cg-cross-fix {
2318 margin-top: 6px;
2319 font-size: 12.5px;
2320 color: #1d2327;
2321 background: #f0f6ff;
2322 border: 1px solid #c8d8f5;
2323 border-radius: 4px;
2324 padding: 6px 10px;
2325 }
2326
2327 /* ----- Live evidence chip under a check ----- */
2328 .phpinfowp-grade-check-live {
2329 margin-top: 8px;
2330 padding: 8px 10px;
2331 background: #f0f6ff;
2332 border: 1px solid #c8d8f5;
2333 border-left: 3px solid #2271b1;
2334 border-radius: 4px;
2335 font-size: 12px;
2336 line-height: 1.5;
2337 color: #1a3a72;
2338 display: flex;
2339 align-items: flex-start;
2340 gap: 6px;
2341 }
2342
2343 .phpinfowp-grade-check-live .dashicons {
2344 flex-shrink: 0;
2345 color: #2271b1;
2346 font-size: 14px;
2347 width: 14px;
2348 height: 14px;
2349 margin-top: 2px;
2350 }
2351
2352 /* ----- Host-aware fix hint under a check ----- */
2353 .phpinfowp-grade-check-host {
2354 margin-top: 8px;
2355 padding: 8px 10px;
2356 background: #fafafb;
2357 border: 1px dashed #c0c4cc;
2358 border-radius: 4px;
2359 font-size: 12px;
2360 line-height: 1.5;
2361 color: #3c434a;
2362 }
2363
2364 .phpinfowp-grade-check-host a {
2365 margin-left: 6px;
2366 font-weight: 500;
2367 }
2368
2369 .phpinfowp-grade-section {
2370 margin-bottom: 28px;
2371 }
2372
2373 .phpinfowp-grade-section-heading {
2374 font-size: 14px;
2375 font-weight: 700;
2376 text-transform: uppercase;
2377 letter-spacing: .5px;
2378 color: #1d2327;
2379 margin: 0 0 12px 0;
2380 display: flex;
2381 align-items: center;
2382 gap: 10px;
2383 border-bottom: 2px solid #e0e0e8;
2384 padding-bottom: 8px;
2385 }
2386
2387 .phpinfowp-grade-section-badge {
2388 font-size: 10px;
2389 font-weight: 700;
2390 letter-spacing: .4px;
2391 padding: 2px 8px;
2392 border-radius: 3px;
2393 color: #fff;
2394 text-transform: uppercase;
2395 }
2396
2397 .phpinfowp-grade-checks {
2398 display: flex;
2399 flex-direction: column;
2400 gap: 8px;
2401 }
2402
2403 .phpinfowp-grade-check {
2404 display: flex;
2405 align-items: flex-start;
2406 gap: 12px;
2407 padding: 12px 16px;
2408 border: 1px solid #e0e0e0;
2409 border-left: 4px solid #ccc;
2410 border-radius: 6px;
2411 box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
2412 }
2413
2414 .phpinfowp-grade-check-icon {
2415 flex-shrink: 0;
2416 margin-top: 1px;
2417 }
2418
2419 .phpinfowp-grade-check-icon .dashicons {
2420 font-size: 20px;
2421 width: 20px;
2422 height: 20px;
2423 }
2424
2425 .phpinfowp-grade-check-body {
2426 flex: 1;
2427 min-width: 0;
2428 }
2429
2430 .phpinfowp-grade-check-key {
2431 font-size: 13px;
2432 font-weight: 600;
2433 margin-bottom: 5px;
2434 }
2435
2436 .phpinfowp-grade-check-key code {
2437 background: #f0f0f1;
2438 padding: 1px 6px;
2439 border-radius: 3px;
2440 font-size: 12px;
2441 }
2442
2443 .phpinfowp-grade-check-values {
2444 display: flex;
2445 align-items: center;
2446 gap: 8px;
2447 flex-wrap: wrap;
2448 font-size: 12px;
2449 margin-bottom: 4px;
2450 }
2451
2452 .phpinfowp-grade-check-values code {
2453 padding: 1px 5px;
2454 border-radius: 3px;
2455 background: rgba(0, 0, 0, .05);
2456 font-size: 11px;
2457 }
2458
2459 .phpinfowp-grade-check-note {
2460 font-size: 12px;
2461 color: #666;
2462 line-height: 1.4;
2463 margin-top: 4px;
2464 }
2465
2466 /* =========================================================
2467 Extension page — heading count badge
2468 ========================================================= */
2469 .phpinfowp-ext-heading-count {
2470 display: inline-flex;
2471 align-items: center;
2472 justify-content: center;
2473 background: #e0e0e0;
2474 color: #555;
2475 font-size: 11px;
2476 font-weight: 700;
2477 min-width: 22px;
2478 height: 18px;
2479 padding: 0 5px;
2480 border-radius: 9px;
2481 margin-left: 4px;
2482 vertical-align: middle;
2483 }
2484
2485 /* =========================================================
2486 PHP Compatibility Scanner
2487 ========================================================= */
2488 .phpinfowp-compat-controls {
2489 display: flex;
2490 align-items: center;
2491 gap: 12px;
2492 padding: 14px 18px;
2493 background: #fff;
2494 border: 1px solid #e0e0e0;
2495 border-radius: 6px;
2496 margin-bottom: 20px;
2497 flex-wrap: wrap;
2498 }
2499
2500 .phpinfowp-compat-controls select {
2501 margin-left: 8px;
2502 padding: 4px 28px 4px 10px;
2503 min-width: 110px;
2504 }
2505
2506 /* Vertically center the dashicon against the button label — inline
2507 vertical-align:middle leaves the 20px glyph sitting low, so use flex. */
2508 .phpinfowp-compat-controls .button {
2509 display: inline-flex;
2510 align-items: center;
2511 gap: 6px;
2512 }
2513
2514 .phpinfowp-compat-controls .button .dashicons {
2515 font-size: 18px;
2516 width: 18px;
2517 height: 18px;
2518 line-height: 1;
2519 }
2520
2521 .phpinfowp-compat-empty {
2522 text-align: center;
2523 padding: 60px 20px;
2524 background: #fff;
2525 border: 2px dashed #e0e0e0;
2526 border-radius: 8px;
2527 color: #888;
2528 }
2529
2530 .phpinfowp-compat-empty .dashicons {
2531 font-size: 48px;
2532 width: 48px;
2533 height: 48px;
2534 color: #ccc;
2535 margin-bottom: 12px;
2536 }
2537
2538 .phpinfowp-compat-empty h3 {
2539 margin: 0 0 8px;
2540 color: #444;
2541 }
2542
2543 .phpinfowp-compat-owner {
2544 background: #fff;
2545 border: 1px solid #e0e0e0;
2546 border-radius: 6px;
2547 margin-bottom: 8px;
2548 overflow: hidden;
2549 }
2550
2551 .phpinfowp-compat-owner summary {
2552 cursor: pointer;
2553 padding: 12px 16px;
2554 display: flex;
2555 align-items: center;
2556 gap: 10px;
2557 font-size: 14px;
2558 list-style: none;
2559 user-select: none;
2560 }
2561
2562 .phpinfowp-compat-owner summary::-webkit-details-marker {
2563 display: none;
2564 }
2565
2566 .phpinfowp-compat-owner summary::before {
2567 content: '';
2568 font-size: 10px;
2569 color: #888;
2570 transition: transform .15s;
2571 }
2572
2573 .phpinfowp-compat-owner[open] summary::before {
2574 transform: rotate(90deg);
2575 }
2576
2577 .phpinfowp-compat-owner-type {
2578 font-size: 10px;
2579 font-weight: 700;
2580 letter-spacing: .4px;
2581 padding: 3px 7px;
2582 border-radius: 3px;
2583 color: #fff;
2584 }
2585
2586 .phpinfowp-compat-owner-name {
2587 flex: 1;
2588 color: #1d2327;
2589 word-break: break-all;
2590 }
2591
2592 .phpinfowp-compat-owner-counts {
2593 font-size: 12px;
2594 color: #666;
2595 display: flex;
2596 gap: 8px;
2597 align-items: center;
2598 }
2599
2600 .phpinfowp-compat-issues {
2601 padding: 4px 16px 14px;
2602 border-top: 1px solid #f0f0f0;
2603 display: flex;
2604 flex-direction: column;
2605 gap: 6px;
2606 }
2607
2608 .phpinfowp-compat-issue {
2609 padding: 10px 12px;
2610 background: #fafafa;
2611 border-left: 3px solid #ccc;
2612 border-radius: 4px;
2613 }
2614
2615 .phpinfowp-compat-issue-head {
2616 display: flex;
2617 align-items: center;
2618 gap: 10px;
2619 flex-wrap: wrap;
2620 margin-bottom: 4px;
2621 }
2622
2623 .phpinfowp-compat-sev {
2624 font-size: 10px;
2625 font-weight: 700;
2626 letter-spacing: .4px;
2627 padding: 2px 6px;
2628 border-radius: 3px;
2629 color: #fff;
2630 }
2631
2632 .phpinfowp-compat-name {
2633 background: #f0f0f1;
2634 padding: 1px 6px;
2635 border-radius: 3px;
2636 font-size: 12px;
2637 }
2638
2639 .phpinfowp-compat-where {
2640 font-size: 11px;
2641 color: #666;
2642 font-family: monospace;
2643 }
2644
2645 .phpinfowp-compat-issue-meta {
2646 font-size: 12px;
2647 color: #555;
2648 padding-left: 0;
2649 }
2650
2651 .phpinfowp-compat-fix {
2652 color: #444;
2653 font-style: italic;
2654 }
2655
2656 /* =========================================================
2657 Database Health
2658 ========================================================= */
2659 .phpinfowp-dbh-server {
2660 display: flex;
2661 align-items: center;
2662 justify-content: space-between;
2663 gap: 20px;
2664 background: #fff;
2665 border: 1px solid #e0e0e0;
2666 border-left: 5px solid #ccc;
2667 border-radius: 8px;
2668 padding: 18px 22px;
2669 margin-bottom: 20px;
2670 flex-wrap: wrap;
2671 }
2672
2673 .phpinfowp-dbh-server-engine {
2674 font-size: 22px;
2675 font-weight: 700;
2676 color: #1d2327;
2677 }
2678
2679 .phpinfowp-dbh-server-full {
2680 font-size: 12px;
2681 color: #888;
2682 font-family: monospace;
2683 margin-top: 2px;
2684 }
2685
2686 .phpinfowp-dbh-server-status {
2687 text-align: right;
2688 }
2689
2690 .phpinfowp-dbh-badge {
2691 font-size: 11px;
2692 font-weight: 700;
2693 letter-spacing: .5px;
2694 padding: 3px 9px;
2695 border-radius: 3px;
2696 color: #fff;
2697 display: inline-block;
2698 }
2699
2700 .phpinfowp-dbh-server-eol {
2701 font-size: 12px;
2702 color: #555;
2703 margin-top: 4px;
2704 }
2705
2706 .phpinfowp-dbh-metrics {
2707 display: grid;
2708 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2709 gap: 14px;
2710 margin-bottom: 20px;
2711 }
2712
2713 .phpinfowp-dbh-metric {
2714 background: #fff;
2715 border: 1px solid #e0e0e0;
2716 border-top: 3px solid #777BB3;
2717 border-radius: 6px;
2718 padding: 14px 16px;
2719 }
2720
2721 .phpinfowp-dbh-metric-label {
2722 font-size: 11px;
2723 font-weight: 700;
2724 text-transform: uppercase;
2725 letter-spacing: .5px;
2726 color: #666;
2727 display: flex;
2728 align-items: center;
2729 justify-content: space-between;
2730 margin-bottom: 6px;
2731 }
2732
2733 .phpinfowp-dbh-metric-badge {
2734 font-size: 9px;
2735 font-weight: 700;
2736 letter-spacing: .4px;
2737 padding: 1px 5px;
2738 border-radius: 2px;
2739 color: #fff;
2740 }
2741
2742 .phpinfowp-dbh-metric-value {
2743 font-size: 22px;
2744 font-weight: 700;
2745 color: #1d2327;
2746 line-height: 1.1;
2747 margin-bottom: 4px;
2748 }
2749
2750 .phpinfowp-dbh-metric-sub {
2751 font-size: 11px;
2752 color: #888;
2753 }
2754
2755 /* =========================================================
2756 WP Cron Monitor
2757 ========================================================= */
2758 .phpinfowp-cron-summary {
2759 display: grid;
2760 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
2761 gap: 12px;
2762 margin-bottom: 8px;
2763 }
2764
2765 .phpinfowp-cron-stat {
2766 background: #fff;
2767 border: 1px solid #e0e0e0;
2768 border-top: 3px solid #777BB3;
2769 border-radius: 6px;
2770 padding: 16px 18px;
2771 text-align: center;
2772 }
2773
2774 .phpinfowp-cron-stat-num {
2775 font-size: 28px;
2776 font-weight: 700;
2777 line-height: 1;
2778 margin-bottom: 4px;
2779 color: #1d2327;
2780 }
2781
2782 .phpinfowp-cron-stat-label {
2783 font-size: 11px;
2784 font-weight: 600;
2785 text-transform: uppercase;
2786 letter-spacing: .4px;
2787 color: #666;
2788 }
2789
2790 .phpinfowp-cron-overdue td {
2791 background: #fff4f4 !important;
2792 }
2793
2794 .phpinfowp-cron-imminent td {
2795 background: #fffbf0 !important;
2796 }
2797
2798 .phpinfowp-cron-orphan-badge {
2799 font-size: 10px;
2800 font-weight: 700;
2801 letter-spacing: .4px;
2802 background: #dba617;
2803 color: #fff;
2804 padding: 1px 6px;
2805 border-radius: 3px;
2806 margin-left: 6px;
2807 text-transform: uppercase;
2808 }
2809
2810 /* =========================================================
2811 Mail deliverability
2812 ========================================================= */
2813 .phpinfowp-mail-summary {
2814 display: grid;
2815 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
2816 gap: 16px;
2817 background: #fff;
2818 border: 1px solid #e0e0e0;
2819 border-radius: 8px;
2820 padding: 20px 24px;
2821 margin-bottom: 8px;
2822 }
2823
2824 .phpinfowp-mail-summary-label {
2825 font-size: 11px;
2826 font-weight: 700;
2827 text-transform: uppercase;
2828 letter-spacing: .5px;
2829 color: #888;
2830 margin-bottom: 4px;
2831 }
2832
2833 .phpinfowp-mail-summary-value {
2834 font-size: 18px;
2835 font-weight: 600;
2836 color: #1d2327;
2837 margin-bottom: 2px;
2838 word-break: break-all;
2839 }
2840
2841 .phpinfowp-mail-summary-sub {
2842 font-size: 12px;
2843 color: #777;
2844 }
2845
2846 .phpinfowp-mail-test-form {
2847 display: flex;
2848 gap: 8px;
2849 align-items: center;
2850 flex-wrap: wrap;
2851 }
2852
2853 /* =========================================================
2854 Audit Report (print-friendly)
2855 ========================================================= */
2856 .phpinfowp-report {
2857 background: #fff;
2858 border: 1px solid #e0e0e0;
2859 border-radius: 8px;
2860 padding: 40px 48px;
2861 max-width: 1100px;
2862 box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
2863 }
2864
2865 .phpinfowp-report-cover {
2866 text-align: center;
2867 padding: 16px 0 28px;
2868 margin-bottom: 24px;
2869 border-bottom: 2px solid #777BB3;
2870 }
2871
2872 .phpinfowp-report-logo {
2873 display: block;
2874 max-width: 200px;
2875 max-height: 80px;
2876 margin: 0 auto 14px;
2877 object-fit: contain;
2878 }
2879
2880 .phpinfowp-logo-picker {
2881 display: flex;
2882 align-items: center;
2883 gap: 14px;
2884 }
2885
2886 .phpinfowp-logo-preview {
2887 width: 88px;
2888 height: 88px;
2889 border: 1px dashed #c8c8d0;
2890 border-radius: 8px;
2891 display: flex;
2892 align-items: center;
2893 justify-content: center;
2894 background: #fafafb;
2895 overflow: hidden;
2896 flex-shrink: 0;
2897 }
2898
2899 .phpinfowp-logo-preview img {
2900 max-width: 80px;
2901 max-height: 80px;
2902 object-fit: contain;
2903 }
2904
2905 .phpinfowp-logo-empty {
2906 font-size: 11px;
2907 color: #888;
2908 }
2909
2910 .phpinfowp-logo-actions {
2911 display: flex;
2912 flex-direction: column;
2913 align-items: flex-start;
2914 gap: 6px;
2915 }
2916
2917 .phpinfowp-report-brand {
2918 font-size: 12px;
2919 letter-spacing: 2px;
2920 color: #777BB3;
2921 text-transform: uppercase;
2922 font-weight: 700;
2923 margin-bottom: 10px;
2924 }
2925
2926 .phpinfowp-report-title {
2927 margin: 0 0 8px;
2928 font-size: 28px;
2929 color: #1d2327;
2930 }
2931
2932 .phpinfowp-report-site {
2933 font-size: 18px;
2934 color: #444;
2935 margin-bottom: 4px;
2936 }
2937
2938 .phpinfowp-report-url {
2939 font-size: 13px;
2940 color: #777;
2941 margin-bottom: 12px;
2942 }
2943
2944 .phpinfowp-report-date {
2945 font-size: 12px;
2946 color: #999;
2947 }
2948
2949 .phpinfowp-report-h {
2950 font-size: 13px;
2951 font-weight: 700;
2952 text-transform: uppercase;
2953 letter-spacing: .6px;
2954 color: #1d2327;
2955 margin: 28px 0 12px;
2956 padding-bottom: 6px;
2957 border-bottom: 1px solid #e0e0e0;
2958 }
2959
2960 .phpinfowp-report-grid {
2961 display: grid;
2962 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2963 gap: 14px;
2964 margin-bottom: 8px;
2965 }
2966
2967 .phpinfowp-report-stat {
2968 background: #fafafa;
2969 border: 1px solid #ececec;
2970 border-radius: 6px;
2971 padding: 14px 16px;
2972 }
2973
2974 .phpinfowp-report-stat-label {
2975 font-size: 10px;
2976 font-weight: 700;
2977 text-transform: uppercase;
2978 letter-spacing: .5px;
2979 color: #888;
2980 margin-bottom: 6px;
2981 }
2982
2983 .phpinfowp-report-stat-value {
2984 font-size: 18px;
2985 font-weight: 700;
2986 color: #1d2327;
2987 margin-bottom: 2px;
2988 }
2989
2990 .phpinfowp-report-stat-sub {
2991 font-size: 12px;
2992 color: #666;
2993 }
2994
2995 .phpinfowp-report-table {
2996 width: 100%;
2997 border-collapse: collapse;
2998 font-size: 13px;
2999 }
3000
3001 .phpinfowp-report-table th,
3002 .phpinfowp-report-table td {
3003 border: 1px solid #e8e8e8;
3004 padding: 8px 12px;
3005 text-align: left;
3006 vertical-align: top;
3007 }
3008
3009 .phpinfowp-report-table th {
3010 background: #f6f6f6;
3011 font-size: 11px;
3012 text-transform: uppercase;
3013 letter-spacing: .4px;
3014 color: #555;
3015 }
3016
3017 .phpinfowp-report-list {
3018 margin: 4px 0 12px 18px;
3019 font-size: 13px;
3020 line-height: 1.6;
3021 }
3022
3023 .phpinfowp-report-footer {
3024 margin-top: 32px;
3025 padding-top: 16px;
3026 border-top: 1px solid #e0e0e0;
3027 font-size: 11px;
3028 color: #999;
3029 text-align: center;
3030 }
3031
3032 /* ---------- Overall site-health hero (page 1) ---------- */
3033 .phpinfowp-report-overall {
3034 display: grid;
3035 grid-template-columns: auto 1fr;
3036 gap: 28px;
3037 align-items: center;
3038 padding: 22px 24px;
3039 border: 1px solid #e8e8ee;
3040 border-radius: 12px;
3041 background: linear-gradient(180deg, #fafafd 0%, #ffffff 100%);
3042 margin-bottom: 22px;
3043 }
3044
3045 .phpinfowp-report-overall-donut {
3046 position: relative;
3047 width: 180px;
3048 height: 180px;
3049 }
3050
3051 .phpinfowp-donut {
3052 display: block;
3053 }
3054
3055 .phpinfowp-report-overall-num {
3056 position: absolute;
3057 inset: 0;
3058 display: flex;
3059 flex-direction: column;
3060 align-items: center;
3061 justify-content: center;
3062 pointer-events: none;
3063 }
3064
3065 .phpinfowp-report-overall-num-big {
3066 font-size: 56px;
3067 font-weight: 800;
3068 line-height: 1;
3069 letter-spacing: -1px;
3070 }
3071
3072 .phpinfowp-report-overall-num-sm {
3073 font-size: 12px;
3074 color: #888;
3075 margin-top: 2px;
3076 }
3077
3078 .phpinfowp-report-overall-label {
3079 font-size: 11px;
3080 letter-spacing: .6px;
3081 text-transform: uppercase;
3082 color: #6b6b75;
3083 font-weight: 700;
3084 margin-bottom: 4px;
3085 }
3086
3087 .phpinfowp-report-overall-verdict {
3088 font-size: 28px;
3089 font-weight: 700;
3090 letter-spacing: -.3px;
3091 margin-bottom: 4px;
3092 }
3093
3094 .phpinfowp-report-overall-grade {
3095 font-size: 14px;
3096 color: #50575e;
3097 margin-bottom: 10px;
3098 }
3099
3100 .phpinfowp-report-overall-grade strong {
3101 font-size: 16px;
3102 color: #1d2327;
3103 }
3104
3105 .phpinfowp-report-overall-counts {
3106 display: flex;
3107 flex-wrap: wrap;
3108 gap: 6px;
3109 margin-bottom: 10px;
3110 }
3111
3112 .phpinfowp-rc {
3113 font-size: 11px;
3114 font-weight: 600;
3115 padding: 3px 9px;
3116 border-radius: 999px;
3117 border: 1px solid;
3118 }
3119
3120 .phpinfowp-rc-crit {
3121 color: #8e1414;
3122 background: #fbe7e8;
3123 border-color: #ecb4b5;
3124 }
3125
3126 .phpinfowp-rc-warn {
3127 color: #8a6500;
3128 background: #fff5d6;
3129 border-color: #e9c977;
3130 }
3131
3132 .phpinfowp-rc-ok {
3133 color: #0a7d2e;
3134 background: #e8f6ec;
3135 border-color: #a7d8b3;
3136 }
3137
3138 .phpinfowp-report-overall-note {
3139 margin: 0;
3140 font-size: 13px;
3141 color: #50575e;
3142 line-height: 1.5;
3143 }
3144
3145 @media (max-width: 720px) {
3146 .phpinfowp-report-overall {
3147 grid-template-columns: 1fr;
3148 text-align: center;
3149 }
3150
3151 .phpinfowp-report-overall-donut {
3152 margin: 0 auto;
3153 }
3154
3155 .phpinfowp-report-overall-counts {
3156 justify-content: center;
3157 }
3158 }
3159
3160 /* ---------- Verdict pills (used everywhere) ---------- */
3161 .phpinfowp-rv {
3162 display: inline-flex;
3163 align-items: center;
3164 gap: 4px;
3165 font-size: 11px;
3166 font-weight: 600;
3167 padding: 2px 8px;
3168 border-radius: 999px;
3169 border: 1px solid;
3170 white-space: nowrap;
3171 vertical-align: middle;
3172 }
3173
3174 .phpinfowp-rv-ic {
3175 font-size: 10px;
3176 line-height: 1;
3177 display: inline-flex;
3178 align-items: center;
3179 }
3180
3181 /* ---------- Subscore bar chart ---------- */
3182 .phpinfowp-report-bars-grid {
3183 display: grid;
3184 grid-template-columns: repeat(2, 1fr);
3185 gap: 14px 24px;
3186 }
3187
3188 @media (max-width: 640px) {
3189 .phpinfowp-report-bars-grid {
3190 grid-template-columns: 1fr;
3191 }
3192 }
3193
3194 .phpinfowp-report-bar-top {
3195 display: flex;
3196 justify-content: space-between;
3197 align-items: baseline;
3198 margin-bottom: 4px;
3199 }
3200
3201 .phpinfowp-report-bar-lbl {
3202 font-size: 12px;
3203 color: #1d2327;
3204 font-weight: 500;
3205 }
3206
3207 .phpinfowp-report-bar-num {
3208 font-size: 14px;
3209 font-weight: 700;
3210 }
3211
3212 .phpinfowp-report-bar-track {
3213 height: 8px;
3214 background: #eef0f4;
3215 border-radius: 6px;
3216 overflow: hidden;
3217 }
3218
3219 .phpinfowp-report-bar-fill {
3220 height: 100%;
3221 border-radius: 6px;
3222 transition: width .4s ease;
3223 }
3224
3225 /* ---------- Critical issues banner ---------- */
3226 .phpinfowp-report-critbar {
3227 margin: 22px 0;
3228 border: 1px solid #ecb4b5;
3229 background: #fef5f5;
3230 border-radius: 10px;
3231 padding: 16px 18px;
3232 }
3233
3234 .phpinfowp-report-critbar-head {
3235 display: flex;
3236 gap: 14px;
3237 align-items: center;
3238 margin-bottom: 10px;
3239 }
3240
3241 .phpinfowp-report-critbar-ic {
3242 flex-shrink: 0;
3243 width: 36px;
3244 height: 36px;
3245 display: flex;
3246 align-items: center;
3247 justify-content: center;
3248 background: #d63638;
3249 color: #fff;
3250 border-radius: 50%;
3251 font-size: 18px;
3252 font-weight: 700;
3253 }
3254
3255 .phpinfowp-report-critbar-title {
3256 font-size: 15px;
3257 font-weight: 700;
3258 color: #8e1414;
3259 }
3260
3261 .phpinfowp-report-critbar-sub {
3262 font-size: 12px;
3263 color: #6b1a1a;
3264 margin-top: 2px;
3265 }
3266
3267 .phpinfowp-report-critbar-list {
3268 margin: 8px 0 0;
3269 padding-left: 22px;
3270 font-size: 13px;
3271 line-height: 1.5;
3272 color: #2c2c33;
3273 }
3274
3275 .phpinfowp-report-critbar-list li {
3276 margin-bottom: 8px;
3277 }
3278
3279 .phpinfowp-report-critbar-list li:last-child {
3280 margin-bottom: 0;
3281 }
3282
3283 .phpinfowp-report-critbar-cat {
3284 display: inline-block;
3285 margin-left: 6px;
3286 font-size: 10px;
3287 font-weight: 700;
3288 letter-spacing: .4px;
3289 text-transform: uppercase;
3290 color: #6b1a1a;
3291 background: #fce9ea;
3292 padding: 1px 7px;
3293 border-radius: 999px;
3294 }
3295
3296 .phpinfowp-report-critbar-reason {
3297 color: #50575e;
3298 font-size: 12px;
3299 margin-top: 2px;
3300 }
3301
3302 /* ---------- Top-N priority action cards ---------- */
3303 .phpinfowp-report-h-page2 {
3304 page-break-before: always;
3305 }
3306
3307 .phpinfowp-report-h-sub {
3308 margin: -8px 0 14px;
3309 color: #50575e;
3310 font-size: 13px;
3311 }
3312
3313 .phpinfowp-report-priorities {
3314 list-style: none;
3315 padding: 0;
3316 margin: 0 0 8px;
3317 display: flex;
3318 flex-direction: column;
3319 gap: 12px;
3320 }
3321
3322 .phpinfowp-report-priority {
3323 display: grid;
3324 grid-template-columns: 48px 1fr;
3325 gap: 14px;
3326 background: #fff;
3327 border: 1px solid #e8e8ee;
3328 border-radius: 10px;
3329 padding: 16px 18px;
3330 }
3331
3332 .phpinfowp-report-priority-critical {
3333 border-left: 4px solid #d63638;
3334 }
3335
3336 .phpinfowp-report-priority-warning {
3337 border-left: 4px solid #dba617;
3338 }
3339
3340 .phpinfowp-report-priority-num {
3341 width: 36px;
3342 height: 36px;
3343 border-radius: 50%;
3344 background: #1d2327;
3345 color: #fff;
3346 font-weight: 700;
3347 font-size: 16px;
3348 display: flex;
3349 align-items: center;
3350 justify-content: center;
3351 }
3352
3353 .phpinfowp-report-priority-critical .phpinfowp-report-priority-num {
3354 background: #d63638;
3355 }
3356
3357 .phpinfowp-report-priority-warning .phpinfowp-report-priority-num {
3358 background: #dba617;
3359 }
3360
3361 .phpinfowp-report-priority-head {
3362 display: flex;
3363 gap: 8px;
3364 align-items: center;
3365 margin-bottom: 4px;
3366 }
3367
3368 .phpinfowp-report-priority-cat {
3369 font-size: 10px;
3370 font-weight: 700;
3371 letter-spacing: .4px;
3372 text-transform: uppercase;
3373 color: #6b6b75;
3374 }
3375
3376 .phpinfowp-report-priority-title {
3377 font-size: 16px;
3378 font-weight: 700;
3379 color: #1d2327;
3380 margin-bottom: 8px;
3381 line-height: 1.3;
3382 }
3383
3384 .phpinfowp-report-priority-why,
3385 .phpinfowp-report-priority-how {
3386 font-size: 13px;
3387 color: #2c2c33;
3388 line-height: 1.5;
3389 margin-bottom: 6px;
3390 }
3391
3392 .phpinfowp-report-priority-how {
3393 color: #1d2327;
3394 }
3395
3396 .phpinfowp-report-priority-why strong,
3397 .phpinfowp-report-priority-how strong {
3398 font-weight: 700;
3399 color: #50575e;
3400 margin-right: 4px;
3401 }
3402
3403 .phpinfowp-report-priority code {
3404 background: #f6f7f7;
3405 padding: 1px 6px;
3406 border-radius: 3px;
3407 font-size: 12px;
3408 }
3409
3410 /* ---------- Snapshot stat refinements (verdict + caption) ---------- */
3411 .phpinfowp-report-stat-label {
3412 display: flex;
3413 justify-content: space-between;
3414 align-items: center;
3415 gap: 6px;
3416 }
3417
3418 .phpinfowp-report-stat-value-sub {
3419 font-size: 13px;
3420 color: #888;
3421 font-weight: 400;
3422 margin-left: 4px;
3423 }
3424
3425 .phpinfowp-report-stat-cap {
3426 margin-top: 8px;
3427 padding-top: 8px;
3428 border-top: 1px dashed #ececec;
3429 font-size: 11px;
3430 color: #6b6b75;
3431 line-height: 1.4;
3432 }
3433
3434 .phpinfowp-report-inline-cap {
3435 font-size: 11px;
3436 color: #6b6b75;
3437 font-weight: 400;
3438 }
3439
3440 /* ---------- Print refinements specific to the new report ---------- */
3441 @media print {
3442 .phpinfowp-report-overall {
3443 background: #fff !important;
3444 page-break-inside: avoid;
3445 break-inside: avoid;
3446 }
3447
3448 .phpinfowp-report-critbar {
3449 page-break-inside: avoid;
3450 break-inside: avoid;
3451 }
3452
3453 .phpinfowp-report-priority {
3454 page-break-inside: avoid;
3455 break-inside: avoid;
3456 }
3457
3458 /* Don't force the page break before "Top actions" in print — modern browsers
3459 handle this gracefully with break-inside above. The forced break was for
3460 A4 layout but it can leave a near-empty page 1 on shorter reports. */
3461 .phpinfowp-report-h-page2 {
3462 page-break-before: auto;
3463 }
3464 }
3465
3466 @media print {
3467
3468 /* Hide WP admin chrome + in-page controls. The previous visibility:hidden
3469 trick produced blank pages in Chrome/Safari because the report sits
3470 inside multiple nested containers (#wpwrap > #wpcontent > #wpbody-content)
3471 and position:absolute on an inner element doesn't escape them cleanly. */
3472 #wpadminbar,
3473 #adminmenuback,
3474 #adminmenuwrap,
3475 #adminmenumain,
3476 #wpfooter,
3477 #screen-meta,
3478 #screen-meta-links,
3479 .update-nag,
3480 .notice,
3481 .updated,
3482 .error,
3483 .no-print,
3484 .phpinfowp-report-branding-form,
3485 .phpinfowp-page-header,
3486 .phpinfowp-pro-page>h1,
3487 .phpinfowp-pro-page>.phpinfowp-pro-badge,
3488 /* Plugin's own chrome — top bar with breadcrumb + Pro badge,
3489 and the per-group sidebar nav rendered inside the page body. */
3490 .phpinfowp-topbar,
3491 .phpinfowp-side-nav,
3492 .phpinfowp-sidebar-flyouts {
3493 display: none !important;
3494 }
3495
3496 /* Neutralize the admin layout containers so the report flows from the
3497 top of the page with no left margin from the admin sidebar.
3498 The trailing selector overrides body.phpinfowp-has-sidenav, which adds
3499 260px of left padding to make room for the absolutely-positioned plugin
3500 side nav — that nav is hidden above, so the gutter must collapse too. */
3501 html,
3502 body,
3503 #wpwrap,
3504 #wpcontent,
3505 #wpbody,
3506 #wpbody-content,
3507 body.phpinfowp-page #wpbody-content,
3508 body.phpinfowp-has-sidenav #wpbody-content {
3509 margin: 0 !important;
3510 padding: 0 !important;
3511 background: #fff !important;
3512 float: none !important;
3513 overflow: visible !important;
3514 min-height: 0 !important;
3515 }
3516
3517 html.wp-toolbar {
3518 padding-top: 0 !important;
3519 }
3520
3521 #wpcontent,
3522 #wpbody-content {
3523 padding-left: 0 !important;
3524 }
3525
3526 body {
3527 font-size: 11pt;
3528 line-height: 1.45;
3529 color: #1d2327;
3530 -webkit-font-smoothing: antialiased;
3531 }
3532
3533 /* Strip the wrapper card chrome so the report fills the page. */
3534 .phpinfowp-pro-page {
3535 padding: 0 !important;
3536 margin: 0 !important;
3537 max-width: 100% !important;
3538 }
3539
3540 .phpinfowp-report {
3541 background: #fff !important;
3542 border: none !important;
3543 box-shadow: none !important;
3544 padding: 0 !important;
3545 max-width: 100% !important;
3546 border-radius: 0 !important;
3547 }
3548
3549 /* Keep things together that look broken if split across pages. */
3550 .phpinfowp-report-grid,
3551 .phpinfowp-report-stat,
3552 .phpinfowp-report-table {
3553 page-break-inside: avoid;
3554 break-inside: avoid;
3555 }
3556
3557 .phpinfowp-report-h {
3558 page-break-after: avoid;
3559 break-after: avoid-page;
3560 }
3561
3562 .phpinfowp-report-cover {
3563 page-break-after: avoid;
3564 }
3565
3566 /* Force backgrounds and colors to actually print — Chrome strips them
3567 by default unless you opt into the exact color profile. */
3568 *,
3569 *::before,
3570 *::after {
3571 -webkit-print-color-adjust: exact !important;
3572 print-color-adjust: exact !important;
3573 color-adjust: exact !important;
3574 }
3575
3576 a,
3577 a:visited {
3578 color: inherit !important;
3579 text-decoration: none !important;
3580 }
3581
3582 @page { {
3583 size: A4;
3584 margin: 14mm 12mm;
3585 }
3586 }
3587
3588 /* ---------- Config Grader free-tier teaser ---------- */
3589 .phpinfowp-grader-teaser {
3590 position: relative;
3591 margin-top: 24px;
3592 border: 1px solid #e2e4e7;
3593 border-radius: 8px;
3594 overflow: hidden;
3595 background: #fff;
3596 }
3597
3598 .phpinfowp-grader-teaser-blur {
3599 padding: 18px 22px;
3600 filter: blur(4px);
3601 pointer-events: none;
3602 user-select: none;
3603 opacity: .7;
3604 }
3605
3606 .phpinfowp-teaser-row {
3607 padding: 7px 0;
3608 font-size: 13px;
3609 color: #1d2327;
3610 border-bottom: 1px solid #f0f0f0;
3611 }
3612
3613 .phpinfowp-teaser-row:last-child {
3614 border-bottom: 0;
3615 }
3616
3617 .phpinfowp-teaser-row code {
3618 background: #f3f3f5;
3619 padding: 1px 6px;
3620 border-radius: 3px;
3621 font-size: 12px;
3622 }
3623
3624 .phpinfowp-grader-teaser-cta {
3625 position: absolute;
3626 inset: 0;
3627 display: flex;
3628 flex-direction: column;
3629 justify-content: center;
3630 align-items: center;
3631 background: linear-gradient(180deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .95) 60%);
3632 text-align: center;
3633 padding: 20px;
3634 }
3635
3636 .phpinfowp-grader-teaser-cta h3 {
3637 margin: 0 0 6px;
3638 font-size: 18px;
3639 color: #1d2327;
3640 }
3641
3642 .phpinfowp-grader-teaser-cta p {
3643 margin: 0 0 14px;
3644 max-width: 540px;
3645 color: #555;
3646 font-size: 13px;
3647 line-height: 1.5;
3648 }
3649
3650 /* ---------- EOL Pro upsell footer ---------- */
3651 .phpinfowp-eol-upsell {
3652 margin-top: 28px;
3653 padding: 22px 24px;
3654 display: flex;
3655 gap: 18px;
3656 align-items: flex-start;
3657 background: #f7f5fc;
3658 border: 1px solid #d9d3ec;
3659 border-left: 5px solid #777BB3;
3660 border-radius: 8px;
3661 }
3662
3663 .phpinfowp-eol-upsell-icon .dashicons {
3664 font-size: 36px;
3665 width: 36px;
3666 height: 36px;
3667 color: #777BB3;
3668 }
3669
3670 .phpinfowp-eol-upsell-body {
3671 flex: 1;
3672 }
3673
3674 .phpinfowp-eol-upsell-body h3 {
3675 margin: 0 0 6px;
3676 font-size: 16px;
3677 color: #1d2327;
3678 }
3679
3680 .phpinfowp-eol-upsell-body p {
3681 margin: 0 0 12px;
3682 font-size: 13px;
3683 color: #555;
3684 line-height: 1.5;
3685 }
3686
3687 .phpinfowp-eol-upsell-list {
3688 margin: 0 0 14px 0;
3689 padding: 0;
3690 list-style: none;
3691 }
3692
3693 .phpinfowp-eol-upsell-list li {
3694 padding: 4px 0;
3695 font-size: 13px;
3696 color: #444;
3697 padding-left: 22px;
3698 position: relative;
3699 }
3700
3701 .phpinfowp-eol-upsell-list li::before {
3702 content: "";
3703 position: absolute;
3704 left: 0;
3705 top: 4px;
3706 color: #00a32a;
3707 font-weight: 700;
3708 }
3709
3710 /* ---------- Error log diagnostic (empty-state) ---------- */
3711 .phpinfowp-errlog-diag {
3712 background: #fff;
3713 border: 1px solid #e0e0e6;
3714 border-radius: 10px;
3715 padding: 20px 22px;
3716 max-width: 820px;
3717 }
3718
3719 .phpinfowp-errlog-diag-head {
3720 margin-bottom: 4px;
3721 }
3722
3723 .phpinfowp-errlog-diag-pill {
3724 display: inline-block;
3725 font-size: 10px;
3726 font-weight: 700;
3727 text-transform: uppercase;
3728 letter-spacing: .6px;
3729 padding: 3px 9px;
3730 border-radius: 999px;
3731 border: 1px solid;
3732 }
3733
3734 .phpinfowp-errlog-diag-table {
3735 width: 100%;
3736 border-collapse: collapse;
3737 font-size: 13px;
3738 }
3739
3740 .phpinfowp-errlog-diag-table td {
3741 padding: 7px 10px;
3742 border-bottom: 1px solid #f1f1f4;
3743 vertical-align: top;
3744 }
3745
3746 .phpinfowp-errlog-diag-table tr:last-child td {
3747 border-bottom: 0;
3748 }
3749
3750 .phpinfowp-errlog-diag-table code {
3751 background: #f6f7f7;
3752 padding: 1px 6px;
3753 border-radius: 3px;
3754 font-size: 12px;
3755 }
3756
3757 .phpinfowp-errlog-diag-paths code {
3758 background: transparent;
3759 padding: 0;
3760 word-break: break-all;
3761 }
3762
3763 /* ---------- Plugins-screen deactivate retention modal ---------- */
3764 .phpinfowp-dm {
3765 display: none;
3766 position: fixed;
3767 inset: 0;
3768 z-index: 100000;
3769 }
3770
3771 .phpinfowp-dm.is-open {
3772 display: block;
3773 }
3774
3775 .phpinfowp-dm-backdrop {
3776 position: absolute;
3777 inset: 0;
3778 background: rgba(15, 17, 20, .55);
3779 backdrop-filter: blur(2px);
3780 }
3781
3782 .phpinfowp-dm-dialog {
3783 position: relative;
3784 max-width: 720px;
3785 margin: 6vh auto 0;
3786 background: #fff;
3787 border-radius: 12px;
3788 box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
3789 padding: 26px 28px 22px;
3790 }
3791
3792 .phpinfowp-dm-close {
3793 position: absolute;
3794 top: 10px;
3795 right: 12px;
3796 background: none;
3797 border: none;
3798 cursor: pointer;
3799 font-size: 26px;
3800 line-height: 1;
3801 color: #888;
3802 padding: 4px 8px;
3803 }
3804
3805 .phpinfowp-dm-close:hover {
3806 color: #1d2327;
3807 }
3808
3809 .phpinfowp-dm-header {
3810 display: flex;
3811 gap: 14px;
3812 align-items: center;
3813 margin-bottom: 18px;
3814 }
3815
3816 .phpinfowp-dm-logo {
3817 border-radius: 10px;
3818 }
3819
3820 .phpinfowp-dm-title {
3821 margin: 0 0 4px;
3822 font-size: 20px;
3823 color: #1d2327;
3824 }
3825
3826 .phpinfowp-dm-sub {
3827 margin: 0;
3828 color: #50575e;
3829 font-size: 13px;
3830 }
3831
3832 .phpinfowp-dm-body {
3833 display: grid;
3834 grid-template-columns: 1fr;
3835 gap: 16px;
3836 margin-bottom: 16px;
3837 }
3838
3839 .phpinfowp-dm-body:has(.phpinfowp-dm-col-pro) {
3840 grid-template-columns: 1fr 1fr;
3841 }
3842
3843 @media (max-width: 720px) {
3844 .phpinfowp-dm-body {
3845 grid-template-columns: 1fr !important;
3846 }
3847 }
3848
3849 .phpinfowp-dm-col {
3850 border: 1px solid #e8e8ee;
3851 border-radius: 10px;
3852 padding: 14px 16px;
3853 background: #fafafb;
3854 }
3855
3856 .phpinfowp-dm-col-pro {
3857 background: rgba(124, 58, 237, 0.045);
3858 border-color: rgba(124, 58, 237, 0.18);
3859 }
3860
3861 .phpinfowp-dm-col-label {
3862 font-size: 10px;
3863 font-weight: 700;
3864 text-transform: uppercase;
3865 letter-spacing: .6px;
3866 color: #6b6b75;
3867 margin-bottom: 10px;
3868 }
3869
3870 .phpinfowp-dm-col-pro .phpinfowp-dm-col-label {
3871 color: #6d28d9;
3872 }
3873
3874 .phpinfowp-dm-list {
3875 margin: 0;
3876 padding: 0;
3877 list-style: none;
3878 font-size: 13px;
3879 line-height: 1.5;
3880 color: #2c2c33;
3881 }
3882
3883 .phpinfowp-dm-list li {
3884 display: flex;
3885 align-items: flex-start;
3886 gap: 6px;
3887 padding: 4px 0;
3888 }
3889
3890 .phpinfowp-dm-x {
3891 flex-shrink: 0;
3892 font-size: 16px;
3893 width: 16px;
3894 height: 16px;
3895 color: #d63638;
3896 margin-top: 1px;
3897 }
3898
3899 .phpinfowp-dm-warn {
3900 display: flex;
3901 gap: 10px;
3902 background: #fffbea;
3903 border: 1px solid #f4d35e;
3904 border-radius: 8px;
3905 padding: 10px 14px;
3906 font-size: 13px;
3907 color: #4d3700;
3908 margin-bottom: 18px;
3909 }
3910
3911 .phpinfowp-dm-warn .dashicons {
3912 color: #b78900;
3913 flex-shrink: 0;
3914 }
3915
3916 .phpinfowp-dm-actions {
3917 display: flex;
3918 align-items: center;
3919 justify-content: space-between;
3920 gap: 12px;
3921 flex-wrap: wrap;
3922 }
3923
3924 .phpinfowp-dm-confirm {
3925 color: #888 !important;
3926 text-decoration: none;
3927 font-size: 13px;
3928 }
3929
3930 .phpinfowp-dm-confirm:hover {
3931 color: #d63638 !important;
3932 }
3933
3934 .phpinfowp-dm-keep {
3935 min-width: 180px;
3936 }
3937
3938 /* ---------- License view: plan comparison table ---------- */
3939 .phpinfowp-compare-wrap {
3940 margin: 0 0 8px;
3941 overflow-x: auto;
3942 border: 1px solid #e0e0e6;
3943 border-radius: 10px;
3944 background: #fff;
3945 }
3946
3947 .phpinfowp-compare {
3948 width: 100%;
3949 min-width: 720px;
3950 border-collapse: collapse;
3951 font-size: 13px;
3952 color: #1d2327;
3953 }
3954
3955 .phpinfowp-compare thead th {
3956 background: #fafafb;
3957 border-bottom: 1px solid #e8e8ee;
3958 text-align: center;
3959 padding: 14px 12px 12px;
3960 vertical-align: bottom;
3961 }
3962
3963 .phpinfowp-compare thead th.is-featured {
3964 background: rgba(124, 58, 237, 0.06);
3965 }
3966
3967 .phpinfowp-compare thead th.phpinfowp-compare-feat {
3968 text-align: left;
3969 font-size: 11px;
3970 letter-spacing: .5px;
3971 text-transform: uppercase;
3972 color: #6b6b75;
3973 }
3974
3975 .phpinfowp-compare-tier {
3976 font-size: 11px;
3977 font-weight: 700;
3978 letter-spacing: .6px;
3979 text-transform: uppercase;
3980 color: #4a4a55;
3981 margin-bottom: 4px;
3982 }
3983
3984 .phpinfowp-compare-price {
3985 display: flex;
3986 align-items: baseline;
3987 justify-content: center;
3988 gap: 3px;
3989 }
3990
3991 .phpinfowp-compare-amount {
3992 font-size: 22px;
3993 font-weight: 700;
3994 color: #1d2327;
3995 line-height: 1;
3996 }
3997
3998 .phpinfowp-compare-cadence {
3999 font-size: 11px;
4000 color: #6b6b75;
4001 }
4002
4003 .phpinfowp-compare tbody td,
4004 .phpinfowp-compare tbody th {
4005 padding: 9px 12px;
4006 border-bottom: 1px solid #f1f1f4;
4007 vertical-align: middle;
4008 text-align: center;
4009 background: #fff;
4010 }
4011
4012 .phpinfowp-compare tbody th.phpinfowp-compare-feat {
4013 text-align: left;
4014 font-weight: 500;
4015 color: #1d2327;
4016 }
4017
4018 .phpinfowp-compare tbody td.is-featured {
4019 background: rgba(124, 58, 237, 0.025);
4020 }
4021
4022 .phpinfowp-compare tbody tr:last-child td,
4023 .phpinfowp-compare tbody tr:last-child th {
4024 border-bottom: 0;
4025 }
4026
4027 .phpinfowp-compare tbody tr:hover td,
4028 .phpinfowp-compare tbody tr:hover th {
4029 background: #fafafb;
4030 }
4031
4032 .phpinfowp-compare tbody tr:hover td.is-featured {
4033 background: rgba(124, 58, 237, 0.05);
4034 }
4035
4036 .phpinfowp-compare tfoot td {
4037 padding: 14px 12px;
4038 text-align: center;
4039 background: #fafafb;
4040 border-top: 1px solid #e8e8ee;
4041 }
4042
4043 .phpinfowp-compare tfoot td.is-featured {
4044 background: rgba(124, 58, 237, 0.06);
4045 }
4046
4047 .phpinfowp-compare .dashicons {
4048 font-size: 18px;
4049 width: 18px;
4050 height: 18px;
4051 }
4052
4053 /* ---------- License view: 4-pillar grid ---------- */
4054 .phpinfowp-pillars {
4055 display: grid;
4056 grid-template-columns: repeat(4, 1fr);
4057 gap: 16px;
4058 margin-top: 20px;
4059 }
4060
4061 @media (max-width: 1100px) {
4062 .phpinfowp-pillars {
4063 grid-template-columns: repeat(2, 1fr);
4064 }
4065 }
4066
4067 @media (max-width: 650px) {
4068 .phpinfowp-pillars {
4069 grid-template-columns: 1fr;
4070 }
4071 }
4072
4073 .phpinfowp-pillar {
4074 background: #fff;
4075 border: 1px solid #e4e4e7;
4076 border-radius: 12px;
4077 padding: 24px;
4078 transition: border-color 0.2s ease, box-shadow 0.2s ease;
4079 }
4080
4081 .phpinfowp-pillar:hover {
4082 border-color: rgba(139, 92, 246, 0.35);
4083 box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.06);
4084 }
4085
4086 .phpinfowp-pillar-header {
4087 display: flex;
4088 gap: 14px;
4089 align-items: center;
4090 margin-bottom: 16px;
4091 }
4092
4093 .phpinfowp-pillar-icon-box {
4094 width: 40px;
4095 height: 40px;
4096 border-radius: 8px;
4097 background: #f4f4f5;
4098 display: flex;
4099 align-items: center;
4100 justify-content: center;
4101 flex-shrink: 0;
4102 }
4103
4104 .phpinfowp-pillar-header .dashicons {
4105 font-size: 20px;
4106 width: 20px;
4107 height: 20px;
4108 color: #7c3aed;
4109 }
4110
4111 .phpinfowp-pillar-name {
4112 font-size: 16px;
4113 font-weight: 700;
4114 color: #09090b;
4115 line-height: 1.3;
4116 }
4117
4118 .phpinfowp-pillar-tag {
4119 font-size: 12px;
4120 color: #71717a;
4121 margin-top: 2px;
4122 }
4123
4124 .phpinfowp-pillar-items {
4125 margin: 0;
4126 padding: 0;
4127 list-style: none;
4128 display: flex;
4129 flex-direction: column;
4130 gap: 10px;
4131 }
4132
4133 .phpinfowp-pillar-items li {
4134 padding: 0;
4135 position: relative;
4136 padding-left: 20px;
4137 font-size: 13px;
4138 color: #3f3f46;
4139 line-height: 1.45;
4140 border-bottom: none;
4141 }
4142
4143 .phpinfowp-pillar-items li:last-child {
4144 border-bottom: 0;
4145 }
4146
4147 .phpinfowp-pillar-items li::before {
4148 content: "";
4149 position: absolute;
4150 left: 0;
4151 top: 7px;
4152 width: 6px;
4153 height: 6px;
4154 background-color: rgba(167, 139, 250, 0.7);
4155 border-radius: 50%;
4156 }
4157
4158 /* ---------- License view: pricing ---------- */
4159 .phpinfowp-pricing {
4160 display: grid;
4161 grid-template-columns: repeat(3, 1fr);
4162 gap: 18px;
4163 margin-top: 20px;
4164 }
4165
4166 @media (max-width: 960px) {
4167 .phpinfowp-pricing {
4168 grid-template-columns: 1fr;
4169 }
4170 }
4171
4172 .phpinfowp-pricing-tier {
4173 position: relative;
4174 background: #fff;
4175 border: 1px solid #e2e4e7;
4176 border-radius: 10px;
4177 padding: 28px 22px 22px;
4178 text-align: center;
4179 }
4180
4181 .phpinfowp-pricing-tier.is-featured {
4182 border-color: #777BB3;
4183 box-shadow: 0 4px 16px rgba(119, 123, 179, .15);
4184 transform: translateY(-4px);
4185 }
4186
4187 .phpinfowp-pricing-flag {
4188 position: absolute;
4189 top: -10px;
4190 left: 50%;
4191 transform: translateX(-50%);
4192 background: #777BB3;
4193 color: #fff;
4194 font-size: 11px;
4195 font-weight: 700;
4196 letter-spacing: .4px;
4197 padding: 3px 10px;
4198 border-radius: 12px;
4199 text-transform: uppercase;
4200 white-space: nowrap;
4201 }
4202
4203 .phpinfowp-pricing-flag.is-warn {
4204 background: #dba617;
4205 }
4206
4207 .phpinfowp-pricing-name {
4208 font-size: 14px;
4209 font-weight: 600;
4210 text-transform: uppercase;
4211 letter-spacing: .5px;
4212 color: #555;
4213 margin-bottom: 6px;
4214 }
4215
4216 .phpinfowp-pricing-price {
4217 font-size: 36px;
4218 font-weight: 800;
4219 color: #1d2327;
4220 margin-bottom: 14px;
4221 }
4222
4223 .phpinfowp-pricing-price span {
4224 font-size: 13px;
4225 font-weight: 500;
4226 color: #777;
4227 margin-left: 2px;
4228 }
4229
4230 .phpinfowp-pricing-list {
4231 list-style: none;
4232 margin: 0 0 18px;
4233 padding: 0;
4234 text-align: left;
4235 }
4236
4237 .phpinfowp-pricing-list li {
4238 padding: 5px 0 5px 20px;
4239 position: relative;
4240 font-size: 13px;
4241 color: #333;
4242 }
4243
4244 .phpinfowp-pricing-list li::before {
4245 content: "";
4246 position: absolute;
4247 left: 0;
4248 top: 5px;
4249 color: #00a32a;
4250 font-weight: 700;
4251 }
4252
4253 .phpinfowp-pricing-tier .button {
4254 width: 100%;
4255 text-align: center;
4256 justify-content: center;
4257 }
4258
4259 .phpinfowp-pricing-foot {
4260 text-align: center;
4261 font-size: 12px;
4262 color: #777;
4263 margin-top: 18px;
4264 }
4265
4266 /* ---------- Upgrade gate: 3-pillar ---------- */
4267 .phpinfowp-upgrade-pillars {
4268 display: grid;
4269 grid-template-columns: repeat(4, 1fr);
4270 gap: 16px;
4271 margin: 24px 0 24px;
4272 }
4273
4274 @media (max-width: 1000px) {
4275 .phpinfowp-upgrade-pillars {
4276 grid-template-columns: repeat(2, 1fr);
4277 }
4278 }
4279
4280 @media (max-width: 600px) {
4281 .phpinfowp-upgrade-pillars {
4282 grid-template-columns: 1fr;
4283 }
4284 }
4285
4286 .phpinfowp-upgrade-pillar {
4287 background: #fff;
4288 border: 1px solid #e4e4e7;
4289 border-radius: 12px;
4290 padding: 24px;
4291 transition: border-color 0.2s ease, box-shadow 0.2s ease;
4292 }
4293
4294 .phpinfowp-upgrade-pillar:hover {
4295 border-color: rgba(139, 92, 246, 0.35);
4296 box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.06);
4297 }
4298
4299 .phpinfowp-upgrade-pillar-icon {
4300 margin-bottom: 14px;
4301 width: 40px;
4302 height: 40px;
4303 border-radius: 8px;
4304 background: #f4f4f5;
4305 display: flex;
4306 align-items: center;
4307 justify-content: center;
4308 flex-shrink: 0;
4309 }
4310
4311 .phpinfowp-upgrade-pillar-icon .dashicons {
4312 font-size: 20px;
4313 width: 20px;
4314 height: 20px;
4315 color: #7c3aed;
4316 margin-bottom: 0;
4317 }
4318
4319 .phpinfowp-upgrade-pillar-name {
4320 font-size: 16px;
4321 font-weight: 700;
4322 color: #09090b;
4323 line-height: 1.3;
4324 }
4325
4326 .phpinfowp-upgrade-pillar-tag {
4327 font-size: 12px;
4328 color: #71717a;
4329 margin-top: 2px;
4330 margin-bottom: 16px;
4331 }
4332
4333 .phpinfowp-upgrade-pillar-items {
4334 margin: 0;
4335 padding: 0;
4336 list-style: none;
4337 display: flex;
4338 flex-direction: column;
4339 gap: 10px;
4340 }
4341
4342 .phpinfowp-upgrade-pillar-items li {
4343 padding: 0;
4344 position: relative;
4345 padding-left: 20px;
4346 font-size: 13px;
4347 color: #3f3f46;
4348 line-height: 1.45;
4349 }
4350
4351 .phpinfowp-upgrade-pillar-items li::before {
4352 content: "";
4353 position: absolute;
4354 left: 0;
4355 top: 7px;
4356 width: 6px;
4357 height: 6px;
4358 background-color: rgba(167, 139, 250, 0.7);
4359 border-radius: 50%;
4360 }
4361
4362 /* Visual break between the three pillars and the three price tiers so users
4363 don't read them as paired columns (Safeguard=$29, Insight=$69, etc.). */
4364 .phpinfowp-upgrade-plans-header {
4365 margin: 36px 0 14px;
4366 padding-top: 28px;
4367 border-top: 1px solid #e2e4e7;
4368 text-align: center;
4369 }
4370
4371 .phpinfowp-upgrade-plans-title {
4372 font-size: 18px;
4373 font-weight: 700;
4374 margin: 0 0 6px;
4375 color: #1d2327;
4376 }
4377
4378 .phpinfowp-upgrade-plans-note {
4379 font-size: 13px;
4380 color: #555;
4381 margin: 0;
4382 }
4383
4384 .phpinfowp-upgrade-plans-note strong {
4385 color: #1d2327;
4386 }
4387
4388 .phpinfowp-upgrade-price-sub {
4389 margin-top: 6px;
4390 font-size: 11px;
4391 color: #777;
4392 line-height: 1.4;
4393 }
4394
4395 .phpinfowp-upgrade-pricing {
4396 display: grid;
4397 grid-template-columns: repeat(3, 1fr);
4398 gap: 12px;
4399 margin: 0 0 24px;
4400 }
4401
4402 @media (max-width: 700px) {
4403 .phpinfowp-upgrade-pricing {
4404 grid-template-columns: 1fr;
4405 }
4406 }
4407
4408 .phpinfowp-upgrade-price-tier {
4409 position: relative;
4410 border: 1px solid #e2e4e7;
4411 border-radius: 8px;
4412 padding: 16px 12px;
4413 text-align: center;
4414 background: #fff;
4415 }
4416
4417 .phpinfowp-upgrade-price-tier.is-featured {
4418 border-color: #777BB3;
4419 box-shadow: 0 2px 10px rgba(119, 123, 179, .12);
4420 }
4421
4422 .phpinfowp-upgrade-price-name {
4423 font-size: 11px;
4424 font-weight: 700;
4425 text-transform: uppercase;
4426 letter-spacing: .4px;
4427 color: #777;
4428 }
4429
4430 .phpinfowp-upgrade-price-value {
4431 font-size: 24px;
4432 font-weight: 800;
4433 color: #1d2327;
4434 margin-top: 4px;
4435 }
4436
4437 .phpinfowp-upgrade-price-value small {
4438 font-size: 11px;
4439 font-weight: 500;
4440 color: #888;
4441 margin-left: 2px;
4442 }
4443
4444 .phpinfowp-upgrade-price-best {
4445 margin-top: 4px;
4446 font-size: 10px;
4447 font-weight: 700;
4448 text-transform: uppercase;
4449 color: #777BB3;
4450 letter-spacing: .3px;
4451 }
4452
4453 .phpinfowp-upgrade-price-best.is-warn {
4454 color: #dba617;
4455 }
4456
4457 /* ---------- Report branding form ---------- */
4458 .phpinfowp-report-branding-form {
4459 background: #fff;
4460 border: 1px solid #e2e4e7;
4461 border-radius: 8px;
4462 padding: 18px 24px;
4463 margin-bottom: 24px;
4464 }
4465
4466 .phpinfowp-report-branding-form h3 {
4467 margin: 0 0 4px;
4468 font-size: 16px;
4469 }
4470
4471 .phpinfowp-report-branding-form .form-table th {
4472 width: 180px;
4473 padding: 12px 10px 12px 0;
4474 }
4475
4476 .phpinfowp-report-branding-form .form-table td {
4477 padding: 10px;
4478 }
4479
4480 /* ---------- AI Explain (WP 7.0 AI Client integration) ---------- */
4481 .phpinfowp-ai-out {
4482 margin: 8px 0 0;
4483 padding: 10px 12px;
4484 background: #f5f6ff;
4485 border-left: 3px solid #777BB3;
4486 border-radius: 0 4px 4px 0;
4487 font-size: 12.5px;
4488 line-height: 1.55;
4489 color: #333;
4490 white-space: pre-wrap;
4491 }
4492
4493 .phpinfowp-ai-out:empty {
4494 display: none;
4495 }
4496
4497 /* ---------- License meta (registered to, expires, activated) ---------- */
4498 .phpinfowp-license-meta {
4499 margin-top: 14px;
4500 padding: 12px 14px;
4501 background: #fafbff;
4502 border: 1px solid #e8eaf0;
4503 border-radius: 6px;
4504 }
4505
4506 .phpinfowp-license-meta-row {
4507 display: flex;
4508 justify-content: space-between;
4509 align-items: baseline;
4510 padding: 4px 0;
4511 font-size: 13px;
4512 }
4513
4514 .phpinfowp-license-meta-row+.phpinfowp-license-meta-row {
4515 border-top: 1px solid #f0f1f5;
4516 }
4517
4518 .phpinfowp-license-meta-label {
4519 color: #666;
4520 font-weight: 500;
4521 }
4522
4523 .phpinfowp-license-meta-value {
4524 color: #1d2327;
4525 font-weight: 500;
4526 text-align: right;
4527 }
4528
4529 /* ---- Update Guard (pre-update core audit) ---- */
4530 .phpinfowp-ua-verdict-dot {
4531 width: 10px;
4532 height: 10px;
4533 border-radius: 50%;
4534 display: inline-block;
4535 flex: 0 0 auto;
4536 margin: 0 2px;
4537 }
4538
4539 .phpinfowp-ua-kind {
4540 font-size: 10px;
4541 font-weight: 700;
4542 letter-spacing: .04em;
4543 color: #555;
4544 background: #eef0f3;
4545 border-radius: 3px;
4546 padding: 1px 5px;
4547 text-transform: uppercase;
4548 }
4549
4550 .phpinfowp-ua-new {
4551 font-size: 10px;
4552 font-weight: 700;
4553 letter-spacing: .03em;
4554 color: #7a1a1a;
4555 background: #fcf0f1;
4556 border: 1px solid #f0c6c8;
4557 border-radius: 3px;
4558 padding: 1px 6px;
4559 text-transform: uppercase;
4560 }
4561
4562 .phpinfowp-ua-meta {
4563 display: flex;
4564 flex-wrap: wrap;
4565 gap: 6px;
4566 padding: 8px 0 12px;
4567 margin-bottom: 6px;
4568 border-bottom: 1px dashed #e2e4e7;
4569 }
4570
4571 .phpinfowp-ua-meta-pill {
4572 font-size: 12px;
4573 color: #50575e;
4574 background: #f6f7f7;
4575 border: 1px solid #e2e4e7;
4576 border-radius: 12px;
4577 padding: 2px 10px;
4578 }
4579
4580 .phpinfowp-ua-meta-pill.is-bad {
4581 color: #7a1a1a;
4582 background: #fcf0f1;
4583 border-color: #f0c6c8;
4584 }
4585
4586 .phpinfowp-ua-meta-pill strong {
4587 font-weight: 600;
4588 }