def fmt_currency(value: float, decimals: int = 2) -> str: if value is None: return "—" sign = "-" if value < 0 else "" return f"{sign}${abs(value):,.{decimals}f}" def fmt_percent(value: float, decimals: int = 2, plus: bool = True) -> str: if value is None: return "—" sign = "+" if value > 0 and plus else "" return f"{sign}{value:.{decimals}f}%" def fmt_large_number(value: float) -> str: if value is None: return "—" abs_val = abs(value) sign = "-" if value < 0 else "" if abs_val >= 1_000_000_000_000: return f"{sign}{abs_val / 1_000_000_000_000:.2f}T" if abs_val >= 1_000_000_000: return f"{sign}{abs_val / 1_000_000_000:.2f}B" if abs_val >= 1_000_000: return f"{sign}{abs_val / 1_000_000:.2f}M" if abs_val >= 1_000: return f"{sign}{abs_val / 1_000:.1f}K" return f"{sign}{abs_val:.2f}" def fmt_volume(value: int) -> str: return fmt_large_number(float(value)) if value else "—" def pnl_color(value: float) -> str: if value > 0: return "#a6e3a1" if value < 0: return "#f38ba8" return "#cdd6f4"