.hero { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.5rem; margin-bottom: 1.5rem; padding: 1.5rem; border-radius: 24px; background: radial-gradient(circle at top left, rgba(255, 135, 61, 0.24), transparent 34%), linear-gradient(135deg, #0f172a, #162033 42%, #1f2f46 100%); color: #f8fafc; box-shadow: 0 24px 80px rgba(15, 23, 42, 0.24); } .hero::after { content: ""; position: absolute; inset: auto -10% -35% auto; width: 260px; height: 260px; border-radius: 50%; background: rgba(255, 255, 255, 0.06); filter: blur(8px); } .heroCopy { position: relative; z-index: 1; } .kicker, .eyebrow, .metricLabel, .statLabel { display: inline-block; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.72rem; opacity: 0.72; } .heroCopy h2 { margin: 0.35rem 0 0.85rem; font-size: 2rem; line-height: 1.08; max-width: 14ch; } .heroText { max-width: 62ch; margin: 0; color: rgba(248, 250, 252, 0.8); } .heroMetrics { position: relative; z-index: 1; display: grid; gap: 0.9rem; } .metricTile, .statCard, .detailCard, .jsonCard, .emptyPanel, .stepItem { border: 1px solid rgba(148, 163, 184, 0.18); border-radius: 20px; background: rgba(255, 255, 255, 0.06); backdrop-filter: blur(10px); } .metricTile { padding: 1rem 1.1rem; display: grid; gap: 0.35rem; } .metricTile strong { font-size: 1rem; line-height: 1.35; } .grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 1.5rem; } .primaryColumn, .secondaryColumn { display: grid; gap: 1.5rem; } .panelBody { display: grid; gap: 1rem; } .inlineRow, .actionRow, .jobHeader, .progressMeta { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; flex-wrap: wrap; } .statusPill { display: inline-flex; align-items: center; justify-content: center; min-height: 2rem; padding: 0.3rem 0.8rem; border-radius: 999px; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; } .success { background: rgba(22, 163, 74, 0.14); color: #166534; } .warning { background: rgba(245, 158, 11, 0.16); color: #92400e; } .active { background: rgba(14, 165, 233, 0.14); color: #075985; } .error { background: rgba(239, 68, 68, 0.16); color: #991b1b; } .jobPanel { display: grid; gap: 1rem; } .panelTitle { margin: 0.15rem 0 0; font-size: 1.15rem; } .progressTrack { position: relative; height: 0.8rem; border-radius: 999px; overflow: hidden; background: linear-gradient(90deg, #e2e8f0, #f8fafc); } .progressFill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ff7a18, #ffb347 55%, #ffd166); box-shadow: 0 0 24px rgba(255, 122, 24, 0.35); animation: pulse 1.8s ease-in-out infinite; } .statGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; } .statCard, .detailCard, .jsonCard { padding: 1rem; } .detailCard p { margin: 0.35rem 0 0; } .warningCard { background: linear-gradient(135deg, rgba(255, 237, 213, 0.9), rgba(255, 247, 237, 0.95)); } .successCard { background: linear-gradient(135deg, rgba(220, 252, 231, 0.92), rgba(240, 253, 244, 0.96)); } .errorCard { background: linear-gradient(135deg, rgba(254, 226, 226, 0.92), rgba(255, 241, 242, 0.96)); } .jsonCard { overflow: auto; background: #0f172a; color: #e2e8f0; } .emptyPanel { position: relative; overflow: hidden; padding: 1.3rem; background: linear-gradient(135deg, #fff8ed, #ffffff); } .emptyGlow { position: absolute; inset: auto -30px -40px auto; width: 110px; height: 110px; border-radius: 50%; background: rgba(255, 122, 24, 0.14); filter: blur(6px); } .emptyPanel h3, .emptyPanel p { position: relative; z-index: 1; } .emptyPanel h3 { margin: 0 0 0.35rem; } .emptyPanel p { margin: 0; color: #475569; } .stepList { display: grid; gap: 0.75rem; } .stepItem { padding: 0.95rem 1rem; background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94)); } @keyframes pulse { 0%, 100% { filter: saturate(1); } 50% { filter: saturate(1.25); } } @media (max-width: 960px) { .hero, .grid { grid-template-columns: 1fr; } .heroCopy h2 { max-width: none; } } @media (max-width: 640px) { .hero { padding: 1.2rem; } .heroCopy h2 { font-size: 1.55rem; } .statGrid { grid-template-columns: 1fr; } }