PluginProbe
WPVulnerability / trunk
WPVulnerability vtrunk
5.1.6 5.1.2 5.1.1 5.0.1 5.0.0 trunk 0.1 0.2 1.0 1.0.1 1.1 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 All 57 releases
wpvulnerability / assets / admin.css

admin.css in WPVulnerability trunk, at assets/admin.css

1,347 lines 32.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 :root {
2 --red-dark: #b32d2e;
3 --red-mediun: #D54E21;
4 --red-light: #FAEDE8;
5 }
6 .blink {
7 animation: blinker 2s linear infinite;
8 }
9 @keyframes blinker {
10 50% {
11 opacity: 0;
12 }
13 }
14
15 /* Admin plugins table styles */
16
17 .plugins-php .vulnerability {
18 background-color: var(--red-mediun);
19 padding: 4px;
20 }
21 .plugins-php .vulnerability .alert {
22 color: white;
23 }
24 .plugins tr.wpvulnerability td, .plugins tr.wpvulnerability.active td {
25 background-color: var(--red-light);
26 }
27 .plugins tr.wpvulnerability:before {
28 background-color: var(--red-light);
29 content: "";
30 display: table-cell;
31 }
32 .plugins tr.wpvulnerability.active::before {
33 border-left: 4px solid var( --red-mediun );
34 }
35 .plugins tr.wpvulnerability p.text-red, .plugins tr.wpvulnerability.active p.text-red {
36 color: var(--red-mediun)
37 }
38
39 /* Admin core table styles */
40
41 .update-core-php table.wpvulnerability td {
42 background-color: var(--red-light);
43 }
44 .update-core-php table.wpvulnerability tr:before {
45 background-color: var(--red-light);
46 content: "";
47 display: table-cell;
48 }
49 .update-core-php table.wpvulnerability tr.active::before {
50 border-left: 4px solid var( --red-mediun );
51 }
52 .update-core-php p.text-red {
53 color: var(--red-mediun)
54 }
55
56 /* Configuration header */
57
58 .wpvulnerability-header {
59 background-color: #1d73be;
60 margin-left: -20px;
61 padding: 20px;
62 display: flex;
63 justify-content: space-between;
64 color: white;
65 }
66 .wpvulnerability-header .logo {
67 min-width: 20%;
68 }
69 .wpvulnerability-header h2 {
70 float: right;
71 color: white;
72 padding: 25px 0 0 0;
73 margin: 0;
74 }
75
76 .wpvulnerability-settings {
77 margin-top: 20px;
78 }
79
80 .wpvulnerability-tab-nav {
81 margin-bottom: 0;
82 }
83
84 .wpvulnerability-tab-panel {
85 background: #fff;
86 border: 1px solid #c3c4c7;
87 border-top: none;
88 padding: 20px;
89 }
90
91 .wpvulnerability-tab-nav .nav-tab:not(.nav-tab-active) {
92 border-bottom-color: #c3c4c7;
93 }
94
95 .wpvulnerability-log-actions {
96 display: block;
97 }
98
99 .wpvulnerability-log-actions form {
100 display: inline-block;
101 margin: 0 8px 8px 0;
102 vertical-align: bottom;
103 }
104
105 /* Logs pagination */
106 .wpvulnerability-settings .tablenav-pages .page-numbers {
107 display: inline-flex;
108 align-items: center;
109 margin: 0;
110 padding: 0;
111 list-style: none;
112 }
113
114 .wpvulnerability-settings .tablenav-pages .page-numbers li {
115 margin: 0 0 0 4px;
116 }
117
118 .wpvulnerability-settings .tablenav-pages .page-numbers li:first-child {
119 margin-left: 0;
120 }
121
122 /* ==================================================
123 WPVulnerability Admin Panel Styles
124 Extracted from inline <style> blocks
125 ================================================== */
126
127 /* ==================================================
128 Notifications Panel
129 ================================================== */
130 .wpvulnerability-notifications-panel .wpvulnerability-security-section {
131 background: #fff;
132 border: 1px solid #c3c4c7;
133 border-radius: 4px;
134 padding: 24px;
135 margin-bottom: 24px;
136 }
137 .wpvulnerability-notifications-panel .wpvulnerability-security-section h3 {
138 margin-top: 0;
139 margin-bottom: 20px;
140 font-size: 16px;
141 font-weight: 600;
142 color: #1d2327;
143 border-bottom: 2px solid #2271b1;
144 padding-bottom: 8px;
145 }
146 .wpvulnerability-notifications-panel .wpvulnerability-intro {
147 background: #f0f6fc;
148 border-left: 4px solid #2271b1;
149 padding: 16px;
150 margin-bottom: 24px;
151 border-radius: 2px;
152 }
153 .wpvulnerability-notifications-panel .wpvulnerability-intro p {
154 margin: 0 0 8px 0;
155 color: #1d2327;
156 line-height: 1.6;
157 }
158 .wpvulnerability-notifications-panel .wpvulnerability-intro p:last-child {
159 margin-bottom: 0;
160 }
161 .wpvulnerability-notifications-panel .wpvulnerability-setting-group {
162 margin-bottom: 24px;
163 padding-bottom: 24px;
164 border-bottom: 1px solid #dcdcde;
165 }
166 .wpvulnerability-notifications-panel .wpvulnerability-setting-group:last-child {
167 margin-bottom: 0;
168 padding-bottom: 0;
169 border-bottom: none;
170 }
171 .wpvulnerability-notifications-panel .wpvulnerability-setting-label {
172 display: flex;
173 align-items: center;
174 font-size: 14px;
175 font-weight: 600;
176 color: #1d2327;
177 margin-bottom: 8px;
178 }
179 .wpvulnerability-notifications-panel .wpvulnerability-setting-icon {
180 font-size: 20px;
181 margin-right: 8px;
182 }
183 .wpvulnerability-notifications-panel .wpvulnerability-setting-description {
184 font-size: 13px;
185 color: #646970;
186 margin-bottom: 12px;
187 line-height: 1.5;
188 }
189 .wpvulnerability-notifications-panel .wpvulnerability-radio-group label,
190 .wpvulnerability-notifications-panel .wpvulnerability-checkbox-group label {
191 display: block;
192 margin-bottom: 8px;
193 font-weight: normal;
194 }
195 .wpvulnerability-notifications-panel .wpvulnerability-radio-group input[type="radio"],
196 .wpvulnerability-notifications-panel .wpvulnerability-checkbox-group input[type="checkbox"] {
197 margin-right: 8px;
198 }
199 .wpvulnerability-notifications-panel .wpvulnerability-schedule-controls {
200 margin-left: 28px;
201 margin-top: 12px;
202 padding: 16px;
203 background: #f6f7f7;
204 border-radius: 4px;
205 border: 1px solid #dcdcde;
206 }
207 .wpvulnerability-notifications-panel .wpvulnerability-schedule-controls.wpvulnerability-hidden {
208 display: none;
209 }
210 .wpvulnerability-notifications-panel .wpvulnerability-schedule-row {
211 margin-bottom: 12px;
212 }
213 .wpvulnerability-notifications-panel .wpvulnerability-schedule-row:last-child {
214 margin-bottom: 0;
215 }
216 .wpvulnerability-notifications-panel .wpvulnerability-schedule-row label {
217 display: inline-block;
218 min-width: 60px;
219 font-weight: 600;
220 margin-right: 8px;
221 }
222 .wpvulnerability-notifications-panel .wpvulnerability-schedule-row select,
223 .wpvulnerability-notifications-panel .wpvulnerability-schedule-row input[type="number"] {
224 min-width: 80px;
225 }
226 .wpvulnerability-notifications-panel .wpvulnerability-schedule-row input[type="number"] {
227 width: 70px;
228 }
229 .wpvulnerability-notifications-panel .wpvulnerability-input-full {
230 width: 100%;
231 max-width: 600px;
232 }
233 .wpvulnerability-notifications-panel .wpvulnerability-input-hint {
234 display: block;
235 font-size: 12px;
236 color: #646970;
237 margin-top: 6px;
238 }
239 .wpvulnerability-notifications-panel .wpvulnerability-input-hint a {
240 color: #2271b1;
241 text-decoration: none;
242 }
243 .wpvulnerability-notifications-panel .wpvulnerability-input-hint a:hover {
244 color: #135e96;
245 text-decoration: underline;
246 }
247 .wpvulnerability-notifications-panel .wpvulnerability-channel-inputs {
248 margin-left: 28px;
249 margin-top: 8px;
250 }
251 .wpvulnerability-notifications-panel .wpvulnerability-channel-inputs.wpvulnerability-hidden {
252 display: none;
253 }
254 .wpvulnerability-notifications-panel .wpvulnerability-info-box {
255 background: #fff3cd;
256 border-left: 4px solid #f0c33c;
257 padding: 12px 16px;
258 margin-top: 16px;
259 border-radius: 2px;
260 }
261 .wpvulnerability-notifications-panel .wpvulnerability-info-box p {
262 margin: 0;
263 color: #1d2327;
264 font-size: 13px;
265 line-height: 1.6;
266 }
267 .wpvulnerability-notifications-panel .wpvulnerability-save-section {
268 margin-top: 24px;
269 padding-top: 20px;
270 border-top: 1px solid #dcdcde;
271 }
272 .wpvulnerability-notifications-panel .wpvulnerability-forced-badge {
273 display: inline-block;
274 background: #f0c33c;
275 color: #1d2327;
276 font-size: 11px;
277 padding: 2px 6px;
278 border-radius: 3px;
279 font-weight: 600;
280 margin-left: 8px;
281 }
282
283 /* ==================================================
284 Analysis Panel
285 ================================================== */
286 .wpvulnerability-analysis-panel .wpvulnerability-security-section {
287 background: #fff;
288 border: 1px solid #c3c4c7;
289 border-radius: 4px;
290 padding: 24px;
291 margin-bottom: 24px;
292 }
293 .wpvulnerability-analysis-panel .wpvulnerability-security-section h3 {
294 margin-top: 0;
295 margin-bottom: 20px;
296 font-size: 16px;
297 font-weight: 600;
298 color: #1d2327;
299 border-bottom: 2px solid #2271b1;
300 padding-bottom: 8px;
301 }
302 .wpvulnerability-analysis-panel .wpvulnerability-intro {
303 background: #f0f6fc;
304 border-left: 4px solid #2271b1;
305 padding: 16px;
306 margin-bottom: 24px;
307 border-radius: 2px;
308 }
309 .wpvulnerability-analysis-panel .wpvulnerability-intro p {
310 margin: 0 0 8px 0;
311 color: #1d2327;
312 line-height: 1.6;
313 }
314 .wpvulnerability-analysis-panel .wpvulnerability-intro p:last-child {
315 margin-bottom: 0;
316 }
317 .wpvulnerability-analysis-panel .wpvulnerability-category {
318 margin-bottom: 32px;
319 }
320 .wpvulnerability-analysis-panel .wpvulnerability-category:last-child {
321 margin-bottom: 0;
322 }
323 .wpvulnerability-analysis-panel .wpvulnerability-category-title {
324 font-size: 15px;
325 font-weight: 600;
326 color: #1d2327;
327 margin-bottom: 16px;
328 padding-bottom: 8px;
329 border-bottom: 1px solid #dcdcde;
330 }
331 .wpvulnerability-analysis-panel .wpvulnerability-components-grid {
332 display: grid;
333 grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
334 gap: 16px;
335 }
336 .wpvulnerability-analysis-panel .wpvulnerability-component-card {
337 background: #f6f7f7;
338 border: 2px solid #dcdcde;
339 border-radius: 4px;
340 padding: 16px;
341 transition: all 0.2s ease;
342 cursor: pointer;
343 position: relative;
344 }
345 .wpvulnerability-analysis-panel .wpvulnerability-component-card:hover {
346 border-color: #2271b1;
347 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
348 }
349 .wpvulnerability-analysis-panel .wpvulnerability-component-card.wpvulnerability-checked {
350 background: #e8f4f8;
351 border-color: #2271b1;
352 }
353 .wpvulnerability-analysis-panel .wpvulnerability-component-card.wpvulnerability-disabled {
354 opacity: 0.6;
355 cursor: not-allowed;
356 background: #f9f9f9;
357 }
358 .wpvulnerability-analysis-panel .wpvulnerability-component-card label {
359 display: flex;
360 align-items: center;
361 cursor: pointer;
362 margin: 0;
363 }
364 .wpvulnerability-analysis-panel .wpvulnerability-component-card.wpvulnerability-disabled label {
365 cursor: not-allowed;
366 }
367 .wpvulnerability-analysis-panel .wpvulnerability-component-icon {
368 font-size: 28px;
369 margin-right: 12px;
370 line-height: 1;
371 }
372 .wpvulnerability-analysis-panel .wpvulnerability-component-content {
373 flex: 1;
374 }
375 .wpvulnerability-analysis-panel .wpvulnerability-component-label {
376 font-size: 14px;
377 font-weight: 600;
378 color: #1d2327;
379 display: block;
380 margin-bottom: 2px;
381 }
382 .wpvulnerability-analysis-panel .wpvulnerability-component-status {
383 font-size: 12px;
384 color: #646970;
385 }
386 .wpvulnerability-analysis-panel .wpvulnerability-component-card input[type="checkbox"] {
387 margin: 0;
388 width: 20px;
389 height: 20px;
390 flex-shrink: 0;
391 }
392 .wpvulnerability-analysis-panel .wpvulnerability-forced-badge {
393 display: inline-block;
394 background: #f0c33c;
395 color: #1d2327;
396 font-size: 11px;
397 padding: 2px 6px;
398 border-radius: 3px;
399 font-weight: 600;
400 margin-left: 8px;
401 }
402 .wpvulnerability-analysis-panel .wpvulnerability-info-box {
403 background: #fff3cd;
404 border-left: 4px solid #f0c33c;
405 padding: 12px 16px;
406 margin-top: 20px;
407 border-radius: 2px;
408 }
409 .wpvulnerability-analysis-panel .wpvulnerability-info-box p {
410 margin: 0;
411 color: #1d2327;
412 font-size: 13px;
413 line-height: 1.6;
414 }
415 .wpvulnerability-analysis-panel .wpvulnerability-save-section {
416 margin-top: 24px;
417 padding-top: 20px;
418 border-top: 1px solid #dcdcde;
419 }
420 .wpvulnerability-analysis-panel .wpvulnerability-status-badge {
421 display: inline-block;
422 padding: 4px 10px;
423 border-radius: 3px;
424 font-size: 12px;
425 font-weight: 500;
426 line-height: 1.4;
427 }
428 .wpvulnerability-analysis-panel .wpvulnerability-status-badge.wpvulnerability-status-active {
429 background: #d5f5e3;
430 color: #00771a;
431 border: 1px solid #b0e6c8;
432 }
433 .wpvulnerability-analysis-panel .wpvulnerability-status-badge.wpvulnerability-status-hidden {
434 background: #fce8e8;
435 color: #b32d2e;
436 border: 1px solid #f0b8b8;
437 }
438
439 /* ==================================================
440 Logs Panel
441 ================================================== */
442 .wpvulnerability-logs-panel .wpvulnerability-security-section {
443 background: #fff;
444 border: 1px solid #c3c4c7;
445 border-radius: 4px;
446 padding: 24px;
447 margin-bottom: 24px;
448 }
449 .wpvulnerability-logs-panel .wpvulnerability-security-section h3 {
450 margin-top: 0;
451 margin-bottom: 16px;
452 font-size: 16px;
453 font-weight: 600;
454 color: #1d2327;
455 border-bottom: 2px solid #2271b1;
456 padding-bottom: 8px;
457 }
458 .wpvulnerability-logs-panel .wpvulnerability-stats-row {
459 display: grid;
460 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
461 gap: 16px;
462 margin-bottom: 24px;
463 }
464 .wpvulnerability-logs-panel .wpvulnerability-stat-card {
465 background: #f6f7f7;
466 border: 1px solid #dcdcde;
467 border-radius: 4px;
468 padding: 16px;
469 text-align: center;
470 }
471 .wpvulnerability-logs-panel .wpvulnerability-stat-card .wpvulnerability-stat-label {
472 font-size: 12px;
473 color: #646970;
474 margin-bottom: 8px;
475 text-transform: uppercase;
476 letter-spacing: 0.5px;
477 font-weight: 500;
478 }
479 .wpvulnerability-logs-panel .wpvulnerability-stat-card .wpvulnerability-stat-value {
480 font-size: 28px;
481 font-weight: 600;
482 color: #2271b1;
483 }
484 .wpvulnerability-logs-panel .wpvulnerability-config-form {
485 background: #f6f7f7;
486 border: 1px solid #dcdcde;
487 border-radius: 4px;
488 padding: 20px;
489 }
490 .wpvulnerability-logs-panel .wpvulnerability-config-form label {
491 display: block;
492 font-weight: 600;
493 margin-bottom: 8px;
494 color: #1d2327;
495 }
496 .wpvulnerability-logs-panel .wpvulnerability-config-form select {
497 width: 100%;
498 max-width: 300px;
499 }
500 .wpvulnerability-logs-panel .wpvulnerability-config-form .description {
501 margin-top: 8px;
502 font-size: 13px;
503 color: #646970;
504 }
505 .wpvulnerability-logs-panel .wpvulnerability-logs-table {
506 width: 100%;
507 border-collapse: separate;
508 border-spacing: 0;
509 background: #fff;
510 border: 1px solid #c3c4c7;
511 border-radius: 4px;
512 overflow: hidden;
513 }
514 .wpvulnerability-logs-panel .wpvulnerability-logs-table thead {
515 background: #f6f7f7;
516 }
517 .wpvulnerability-logs-panel .wpvulnerability-logs-table th {
518 padding: 12px 16px;
519 text-align: left;
520 font-weight: 600;
521 color: #1d2327;
522 border-bottom: 2px solid #c3c4c7;
523 }
524 .wpvulnerability-logs-panel .wpvulnerability-logs-table td {
525 padding: 12px 16px;
526 border-bottom: 1px solid #dcdcde;
527 }
528 .wpvulnerability-logs-panel .wpvulnerability-logs-table tbody tr:hover {
529 background: #f6f7f7;
530 }
531 .wpvulnerability-logs-panel .wpvulnerability-logs-table tbody tr:last-child td {
532 border-bottom: none;
533 }
534 .wpvulnerability-logs-panel .wpvulnerability-log-url {
535 font-family: 'Courier New', monospace;
536 font-size: 13px;
537 color: #2271b1;
538 }
539 .wpvulnerability-logs-panel .wpvulnerability-log-date {
540 color: #646970;
541 font-size: 13px;
542 }
543 .wpvulnerability-logs-panel .wpvulnerability-toolbar {
544 display: flex;
545 justify-content: space-between;
546 align-items: center;
547 margin-bottom: 16px;
548 padding: 12px;
549 background: #f6f7f7;
550 border: 1px solid #dcdcde;
551 border-radius: 4px;
552 }
553 .wpvulnerability-logs-panel .wpvulnerability-toolbar-left {
554 display: flex;
555 align-items: center;
556 gap: 8px;
557 }
558 .wpvulnerability-logs-panel .wpvulnerability-toolbar-right {
559 display: flex;
560 align-items: center;
561 }
562 /* Pagination for Logs Panel */
563 .wpvulnerability-logs-panel .wpvulnerability-pagination {
564 margin-top: 16px;
565 text-align: center;
566 }
567 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers {
568 display: inline-flex;
569 align-items: center;
570 justify-content: center;
571 margin: 0;
572 padding: 0;
573 list-style: none;
574 gap: 4px;
575 }
576 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers li {
577 margin: 0;
578 }
579 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers a,
580 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers span {
581 display: inline-block;
582 padding: 6px 12px;
583 background: #fff;
584 border: 1px solid #c3c4c7;
585 border-radius: 3px;
586 color: #2271b1;
587 text-decoration: none;
588 transition: all 0.2s ease;
589 font-size: 13px;
590 line-height: 1.4;
591 }
592 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers a:hover {
593 background: #f6f7f7;
594 border-color: #2271b1;
595 }
596 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers .current {
597 background: #2271b1;
598 color: #fff;
599 border-color: #2271b1;
600 }
601 .wpvulnerability-logs-panel .wpvulnerability-pagination .page-numbers .dots {
602 border: none;
603 background: transparent;
604 }
605 background: #fff;
606 border: 1px solid #c3c4c7;
607 border-radius: 4px;
608 padding: 24px;
609 }
610 .wpvulnerability-logs-panel .wpvulnerability-log-detail h3 {
611 margin-top: 0;
612 margin-bottom: 20px;
613 font-size: 18px;
614 color: #1d2327;
615 border-bottom: 2px solid #2271b1;
616 padding-bottom: 8px;
617 }
618 .wpvulnerability-logs-panel .wpvulnerability-log-detail .wpvulnerability-log-meta {
619 display: grid;
620 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
621 gap: 16px;
622 margin-bottom: 24px;
623 }
624 .wpvulnerability-logs-panel .wpvulnerability-log-detail .wpvulnerability-log-meta-item {
625 background: #f6f7f7;
626 padding: 12px;
627 border-radius: 4px;
628 }
629 .wpvulnerability-logs-panel .wpvulnerability-log-detail .wpvulnerability-log-meta-label {
630 font-size: 12px;
631 color: #646970;
632 text-transform: uppercase;
633 letter-spacing: 0.5px;
634 margin-bottom: 4px;
635 }
636 .wpvulnerability-logs-panel .wpvulnerability-log-detail .wpvulnerability-log-meta-value {
637 font-family: 'Courier New', monospace;
638 font-size: 13px;
639 color: #1d2327;
640 word-break: break-all;
641 }
642 .wpvulnerability-logs-panel .wpvulnerability-log-detail pre {
643 background: #1e1e1e;
644 color: #d4d4d4;
645 padding: 16px;
646 border-radius: 4px;
647 overflow-x: auto;
648 font-size: 13px;
649 line-height: 1.6;
650 }
651 .wpvulnerability-logs-panel .wpvulnerability-log-detail pre code {
652 color: inherit;
653 background: none;
654 padding: 0;
655 }
656 .wpvulnerability-logs-panel .wpvulnerability-empty-state {
657 text-align: center;
658 padding: 60px 20px;
659 color: #646970;
660 }
661 .wpvulnerability-logs-panel .wpvulnerability-empty-state-icon {
662 font-size: 64px;
663 margin-bottom: 16px;
664 opacity: 0.3;
665 }
666 .wpvulnerability-logs-panel .wpvulnerability-empty-state h3 {
667 margin: 0 0 8px 0;
668 font-size: 18px;
669 color: #1d2327;
670 }
671 .wpvulnerability-logs-panel .wpvulnerability-empty-state p {
672 margin: 0;
673 font-size: 14px;
674 }
675 .wpvulnerability-logs-panel .wpvulnerability-info-box {
676 background: #f0f6fc;
677 border-left: 4px solid #2271b1;
678 padding: 12px 16px;
679 margin-bottom: 20px;
680 border-radius: 2px;
681 }
682 .wpvulnerability-logs-panel .wpvulnerability-info-box p {
683 margin: 0;
684 color: #1d2327;
685 font-size: 13px;
686 }
687 .wpvulnerability-logs-panel .wpvulnerability-danger-zone {
688 background: #fef7f1;
689 border: 1px solid #f0c33c;
690 border-radius: 4px;
691 padding: 16px;
692 margin-top: 24px;
693 }
694 .wpvulnerability-logs-panel .wpvulnerability-danger-zone h4 {
695 margin: 0 0 12px 0;
696 color: #b32d2e;
697 font-size: 14px;
698 }
699
700 /* ==================================================
701 Tools Panel
702 ================================================== */
703 .wpvulnerability-tools-panel .wpvulnerability-tool-card {
704 background: #fff;
705 border: 1px solid #c3c4c7;
706 border-radius: 4px;
707 padding: 24px;
708 margin-bottom: 24px;
709 }
710 .wpvulnerability-tools-panel .wpvulnerability-tool-card h3 {
711 margin-top: 0;
712 margin-bottom: 16px;
713 font-size: 16px;
714 font-weight: 600;
715 color: #1d2327;
716 border-bottom: 2px solid #2271b1;
717 padding-bottom: 8px;
718 display: flex;
719 align-items: center;
720 gap: 8px;
721 }
722 .wpvulnerability-tools-panel .wpvulnerability-tool-card h3 .wpvulnerability-tool-icon {
723 font-size: 20px;
724 }
725 .wpvulnerability-tools-panel .wpvulnerability-tool-description {
726 margin-bottom: 16px;
727 color: #646970;
728 line-height: 1.6;
729 }
730 .wpvulnerability-tools-panel .wpvulnerability-info-box {
731 background: #f0f6fc;
732 border-left: 4px solid #2271b1;
733 padding: 12px 16px;
734 margin-bottom: 16px;
735 border-radius: 2px;
736 }
737 .wpvulnerability-tools-panel .wpvulnerability-info-box p {
738 margin: 0;
739 color: #1d2327;
740 font-size: 13px;
741 }
742 .wpvulnerability-tools-panel .wpvulnerability-info-box code {
743 background: #fff;
744 padding: 2px 6px;
745 border-radius: 3px;
746 font-size: 12px;
747 }
748 .wpvulnerability-tools-panel .wpvulnerability-cron-table {
749 width: 100%;
750 border-collapse: separate;
751 border-spacing: 0;
752 background: #fff;
753 border: 1px solid #c3c4c7;
754 border-radius: 4px;
755 overflow: hidden;
756 margin-bottom: 16px;
757 }
758 .wpvulnerability-tools-panel .wpvulnerability-cron-table thead {
759 background: #f6f7f7;
760 }
761 .wpvulnerability-tools-panel .wpvulnerability-cron-table th {
762 padding: 12px 16px;
763 text-align: left;
764 font-weight: 600;
765 color: #1d2327;
766 border-bottom: 2px solid #c3c4c7;
767 font-size: 13px;
768 }
769 .wpvulnerability-tools-panel .wpvulnerability-cron-table td {
770 padding: 12px 16px;
771 border-bottom: 1px solid #dcdcde;
772 font-size: 13px;
773 }
774 .wpvulnerability-tools-panel .wpvulnerability-cron-table tbody tr:hover {
775 background: #f6f7f7;
776 }
777 .wpvulnerability-tools-panel .wpvulnerability-cron-table tbody tr:last-child td {
778 border-bottom: none;
779 }
780 .wpvulnerability-tools-panel .wpvulnerability-cron-table code {
781 font-size: 12px;
782 color: #2271b1;
783 }
784 .wpvulnerability-tools-panel .wpvulnerability-status-badge {
785 display: inline-block;
786 padding: 3px 8px;
787 border-radius: 3px;
788 font-size: 12px;
789 font-weight: 500;
790 }
791 .wpvulnerability-tools-panel .wpvulnerability-status-badge.success {
792 background: #d5f5e3;
793 color: #00771a;
794 }
795 .wpvulnerability-tools-panel .wpvulnerability-status-badge.warning {
796 background: #fff3cd;
797 color: #856404;
798 }
799 .wpvulnerability-tools-panel .wpvulnerability-status-badge.error {
800 background: #ffd8d8;
801 color: #b32d2e;
802 }
803 .wpvulnerability-tools-panel .wpvulnerability-danger-zone {
804 background: #fef7f1;
805 border: 1px solid #f0c33c;
806 border-radius: 4px;
807 padding: 20px;
808 }
809 .wpvulnerability-tools-panel .wpvulnerability-danger-zone h4 {
810 margin: 0 0 12px 0;
811 color: #b32d2e;
812 font-size: 14px;
813 font-weight: 600;
814 }
815 .wpvulnerability-tools-panel .wpvulnerability-unexpected-list {
816 background: #fff3cd;
817 border: 1px solid #f0c33c;
818 border-radius: 4px;
819 padding: 16px;
820 margin: 16px 0;
821 }
822 .wpvulnerability-tools-panel .wpvulnerability-unexpected-list h4 {
823 margin: 0 0 12px 0;
824 color: #856404;
825 font-size: 14px;
826 }
827 .wpvulnerability-tools-panel .wpvulnerability-unexpected-list ul {
828 margin: 0;
829 padding-left: 20px;
830 }
831 .wpvulnerability-tools-panel .wpvulnerability-unexpected-list li {
832 margin-bottom: 8px;
833 color: #646970;
834 }
835 .wpvulnerability-tools-panel .wpvulnerability-tool-actions {
836 margin-top: 16px;
837 }
838
839 /* ==================================================
840 About Panel
841 ================================================== */
842 .wpvulnerability-about-panel .wpvulnerability-security-section {
843 background: #fff;
844 border: 1px solid #c3c4c7;
845 border-radius: 4px;
846 padding: 24px;
847 margin-bottom: 24px;
848 }
849 .wpvulnerability-about-panel .wpvulnerability-security-section h3 {
850 margin-top: 0;
851 margin-bottom: 16px;
852 font-size: 16px;
853 font-weight: 600;
854 color: #1d2327;
855 border-bottom: 2px solid #2271b1;
856 padding-bottom: 8px;
857 }
858 .wpvulnerability-about-panel .wpvulnerability-stats-grid {
859 display: grid;
860 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
861 gap: 20px;
862 margin-top: 20px;
863 }
864 .wpvulnerability-about-panel .wpvulnerability-stat-card {
865 background: #f6f7f7;
866 border: 1px solid #dcdcde;
867 border-radius: 4px;
868 padding: 16px;
869 transition: all 0.2s ease;
870 }
871 .wpvulnerability-about-panel .wpvulnerability-stat-card:hover {
872 border-color: #2271b1;
873 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
874 }
875 .wpvulnerability-about-panel .wpvulnerability-stat-card .wpvulnerability-stat-label {
876 font-size: 13px;
877 color: #646970;
878 margin-bottom: 8px;
879 font-weight: 500;
880 text-transform: uppercase;
881 letter-spacing: 0.5px;
882 }
883 .wpvulnerability-about-panel .wpvulnerability-stat-card .wpvulnerability-stat-value {
884 font-size: 24px;
885 font-weight: 600;
886 color: #1d2327;
887 margin-bottom: 4px;
888 }
889 .wpvulnerability-about-panel .wpvulnerability-stat-card .wpvulnerability-stat-meta {
890 font-size: 12px;
891 color: #787c82;
892 }
893 .wpvulnerability-about-panel .wpvulnerability-stat-card.wpvulnerability-no-data {
894 opacity: 0.6;
895 }
896 .wpvulnerability-about-panel .wpvulnerability-stat-card.wpvulnerability-no-data .wpvulnerability-stat-value {
897 color: #8c8f94;
898 font-size: 14px;
899 font-weight: 400;
900 }
901 .wpvulnerability-about-panel .wpvulnerability-people-grid {
902 display: grid;
903 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
904 gap: 16px;
905 margin-top: 16px;
906 }
907 .wpvulnerability-about-panel .wpvulnerability-person-card {
908 background: #f6f7f7;
909 border: 1px solid #dcdcde;
910 border-radius: 4px;
911 padding: 16px;
912 display: flex;
913 align-items: center;
914 transition: all 0.2s ease;
915 }
916 .wpvulnerability-about-panel .wpvulnerability-person-card:hover {
917 border-color: #2271b1;
918 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
919 transform: translateY(-2px);
920 }
921 .wpvulnerability-about-panel .wpvulnerability-person-card img {
922 width: 48px;
923 height: 48px;
924 border-radius: 50%;
925 margin-right: 12px;
926 border: 2px solid #fff;
927 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
928 }
929 .wpvulnerability-about-panel .wpvulnerability-person-card a {
930 font-weight: 500;
931 color: #2271b1;
932 text-decoration: none;
933 font-size: 14px;
934 }
935 .wpvulnerability-about-panel .wpvulnerability-person-card a:hover {
936 color: #135e96;
937 text-decoration: underline;
938 }
939 .wpvulnerability-about-panel .wpvulnerability-info-box {
940 background: #f0f6fc;
941 border-left: 4px solid #2271b1;
942 padding: 12px 16px;
943 margin-top: 20px;
944 border-radius: 2px;
945 }
946 .wpvulnerability-about-panel .wpvulnerability-info-box p {
947 margin: 0;
948 color: #1d2327;
949 font-size: 13px;
950 line-height: 1.6;
951 }
952 .wpvulnerability-about-panel .wpvulnerability-empty-state {
953 text-align: center;
954 padding: 40px 20px;
955 color: #646970;
956 }
957 .wpvulnerability-about-panel .wpvulnerability-empty-state-icon {
958 font-size: 48px;
959 margin-bottom: 12px;
960 opacity: 0.5;
961 }
962
963 /* ==================================================
964 Dashboard Widget
965 ================================================== */
966 .wpvuln-status-badge {
967 display: inline-block;
968 padding: 8px 14px;
969 border-radius: 4px;
970 font-weight: 600;
971 font-size: 13px;
972 margin-bottom: 12px;
973 line-height: 1.4;
974 }
975 .wpvuln-status-secure { background: #00a32a; color: #fff; }
976 .wpvuln-status-warning { background: #dba617; color: #fff; }
977 .wpvuln-status-critical { background: #d63638; color: #fff; }
978 .wpvuln-meta {
979 font-size: 12px;
980 color: #646970;
981 margin-bottom: 14px;
982 padding-bottom: 12px;
983 border-bottom: 1px solid #f0f0f1;
984 }
985 .wpvuln-refresh-btn {
986 font-size: 12px;
987 text-decoration: none;
988 color: #2271b1;
989 }
990 .wpvuln-refresh-btn:hover { color: #135e96; }
991 .wpvuln-section-title {
992 font-weight: 600;
993 font-size: 13px;
994 margin: 16px 0 10px;
995 padding-bottom: 6px;
996 border-bottom: 2px solid #f0f0f1;
997 color: #1d2327;
998 }
999 .wpvuln-component {
1000 display: flex;
1001 align-items: center;
1002 padding: 6px 0;
1003 font-size: 13px;
1004 line-height: 1.5;
1005 }
1006 .wpvuln-component img {
1007 margin-right: 8px;
1008 vertical-align: middle;
1009 }
1010 .wpvuln-component-name {
1011 flex: 1;
1012 font-weight: 500;
1013 }
1014 .wpvuln-badge {
1015 display: inline-block;
1016 padding: 2px 8px;
1017 border-radius: 3px;
1018 font-size: 12px;
1019 font-weight: 600;
1020 margin-left: 8px;
1021 }
1022 .wpvuln-badge-secure { background: #d7f3e0; color: #00701a; }
1023 .wpvuln-badge-warning { background: #fcf4db; color: #8a6116; }
1024 .wpvuln-badge-critical { background: #fce2e3; color: #9b1c1f; }
1025 .wpvuln-badge-eol { background: #8a4400; color: #fff; }
1026 .wpvuln-grid {
1027 display: grid;
1028 grid-template-columns: 1fr 1fr;
1029 gap: 8px;
1030 margin: 8px 0;
1031 }
1032 .wpvuln-empty-state {
1033 text-align: center;
1034 padding: 24px 12px;
1035 background: #d7f3e0;
1036 border-radius: 4px;
1037 margin: 12px 0;
1038 }
1039 .wpvuln-empty-state-icon {
1040 font-size: 32px;
1041 line-height: 1;
1042 margin-bottom: 8px;
1043 }
1044 .wpvuln-empty-state-title {
1045 font-weight: 600;
1046 font-size: 14px;
1047 color: #00701a;
1048 margin-bottom: 4px;
1049 }
1050 .wpvuln-empty-state-text {
1051 font-size: 12px;
1052 color: #1d6d2b;
1053 }
1054 .wpvuln-plugin-list {
1055 font-size: 12px;
1056 color: #646970;
1057 margin-left: 24px;
1058 margin-top: 4px;
1059 }
1060 .wpvuln-footer {
1061 margin-top: 16px;
1062 padding-top: 12px;
1063 border-top: 1px solid #dcdcde;
1064 font-size: 13px;
1065 }
1066
1067 /* ==================================================
1068 Security Panel
1069 ================================================== */
1070 .wpvulnerability-security-panel h2 {
1071 margin-top: 0;
1072 padding-top: 0;
1073 }
1074 .wpvulnerability-security-section {
1075 background: #fff;
1076 border: 1px solid #c3c4c7;
1077 border-radius: 4px;
1078 padding: 20px;
1079 margin-bottom: 20px;
1080 }
1081 .wpvulnerability-security-section h3 {
1082 margin-top: 0;
1083 border-bottom: 1px solid #c3c4c7;
1084 padding-bottom: 10px;
1085 }
1086 .wpvulnerability-status-grid {
1087 display: grid;
1088 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
1089 gap: 15px;
1090 margin: 15px 0;
1091 }
1092 .wpvulnerability-status-item {
1093 padding: 10px;
1094 background: #f6f7f7;
1095 border-radius: 3px;
1096 }
1097 .wpvulnerability-status-item strong {
1098 display: block;
1099 margin-bottom: 5px;
1100 color: #1d2327;
1101 }
1102 .wpvulnerability-status-badge {
1103 display: inline-block;
1104 padding: 2px 8px;
1105 border-radius: 3px;
1106 font-size: 12px;
1107 font-weight: 600;
1108 }
1109 .wpvulnerability-status-badge.success {
1110 background: #00a32a;
1111 color: #fff;
1112 }
1113 .wpvulnerability-status-badge.warning {
1114 background: #dba617;
1115 color: #fff;
1116 }
1117 .wpvulnerability-status-badge.disabled {
1118 background: #646970;
1119 color: #fff;
1120 }
1121 .wpvulnerability-detection-table {
1122 width: 100%;
1123 border-collapse: collapse;
1124 margin: 15px 0;
1125 }
1126 .wpvulnerability-detection-table th,
1127 .wpvulnerability-detection-table td {
1128 padding: 12px;
1129 text-align: left;
1130 border-bottom: 1px solid #c3c4c7;
1131 }
1132 .wpvulnerability-detection-table th {
1133 background: #f6f7f7;
1134 font-weight: 600;
1135 }
1136 .wpvulnerability-detection-table tr:last-child td {
1137 border-bottom: none;
1138 }
1139 .wpvulnerability-reliability-bar {
1140 display: inline-block;
1141 width: 100px;
1142 height: 18px;
1143 background: #e0e0e0;
1144 border-radius: 3px;
1145 overflow: hidden;
1146 vertical-align: middle;
1147 margin-right: 8px;
1148 }
1149 .wpvulnerability-reliability-fill {
1150 display: block;
1151 height: 100%;
1152 background: linear-gradient(90deg, #00a32a 0%, #4ab866 100%);
1153 transition: width 0.3s ease;
1154 }
1155 .wpvulnerability-reliability-fill.medium {
1156 background: linear-gradient(90deg, #dba617 0%, #f0b849 100%);
1157 }
1158 .wpvulnerability-reliability-fill.low {
1159 background: linear-gradient(90deg, #d63638 0%, #e65054 100%);
1160 }
1161 .wpvulnerability-logs-table {
1162 width: 100%;
1163 border-collapse: collapse;
1164 margin: 15px 0;
1165 font-size: 13px;
1166 }
1167 .wpvulnerability-logs-table th,
1168 .wpvulnerability-logs-table td {
1169 padding: 10px;
1170 text-align: left;
1171 border-bottom: 1px solid #c3c4c7;
1172 }
1173 .wpvulnerability-logs-table th {
1174 background: #f6f7f7;
1175 font-weight: 600;
1176 position: sticky;
1177 top: 0;
1178 }
1179 .wpvulnerability-logs-table code {
1180 background: #f6f7f7;
1181 padding: 2px 6px;
1182 border-radius: 3px;
1183 font-size: 12px;
1184 }
1185 .wpvulnerability-log-output {
1186 max-width: 300px;
1187 overflow: hidden;
1188 text-overflow: ellipsis;
1189 white-space: nowrap;
1190 }
1191 .wpvulnerability-log-output:hover {
1192 white-space: normal;
1193 word-break: break-all;
1194 }
1195 .wpvulnerability-empty-state {
1196 text-align: center;
1197 padding: 40px;
1198 color: #646970;
1199 }
1200 .wpvulnerability-empty-state-icon {
1201 font-size: 48px;
1202 margin-bottom: 10px;
1203 opacity: 0.3;
1204 }
1205 .wpvulnerability-info-box {
1206 background: #f0f6fc;
1207 border-left: 4px solid #2271b1;
1208 padding: 12px 16px;
1209 margin: 15px 0;
1210 }
1211 .wpvulnerability-info-box p {
1212 margin: 0;
1213 }
1214
1215 /* ── Vulnerability display components (5.1.0) ──────────────────── */
1216
1217 /* Source provider pills — Bootstrap-badge inspired */
1218 .wpvuln-source-pills {
1219 display: flex;
1220 flex-wrap: wrap;
1221 gap: 4px;
1222 margin: 6px 0 0;
1223 }
1224 .wpvuln-source-pill {
1225 display: inline-block;
1226 padding: .35em .65em;
1227 font-size: .75em;
1228 font-weight: 700;
1229 line-height: 1;
1230 text-align: center;
1231 white-space: nowrap;
1232 vertical-align: baseline;
1233 border-radius: .375rem;
1234 text-decoration: none;
1235 }
1236 .wpvuln-source-pill:hover {
1237 background: #000 !important;
1238 color: #fff !important;
1239 opacity: 1;
1240 text-decoration: none;
1241 }
1242 /* All source pills share the same dark-grey tone */
1243 .wpvuln-source-wordfence,
1244 .wpvuln-source-patchstack,
1245 .wpvuln-source-cve,
1246 .wpvuln-source-euvd,
1247 .wpvuln-source-jvn,
1248 .wpvuln-source-wpscan,
1249 .wpvuln-source-default { background: #50575e; color: #fff; }
1250
1251 /* "References:" row — label + pills on the same line */
1252 .wpvuln-refs-row {
1253 display: flex;
1254 align-items: center;
1255 gap: 6px;
1256 margin-top: 5px;
1257 }
1258 .wpvuln-refs-label {
1259 font-size: 0.8em;
1260 font-weight: 600;
1261 color: #50575e;
1262 white-space: nowrap;
1263 flex-shrink: 0;
1264 }
1265 .wpvuln-refs-row .wpvuln-source-pills {
1266 margin: 0;
1267 }
1268
1269 /* CVSS score + severity badge */
1270 .wpvuln-score-badge {
1271 display: inline-block;
1272 padding: 3px 10px;
1273 border-radius: 4px;
1274 font-size: 0.85em;
1275 font-weight: 700;
1276 }
1277 .wpvuln-score-critical { background: #b32d2e; color: #fff; }
1278 .wpvuln-score-high { background: #d54e21; color: #fff; }
1279 .wpvuln-score-medium { background: #f0b429; color: #3d2400; }
1280 .wpvuln-score-low { background: #00771a; color: #fff; }
1281 .wpvuln-score-none { background: #646970; color: #fff; }
1282
1283 /* Exploitation / automation risk badges */
1284 .wpvuln-poc-label,
1285 .wpvuln-auto-label {
1286 display: inline-flex;
1287 align-items: center;
1288 gap: 4px;
1289 padding: 3px 8px;
1290 border-radius: 4px;
1291 font-size: 0.78em;
1292 font-weight: 700;
1293 text-transform: uppercase;
1294 letter-spacing: 0.04em;
1295 }
1296 .wpvuln-poc-label { background: #d97706; color: #fff; } /* amber — public exploit */
1297 .wpvuln-auto-label { background: #6c757d; color: #fff; } /* grey — automatable */
1298
1299 /* EPSS exploitation probability badge */
1300 .wpvuln-epss-badge {
1301 display: inline-block;
1302 padding: 3px 8px;
1303 border-radius: 4px;
1304 background: #f0f0f1;
1305 color: #1d2327;
1306 border: 1px solid #c3c4c7;
1307 font-size: 0.78em;
1308 font-weight: 600;
1309 }
1310
1311 /* KEV inline label */
1312 .wpvuln-kev-label {
1313 display: inline-flex;
1314 align-items: center;
1315 gap: 4px;
1316 padding: 3px 8px;
1317 border-radius: 4px;
1318 background: #b32d2e;
1319 color: #fff;
1320 font-size: 0.78em;
1321 font-weight: 700;
1322 text-transform: uppercase;
1323 letter-spacing: 0.04em;
1324 }
1325
1326 /* Affected version range */
1327 .wpvuln-versions {
1328 display: inline-block;
1329 font-family: 'Courier New', monospace;
1330 background: #f0f0f1;
1331 border: 1px solid #c3c4c7;
1332 padding: 1px 6px;
1333 border-radius: 3px;
1334 font-size: 0.9em;
1335 white-space: nowrap;
1336 color: #1d2327;
1337 }
1338
1339 /* Component icon in section headers */
1340 .wpvuln-component-icon {
1341 width: 16px;
1342 height: 16px;
1343 vertical-align: middle;
1344 margin-right: 4px;
1345 display: inline-block;
1346 }
1347