.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 */ .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; } /* Progress bar */ .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 */ .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; } /* Skeleton grid */ .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 effect */ .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; } } /* Models running */ .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; } }