| .container { |
| max-width: 900px; |
| margin: 0 auto; |
| padding: 40px 24px; |
| } |
|
|
| .card { |
| background: var(--bg-surface); |
| border: 1px solid var(--border); |
| border-radius: var(--radius-xl); |
| padding: 28px; |
| box-shadow: var(--shadow-md); |
| display: flex; |
| flex-direction: column; |
| gap: 20px; |
| } |
|
|
| |
| .header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| gap: 12px; |
| } |
|
|
| .headerLeft { |
| display: flex; |
| align-items: center; |
| gap: 12px; |
| } |
|
|
| .spinnerWrap { |
| width: 38px; |
| height: 38px; |
| background: var(--accent-light); |
| color: var(--accent); |
| border-radius: 50%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| flex-shrink: 0; |
| } |
|
|
| .spinner { |
| animation: spin 1s linear infinite; |
| } |
|
|
| @keyframes spin { |
| from { transform: rotate(0deg); } |
| to { transform: rotate(360deg); } |
| } |
|
|
| .headerTitle { |
| font-size: 15px; |
| font-weight: 600; |
| color: var(--text-primary); |
| letter-spacing: -0.2px; |
| } |
|
|
| .headerSub { |
| font-size: 12.5px; |
| color: var(--text-muted); |
| font-family: var(--font-mono); |
| margin-top: 2px; |
| } |
|
|
| .progressBadge { |
| font-size: 20px; |
| font-weight: 700; |
| color: var(--accent); |
| letter-spacing: -0.5px; |
| } |
|
|
| |
| .progressTrack { |
| height: 6px; |
| background: var(--bg-surface-3); |
| border-radius: 99px; |
| overflow: hidden; |
| } |
|
|
| .progressBar { |
| height: 100%; |
| background: linear-gradient(90deg, var(--accent) 0%, #4d94ff 100%); |
| border-radius: 99px; |
| } |
|
|
| |
| .stage { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| font-size: 13px; |
| color: var(--accent); |
| font-weight: 500; |
| } |
|
|
| .stageIcon { |
| width: 24px; |
| height: 24px; |
| background: var(--accent-light); |
| border-radius: 6px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| } |
|
|
| |
| .skeletonGrid { |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| gap: 16px; |
| } |
|
|
| .skeletonMediaWrap { |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| } |
|
|
| .skeletonMedia { |
| height: 200px; |
| background: var(--bg-surface-2); |
| border-radius: var(--radius-md); |
| overflow: hidden; |
| position: relative; |
| } |
|
|
| .skeletonLines { |
| display: flex; |
| flex-direction: column; |
| gap: 8px; |
| } |
|
|
| .skeletonLine { |
| height: 12px; |
| background: var(--bg-surface-2); |
| border-radius: 6px; |
| overflow: hidden; |
| position: relative; |
| } |
| .skeletonLineLong { width: 100%; } |
| .skeletonLineMed { width: 70%; } |
| .skeletonLineShort { width: 45%; } |
|
|
| .skeletonVerdictWrap { |
| display: flex; |
| flex-direction: column; |
| gap: 12px; |
| align-items: center; |
| } |
|
|
| .skeletonScoreCircle { |
| width: 120px; |
| height: 120px; |
| border-radius: 50%; |
| background: var(--bg-surface-2); |
| overflow: hidden; |
| position: relative; |
| } |
|
|
| .skeletonBlock { |
| width: 100%; |
| height: 36px; |
| background: var(--bg-surface-2); |
| border-radius: var(--radius-md); |
| overflow: hidden; |
| position: relative; |
| } |
|
|
| |
| .shimmer { |
| position: absolute; |
| inset: 0; |
| background: linear-gradient( |
| 90deg, |
| transparent 0%, |
| rgba(255,255,255,0.7) 50%, |
| transparent 100% |
| ); |
| background-size: 200% 100%; |
| animation: shimmer 1.6s ease-in-out infinite; |
| } |
|
|
| @keyframes shimmer { |
| 0% { background-position: -200% 0; } |
| 100% { background-position: 200% 0; } |
| } |
|
|
| |
| .modelsRunning { |
| border-top: 1px solid var(--border); |
| padding-top: 16px; |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| } |
|
|
| .modelsLabel { |
| font-size: 11px; |
| font-weight: 600; |
| color: var(--text-muted); |
| text-transform: uppercase; |
| letter-spacing: 0.8px; |
| } |
|
|
| .modelsList { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 10px; |
| } |
|
|
| .modelItem { |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| font-size: 12px; |
| font-weight: 500; |
| color: var(--text-secondary); |
| background: var(--bg-surface-2); |
| padding: 4px 10px; |
| border-radius: 99px; |
| border: 1px solid var(--border); |
| } |
|
|
| .modelDot { |
| width: 6px; |
| height: 6px; |
| background: var(--accent); |
| border-radius: 50%; |
| flex-shrink: 0; |
| } |
|
|
| @media (max-width: 600px) { |
| .container { padding: 24px 16px; } |
| .skeletonGrid { grid-template-columns: 1fr; } |
| .card { padding: 20px; } |
| } |
|
|