Spaces:
Sleeping
Sleeping
Prasham.Jain
feat(branch-a): A5 replay visualizer — static HTML/JS viewer mounted under /viz
e1814ef | :root { | |
| --bg: #0f172a; | |
| --panel: #1e293b; | |
| --panel-2: #111827; | |
| --text: #e2e8f0; | |
| --muted: #94a3b8; | |
| --accent: #38bdf8; | |
| --good: #4ade80; | |
| --warn: #facc15; | |
| --bad: #f87171; | |
| --terminal: #a78bfa; | |
| --border: #334155; | |
| } | |
| * { box-sizing: border-box; } | |
| body { | |
| margin: 0; | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, sans-serif; | |
| background: var(--bg); | |
| color: var(--text); | |
| } | |
| .header { | |
| padding: 12px 24px; | |
| background: var(--panel-2); | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .header h1 { | |
| margin: 0 0 8px 0; | |
| font-size: 18px; | |
| letter-spacing: 0.04em; | |
| } | |
| .loaders { | |
| display: flex; | |
| gap: 12px; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| font-size: 12px; | |
| color: var(--muted); | |
| } | |
| .loaders input[type="file"] { | |
| color: var(--text); | |
| } | |
| .loaders button { | |
| background: var(--panel); | |
| color: var(--text); | |
| border: 1px solid var(--border); | |
| padding: 4px 12px; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| } | |
| .empty-state { | |
| margin-top: 8px; | |
| font-size: 12px; | |
| color: var(--muted); | |
| } | |
| .container { | |
| display: grid; | |
| grid-template-columns: 280px 1fr 320px; | |
| gap: 16px; | |
| padding: 16px; | |
| } | |
| aside h2, | |
| .main-panel h2 { | |
| font-size: 12px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| margin: 12px 0 6px; | |
| color: var(--muted); | |
| } | |
| .card { | |
| background: var(--panel); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| padding: 10px 12px; | |
| font-size: 12px; | |
| line-height: 1.5; | |
| } | |
| .card pre, | |
| .card code, | |
| .detail pre { | |
| font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; | |
| font-size: 11px; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| background: var(--panel-2); | |
| padding: 6px 8px; | |
| border-radius: 4px; | |
| } | |
| .kv { | |
| display: grid; | |
| grid-template-columns: max-content 1fr; | |
| column-gap: 12px; | |
| row-gap: 4px; | |
| } | |
| .kv dt { | |
| color: var(--muted); | |
| } | |
| .kv dd { | |
| margin: 0; | |
| } | |
| .timeline { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .step-card { | |
| background: var(--panel); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| padding: 8px 10px; | |
| min-width: 140px; | |
| cursor: pointer; | |
| font-size: 11px; | |
| transition: transform 80ms ease, border-color 80ms ease; | |
| } | |
| .step-card:hover { | |
| border-color: var(--accent); | |
| transform: translateY(-1px); | |
| } | |
| .step-card.selected { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 1px; | |
| } | |
| .step-card.terminal { | |
| border-color: var(--terminal); | |
| } | |
| .step-card .step-tool { | |
| font-weight: 600; | |
| color: var(--text); | |
| } | |
| .step-card .step-meta { | |
| color: var(--muted); | |
| display: flex; | |
| justify-content: space-between; | |
| margin-top: 4px; | |
| } | |
| .cost-low { color: var(--good); } | |
| .cost-mid { color: var(--warn); } | |
| .cost-high { color: var(--bad); } | |
| .hidden-until-terminal { | |
| opacity: 0.6; | |
| font-style: italic; | |
| } | |
| .hidden-until-terminal.revealed { | |
| opacity: 1; | |
| font-style: normal; | |
| } | |
| .bar-row { | |
| display: grid; | |
| grid-template-columns: 110px 1fr 50px; | |
| align-items: center; | |
| gap: 8px; | |
| margin-bottom: 4px; | |
| } | |
| .bar-row .name { | |
| color: var(--muted); | |
| font-size: 11px; | |
| } | |
| .bar-row .bar { | |
| height: 10px; | |
| background: var(--panel-2); | |
| border-radius: 3px; | |
| overflow: hidden; | |
| } | |
| .bar-row .bar > span { | |
| display: block; | |
| height: 100%; | |
| background: var(--accent); | |
| } | |
| .bar-row .val { | |
| text-align: right; | |
| font-variant-numeric: tabular-nums; | |
| font-size: 11px; | |
| } | |
| .detail .step-detail-section { | |
| margin-bottom: 10px; | |
| } | |
| .diag-correct { color: var(--good); } | |
| .diag-incorrect { color: var(--bad); } | |
| @media (max-width: 1100px) { | |
| .container { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |