def capitalize_token(value: str) -> str:
    return str(value).strip().capitalize()


def build_centro_id(region: str, area: str, centro: str) -> str:
    return f"{capitalize_token(region)}-{capitalize_token(area)}-{capitalize_token(centro)}"


def normalize_centro_id(centro_id: str) -> str:
    parts = [part.strip() for part in str(centro_id).split("-") if part.strip()]
    if len(parts) != 3:
        raise ValueError("centro_id must be in REGION-AREA-CENTRO format")
    return build_centro_id(parts[0], parts[1], parts[2])


def normalize_area_id(area_id: str) -> str:
    parts = [part.strip() for part in str(area_id).split("-") if part.strip()]
    if len(parts) != 2:
        raise ValueError("area_id must be in REGION-AREA format")
    return f"{capitalize_token(parts[0])}-{capitalize_token(parts[1])}"
