diff --git a/components/practice-cards.tsx b/components/practice-cards.tsx
index 7c686af..45f6381 100644
--- a/components/practice-cards.tsx
+++ b/components/practice-cards.tsx
@@ -20,7 +20,6 @@ import type { ArtifactPartProps } from "@/src/core";
* language in a faint user-side shell, never collapsible.
*/
-import { ChevronDownIcon } from "lucide-react";
import { useEffect, useRef, useState } from "react";
import { ThinkingBlock } from "@/components/thinking-block";
@@ -161,14 +160,15 @@ export function ConcludeCard({ part }: ArtifactPartProps) {
* transparency): a quiet METADATA trigger at the very bottom of the
* conclude card (no divider — it just sits there); click opens the
* info-box register of the graph-view node cards (rounded-xl border
- * bg-card p-4 shadow-lg, floating ABOVE the trigger); any scroll or
+ * bg-card p-4 shadow-lg, opening BELOW the trigger — always); any scroll or
* click outside closes it (plus Esc, claimed from the layered chain
* per the popover law). Shows every field the agent filled in both the
* problem call (mode, targets — names resolved lazily) and the
* conclude call (outcome, rung, miss class, retest). Statement and
- * modelSolution stay out — they are the visible card. The VALUES match
- * the model solution's font size (text-[15px], owner-verified law);
- * labels keep the eyebrow register. */
+ * modelSolution stay out — they are the visible card. The data keeps
+ * the original SMALL register (text-xs rows, mono values — owner
+ * correction: the 15px pass was way too large); the trigger matches
+ * the eyebrow size; the box opens BELOW the trigger, always. */
function MetadataPopover({
concludeInput,
problemInput,
@@ -220,7 +220,6 @@ function MetadataPopover({
aria-expanded={open}
className="flex items-center gap-1 text-xs font-medium uppercase tracking-wide text-muted-foreground transition-colors hover:text-foreground"
>
-