;; Helper: render a Phase 2 result row
(defcomp (&key (name :as string) (status :as string) (tested :as number) (skipped :as number) (counterexample :as string?))
  (tr (~tw :tokens "border-t border-stone-100")
    (td (~tw :tokens "py-1.5 px-3 font-mono text-xs text-stone-700") name)
    (td (~tw :tokens "py-1.5 px-3 text-xs")
      (if (= status "verified")
        (span (~tw :tokens "text-emerald-600 font-medium") "verified")
        (span (~tw :tokens "text-red-600 font-medium") "falsified")))
    (td (~tw :tokens "py-1.5 px-3 text-xs text-stone-500 text-right tabular-nums")
      (str tested))
    (td (~tw :tokens "py-1.5 px-3 text-xs text-stone-400 text-right tabular-nums")
      (str skipped))
    (td (~tw :tokens "py-1.5 px-3 text-xs font-mono text-red-600")
      (or counterexample ""))))
