PluginProbe
phpinfo() WP – Site Health, PHP Compatibility & Server Audit / 7.2.6
phpinfo() WP – Site Health, PHP Compatibility & Server Audit v7.2.6
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.6, at css/style.css

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