/* Test Runners — Registry Surface Uses kernel CSS variables from variables.css (--bg-*, --border, --text-*, etc.) */ .ext-test-runners-root { max-width: 1200px; margin: 0 auto; padding: var(--sp-6, 24px) var(--sp-4, 16px); font-family: var(--font, system-ui, sans-serif); color: var(--text, #e8e8ed); } /* ── Run All Bar ─────────────────────────────── */ .ext-test-runners-bar { display: flex; align-items: center; gap: var(--sp-4, 16px); margin-bottom: var(--sp-6, 24px); padding: var(--sp-4, 16px); background: var(--bg-raised, #222227); border-radius: var(--radius-lg, 12px); border: 1px solid var(--border, #2e2e35); } .ext-test-runners-bar h2 { margin: 0; font-size: 1.1rem; font-weight: 600; flex: 1; color: var(--text, #e8e8ed); } .ext-test-runners-summary { display: flex; gap: var(--sp-3, 12px); font-size: 0.85rem; } .ext-test-runners-stat { padding: 2px 8px; border-radius: var(--radius-sm, 4px); font-weight: 500; } .ext-test-runners-stat--pass { background: var(--success-dim, rgba(34,197,94,0.2)); color: var(--success-light, #4ade80); } .ext-test-runners-stat--fail { background: var(--danger-dim, rgba(239,68,68,0.2)); color: var(--danger-light, #f87171); } .ext-test-runners-stat--warn { background: var(--warning-dim, rgba(234,179,8,0.2)); color: var(--warning-light, #fbbf24); } .ext-test-runners-stat--skip { background: var(--bg-hover, #2a2a30); color: var(--text-3, #6b6b7b); } /* ── Runner Cards ────────────────────────────── */ .ext-test-runners-grid { display: flex; flex-direction: column; gap: var(--sp-4, 16px); } .ext-test-runners-card { border: 1px solid var(--border, #2e2e35); border-radius: var(--radius-lg, 12px); padding: var(--sp-4, 16px); background: var(--bg-surface, #18181b); } .ext-test-runners-card__header { display: flex; align-items: center; gap: var(--sp-3, 12px); margin-bottom: var(--sp-3, 12px); } .ext-test-runners-card__icon { font-size: 1.5rem; } .ext-test-runners-card__title { font-size: 1rem; font-weight: 600; flex: 1; margin: 0; color: var(--text, #e8e8ed); } .ext-test-runners-card__desc { font-size: 0.85rem; color: var(--text-2, #9898a8); margin: 0 0 var(--sp-3, 12px) 0; } .ext-test-runners-card__requires { font-size: 0.8rem; color: var(--text-3, #6b6b7b); margin-bottom: var(--sp-2, 8px); } .ext-test-runners-card__requires--missing { color: var(--warning, #eab308); } /* ── Results Panel ───────────────────────────── */ .ext-test-runners-results { margin-top: var(--sp-3, 12px); border-top: 1px solid var(--border, #2e2e35); padding-top: var(--sp-3, 12px); } .ext-test-runners-suite { margin-bottom: var(--sp-3, 12px); } .ext-test-runners-suite__name { font-weight: 600; font-size: 0.9rem; margin-bottom: var(--sp-1, 4px); cursor: pointer; user-select: none; color: var(--text, #e8e8ed); } .ext-test-runners-suite__name:hover { text-decoration: underline; } .ext-test-runners-test { display: flex; align-items: baseline; gap: var(--sp-2, 8px); padding: 2px 0 2px var(--sp-4, 16px); font-size: 0.85rem; font-family: var(--mono, monospace); } .ext-test-runners-test__status { width: 16px; text-align: center; flex-shrink: 0; } .ext-test-runners-test__name { flex: 1; color: var(--text-2, #9898a8); } .ext-test-runners-test__time { color: var(--text-3, #6b6b7b); font-size: 0.8rem; } .ext-test-runners-test__detail { color: var(--danger-light, #f87171); font-size: 0.8rem; padding-left: calc(var(--sp-4, 16px) + 24px); word-break: break-word; } /* Status colors */ .ext-test-runners-status--passed { color: var(--success, #1dab51); } .ext-test-runners-status--failed { color: var(--danger, #ef4444); } .ext-test-runners-status--warned { color: var(--warning, #eab308); } .ext-test-runners-status--skipped { color: var(--text-3, #6b6b7b); } /* ── Loading / Empty ─────────────────────────── */ .ext-test-runners-loading, .ext-test-runners-empty { text-align: center; padding: var(--sp-8, 32px); color: var(--text-2, #9898a8); } /* ── Running indicator ───────────────────────── */ .ext-test-runners-running { display: inline-flex; align-items: center; gap: var(--sp-2, 8px); font-size: 0.85rem; color: var(--text-2, #9898a8); } @keyframes ext-test-runners-spin { to { transform: rotate(360deg); } } .ext-test-runners-spinner { width: 14px; height: 14px; border: 2px solid var(--border, #2e2e35); border-top-color: var(--accent, #6493ed); border-radius: 50%; animation: ext-test-runners-spin 0.8s linear infinite; } /* ── Export Bar ───────────────────────────────── */ .ext-test-runners-export { display: flex; gap: var(--sp-3, 12px); margin-top: var(--sp-4, 16px); padding-top: var(--sp-4, 16px); border-top: 1px solid var(--border, #2e2e35); }