from docx.shared import Pt, Inches, Emu, RGBColor


def pt(points: float):
    """Convert points to a python-docx Length (used for font sizes, spacing, picture dimensions)."""
    return Pt(points)


def rgb(hex_str: str) -> RGBColor:
    """Convert a 6-char hex string to RGBColor."""
    h = (hex_str or '000000').lstrip('#').upper()
    if len(h) != 6:
        return RGBColor(0, 0, 0)
    return RGBColor(int(h[0:2], 16), int(h[2:4], 16), int(h[4:6], 16))
