Spaces:
Running
Running
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| FindingCard.css β Finding card styles with diff viewer | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .finding-card { | |
| padding: var(--space-md); | |
| margin-bottom: var(--space-sm); | |
| cursor: default; | |
| } | |
| .finding-card-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: var(--space-sm); | |
| cursor: pointer; | |
| } | |
| .finding-header-left { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-sm); | |
| } | |
| .finding-agent-icon { | |
| font-size: 1rem; | |
| opacity: 0.7; | |
| } | |
| .finding-header-right { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-sm); | |
| } | |
| .expand-btn { | |
| background: none; | |
| border: none; | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| font-size: 1rem; | |
| padding: 4px; | |
| transition: color var(--transition-fast); | |
| } | |
| .expand-btn:hover { | |
| color: var(--cyan); | |
| } | |
| .finding-title-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: var(--space-sm); | |
| margin-bottom: var(--space-xs); | |
| } | |
| .finding-title { | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| line-height: 1.3; | |
| } | |
| .finding-id { | |
| font-size: 0.7rem; | |
| color: var(--text-tertiary); | |
| flex-shrink: 0; | |
| } | |
| .finding-description { | |
| font-size: 0.82rem; | |
| color: var(--text-secondary); | |
| line-height: 1.5; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .finding-location { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| padding: 4px 10px; | |
| background: rgba(255, 255, 255, 0.03); | |
| border-radius: var(--radius-sm); | |
| margin-bottom: var(--space-sm); | |
| } | |
| .location-icon { | |
| font-size: 0.8rem; | |
| } | |
| .location-path { | |
| font-size: 0.75rem; | |
| color: var(--cyan); | |
| } | |
| .location-line { | |
| font-size: 0.75rem; | |
| color: var(--medium); | |
| } | |
| /* ββ Expanded Details ββββββββββββββββββββββββββββββββββββββββ */ | |
| .finding-details { | |
| border-top: 1px solid var(--border-primary); | |
| padding-top: var(--space-md); | |
| margin-top: var(--space-sm); | |
| } | |
| .code-section-label { | |
| font-family: var(--font-mono); | |
| font-size: 0.72rem; | |
| color: var(--text-tertiary); | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .finding-code-section { | |
| margin-bottom: var(--space-md); | |
| } | |
| .finding-code-section .code-block pre { | |
| margin: 0; | |
| white-space: pre-wrap; | |
| word-break: break-all; | |
| } | |
| .finding-code-section .code-block code { | |
| color: var(--critical); | |
| } | |
| .finding-suggestion { | |
| margin-bottom: var(--space-md); | |
| padding: var(--space-md); | |
| background: rgba(0, 240, 255, 0.04); | |
| border: 1px solid rgba(0, 240, 255, 0.1); | |
| border-radius: var(--radius-md); | |
| } | |
| .finding-suggestion p { | |
| font-size: 0.82rem; | |
| color: var(--text-secondary); | |
| line-height: 1.5; | |
| } | |
| /* ββ Diff Viewer βββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .finding-fix-preview { | |
| margin-top: var(--space-md); | |
| } | |
| .diff-container { | |
| display: grid; | |
| grid-template-columns: 1fr auto 1fr; | |
| gap: var(--space-sm); | |
| align-items: stretch; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .diff-panel { | |
| min-width: 0; | |
| } | |
| .diff-header { | |
| font-family: var(--font-mono); | |
| font-size: 0.7rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| padding: 6px 10px; | |
| border-radius: var(--radius-sm) var(--radius-sm) 0 0; | |
| } | |
| .diff-before .diff-header { | |
| background: var(--critical-bg); | |
| color: var(--critical); | |
| } | |
| .diff-after .diff-header { | |
| background: var(--low-bg); | |
| color: var(--low); | |
| } | |
| .diff-panel .code-block { | |
| border-radius: 0 0 var(--radius-sm) var(--radius-sm); | |
| min-height: 60px; | |
| font-size: 0.75rem; | |
| } | |
| .diff-panel .code-block pre { | |
| margin: 0; | |
| white-space: pre-wrap; | |
| word-break: break-all; | |
| } | |
| .diff-before .code-block code { | |
| color: var(--critical); | |
| } | |
| .diff-after .code-block code { | |
| color: var(--low); | |
| } | |
| .diff-arrow { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--text-tertiary); | |
| font-size: 1.2rem; | |
| padding-top: 24px; | |
| } | |
| .fix-explanation { | |
| font-size: 0.8rem; | |
| color: var(--text-secondary); | |
| line-height: 1.5; | |
| padding: var(--space-sm) var(--space-md); | |
| background: rgba(0, 255, 136, 0.04); | |
| border-radius: var(--radius-sm); | |
| border-left: 3px solid var(--low); | |
| } | |
| /* ββ Actions βββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .finding-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-sm); | |
| margin-top: var(--space-sm); | |
| } | |
| .fix-available-tag { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| font-family: var(--font-mono); | |
| font-size: 0.7rem; | |
| color: var(--medium); | |
| opacity: 0.8; | |
| } | |
| .fix-ready-tag { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| font-family: var(--font-mono); | |
| font-size: 0.7rem; | |
| color: var(--low); | |
| } | |
| /* ββ Responsive ββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 768px) { | |
| .diff-container { | |
| grid-template-columns: 1fr; | |
| } | |
| .diff-arrow { | |
| transform: rotate(90deg); | |
| padding-top: 0; | |
| } | |
| } | |