diff --git a/components/stats-bar.tsx b/components/stats-bar.tsx
index 819416a..0998fa6 100644
--- a/components/stats-bar.tsx
+++ b/components/stats-bar.tsx
@@ -14,8 +14,8 @@ import { ModelControl } from "@/components/model-picker";
* All folds come from core/prices.ts (sessionCost, contextWindow, turnCost)
* — no cost math lives here. Absent data renders "—", never zero (the
* doctrine): no turns yet → every figure is "—"; turns the price table
- * can't price count as unpriced, shown in the popover, never folded into a
- * fake $0. The RIGHT side is the model + thinking control (components/
+ * can't price count as unpriced, shown in the popover, never folded into
+ * a fake $0. The RIGHT side is the model + thinking control (components/
* model-picker.tsx): one controller for the conversation agents, backed by
* pi-ai's catalog; the buttons show the EFFECTIVE model (the record's
* settings, else config's pin), while the left-side figures still fold the
@@ -61,28 +61,84 @@ export function StatsBar({
return (
-
+ {/* The summary button + its popover: the popover anchors to this
+ wrapper, CENTERED over the button itself (owner, stats round 2)
+ — not over the whole bar row, which made it line up oddly. */}
+
{/* The model + thinking control — one controller for the conversation
agents (prober/teacher); the record's `turns` above still folds
the ACTUAL models billed, regardless of what the picker says. */}
@@ -92,58 +148,6 @@ export function StatsBar({
onSaved={onSettingsSaved}
fallbackModelId={lastModel}
/>
-
- {open && (
-