import { Calendar, CheckCircle, Clock, MessageSquare, RotateCcw, Target, TrendingUp, User, XCircle, } from 'lucide-react'; const BG = { surface: 'var(--gi-bg-surface)', elevated: 'var(--gi-bg-raised)' }; const BORDER = { subtle: 'rgba(255,255,255,0.04)', muted: 'rgba(255,255,255,0.07)' }; const TEXT = { primary: 'rgba(255,255,255,0.88)', secondary: 'rgba(255,255,255,0.55)', tertiary: 'rgba(255,255,255,0.28)', muted: 'rgba(255,255,255,0.14)', }; export type OutcomeResult = 'achieved' | 'partial' | 'missed' | 'pending' | 'exceeded'; export interface OutcomeRecord { id: string; result: OutcomeResult; executedAction: string; executedAt: string; executedBy: string; executedByRole: string; outcomeRecordedAt?: string; predictedImpact: string; actualImpact?: string; accuracy?: number; feedbackNote?: string; laterImpact?: string; timeToOutcome?: string; } const RESULT_CFG: Record< OutcomeResult, { color: string; bg: string; icon: typeof CheckCircle; label: string } > = { achieved: { color: '#6b8f71', bg: 'rgba(107,143,113,0.1)', icon: CheckCircle, label: 'Achieved' }, exceeded: { color: '#22c55e', bg: 'rgba(34,197,94,0.1)', icon: TrendingUp, label: 'Exceeded' }, partial: { color: '#c8953c', bg: 'rgba(200,149,60,0.1)', icon: Clock, label: 'Partial' }, missed: { color: '#c45a4a', bg: 'rgba(196,90,74,0.1)', icon: XCircle, label: 'Missed' }, pending: { color: TEXT.tertiary, bg: 'rgba(255,255,255,0.03)', icon: Clock, label: 'Pending' }, }; interface OutcomePanelProps { outcome: OutcomeRecord; compact?: boolean; } export function OutcomePanel({ outcome, compact }: OutcomePanelProps) { const cfg = RESULT_CFG[outcome.result]; const ResultIcon = cfg.icon; if (compact) { return (