.security { padding: 2rem; max-width: 1400px; margin: 0 auto; } .security-header { margin-bottom: 2rem; } .security-header h2 { margin: 0 0 1.5rem 0; color: #f1f5f9; font-size: 1.875rem; } .security-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem; } .summary-card { background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(148, 163, 184, 0.2); border-radius: 8px; padding: 1.5rem; text-align: center; } .summary-card.critical { border-color: rgba(239, 68, 68, 0.3); } .summary-card.high { border-color: rgba(249, 115, 22, 0.3); } .summary-card.medium { border-color: rgba(234, 179, 8, 0.3); } .summary-label { color: #94a3b8; font-size: 0.875rem; margin-bottom: 0.5rem; } .summary-value { color: #f1f5f9; font-size: 2rem; font-weight: 700; } .error-message { background: #ef4444; color: white; padding: 1rem; border-radius: 6px; margin-bottom: 1rem; } .security-filters { display: flex; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; } .filter-group { display: flex; align-items: center; gap: 0.5rem; } .filter-group label { color: #f1f5f9; font-size: 0.875rem; font-weight: 500; } .filter-group select, .filter-group input { padding: 0.5rem 0.75rem; background: rgba(15, 23, 42, 0.8); border: 1px solid rgba(148, 163, 184, 0.3); border-radius: 6px; color: #f1f5f9; font-size: 0.875rem; } .filter-group select:focus, .filter-group input:focus { outline: none; border-color: #fc2922; } .filter-group input { min-width: 250px; } .no-vulnerabilities { text-align: center; padding: 4rem 2rem; color: #94a3b8; } .vulnerabilities-list { display: flex; flex-direction: column; gap: 1rem; } .vulnerability-card { background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(252, 41, 34, 0.2); border-radius: 8px; overflow: hidden; transition: all 0.2s; } .vulnerability-card:hover { border-color: rgba(252, 41, 34, 0.4); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .vulnerability-header { padding: 1.5rem; display: flex; justify-content: space-between; align-items: center; cursor: pointer; } .vulnerability-title { display: flex; align-items: center; gap: 1rem; flex: 1; } .vulnerability-title h3 { margin: 0; color: #f1f5f9; font-size: 1.125rem; } .severity-badge { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 12px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .package-name { color: #94a3b8; font-size: 0.875rem; font-weight: 500; } .vulnerability-meta { display: flex; align-items: center; gap: 1rem; } .affected-servers { color: #94a3b8; font-size: 0.875rem; } .expand-icon { color: #94a3b8; font-size: 0.75rem; } .vulnerability-details { padding: 0 1.5rem 1.5rem 1.5rem; border-top: 1px solid rgba(148, 163, 184, 0.1); margin-top: 1rem; padding-top: 1.5rem; } .detail-section { margin-bottom: 1.5rem; } .detail-section:last-child { margin-bottom: 0; } .detail-section strong { display: block; color: #f1f5f9; font-size: 0.875rem; font-weight: 600; margin-bottom: 0.5rem; } .detail-section p { color: #cbd5e1; font-size: 0.875rem; line-height: 1.6; margin: 0; } .fixed-version { color: #10b981; font-weight: 600; font-family: monospace; } .servers-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; } .server-tag { display: inline-block; padding: 0.25rem 0.75rem; background: rgba(252, 41, 34, 0.1); border: 1px solid rgba(252, 41, 34, 0.3); border-radius: 12px; color: #fc2922; font-size: 0.75rem; font-weight: 500; } .cve-link { color: #3b82f6; text-decoration: none; font-size: 0.875rem; transition: color 0.2s; } .cve-link:hover { color: #60a5fa; text-decoration: underline; } @media (max-width: 768px) { .security { padding: 1rem; } .security-summary { grid-template-columns: repeat(2, 1fr); } .vulnerability-header { flex-direction: column; align-items: flex-start; gap: 1rem; } .vulnerability-title { flex-direction: column; align-items: flex-start; gap: 0.5rem; } }